Error en Python: NameError name XXX is not defined

publicado por: Anonymous

Soy nuevo en Python y estoy haciendo unos ejercicios de prueba, y estoy teniedo problemas en uno que me he inventado.

Quiero recoger nombres, meterlos en un vector, y ordenarlos. Esto lo había hecho antes con números, pero sin un while (preguntando con anterioridad cuántos números se iban a pedir ordenar para poder utilizar un for).

Ya os digo, será una chorrada, pero no consigo ver el error:

nombres = []

print("Introduce nombres y los devolvere ordenados. Escribe stop cuando quieras acabar")

stop = "stop"
while (input() != stop):

    nombres.append(input())

nombres.sort()

print(nombres)

Me devuelve este error: introducir la descripción de la imagen aquí

solución

input() en python3xes la forma adecuada de pedir un dato al usuario, sin embargo en python2x además de pedir una entrada de usuario, el interprete la evalúa tal como si fuera código Python, de ahí el error, se está evaluando la cadena jaime y el interprete justamente te está diciendo que tal nombre no está definido. En python2x deberías usar raw_input() o mudarte a la versión 3x.

Por otro lado tienes un problema de concepto, estás pidiendo el ingreso de datos pero no siempre lo logras agregar a la lista, el input() del while es el que estaría mal. Podrías hacer lo siguiente:

nombres = []

print("Introduce nombres y los devolvere ordenados. Escribe stop cuando quieras acabar")

stop = "stop"
valor = raw_input()
while (valor != stop):
    nombres.append(valor)
    valor = raw_input()

nombres.sort()
print(nombres)
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *