Ejemplos listas y funciones: Control de temperatura

Ejemplo

Enunciado

Control de temperatura en un invernadero

Se introducirán N temperaturas (estas deben ser positivas y mayores que cero), se almacenarán en una lista (si el número no es válido debe volver a pedirse, y el programa no se interrumpirá, aunque el usuario se equivoque al introducirlo. Control de errores). N será un número elegido al azar entre 1 y 31. A continuación, visualizará los siguientes resultados:

  • Visualizar las temperaturas introducidas.

  • Visualizar las temperaturas introducidas y la media de ellas, redondeado a dos decimales.

  • Indicar cuantas temperaturas superan la media.

Para ello, debe utilizar cuatro funciones:

  • Bienvenida.

  • Pida las temperaturas

  • Calcula la media.

  • Cuantas temperaturas superior a la media hay.

Análisis:

  • Se debe generar N.

  • Preguntar al usuario la temperatura debe ser mayor que cero.

  • Cálculo la media.

  • Cuantas superar la media.

Código completo

import random
def bienvenida():
    print("  ")
    print("Programa de temperaturas")
    print("   ")
def validar(mensaje,limite_superior): 
    bandera=True
    while bandera:
        try:
            dato=float(input(mensaje))
        except:
            print("Tecleaste letras")
        else:
            if dato>0 or dato<limite_superior:
                bandera=False
            else:
                print("Tecleaste 0 un negtaivo")
    return dato
def calcula_media(lista):
    media=sum(lista)/len(lista)
    return media
def superior_media(lista,m):
    hay=0
    for i in range(len(lista)):
        if lista[i]>m:
            hay+=1
    return hay
N=random.randint(1,31)
temperatura=random.randint(1,100)
lista_temperaturas=[]
bienvenida()
for i in range(N):
    lista_temperaturas.append(validar("dame la temperatura",temperatura))
media=calcula_media(lista_temperaturas)
print("La media es {}".format(round(media,1)))
print("hay {} superior a la media".format(superior_media(lista_temperaturas,media)))