Reto: Imprimir con color
Generar aleatoriamente la nota de diez alumnos. Calcular la media e imprimir en pantalla la nota de cada uno y la desviación de cada una de las notas respecto a la media. Los que estén por encima o por debajo de la media se imprimen en colores diferentes.
Vamos a imprimir el texto de Python en colores usando diferentes librerías.
- de la librería
termcolor
usamoscolored
- usamos la librería
colorama
Método 1
Creamos un diccionario con las diez notas. Luego sumamos los values de diccionario.import random
from termcolor import colored
notas={1:random.randint(0,100)/10,2:random.randint(0,100)/10,3:random.randint(0,100)/10,4:random.randint(0,100)/10,5:random.randint(0,100)/10,6:random.randint(0,100)/10,7:random.randint(0,100)/10,8:random.randint(0,100)/10,9:random.randint(0,100)/10,10:random.randint(0,100)/10}
print(notas)
suma=sum(notas.values())
media=round(suma/len(notas),4)
print('media:',media)
for i in range(1,10):
if notas[i]>media:
print(notas[i], 'y su desviación es:', colored(round(notas[i]-media,4), 'green'))
elif notas[i]<media:
print(notas[i], 'y su desviación es:', colored(round(notas[i]-media,4), 'red'))
Método 2
Es un método similar al anterior pero ahora creamos una lista con las diez notas. Luego sumamos los valores de los elementos de la lista.import random
from termcolor import colored
notas=[] #inicilizamos una lista donde almacenaremos las notas
suma=0 #inicializamos la variable suma que acumulará las notas
for i in range(10):
x=random.randint(0,10) #generamos aleatorios enteros entre 0 y 10
notas.append(x) #añadimos las notas a la lista
suma+=x #acumulamos todas las notas
print(notas)
media=suma/len(notas)
print("La media es:",round(media,4))
for i in range(10):
if notas[i]>media:
print(colored("{}. Nota: {}. Desviación: {}".format(i+1,notas[i],round(notas[i]-media,4)),'green'))
else:
print(colored("{}. Nota: {}. Desviación: {}".format(i+1,notas[i],round(notas[i]-media,4)),'red'))
Método 3
En esta ocasión utilizamos la libreríacolorama
.import random # Se importa el módulo para números aleatorios
from colorama import init, Fore, Back, Style # Módulo para textos y fondo a color
init()
L=[]
for i in range(10):
x=random.randint(1,9) # Crea números aleatorios de 1 al 9
z=random.randint(1,10)
d=z/10
w=x+d
L.append(w) # llena la lista L
print(L) # Imprime la lista L con las notas aleatorias
suma=0
for k in range(10):
suma+=L[k]
media=suma/10 # Saca el promedio
print('La media es :',round(media,2))
D_M=[]
for j in range(10):
D_M.append(round(abs(L[j] - media),2)) # Llena la lista con la desviación con respecto a la media
if L[j]<=media:
print(Fore.RED + str(L[j]) + ' ~ ' + str(round(D_M[j],2))) # Imprime en rojo las notas menores que la media
else:
print(Fore.GREEN + str(L[j]) + ' ~ ' + str(round(D_M[j],2)))