diff --git a/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/bMirS.py b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/bMirS.py new file mode 100644 index 0000000000..5901c3fc4e --- /dev/null +++ b/Roadmap/00 - SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO/python/bMirS.py @@ -0,0 +1,34 @@ +""" + * ¿Preparad@ para aprender o repasar el lenguaje de programación que tú quieras? + * - Recuerda que todas las instrucciones de participación están en el + * repositorio de GitHub. + * + * Lo primero... ¿Ya has elegido un lenguaje? + * - No todos son iguales, pero sus fundamentos suelen ser comunes. + * - Este primer reto te servirá para familiarizarte con la forma de participar + * enviando tus propias soluciones. + * + * EJERCICIO: + * - Crea un comentario en el código y coloca la URL del sitio web oficial del + * lenguaje de programación que has seleccionado. + * - Representa las diferentes sintaxis que existen de crear comentarios + * en el lenguaje (en una línea, varias...). + * - Crea una variable (y una constante si el lenguaje lo soporta). + * - Crea variables representando todos los tipos de datos primitivos + * del lenguaje (cadenas de texto, enteros, booleanos...). + * - Imprime por terminal el texto: "¡Hola, [y el nombre de tu lenguaje]!" + * + * ¿Fácil? No te preocupes, recuerda que esta es una ruta de estudio y + * debemos comenzar por el principio. +""" +#Lenguaje de programación que use https://www.python.org/ +#Comentario de una linea +"""Comentario de varias lineas""" +nombre="Sofia" +CONSTANTE=10 #constantes van en mayuscula +var_flotante=14.5 +var_int=990 +var_str="Lunes" +var_bool=True +var_null=None +print("Hola, Python") \ No newline at end of file diff --git a/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/bMirS.py b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/bMirS.py new file mode 100644 index 0000000000..e5306db56a --- /dev/null +++ b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/bMirS.py @@ -0,0 +1,135 @@ +""" + * EJERCICIO: + * - Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje: + * Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits... + * (Ten en cuenta que cada lenguaje puede poseer unos diferentes) + * - Utilizando las operaciones con operadores que tú quieras, crea ejemplos + * que representen todos los tipos de estructuras de control que existan + * en tu lenguaje: + * Condicionales, iterativas, excepciones... + * - Debes hacer print por consola del resultado de todos los ejemplos. + * + * DIFICULTAD EXTRA (opcional): + * Crea un programa que imprima por consola todos los números comprendidos + * entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3. + * + * Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo. +""" +#OPERADORES ARITMÉTICOS +#Suma +print(f"5+3= {5+3}") +#Resta +print(f"9-10={9-10}") +#División +print(f"10/5={10/5}") +print(f"5/10={5/10}") +#Multiplicación +print("5*3=", 5*3) +#Division Entera +print("5//10=", 5//10) +#Modulo +print("10%2=", 10%2) +#Concatenar +nombre1="Adelina" +nombre2="Gato Montes" +print(f"Los nombres contatenados son {nombre1+" "+nombre2}") +resultado1="Hola" +resultado2=input("Ingresa tu nombre: ") +concatenar=resultado1+", "+resultado2 +print(concatenar) +#Repetir +signo="+" +print(signo*1) +print(signo*2) +print(signo*3) +print(signo*4) +print(signo*5) +print(f"Operadores de Comparación {signo*10}") +numero1=int(input("Ingresa un numero entero: ")) +numero2=int(input("Ingresa otro numero entero: ")) +if numero1>numero2: + print(f"{numero1} es mayor {numero2}") +elif numero1==numero2: + print("Los numeros son iguales") +else: + print(f"{numero2} es mayor a {numero1}") +#Igualdad +print("5==3", 5==3) +contrasena=False #La contraseña es falsa +if contrasena!= False: + print("Contraseña es verdadera") +else: + print("Contraseña falsa") +numero=5 +#operadores de asignación +numero+=2 #suma y asignacion +print(numero) +numero*=2 +print(numero) +numero/=2 +print(numero) + +#operadores de identidad +texto="Acatlan" +if "a" in texto: + print("Escuela Acatlan") +else: + print("No eres de acatlan") + +my_list=["Manzana", "taza", "tetera"] +if "Manzana" in my_list: + print("Esta en la lista") +else: + print("No esta en la lista") +#operadores de pertenencia + +#estan en la misma dirección de memoria +a=3 +b=5 +print(f"Estan en la misma direccion de memoria {a is b}") + +#Condicionales +edad=int(input("Dame tu edad: ")) +credencial= input("Tiene credencial si o no: ") +credencial=credencial.lower() +credencial=credencial.replace(" ","") +if edad>=18 and credencial=="si": + print("Puede entrar") +elif credencial=="no": + print("No puede entrar") +else: + print("No puede entrar") +#bucles +for fila in range(0,4): + for columna in range(0,fila+1): + print("*", end="") + print() +print("\n") +for fila in range (4,0, -1): + for columna in range(0, fila): + print("*", end="") + print() +for fila in range(0, 4, 1): + for columna in range(0,7,1): + print("*", end="") + print() +z=4 +l=1 +for i in range(0,4): + for j in range(0,z-i): + print(" ", end="") + + for h in range(0, l): + print("*", end="") + l=l+2 + print() + +for num in range(10, 56): + if num%3!=0 and num!=16 and num%2==0: + print(num) +#Manejo de excepciones +try: + print(10/0) +except: + print("Se cacho el error") +print("Hola") \ No newline at end of file diff --git a/Roadmap/02 - FUNCIONES Y ALCANCE/python/bMirS.py b/Roadmap/02 - FUNCIONES Y ALCANCE/python/bMirS.py new file mode 100644 index 0000000000..842c1d576a --- /dev/null +++ b/Roadmap/02 - FUNCIONES Y ALCANCE/python/bMirS.py @@ -0,0 +1,120 @@ +#FUNCION DINAMICA EN PARAMETROS +def diferentessaludos(*nombres): + for nombre in nombres: + print(f"Hola, {nombre}") +#Ejemplo de llamado diferentessaludos("Python", "Luisa", "Maria") +#FUNCIÓN CON PARAMETROS TIPO CLAVE Y DATO +def nombres(**nombres): + for clave, valor in nombres.items(): + print(f" Clave: {clave}, Valor: {valor}") +"""Llamada de la funcion +nombres( +edad="87" +nombre="Maria" +escuela="FESA" + +)""" +#FUNCIÓN VACIA + +def figuras(): + + tam = int(input("Ingresa el tamaño de la X (número impar): ")) + + for fila in range(0, tam): + for columna in range(0, tam): + + if fila == columna or fila + columna == tam - 1: + print("*", end="") + else: + print(" ", end="") + print() +#FUNCIÓN CON PARAMETROS +def figurasp(opc, tam): + match opc: + case "1": #Triangulo normal + + for fila in range(0, tam): + for columna in range(0, fila+1): + print("*", end="") + print() + + case "2": + for fila in range(0, tam): + for columna in range(0, tam): + if(fila+columna>=tam-1): + print("*", end="") + else: + print(" ", end="") + print() + + case "3": #diamante + tam2 = tam // 2 + + for fila in range(0, tam2 + 1): + + print(" " * (tam2 - fila) + "*" * (2 * fila + 1)) + for fila in range(1, tam2+1): + print(" "*(fila)+"*"*(tam-(2*fila))) + case "4": #Reloj fijo + tam=5 + for i in range(0, 3): + print(" "*i+"*"*(tam-2*i)) + for i in range(1, 3): + print(" "*(2-i)+"*"*(2*i+1)) +#FUNCIONES CON VALORES POR DEFECTO +def divEnter(num=5, num2=6): + return num//3 +def saludo(greet, name): + return f"{greet}, {name}" +def misaludo(): + return "Hola", "Barbara" +figuras() +print("Elige una opcion 1,2,3") +opcion=input("La opción es: ") +tama=int(input("Ingresa el tamaño de tu figura: ")) +figurasp(opc=opcion, tam=tama) +divEnter() #-> Se usa parametros por defecto + +#IMPRIMIR EL RETORNO +print(saludo(name="Barbara", greet="Hi")) +#Guardar los valores del return +greet,name=misaludo() +print(greet) +diferentessaludos("Python", "Luisa", "Maria") + +#VARIABLE GLOBAL +variableglobal="Maria" +def funcionM(): + varlocar="Hola" + print(variableglobal) #Mi función reconoce el nombre de la variable aunque no este +#print(varlocal) Da error por que es una variable local + +"""* DIFICULTAD EXTRA (opcional): + * Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número. + * - La función imprime todos los números del 1 al 100. Teniendo en cuenta que: + * - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro. + * - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro. + * - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas. + * - La función retorna el número de veces que se ha impreso el número en lugar de los textos. + * + * Presta especial atención a la sintaxis que debes utilizar en cada uno de los casos. + * Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda. + */""" +def fizzbuzzmod(parametro1:str, parametro2:str)-> int: + contador=0 + for i in range(1,101): + if i%3==0 and i%5==0: + print(parametro1+parametro2) + + elif i%3==0: + print(parametro1) + + elif i%5==0: + print(parametro2) + + else: + print(i) + contador=contador+1 + return contador + +fizzbuzzmod(parametro2="texto1", parametro1="texto2") \ No newline at end of file diff --git a/Roadmap/03 - ESTRUCTURAS DE DATOS/python/bMirS.py b/Roadmap/03 - ESTRUCTURAS DE DATOS/python/bMirS.py new file mode 100644 index 0000000000..21a16e4477 --- /dev/null +++ b/Roadmap/03 - ESTRUCTURAS DE DATOS/python/bMirS.py @@ -0,0 +1,122 @@ +""" +/* + * EJERCICIO: + * - Muestra ejemplos de creación de todas las estructuras soportadas por defecto en tu lenguaje. + * - Utiliza operaciones de inserción, borrado, actualización y ordenación. + * + * DIFICULTAD EXTRA (opcional): + * Crea una agenda de contactos por terminal. + * - Debes implementar funcionalidades de búsqueda, inserción, actualización y eliminación de contactos. + * - Cada contacto debe tener un nombre y un número de teléfono. + * - El programa solicita en primer lugar cuál es la operación que se quiere realizar, y a continuación + * los datos necesarios para llevarla a cabo. + * - El programa no puede dejar introducir números de teléfono no numéricos y con más de 11 dígitos. + * (o el número de dígitos que quieras) + * - También se debe proponer una operación de finalización del programa. + */ + +""" +#LISTAS +my_list=["Maria", "Camila", "Jorge", "Ivan", 5] +#AGREGAR ELEMETOS +my_list.append(35) #Inserción +print(my_list) +my_list.remove("Maria") #Eliminar +print(my_list) +print(my_list[-1]) +print(my_list[-5]) +my_list[-5]="Sofia"#Actualizacion + +#TUPLAS +#NO se puede insertar, modificar, borrar +my_tuple=("Anastacia", "Blanca Nieves", "Aurora") +print(type(my_tuple)) + +#SETS +#No estan ordenados, no se pueden repetir datos +my_set={"Esperanza", "Amaranta", "35"} +print(type(my_set)) +my_set.add("Tortillas") +my_set.remove("35") + +#DICCIONARIOS +my_dict=dict() +my_dict={ + "Nombre":"Sofia", + "Apellido": "Camaron", + "Edad": "34" + } + + +#inserción +my_dict["email"]="sfcamaron@gmail.com" +print(my_dict) +#Actualización +my_dict["Edad"]="45" +print(my_dict) +#Eliminación +del my_dict["email"] + + +"""" + * DIFICULTAD EXTRA (opcional): + * Crea una agenda de contactos por terminal. + * - Debes implementar funcionalidades de búsqueda, inserción, actualización y eliminación de contactos. + * - Cada contacto debe tener un nombre y un número de teléfono. + * - El programa solicita en primer lugar cuál es la operación que se quiere realizar, y a continuación + * los datos necesarios para llevarla a cabo. + * - El programa no puede dejar introducir números de teléfono no numéricos y con más de 11 dígitos. + * (o el número de dígitos que quieras) + * - También se debe proponer una operación de finalización del programa. + */""" + +def my_agenda(): + + agenda = {} + + def insert_contact(contacto): + phone = input("Introduce el teléfono del contacto: ") + if phone.isdigit() and len(phone) > 0 and len(phone) <= 11: + agenda[contacto] = phone + else: + print( + "Debes introducir un numero de telefono con maximo 11 digitos .") + + while True: + + print("") + print("1. Buscar contacto") + print("2. Insertar contacto") + print("3. Actualizar contacto") + print("4. Eliminar contacto") + print("5. Salir") + opc=input("Ingresa la opción: ") + match opc: + case "1": + contactoBus=input("Ingresa el nombre de tu contacto: ") + if contactoBus in agenda: + print(f"El contacto esta en la agenda su numero de telefono es {agenda[contactoBus]}") + else: + print(f"El contacto {contactoBus}no esta en la agenda") + case "2": + contacto=input("Ingresa el nombre de tu contacto: ") + insert_contact(contacto) + case "3": + nombreActualizar=input(" Ingresa el nombre del contacto a actualizar: ") + if agenda[nombreActualizar] in agenda: + insert_contact(nombreActualizar) + else: + print("El contacto no esta en la agenda") + case "4": + contactoEliminar=input(" Ingrese el nombre del contacto a eliminar: ") + if contactoEliminar in agenda: + del agenda[contactoEliminar] + else : + print("El contacto no existe") + case "5": + print("Saliendo de la agenda ") + break + case _: + print(" Escribe una opción valida ") +my_agenda() + \ No newline at end of file