Python - Error con la entrada

 
Vista:
sin imagen de perfil

Error con la entrada

Publicado por Juan Carlos (6 intervenciones) el 05/12/2016 22:55:32
Hola buenas, tengo que hacer un ejercicio de python que lea una lista de números y escriba por pantalla una lista con los cuadrados de los números enteros leídos y los números de la lista original. No comprendo el porque me salta un error en esta linea de código " n=int(input("Nuevo número: "))" la que se encuentra dentro del bucle, alguien sabe ¿porqué?:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
print("Ve introduciendo números enteros, o una cadena vacía para acabar...")
n=int(input("Nuevo número: "))
lista=[]
 
while n != "":
    lista.append(n)
    n=int(input("Nuevo número: "))
 
lista_cuadrada=[]
for i in range(lista):
    lista_cuadrada.append(lista**2)
 
print("Cuadrados de los números leídos: {0}".format(lista_cuadrada))
print("Números leídos: {0}".format(lista))


El error es el siguiente:

[i]Traceback (most recent call last):
File "C:\Users\TheJaks77\workspace\Programacion\Practicas\Prac4\ej04.py", line 7, in <module>
n=int(input("Nuevo número: "))
ValueError: invalid literal for int() with base 10: ''



Gracias de antemano.
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
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Error con la entrada

Publicado por xve (1646 intervenciones) el 06/12/2016 12:07:12
Hola Juan Carlos, tu problema, es que no es posible convertir un valor vació a entero... por eso te da el error... he revisado tu código, y he visto varios errores... te envió el código arreglado para que puedas ver las diferencias:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
print("Ve introduciendo números enteros, o una cadena vacía para acabar...")
lista=[]
 
while True:
    try:
        n=input("Nuevo número: ")
        if n=="":
            break
        lista.append(int(n))
    except:
        pass
 
lista_cuadrada=[]
for i in lista:
    lista_cuadrada.append(i**2)
 
print("Cuadrados de los números leídos: {0}".format(lista_cuadrada))
print("Números leídos: {0}".format(lista))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Error con la entrada

Publicado por Juan Carlos (6 intervenciones) el 06/12/2016 13:17:19
Vale muchísimas gracias, ahora comprendo lo del int :) Un saludo
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