Para facilitar un poco la tarea de pensar que tema explicar para hacer el tutorial le dije a chatgpt que me diera un ejercicio que cubriera los temas que emos visto y me dio el siguiente ejercicio con unos paso sugeridos, los cuales no cumplí en totalidad por hacerlo algo distinto para aplicar el tema de diccionarios, el ejercicio es el siguiente:
<h1>Ejercicio: Calculadora de estadísticas básicas</h1>Descripción del ejercicio:
Crea una calculadora de estadísticas básicas que reciba una lista de números enteros y muestre diferentes métricas sobre ellos, como el promedio, la suma, el número máximo y mínimo, y la cantidad total de números.
Ingresa una lista denúmeros separados por comas:1, 2, 3, 4, 5
Números ingresados: [1, 2, 3, 4, 5]
Suma:15Promedio:3.0
Número máximo:5
Número mínimo:1
Cantidad totaldenúmeros:5
Numeros = []
i = 5 # cantida de numeros pedido
ejercicio = {} # Diccionario que tendra lo pedido
for cont inrange(i): # un ciclo for para llenar la lista de Numeros
entrada = input("ingresa un numero entero")
if entrada.isdigit() == False: #comprueba si es un string que pueda ser numero
while entrada.isdigit() == False: # while hasta quese ingrese un numero valido
entrada = input("No ingreso un numero, por favor escriba un numero ")
Numeros.append(int(entrada)) # agregar el valor a lista y convertido en entero
else:
Numeros.append(int(entrada))
ejercicio["Numeros"] = Numeros
el código comienza creando la lista Numeros , la variable i que será la cantidad de números pedidos al usuario, crea el diccionario ejercicio donde guardare los resultados de los datos pedido en el ejercicio
Numeros = []
i = 5 # cantida de numeros pedido
ejercicio = {} # Diccionario que tendra lo pedido
Luego se crea un for donde se coloca la condición de iterar un cantidad de veces i y que en cada iteración pida ingresar un numero
for cont inrange(i): # un ciclo for para llenar la lista de Numeros
entrada = input("ingresa un numero entero")
dentro del for para evitar que sea ingresado un dato que no sea un numero entero se coloco un while que se ejecuta mientras el valor no sea un entero , para esto se uso la función isdigit() que devuelve un booleano indicando si un string puede ser pasado a números enteros, y a su vez el while esta dentro de un if para que se ejecute el while solo si el dato ingresado no es un entero, si no pues lo agrega directamente a la lista Numeros
if entrada.isdigit() == False: #comprueba si es un string que pueda ser numero
while entrada.isdigit() == False: # while hasta que se ingrese un numero valido
entrada = input("No ingreso un numero, por favor escriba un numero ")
Numeros.append(int(entrada)) # agregar el valor a lista y convertido en entero
else:
Numeros.append(int(entrada))
Al final se guarda la lista numeros en el diccionario ejercicio con la llave Numeros que es la marca que tendrán los datos para buscarlos dentro del diccionario
ejercicio["Numeros"] = Numeros
suma = 0for numero in Numeros:
suma += numero
ejercicio["suma"] = suma
ejercicio["promedio"] = suma/i # agregar el promedio aritmetico al diccionario
ejercicio["numero maximo"] = max(ejercicio["Numeros"]) # Maximo numero
ejercicio["numero minimo"] = min(ejercicio["Numeros"]) # minimo numero
ejercicio["Cantidad de numeros"] = len(ejercicio["Numeros"]) # cantidad de numero
Primero se hace la suma de los números de la lista por medio de un for que itera con cada valor de la lista numeros, guardado en cada iteración en numero el valor de el elemento en la lista y lo suma al al variable suma que es empieza siendo 0 y luego se guarda el diccionario ejercicio con la llave “suma”.
suma = 0
for numero inNumeros:
suma += numero
ejercicio["suma"] = suma
en los siguientes pasos se calcula el promedio con la formula suma/i donde i es el numero de elementos que se pidió ingresar al principio, se uso la funcion max() para encontrar el numero máximo en la lista y min() para encontrar el menor, y por ultimo se uso len() sobre la lista dentro del diccionario, aunque servia agregar al la llave “Cantidad de numeros” i, se uso la otra forma para aplicar lo visto.
ejercicio["promedio"] = suma/i # agregar el promedio aritmetico al diccionario
ejercicio["numero maximo"] = max(ejercicio["Numeros"]) # Maximo numero
ejercicio["numero minimo"] = min(ejercicio["Numeros"]) # minimo numero
ejercicio["Cantidad de numeros"] = len(ejercicio["Numeros"]) # cantidad de numero
ResultadoE =f"""Dada la siguiente lista de numeros {ejercicio["Numeros"]}
podemos inferir lo siguiente: \n
- la suma de los numeros es {ejercicio["suma"]}\n
- el numero maximo es {ejercicio["numero maximo"]} y el minimo es {ejercicio["numero minimo"]}\n
- el promedio de los numero es {ejercicio["promedio"]}\n
- la cantidad de valores enla lista es {ejercicio["Cantidad de numeros"]}
print(ResultadoE)
Se creo la cadena de texto ResultadoE con la forma f""" “”" por dos razones el triple paréntesis o en este caso triple doble paréntesis sirve para poder dar espacio y lo que este dentro siga formando parte de la cadena de texto, y la f es para poder usar llaves para agregar valores de elementos del diccionario y la \n es un salto de pagina que se vera en el resultado de terminal y por ultimo se imprime la cadena de texto
con un ejemplo de numeros ingresados en resultado en terminal al final es el siguiente:
Dada la siguiente lista de numeros [57, 853, 415, 38, 598]
podemos inferir lo siguiente:
- la suma de los numeros es 1961
- el numero maximo es 853 y el minimo es 38
- el promedio de los numero es 392.2
- la cantidad de valores enla lista es 5
Gracias por su atención, si encuentra algún error tanto en código o sintaxis del tutorial, o si se le ocurre una mejor forma de hacer algo, déjelo en los comentarios.
ResultadoE =f"""Dada la siguiente lista de numeros {ejercicio[“Numeros”]}
podemos inferir lo siguiente: \n
print(ResultadoE)