error programa python

Iniciado por fenix2000, 18 Octubre 2017, 22:13 PM

0 Miembros y 1 Visitante están viendo este tema.

fenix2000

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 (python) [Seleccionar]

paises=[]
tempmens=[]
for x in range (4):
    pais = input("introduzca el nombre del pais")
    paises.append(pais)
    for k in range (3):
        temppa = []
        temperatura = input("introduzca la temperatura media de un mes")
        temppa.append(temperatura)
    tempmens.append(temppa)

print(paises)
print(tempmens)

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
El mismo martillo que rompe el cristal forja el acero

engel lex

es raro,  escribiste espana en el codigo? porque está intentando interpretar eso
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

fenix2000

Si, al ejecutar el programa me pide que introduzca el nombre del pais, asi que coloqué espana para probar
El mismo martillo que rompe el cristal forja el acero

engel lex

me corre perfecto, revisa que hayas guardado y ejecutado el fichero correcto
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

<Trocutor>

Solo tienes que cambiar los inputs por raw_inputs, a mi me pasa de vez en cuando xD

fenix2000

Cita de: <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
No se por qué pero esa es la solución xD.
Muchas gracias a los dos por ayudarme :D
El mismo martillo que rompe el cristal forja el acero

<Trocutor>

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

engel lex

Cita de: <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


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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

<Trocutor>

Uso python 3 no python 2 xD

Yidu

Cita de: <Trocutor> en 19 Octubre 2017, 15:06 PM
Uso python 3 no python 2 xD

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

Código (python) [Seleccionar]
temperatura = input("introduzca la temperatura media de un mes")

Debería modificarse a:

Código (python) [Seleccionar]
temperatura = int(input("introduzca la temperatura media de un mes"))

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