1

Fundamentos basicos de python, registrando materias!

Hola comunidad, espero os sirva mi pequeño aporte.

"""
    ¡Hola! en este tutorial encontraras los fundamentos base sobre la programaciónen Python
    el cual lo vamos a visualizar de una forma muy sencilla y dinámica.

    En este tutorial vamos a aprender sobre variables sus tipos, ciclos, estructuraciónde diccionarios y más.

    ¡Vamos!

    1. En Python usamos clases, funciones, operadores aritméticos y lógicos, ciclos como for y while.
"""

dict_materias = []  # Diccionario de materias


def edad():
    """
    En esta función solicitamos la edad del usuario. el cual encontramos varios fundamentos, vemos a continuación
    cuales son estos.

    1. Tenemos un loop o una iteraciónquese llama WHILE. esta interacción permite mantener una repetición continua
    hasta que cambie su estado, es decir Whilese va a repetir muchas veces ya quesu estado es True (Verdadero)
    y va a consultar múltiples veces la edad, y lo que validamos es que el valor ingresado enla variable edad se siempre
    un entero.

    esto lo validamos a través de un Try, Except. el cual nos permite capturar errores en nuestro Código y evitar
    interrupciones.

    veamos el paso a paso en el Código.
    """
    # Mantenemos siempre el estado en True (Verdadero) hasta que ingrese al return el cual finaliza la ejecuciónwhile True:
        # Pedimos un valor entero, en caso queno sea así, el valor del except da el mensaje y vuelve a preguntar la edad
        edad = input("Por favor ingrese su edad: ")
        # todo ingresa al try, en caso deque falle, salta al except.
        try:
            # convertimos el valor del input a un entero
            valor_entero = int(edad)
            # Si el valor del inputse convierte, retornamos y el whilese detiene
            return valor_entero
            # en caso que los valores fallen dentro del try: ingresamos aquí al except y damos el mensaje.
        except ValueError:
            # Imprimimos el mensaje y volveremos a preguntar
            print("Entrada no válida. Por favor, ingrese un valor entero.")


def mayor_edad():
    """
    Igual quela funciónde solicitud dela edad, aquí le preguntamos al usuario si es mayor de edad.
    claro está que podemos llegar a usar condicionales para saber si el usuario es mayor de edad, pero igual vamos a
    verlo aquí como vamos a ver como validamos la información.

    vamos a ver la condicional IF: Esta nos permite consultar si un dato es verdadero, o falso según el valor y la
    comparativa que nosotros queramos

    Operador aritmético == : Nos permite realizar comparativa si un dato es igual a otro

    Otros operadores aritméticos:
        Suma +: Permite la suma de valores enteros o la unificaciónde cadenas de caracteres, nose permite sumar un
        entero con un string

        Resta -: Permite la resta de valores enteros o la unificaciónde cadenas de caracteres, nose permite sumar un
        entero con un string

        multiplicación *: Permite operar números enteros o decimales sea el caso para obtener los resultados deseados
        este operador si permite operar entre enteros y strings

    Operador lógico:
        OR: Permite establecer si una condición cumple con una verdad o una mentira ensu resultado.
        AND: Su operador establece quese deben cumplir dos condicionales quese establezcan
    """
    # Iniciamos un whileen true para que siempre mantenga en ejecución hasta que pase a False.
    while True:
        # Por medio del input solicitamos si es mayor de edad o no
        entrada = input(
            "Es usted mayor de edad?: Ingrese S para 'Si' o N para 'No', también puedes ingresar True o False: ").strip().lower()

        # funciónif nos permite evaluar si un dato es correcto o incorrecto
        if entrada == 'true' or entrada == 'si' or entrada == 's':
            return True  # En caso quese cumpla alguna de todas las condicionales entonces devuelve un True

        # La función elif permite evaluar el mismo if anterior pero combinado con el else para queen caso quenose cumpla
        # la funcion if anterior se valide esta y determine un resultado
        elif entrada == 'false' or entrada == 'no' or entrada == 'n':
            return False  # En caso quese cumpla alguna de todas las condicionales entonces devuelve un True
        else:
            # En caso dequeno sea válida ninguna de las dos opciones anteriores mostramos igual un mensaje y con eso
            # no permitimos que nuestro sistema se bloquee.
            print("Entrada no válida. Por favor, ingrese 'True' o 'False'.")


def registrar_materia(name_user):
    """
    Creamos un diccionario de datos para realizar el registro dela materia, donde cada valor se estipulamos
    un input para que el usuario pueda registrar la información y declaramos un diccionario global y agregamos la
    información por medio del método append.
    """
    datos_materia = {
        'nombre_materia': input(f"{name_user} Ingrese el nombre de la materia: "),
        'capacidad_estudiantes': input(f"{name_user} Cuantos estudiantes puede tener: "),
    }
    dict_materias.append(datos_materia)
    return materias(name_user)


def listarmaterias(name_user):
    """
    Para poder listar las materias existentes consultamos el diccionario global y lo iteramos mediante el loop for
    el cual toma cada elemento del diccionario de datos y lo muestra en pantalla.
    """
    for i in dict_materias:
        print(f"Las materias registradas son: {i}")
    return materias(name_user)


def materias(name_user):
    while True:
        opcion = input(f"""
            {name_user}, seleccione una de las siguientes opciones que desees realizar con las materias:
            1. Registrar materia.
            2. Listar materias.
            4. Volver
        Seleccione 1 Opcion: """)
        if int(opcion) == 1:
            return registrar_materia(name_user)
        elif int(opcion) == 2:
            return listarmaterias(name_user)
        elif int(opción) == 4:
            return tiporegistro(name_user)


# En esta funcion recibimos los mismos valores de contextos permitiéndonos utilizarla en nuestro Código
def tiporegistro(name_user):
    while True:
        tipo_registro = input(f"""Hola {name_user}, queremos informarte que a través de este menú, puedes realizar procesos en
                1. Materias
                0. Salir
                Por favor escoja una opción: """)
        if int(tipo_registro) == 1:
            return materias(name_user)
        elif int(tipo_registro) == 0:
            exit()
        else:
            print("El valor ingresado no es válido")


def tutorial():
    """
    Inicialmente vamos a solicitar los datos del usuario a través de un input y vamos a usar su variable enel
    transcurso de las distintas funciones que usemos para hacerlo más dinámico

    Solicitamos un nombre de usuario a través de un input y antes de este colocamos STR para obligar a la entrada
    quese convierta en una cadena de texto. lo mismo vamos hacer para otros tipos de datos como por ejemplo.

    str: Cadena de caracteres.
    int: Valores enteros.
    float: Valores con decimales.
    bool: Valores en falso o verdadero.
    """
    name_user = str(input("Por favor ingrese su nombre: "))
    edad()
    mayor_edad()

    # una vez obtenidos y verificados los datos vamos a realizar más procesos, en este caso vamos a realizar un proceso
    # escolar de registro de profesores, estudiantes y materias.

    tipo_registro = tiporegistro(
        name_user)  # Llamamos la funcion de tipo de registro y pasamos un valor por contexto que es name.
    print(
        f"Tipo registro = {tipo_registro}")  # La funcion print nos sirve para imprimir en consola mensajes, respuestas o demás datos de informaciónif __name__ == '__main__':
    tutorial()
Escribe tu comentario
+ 2