Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Ejercicios => Mensaje iniciado por: Astergoth en 26 Mayo 2017, 23:32 PM

Título: Python: algo estoy haciendo mal
Publicado por: Astergoth en 26 Mayo 2017, 23:32 PM
Hola a tod@s,

Como comente en otro post estoy aprendiendo python en mis momentos libres y todo genial, excepto en un ejercicio el cual no me sale ningún error de sintaxis pero el resultado no concuerda o ni aparece.

El caso es que tengo que escribir un programa (bastante sencillo) el cual debe:
- imprimir un mensaje de bienvenida
- solicitar al usuario 2 números enteros (n1, n2)
- hacer el cuadrado de todos los numeros que el usuario haya ingresado.
- imprimir mensaje de despedida.

Adjunto foto del codigo fuente del programa:
(https://uploads.tapatalk-cdn.com/20170526/fb4949d5ea6bc6212fc9968039f9a66d.jpg)

El caso es que en el segundo numero pongo "5" y me sale de resultado 16 por ejemplo, el primer numero me sale bien pero el segundo no.
Que he podido hacer mal??

Gracias de antemano
Título: Re: Python: algo estoy haciendo mal
Publicado por: engel lex en 27 Mayo 2017, 00:13 AM
realmente no diste basicamente nada de información... tu codigo está bien, y todo lo que dices es que no da el resultado esperado... usa print(x) en la linea 12 a ver si hace el recorrido esperado
Título: Re: Python: algo estoy haciendo mal
Publicado por: Astergoth en 27 Mayo 2017, 01:19 AM
Cita de: engel lex en 27 Mayo 2017, 00:13 AM
realmente no diste basicamente nada de información... tu codigo está bien, y todo lo que dices es que no da el resultado esperado... usa print(x) en la linea 12 a ver si hace el recorrido esperado
Hola engel,

He hecho lo que me has dicho y parece no reconocer el segundo numero, pero no veo ningún error en el codigo, no se si será por la variable o por el "for".

Gracias
Título: Re: Python: algo estoy haciendo mal
Publicado por: engel lex en 27 Mayo 2017, 01:23 AM
no estás dando nada de información... que versión de python usas?

el codigo está bien

muestra que te dá y que esperas... preferiblemente copia y pega el codigo en lugar de usar fotos, se lee mejor
Título: Re: Python: algo estoy haciendo mal
Publicado por: Astergoth en 27 Mayo 2017, 01:52 AM
Cita de: engel lex en 27 Mayo 2017, 01:23 AM
no estás dando nada de información... que versión de python usas?

el codigo está bien

muestra que te dá y que esperas... preferiblemente copia y pega el codigo en lugar de usar fotos, se lee mejor

perdona, me suelo conectar al foro desde el movil.

uso python2.7 escrito con pluma,

el codigo es:

Código (python) [Seleccionar]
#!/usr/bin/env python

print ('Hola, bienvenido al problema 1.6.1')

def cua(num):
print num * num

n1 = input ("ingrese un numero: ")
n2 = input ("ingrese un numero: ")

def cuad():
for x in range (n1, n2):
cua (x)

cuad ()

print ('Asi termina el problema')]

* sin parentesis cuadrados
el resultado de "n1" lo da bien pero el de "n2" lo da mal o ni lo da, cosa que me parece extraña ya que el codigo esta hecho para que imprima los 2 resultados bien.
si lo ejecuto me pide los 2 numeros pero si pongo por ejemplo 2 y 4 me dice que el cuadrado de 4 es 9 o ni lo imprime.

gracias de nuevo.


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex

perdon para la proxima lo se.
Título: Re: Python: algo estoy haciendo mal
Publicado por: engel lex en 27 Mayo 2017, 01:57 AM
Código (python) [Seleccionar]
n1 = input ("ingrese un numero: ")
n2 = input ("ingrese un numero: ")

def cuad():
for x in range (n1, n2):
print(x)

cuad ()


usa ese codigo y dime si da el resultado esperado
Título: Re: Python: algo estoy haciendo mal
Publicado por: Astergoth en 27 Mayo 2017, 02:06 AM
Cita de: engel lex en 27 Mayo 2017, 01:57 AM
Código (python) [Seleccionar]
n1 = input ("ingrese un numero: ")
n2 = input ("ingrese un numero: ")

def cuad():
for x in range (n1, n2):
print(x)

cuad ()


usa ese codigo y dime si da el resultado esperado

ingresando 2 y 4 me dice 2 y 3 respectivamente, es como si le restase 1 al segundo valor.
Título: Re: Python: algo estoy haciendo mal
Publicado por: engel lex en 27 Mayo 2017, 02:10 AM
Cita de: Astergoth en 27 Mayo 2017, 02:06 AM
ingresando 2 y 4 me dice 2 y 3 respectivamente, es como si le restase 1 al segundo valor.

exacto, así funciona...

como es comunmente usado para for es equivalente a

for (i = n1; i < n2; i++)

por eso es importante leerse la documentación del lenguaje con el que trabajas
Título: Re: Python: algo estoy haciendo mal
Publicado por: Astergoth en 27 Mayo 2017, 02:15 AM
Cita de: engel lex en 27 Mayo 2017, 02:10 AM
exacto, así funciona...

como es comunmente usado para for es equivalente a

for (i = n1; i < n2; i++)

por eso es importante leerse la documentación del lenguaje con el que trabajas

justamente estaba leyendo la docu de for en el interprete, te lo iba a decir, perdona el despiste.
por cierto la firma tiene una razón que no veas.

muchas gracias