Ejemplo listas: control de temperaturas

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.

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

#Control de temperaturas
#Importo randon 
import random
N=random.randint(1,31)
#Inicializa las variables
lista_numeros=[]
lista_media=[]

#Pedir los N valores
for i in range(N):
    bandera=True
    while bandera:
        #Evitar que el usuario introduzca una letra
        try:
            numero=int(input("Dame la temperatura"))
        except:
            print("No tecleaste un número entero")
        else:
            if numero>0:
                #Solamente se introduce si el valor es mayor que cero
                lista_numeros+=[numero]
                bandera=False
            else:
                print("Tecleaste un 0 o número negativo")
media=sum(lista_numeros)/len(lista_numeros)
print("Se han generado {} números".format(lista_numeros))
for i in lista_numeros:
    if i >media:
        lista_media.append(i)
        
print("La lista de núemros es: {}".format(lista_numeros))

#Visualizar la información
if len( lista_media)==0:
    print("NO hay números superior a la media")
else:
    print("Hay {} números , superior a la media{}".format(len(lista_media),round(media),2))