Foro de elhacker.net

Programación => 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
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
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
  1. #!/usr/bin/env python
  2.  
  3. print ('Hola, bienvenido al problema 1.6.1')
  4.  
  5. def cua(num):
  6. print num * num
  7.  
  8. n1 = input ("ingrese un numero: ")
  9. n2 = input ("ingrese un numero: ")
  10.  
  11. def cuad():
  12. for x in range (n1, n2):
  13. cua (x)
  14.  
  15. cuad ()
  16.  
  17. 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
  1. n1 = input ("ingrese un numero: ")
  2. n2 = input ("ingrese un numero: ")
  3.  
  4. def cuad():
  5. for x in range (n1, n2):
  6. print(x)
  7.  
  8. cuad ()
  9.  

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
Código
  1. n1 = input ("ingrese un numero: ")
  2. n2 = input ("ingrese un numero: ")
  3.  
  4. def cuad():
  5. for x in range (n1, n2):
  6. print(x)
  7.  
  8. cuad ()
  9.  

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
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

Código
  1. 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
exacto, así funciona...

como es comunmente usado para for es equivalente a

Código
  1. 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