Python - Problema python (principiante)

 
Vista:
sin imagen de perfil

Problema python (principiante)

Publicado por David (1 intervención) el 18/12/2017 17:14:29
Buenas,
soy nuevo en el mundo de Python y estoy probando un código pero no soy capaz de que me funcione. El objetivo del programa es que un usuario diga cuantos elemento hay en una lista donde posteriormente este dirá los valores que habrá dentro, siempre numéricos.
El código que yo he hecho es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
print('Cuantos valores quieres introducir en la lista?')
n = input()
 
lista=[]
 
if type(n) is int:
    for i in range(n):
        print('Valor ' + str(i+1))
        lista[i]=input()
    print('Tus valores de lista son:')
    for i in range(n):
        print(lista[i])
else:
    print('No has introducido bien los datos')

Alguna ayuda?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Problema python (principiante)

Publicado por tincopasan (1082 intervenciones) el 18/12/2017 19:19:48
bien, hay varias cosas a revisar o que se pueden cambiar:
1) input retorna cadenas
1
n = input()
por lo tanto aunque se ingresen números n siempre será una cadena, por lo tanto hay que pasarlo a entero
1
n = int(input())

de paso:
1
2
print('Cuantos valores quieres introducir en la lista?')
n = input()
puede ser:
1
n=int(input("Cuantos valores quieres introducir en la lista: "))
te recomiendo que comiences agregando valores a una lista vacia con append()
modificando un poco tu código para que vayas viendo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
print('Cuantos valores quieres introducir en la lista?')
 
try:                         #para que si hay un error al ingresar el valor
    n = int(input())
    lista=[]
 
 
    for i in range(n):
        print('Valor ' + str(i+1))
        agrega= int(input())
        lista.append(agrega)
    print('Tus valores de lista son:')
    for i in range(n):
        print(lista[i])
except:             #en caso de error de datos
    print('No has introducido bien los datos')

de paso te felicito porque por lo menos has intentado un código, me cansa muchos que piden todo hecho y no ponen ni un amague de hacer algo. Saludos.
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
sin imagen de perfil
Val: 14
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

Problema python (principiante)

Publicado por juan carlos (8 intervenciones) el 24/12/2017 03:50:20
lo hice asi...:D

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
lista=[]
print('Cuantos valores quieres introducir en la lista?')
n = input()
n=int(n)
for i in range(1,n+1):
    numeros=input("ingrese el numero")
    lista.append(numeros)
 
 
 
a=len(lista)
 
 
print("cuantos numeros hay en la lista ?")
filtro=input()
filtro=int(filtro)
if(filtro==a):
    print("correcto")
else:
    print("incorrecto")
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

Problema python (principiante)

Publicado por Isard (1 intervención) el 28/12/2017 01:07:00
No sé exactamente si la idea de pedir antes el número de datos es una "imposición externa" o si lo haces porque, como yo, vienes del mundo de C/C++... En python las cosas suelen ser más "directas".

Supongamos que quieres meter un número de datos en una lista:

1
2
entrada_usuario = input("Introduce los valores:").split()
print(entrada_usuario)

split crea una lista de cadenas (como dice tincopasan, input devuelve cadenas) separando la cadena en los espacios.

Si el usuario escribe 1 20 300, se crea una lista con tres cadenas de caracteres: ['1', '20', '300']

Para convertir los valores a enteros, se puede hacer

1
2
3
entrada_usuario = input("Introduce los valores:").split()
numeros = [int(x) for x in entrada_usuario]
print(numeros)

La segunda línea convierte a entero cada valor x de la lista entrada_usuario.

Sobre la comprobación de tipo que haces, en python se dice que es mejor pedir perdón que pedir permiso (EAFP). Se suele hacer algo como

1
2
3
4
5
6
entrada_usuario = input("Introduce los valores:").split()
try:
    numeros = [int(x) for x in entrada_usuario]
    print(numeros)
except ValueError:
    print("Los valores han de ser enteros")
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