<jupyter_start><jupyter_text>PROBLEMAS DIVERSOS 1.Realizar una función que permita la carga de n alumnos. Por cada alumno se deberá preguntar el nombre completo y permitir el ingreso de 3 notas. Las notas deben estar comprendidas entre 0 y 10. Devolver el listado de alumnos.<jupyter_code>lista = []

def alumnos(lista, cant):
    
    for i in range(cant):
        n = 0
        alumno = {}
        nombre = input(f"Ingrese el nombre completo del alumno {len(lista) + 1}: ")
        
        alumno['nombre'] = nombre
        
        while n < 3:
            try:
                nota = float(input(f"Ingresa la nota {n + 1}: "))
                if nota >= 0 and nota <= 10:
                    alumno[f'nota{n+1}'] = nota
                    n = n+1
                else:
                    print("La nota debe ser menor a 10 y mayor a 0")
            except:
                print("Ingrese una nota menor a 10 y mayor a 0")
        lista.append(alumno)

while True:
    try:
        cant = int(input("Ingrese la cantidad de alumnos:"))
        if cant <= 0:
            print("La cantidad de alumnos debe ser mayor a 0")
        else:
            break
    except:
        print("Ingrese una nota mayor a 0")
        
alumnos(lista, cant)

lista<jupyter_output><empty_output><jupyter_text>2.Definir una función que dado un listado de alumnos evalúe cuántos aprobaron y cuántos desaprobaron, teniendo en cuenta que se aprueba con 4. La nota será el promedio de las 3 notas para cada alumno.<jupyter_code>def promedio (lista):
    for alumno in lista:
        promedio = (alumno['nota1'] + alumno['nota2'] + alumno['nota3']) / 3
        alumno['promedio'] = promedio

def evaluar(lista):
    aprobados = 0
    desaprobados = 0

    promedio(lista)
    
    for alumno in lista:
        if alumno['promedio'] >= 4:
            alumno['estado'] = 'Aprobado'
            aprobados += 1
        else:
            alumno['estado'] = 'Desaprobado'
            desaprobados += 1
            
    print(f'Cantidad de alumnos aprobados: {aprobados}')
    print(f'Cantidad de alumnos desaprobados es de: {desaprobados}')
    
evaluar(lista)<jupyter_output><empty_output><jupyter_text>3.Informar el promedio de nota del curso total.<jupyter_code>def promedio_curso(lista):
    promedio = 0
    for alumno in lista:
        promedio += alumno['promedio']
    
    return promedio / len(lista)

print(f"Promedio de nota del curso total: {promedio_curso(lista)}")<jupyter_output><empty_output><jupyter_text>4.Realizar una función que indique quién tuvo el promedio más alto y quién tuvo la nota promedio más baja.<jupyter_code>def puesto_promedio(lista):
    promedioalto = 0
    promediobajo = 10
    for alumno in lista:
        nombre = alumno['nombre']
        if alumno['promedio'] >= promedioalto:
            alumno_alto = alumno['nombre']
            promedioalto = alumno['promedio']
        if alumno['promedio'] <= promediobajo:
            alumno_bajo = alumno['nombre']
            promediobajo = alumno['promedio']
    print(f"Alumno con el promedio más alto: {alumno_alto}")
    print(f"Alumno con el promedio más bajo: {alumno_bajo}")

puesto_promedio(lista)<jupyter_output><empty_output><jupyter_text>5.Realizar una función que permita buscar un alumno por nombre, siendo el nombre completo o parcial, y devuelva una lista con los n alumnos que concuerden con ese nombre junto con todos sus datos, incluido el promedio de sus notas.<jupyter_code>def buscar_alumno(nombre, lista):
    for alumno in lista:
        if alumno['nombre'] == nombre:
            print(alumno)
            
nombre = input("Nombre de alumno(s) que desea buscar: ")

buscar_alumno(nombre, lista)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09284750337381917, 'fraction_numerical': 0.011336032388663968, 'mean_word_length': 2.6440511307767944, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 24, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '339187', 'license': 'Apache-2.0', 'n_tokens_mistral': 1354, 'n_tokens_neox': 1340, 'n_words': 365, 'path': 'Modulo3/Ejercicios/Problemas Diversos.ipynb', 'repo_name': 'danyjoelemc2/CURSOPYTHON', 'size': '3705'}