[ 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 (+52)

¿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 (+52)

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






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...