Python - bucles anidados

 
Vista:

bucles anidados

Publicado por diego (1 intervención) el 10/09/2020 01:02:05
saludos....!

necesito de su ayuda con el siguiente problema:

Escribir un programa que almacene las asignaturas de un curso (por ejemplo Matemáticas, Física, Química, Historia y Lengua) en una lista y la muestre por pantalla.

lo realicè pero al final me sigue mostrando el primer elemento de la segunda lista
agradezco su ayuda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
lista=[]
listanotas=[]
asignaturas=input("ingrese una asignatura: ")
lista.append(asignaturas)
notas=float(input("ingrese una nota: "))
listanotas.append(notas)
respuesta=input("desea ingresar otra asignatura?. Responda: (si/no) ")
 
while respuesta=="si":
	asignaturas=input("ingrese una asignatura: ")
	lista.append(asignaturas)
	notas=float(input("ingrese una nota: "))
	listanotas.append(notas)
	respuesta=input("desea ingresar otra asignatura?. Responda: (si/no) ")
 
	if respuesta!="si":
		break
 
for i in lista :
	for j in listanotas:
 
		print ("En", i, "ha sacado ",j)
		break
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

bucles anidados

Publicado por joel (901 intervenciones) el 10/09/2020 07:52:03
Hola Diego, creo que tu problema esta en el planteamiento... para poder utilizar un bucle anidado, tienes que tener una lista de listas... no dos listas... mira este código de ejemplo haber si te da una idea:

1
2
3
4
5
6
7
8
9
10
11
12
13
lista=[]
 
respuesta="si"
while respuesta=="si":
	asignaturas=input("ingrese una asignatura: ")
	notas=float(input("ingrese una nota: "))
	lista.append([asignaturas, notas])
 
	respuesta=input("desea ingresar otra asignatura?. Responda: (si/no) ")
 
for i in lista :
	for j in len(i):
		print ("En", j[0], "ha sacado ",j[1])
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
Imágen de perfil de Jaime
Val: 526
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

bucles anidados

Publicado por Jaime (136 intervenciones) el 13/09/2020 02:15:32
Otra solución un poco más optimizada:
1
2
3
4
5
6
7
8
9
10
11
12
13
asignaturas = []
while True:
    notas = {}
    notas['asignatura'] = input("ingrese una asignatura: ")
    notas['nota'] = float(input("ingrese una nota: "))
    asignaturas.append(notas)
    respuesta = input(
        "desea ingresar otra asignatura?. Responda: (si/no) ").lower()
    if respuesta != "si":
        break
 
for asignatura in asignaturas:
    print("En", asignatura['asignatura'], "ha sacado ", asignatura['nota'])
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