Ejercicio listas con funcion range
Publicado por Chris (2 intervenciones) el 26/01/2020 16:40:06
Hola, he empezado un curso de python y tengo la siguiente duda en un ejercicio de listas.
Hay que crear una lista de asignaturas, preguntar las notas de dichas asignaturas al usuario y finalmente imprimir las suspensas que tiene que repetir.
Lo hice creando dos listas, una vacía donde se almacenan las aprobadas y luego restándosela a la lista completa, así:
En la solución propuesta se resuelve así:
No entiendo por qué en el for...in se especifica (-1,-1,-1)
Recorre la lista desde el último hacia atrás, pero ¿por qué esto es necesario?, ¿por qué si cambio a valores positivos tira un error?
Gracias, un saludo.
Hay que crear una lista de asignaturas, preguntar las notas de dichas asignaturas al usuario y finalmente imprimir las suspensas que tiene que repetir.
Lo hice creando dos listas, una vacía donde se almacenan las aprobadas y luego restándosela a la lista completa, así:
1
2
3
4
5
6
7
8
9
10
11
12
subjects = ["Matemáticas", "Física", "Química", "Historia", "Lengua"]
passed = []
for i in subjects:
score = int(input("Nota " + i + " "))
if score >= 5:
passed.append(i)
for n in passed:
subjects.remove(n)
print("Repetir", *subjects, sep=", ")
En la solución propuesta se resuelve así:
1
2
3
4
5
6
7
subjects = ["Matemáticas", "Física", "Química", "Historia", "Lengua"]
for subject in range(len(subjects)-1,-1,-1):
score = int(input("¿Qué nota has sacado en " + subjects[subject] + "? "))
if score >= 5:
subjects.pop(subject)
print("Tienes que repetir", *subjects, sep=", ")
No entiendo por qué en el for...in se especifica (-1,-1,-1)
1
for subject in range(len(subjects)-1,-1,-1):
Recorre la lista desde el último hacia atrás, pero ¿por qué esto es necesario?, ¿por qué si cambio a valores positivos tira un error?
Gracias, un saludo.
Valora esta pregunta


0