Python - Ejercicio de python

 
Vista:

Ejercicio de python

Publicado por Sergio Andrés (1 intervención) el 26/04/2016 01:48:07
Me podrian ayudar con este ejercicio de python

Calcular nota promedio por asignatura

Un estudiante desea conocer la nota promedio aproximado a una cifra decimal de cada una de sus asignaturas. Cree un programa en Python 3.4 que le solicite al usuario una tabla que en su primera columna tenga el nombre de la asignatura y en las demás columnas la recopilación de las notas (debe tener en cuenta que cada asignatura puede tener diferente cantidad de notas), su programa debe mostrar por pantalla un informe de la siguiente forma:

asignatura 1 nota promedio asignatura 1
asignatura 2 nota promedio asignatura 2

Muestre exclusivamente lo solicitado anteriormente sin enunciados extra que lo acompañen


por ejemplo si el usuario ingresa [['biologia', 0.3], ['etica', 2.3, 2.7]] el programa debe mostrar

biologia 0.3
etica 2.5
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-3
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ejercicio de python

Publicado por xve (1646 intervenciones) el 26/04/2016 09:01:17
Estaría bien que mostraras la parte que tienes realizada!!! no creo que nadie te realice el trabajo!!!
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: 4
Ha disminuido su posición en 20 puestos en Python (en relación al último mes)
Gráfica de Python

Ejercicio de python

Publicado por Ejercicios python (2 intervenciones) el 09/07/2019 18:02:05
x = eval(input())
for i in range(0,len((x))):
s=0
for j in range(1,len(x[i])):
s=s+x[i][j]
promedio = round(s/len(x[i],1))
print(str(x[i][0])+' '+str(promedio))

trate de hacerlo pero no me dio
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 Paolo
Val: 13
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

Ejercicio de python

Publicado por Paolo (5 intervenciones) el 16/07/2019 21:07:22
PYTHON 3.7

En el cálculo del promedio:
1
2
promedio = round(s/len(x[i],1))
# s / len(x[i], 1)
Por un lado, estás colocando el 1 como segundo parámetro del len() al encerrarlo en el paréntesis.

Lo correcto sería:
1
promedio= round(s / len(x[i]), 1)

Sin embargo, len() devuelve la cantidad de elementos en una lista o iterable, y la lista <x[i]> no solo contiene a los números a los que quieres sacar promedio, sino también al nombre del curso en la primera posición <x[i][0]>

En ese caso, al valor del len(x[i]) se le resta 1:
1
promedio= round(s / (len(x[i]) - 1), 1)

Y el código finalmente quedaría de la siguiente forma:
1
2
3
4
5
6
7
8
x= eval(input())
 
for i in range(len(x)):
    s= 0
    for j in range(1, len(x[i])):
        s+= x[i][j]
        promedio= round(s / (len(x[i])-1), 1)
        print(x[i][0], promedio)

O de esta otra forma, mucho más cómoda personalmente:
1
2
3
4
5
6
lista_de_cursos= eval(input(">>> "))
 
for curso_y_notas in lista_de_cursos:
    suma_de_notas= sum(curso_y_notas[1:])
    promedio= suma_de_notas / (len(curso_y_notas)-1)
    print(curso_y_notas[0], round(promedio, 1))

También se podrían cambiar las últimas 3 líneas por:
1
print(curso_y_notas[0], round(sum(curso_y_notas[1:]) / (len(curso_y_notas)-1), 1))
Es simplemente combinarlas, también se podría hacer una función para hallar el promedio pero ya paro, un gustavo.
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