Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: fenix2000 en 18 Octubre 2017, 22:13 pm



Título: error programa python
Publicado por: fenix2000 en 18 Octubre 2017, 22:13 pm
Buenas, estoy creando un programa que almacena en una lista los nombres de cuatro países, a la misma vez tengo que almacenar en una lista las temperaturas medias de cada país durante tres meses.
Lo he intentado con el siguiente código
Código
  1. paises=[]
  2. tempmens=[]
  3. for x in range (4):
  4.    pais = input("introduzca el nombre del pais")
  5.    paises.append(pais)
  6.    for k in range (3):
  7.        temppa = []
  8.        temperatura = input("introduzca la temperatura media de un mes")
  9.        temppa.append(temperatura)
  10.    tempmens.append(temppa)
  11.  
  12. print(paises)
  13. print(tempmens)
  14.  
Pero me tira este error:
 line 4, in <module>
    pais = input("introduzca el nombre del pais")
  File "<string>", line 1, in <module>
NameError: name 'espana' is not defined
La verdad es que en este punto estoy bastante perdido, no se si estoy cometiendo un error garrafal o una nimiedad. ¿Podríais indicarme el error o cómo mejorar el código?
Gracias por su atención


Título: Re: error programa python
Publicado por: engel lex en 18 Octubre 2017, 22:26 pm
es raro,  escribiste espana en el codigo? porque está intentando interpretar eso


Título: Re: error programa python
Publicado por: fenix2000 en 18 Octubre 2017, 22:30 pm
Si, al ejecutar el programa me pide que introduzca el nombre del pais, asi que coloqué espana para probar


Título: Re: error programa python
Publicado por: engel lex en 18 Octubre 2017, 22:32 pm
me corre perfecto, revisa que hayas guardado y ejecutado el fichero correcto


Título: Re: error programa python
Publicado por: <Trocutor> en 18 Octubre 2017, 22:37 pm
Solo tienes que cambiar los inputs por raw_inputs, a mi me pasa de vez en cuando xD


Título: Re: error programa python
Publicado por: fenix2000 en 18 Octubre 2017, 22:40 pm
Solo tienes que cambiar los inputs por raw_inputs, a mi me pasa de vez en cuando xD
No se por qué pero esa es la solución xD.
Muchas gracias a los dos por ayudarme :D


Título: Re: error programa python
Publicado por: <Trocutor> en 18 Octubre 2017, 22:44 pm
Sinceramente yo tampoco se porque y llevo muchos años (3 años) sin saber la diferencia de input y raw_input.

Luego me informare de la diferencia xD

De nadaaa :D


Título: Re: error programa python
Publicado por: engel lex en 19 Octubre 2017, 01:21 am
Sinceramente yo tampoco se porque y llevo muchos años (3 años) sin saber la diferencia de input y raw_input.

Luego me informare de la diferencia xD

De nadaaa :D


ahh eso es problema en python 2 alguna veces D: no lo recordaba XD

input toma el dato e intenta procesarlo y convertirlo a un tipo apropiado... raw_input toma el dato y lo retorna como string tal cual llegó... en python 3, por defecto input siempre se comporta como raw_input y el comportamiento de input fue eliminado


Título: Re: error programa python
Publicado por: <Trocutor> en 19 Octubre 2017, 15:06 pm
Uso python 3 no python 2 xD


Título: Re: error programa python
Publicado por: Yidu en 19 Octubre 2017, 20:37 pm
Uso python 3 no python 2 xD

Yo diría que esta línea de tu código:

Código
  1. temperatura = input("introduzca la temperatura media de un mes")

Debería modificarse a:

Código
  1. temperatura = int(input("introduzca la temperatura media de un mes"))

Se supone que esperas introducir un valor entero y no una cadena.



Título: Re: error programa python
Publicado por: fenix2000 en 19 Octubre 2017, 21:50 pm
Yo diría que esta línea de tu código:

Código
  1. temperatura = input("introduzca la temperatura media de un mes")

Debería modificarse a:

Código
  1. temperatura = int(input("introduzca la temperatura media de un mes"))

Se supone que esperas introducir un valor entero y no una cadena.


Cierto no lo había pensado, igualmente poniendo raw_input() también funciona.
Gracias por comentarlo.