[ Foro de Python ]

Duda de codigo para programa

23-Nov-2019 20:23
Marco Vindas
3 Respuestas

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


 


23-Nov-2019 23:36
Nacho Cabanes (+53)

¿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?


24-Nov-2019 01:10
Marco Vindas

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


 


26-Nov-2019 13:48
Nacho Cabanes (+53)

Si sólo quieres aceptar valores entre 0 y 100, la petición de datos debería estar dentro de un bucle "while".






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)