Python - funcion de notas

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

funcion de notas

Publicado por Mario (10 intervenciones) el 23/01/2020 09:31:08
Crear la Función promedioNotas(n1,n2,n3,n4), que reciba como parámetros cuatro notas y retorne el promedio según la siguiente ponderación (20%, 25%, 25%, 30%) respectivamente.
Desarrolle el programa principal este debe pedir 4 notas (con decimales), las valide que estén en el rango [1.0, 7.0]
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 xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

funcion de notas

Publicado por xve (1646 intervenciones) el 23/01/2020 11:05:52
Hola Mario, hay cosas que no me quedan claras...
Cuando dices ponderación, te refieres a obtener el % de media segun el 100%, cierto?

Por ejemplo, para obtener simplemente la media de las notas recibidas:
1
2
3
4
def promedioNotas(*notas):
    return sum(notas)/len(notas)
 
print(promedioNotas(4,5,9,6)) # 6


Si quieres que valide que estén entre el 1 y el 7 inclusive, seria algo así:
1
2
3
4
5
def promedioNotas(*notas):
    notasValidas=list(filter(lambda x: x>=1 and x<=7, notas))
    return sum(notasValidas)/len(notasValidas)
 
print(promedioNotas(4,5,9,6)) # 5.0
Devuelve 5, porque el 9 no lo cuenta para hacer la media.


Lo que no me queda claro, es la ponderación a la que haces referencia...(20%, 25%, 25%, 30%)... me puedes explicar con mas detalle?
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: 16
Ha disminuido su posición en 8 puestos en Python (en relación al último mes)
Gráfica de Python

funcion de notas

Publicado por Mario (10 intervenciones) el 23/01/2020 17:11:38
Asi lo habia realizado en un principio pero me tira error

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
N1 = float(input("Ingrese la primera nota: "))
N2 = float(input("Ingrese la segunda nota: "))
N3 = float(input("Ingrese la tercera nota: "))
N4 = float(input("Ingrese la cuarta nota: "))
 
Promedio = N1 * 0.20 + N2 * 0.25 + N3 * 0.25 + N4 * 0.30
 
Notas = N1, N2, N3 , N4
 
if 1 <= Notas <= 7:
  if 1 <= Promedio <= 3.9:
    print("reprovbado")
  elif 4 <= Promedio <= 4.9:
    print("aprobado con nota mínima")
  elif 5 <= Promedio <= 5.9:
    print("aprobado con nota suficiente")
  elif 6 <= Promedio <= 7:
    print("aprobado con distinción")
else:
  print("las notas ingresadas no son válidas")
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 xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

funcion de notas

Publicado por xve (1646 intervenciones) el 23/01/2020 19:56:13
Hola Mario, el problema que tienes es en la comparación:

1
if 1 <= Notas <= 7:

Ya que Notas es una tupla no un entero.

Haber si te sirve así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
N1 = float(input("Ingrese la primera nota: "))
N2 = float(input("Ingrese la segunda nota: "))
N3 = float(input("Ingrese la tercera nota: "))
N4 = float(input("Ingrese la cuarta nota: "))
 
Notas = [i for i in [N1, N2, N3, N4] if i<1 or i>7]
 
Promedio = N1 * 0.20 + N2 * 0.25 + N3 * 0.25 + N4 * 0.30
 
if not Notas:
  if 1 <= Promedio <= 3.9:
    print("reprovbado")
  elif 4 <= Promedio <= 4.9:
    print("aprobado con nota mínima")
  elif 5 <= Promedio <= 5.9:
    print("aprobado con nota suficiente")
  elif 6 <= Promedio <= 7:
    print("aprobado con distinción")
else:
  print("las notas ingresadas no son válidas")
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