Python - Problema sencillo

 
Vista:

Problema sencillo

Publicado por faustto (4 intervenciones) el 20/08/2011 01:29:50
En este codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while 1:
	print """
Este Programa esta echo para realizar una suma entre dos(2) numeros.
Para realizar una suma escribir "sumar" para salir escribir "salir" """
	opcion = input("Acción: ")
	if opcion == sumar:
		N1 = input("Primer numero?: ")
		N2 = input("Más?: ")
		N3 = N1 + N2
		print N1, "más", N2, "es igual a", N3
	elif opcion == salir:
		break
	else :
		print "Opcion incorrecta..."


me muestra:
Este Programa esta echo para realizar una suma entre dos(2) numeros.
Para realizar una suma escribir "sumar" para salir escribir "salir"
Acción: sumar
Traceback (most recent call last):
File "<pyshell#43>", line 5, in <module>
opcion = input("Acción: ")
File "<string>", line 1, in <module>
NameError: name 'sumar' is not defined

porque pasa esto?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema sencillo

Publicado por lucas (5 intervenciones) el 07/09/2011 21:37:26
Eso que te dice el intérprete pasa. No esta definida la variable sumar.
Podrías hacer lo siguiente:

while 1:
print """
Este Programa esta echo para realizar una suma entre dos(2) numeros.
Para realizar una suma escribir "sumar" para salir escribir "salir" """
opcion = raw_input("Acción: ")
if opcion == "sumar":
N1 = input("Primer numero?: ")
N2 = input("Más?: ")
N3 = N1 + N2
print N1, "más", N2, "es igual a", N3
elif opcion == "salir":
break
else :
print "Opcion incorrecta..."

Si escribes sumar sin comillas es una variable, y te pide que la declares antes.
Para comparar una variable string con una string la string debe estar entre comillas, si no el intérprete la toma como una variable y te da error.
Usa raw_input para almacenar cadenas, si usas input, debes tipear las cadenas entre comillas si no te va a dar error.
En la comparación con salir, lo mismo que en sumar.

Si no debes poner de la siguiente manera:

while 1:
print """
Este Programa esta echo para realizar una suma entre dos(2) numeros.
Para realizar una suma escribir "sumar" para salir escribir "salir" """
sumar = "sumar"
salir = "salir"
opcion = raw_input("Acción: ")
if opcion == sumar:
N1 = input("Primer numero?: ")
N2 = input("Más?: ")
N3 = N1 + N2
print N1, "más", N2, "es igual a", N3
elif opcion == salir:
break
else :
print "Opcion incorrecta..."

Saludos!
PD: mira el tema de la indentación, si vas a copiar el código y pegarlo por que te va a dar error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar