[ Foro de Python ]
Buenas no logro resolver un ejercicio que nos dejaron, el enunciado dice así;
Desarrolle un programa que pida una cantidad de estudiantes (1..30) y luego solicite la nota (0..100) para esa cantidad de personas. Realice la solicitud de datos en funciones diferentes. Al final imprima el promedio de las notas ingresadas, la nota mayor y la menor.
Iba realizándolo algo similar a;
estudiantes=[]
notas=[]
def solicitarestudiante(mensaje):
dato=int(input(mensaje))
return dato
cantidad=solicitarestudiante("Deme la cantidad de estudiantes")
def solicitarnonta(mensaje):
dato=int(input(mensaje))
personas=solicitarestudiante(cantidad)
cont=0
while cont>personas:
nota = input("Ingrese la nota")
nota.append(notas)
cont+=1
¿Cual es la duda? Se va acercando, aunque tiene algunas cosas mejorables y algunas incompletas.
Como mejorables:
- No necesitas el array de estudiantes (y, de hecho, no lo usas).
- Tienes dos funciones distintas que hacen lo mismo.
- Las funciones se mezclan con el cuerpo del programa.
Como error claro:
- En el "while", el operador está al revés. "cont" va aumentando desde cero, luego deberías usar "while cont < personas"
Incompletas:
- Ya (casi) tienes los datos en el array. Ahora te falta calcular, máximo, mínimo y media. ¿Sabes hacerlo?
Ok, comprendo! Gracias.
Si se como sacarlo,
print("El promedio es", sum(notas) / cantidad)
print("La nota minima es", min(notas),"y la nota maxima es", max(notas))
Si quisiera hacer que lo nota no sea menor que 0 y mayor que 100 como seria? lo tengo así pero no me corre
def solicitarnonta(cantidad, mensaje):
notas = []
while len(notas) != cantidad:
try:
if notas>0 and notas<100:
dato = int(input(mensaje))
notas.append(dato)
except:
print("Tiene que indicar un valor numerico")
return notas
Si sólo quieres aceptar valores entre 0 y 100, la petición de datos debería estar dentro de un bucle "while".