Python - Ejercicio listas con funcion range

 
Vista:
sin imagen de perfil
Val: 7
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

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í:

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
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 Alfil
Val: 9
Ha aumentado su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Ejercicio listas con funcion range

Publicado por Alfil (1 intervención) el 26/01/2020 21:30:11
Especifica len(subjects)-1 que es igual a 4, por lo tanto el bucle es desde la posición 4 a la -1 (equivalente al 0 cuando el recorrido es a la inversa), contado de -1 en -1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 7
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Ejercicio listas con funcion range

Publicado por Chris (2 intervenciones) el 26/01/2020 23:09:36
Vale, entendido, gracias ;)
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