Python - Saludos, me podrían ayudar a saber de donde sale el error en la linea 51 cuando presento la matriz?

 
Vista:

Saludos, me podrían ayudar a saber de donde sale el error en la linea 51 cuando presento la matriz?

Publicado por Jokerrrd (1 intervención) el 25/03/2020 01:34:45
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
matriz = [[],[],[],[],[],[]]
contIngreso = "SI"
matmatricula = []
matnombre = []
matparcial1 = []
matparcial2 = []
mattareas = []
matfinal = []
 
while contIngreso.upper() == "SI":
  matricula = int(input("Ingresa tu matricula: "))
  matmatricula.append(matricula)
  nombre = input("Ingresa tu nombre: ")
  matnombre.append(nombre)
 
  parcial1 = int(input("Ingresa la nota del primer parcial: "))
  while (parcial1 < 0) or (parcial1 > 100):
    print("La primera nota no debe ser menor que cero ni mayor que 100")
    parcial1 = int(input("Ingresa la nota del primer parcial: "))
  cparcial1 = (parcial1 * 0.25)
  matparcial1.append(cparcial1)
 
  parcial2 = int(input("Ingresa la nota del primer parcial: "))
  while (parcial2 < 0) or (parcial2 > 100):
    print("La segunda nota no debe ser menor que cero ni mayor que 100: ")
    parcial2 = int(input("Ingresa la nota del segundo parcial: "))
  cparcial2 = (parcial2 * 0.25)
  matparcial2.append(cparcial2)
 
  tareas = int(input("Ingresa la nota del primer parcial: "))
  while (tareas < 0) or (tareas > 100):
    print("La nota de tarea no debe ser menor que cero ni mayor que 100: ")
    parcial1 = int(input("Ingresa la nota de la tarea: "))
  ctarea = (tareas * 0.20)
  mattareas.append(ctarea)
 
  final = int(input("Ingresa la nota del primer parcial: "))
  while (final < 0) or (final > 100):
    print("La nota parcial final no debe ser menor que cero ni mayor que 100: ")
    parcial1 = int(input("Ingresa la nota del primer parcial: "))
  cfinal = (final * 30)
  matfinal.append(cfinal)
 
 
  contIngreso = input("Desea digitar los datos de un nuevo estudiante? ")
 
for x in range(len(matriz)):
  print('{} {} {} {} {} {}'.format(matmatricula[x],matnombre[x],matparcial1[x], matparcial2[x], mattareas[x], matfinal[x]))

Hey señores alguien podria probarlo y quiza decirme por que me dice "Index out of range" en la linea 51 ?
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
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

Saludos, me podrían ayudar a saber de donde sale el error en la linea 51 cuando presento la matriz?

Publicado por tincopasan (1082 intervenciones) el 25/03/2020 08:33:55
hola:
es muy simple matriz tiene 6 elementos
1
for x in range(len(matriz)):  # o sea que repite 6 veces el for
y acá
1
print('{} {} {} {} {} {}'.format(matmatricula[x],matnombre[x],matparcial1[x], matparcial2[x], mattareas[x], matfinal[x]))
estás tratando de acceder al indice que no exite si no agregaste por lo menos 6 estudiantes, como ejemplo cambia:
1
for x in range(len(matriz)):
por
1
for x in range(len(matmatricula) ):

y fijate que hace

ahora, ¿para que declarar matriz si no la usas? para que sea real matriz deberías usar los valores ingresados dentro de ella y no las listas individuales como:
matmatricula = []
matnombre = []
matparcial1 = []
matparcial2 = []
mattareas = []
matfinal = []
que no son necesarias.

otra cosa si querés que alguien pruebe tu código, sería mejor ponerlo ya indentado.
Saludos
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