Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

01 - juserdev #8118

Closed
wants to merge 13 commits into from
Original file line number Diff line number Diff line change
Expand Up @@ -114,4 +114,11 @@
except ZeroDivisionError as e:
print(f"se genero un error -> {e}")
finally:
print("este bloque siempre se ejecuta")
print("este bloque siempre se ejecuta")


number = 10
while number < 55:
number += 1
if number % 2 == 0 and number != 16 and number % 3 != 0:
print(number)
124 changes: 124 additions & 0 deletions Roadmap/02 - FUNCIONES Y ALCANCE/python/juserdev.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
'''
* EJERCICIO:
* -> Crea ejemplos de funciones básicas que representen las diferentes
* posibilidades del lenguaje:
* Sin parámetros ni retorno, con uno o varios parámetros, con retorno...
* - Comprueba si puedes crear funciones dentro de funciones.
* - Utiliza algún ejemplo de funciones ya creadas en el lenguaje.
* - Pon a prueba el concepto de variable LOCAL y GLOBAL.
* - Debes hacer print por consola del resultado de todos los ejemplos.
* (y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades)
*
* 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 funcion_sin_paremetros ():
print("Hola Python --> esta es la la funcion funcion_sin_parametro")

funcion_sin_paremetros()

def funcion_con_un_parametro(num):
print(f"El parametro es el numner {num} y sin retono --> esta es la funcion def funcion_con_un_parametro")

funcion_con_un_parametro(10)

def funcion_con_dos_parametro(num1, num2):
print(f"Esta es la suma de dos parametros: {num1 + num2} sin retorno --> esta es la funcion funcion_con_dos_parametro")

funcion_con_dos_parametro(10,5)

def funcion_parametros_retorno(lenguaje):
return f"El lenguaje que estas estudiando es: {lenguaje} --> Funcion con parametro y retorno"

print(funcion_parametros_retorno("Python"))

# Funcion infinita

def funcion_infinita(*param):
return param

print(funcion_infinita("hola", "juan")) # esto es una tupla
print(type(funcion_infinita("hola", "juan")))

saludar, juan = funcion_infinita("hola", "juan") # aqui le agregue variabels a cada parametro

print(f"{saludar} {juan}")

def funcion_infinita_2(*params):
for param in params:
print(f"{param}")

funcion_infinita_2("hola", "python", "soy Juan")

def funcion_key_value(**names):
for key, value in names.items():
print(f"{value}, {key}")

funcion_key_value(leugaje="python", edad=35, nombre="Juan", alias="juserdev")

# Funciones globales y locales

var_global = "variable global"

def funcion_var_local():
var_local = "variable local" # No se puede acceder a esta variable fuera de esta funcion
print(f"{var_global}, {var_local}")

print(var_global)
funcion_var_local(

)

# FUNCIONES ENTRE FUNCIONES

def area(lado1, lado2):
area = lado1 * lado2
return area

def volumen(lado1, lado2, altura):
base = area(lado1, lado2)
return f"Este es el voluemn de {lado1} * {lado2} + {altura} = {base * altura} --> Funcion anidada"

print(volumen(10, 20, 10))

# Funciones creadas en el lenguage


texto = "este es un str de pruba para este ejemplo"
number = "1"

print(f"Esta es el resultado de la funcion len() --> {len(texto)}") # cuenta la cantidad de caracteres
print(f"Esta es el resultado de la funcion ucapitalize() --> {texto.capitalize()}") # pone la primera letra en Mayuscula
print(f"Esta es el resultado de la funcion upper() --> {texto.upper()}") # pone todo el texto en mayuscula
print(f"Esta es el resultado de la funcion count() --> {texto.count("e")} ") # Cuenta la cantidad de letras que tiene dentro del parentesis
print(f"Esta es el resultado de la funcion isnumeric() --> {texto.isnumeric()} ") # verifica si es int o str
print(f"Esta es el resultado de la funcion isnumeric() --> {texto.isnumeric()} ") # verifica si es int o str
print(f"Esta es el resultado de la funcion isnumeric() --> {number.isnumeric()} ") # verifica si es int o str


# DIFICULADAD EXTRA

def dificultad_extra(name, surname):
i = 0
while i < 100:
if i % 3 == 0 and i % 5 == 0:
print(name)
elif i % 3 == 0 :
print(surname)
elif i % 5 == 0:
print(f"{name} {surname}")
else:
print(i)
i += 1

# dificultad_extra("juan", "rodriguez")

196 changes: 196 additions & 0 deletions Roadmap/03 - ESTRUCTURAS DE DATOS/python/juserdev.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
"""
* 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.
"""

### lsita ###

""" my_list = ["Juan", "Rodriguez", "34", "juserdev"]
print(my_list)

my_list.append("laura")
print(my_list)

my_list.remove("laura")
print(my_list)

my_list_copy = my_list.copy() # Esta funcion crea un acopia de la variable original
my_list_copy.append("laura")
print(my_list_copy)

print(my_list.count("hola")) # esta funcion cuanta cuntas veces se repite lo que esta dentro de los parentesis
print(my_list.count("34"))

my_list.pop() # Elemina el ultimo indice de la lista
print(my_list)

my_list.remove("Juan") # Elimna el elemento que tenga escrito dentro de los paretesis
print(my_list)

my_list.reverse() # devuele la listra de tras pa lante
print(my_list)

print(my_list[0]) # selecciona el valor en el indice declarado entre corchetes

edad, nombre = my_list # destructurar

print(edad)
print(nombre)

print(my_list)

my_list.append("juan")
print(my_list)

my_list.insert( 2, "juserdev") # agrega un valor en la posicion indicada
print(my_list)

my_list.sort() # ordena
print(my_list)

my_list.clear() # con esta funcion limpa la lista
print(my_list)

### Tupla ###

my_tupla = (34, 1.70, "juan", "rodriguez", "juan")
print(my_tupla)

print(my_tupla.index(34)) # Busca y nos devuelve el indice del valor dentro de los parentesis
print(my_tupla.count("juan"))
my_tupla = list(my_tupla) # lo transforme en lista para poder modificarlo
my_tupla[4] = "juserdev"
print(type(my_tupla))
print(my_tupla)
my_tupla = tuple(my_tupla) # lo transforme en tupla nuevamente
print(type(my_tupla))
print(my_tupla)

### Set

my_set = {"juan", "rodriguez", 34, 1.70}
print(type(my_set))
print(my_set) # muestra el contenido en desorden

my_set.add("juserdev") # Agrega contenido al set
print(my_set)
print(len(my_set)) # esta funcion sirve con todos para contantar la cantidad de elementos que hay

print("juserdev" in my_set) # confima si existe el elemento #-> true
print("juserdeve" in my_set) # confima si existe el elemento #-> false

my_set.remove("juserdev")
print(my_set)

my_other_set = {"juserdev", "colombia"}

my_set = my_set.union(my_other_set).union({"python"})
print(my_set)

# my_set.clear() # -> elimina el contenido del set
# print(my_set)
# del my_set # -> borra el set


### dictcionary

my_dict = {
"nombre": "juan",
"apellido": "rodirguez",
"edad": 34,
"lenguajes": {
"python",
"typescript",
"css"
}
}

print(my_dict)
print(my_dict["nombre"])

my_dict["nombre"] = "Sebastian"
print(my_dict)
print(my_dict["nombre"])
# print(my_dict[1])

my_dict["calle"] = "monda" # agregue una clave llamada calle y le puse de nombre monda
print(my_dict)

print( "Sebastian" in my_dict)
print( "nombre" in my_dict) # Busca por clave y no por valor

del my_dict["calle"] # Borra un elemento especifico
print(my_dict)

print(my_dict.items())
print(my_dict.keys())
print(my_dict.values()) """


### Dificultad extra

def my_agenda():

agenda = {}

def insert_contact():
phone = input("Escriba el numero de contacto: ")
if phone.isdigit() and len(phone) > 0 and len(phone) <= 11:
agenda[name] = 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. Mostrar contacto")
print("5. Eliminar contacto")
print("6. Salir")

option = input("\nSelecciona una option: ")

match option:
case "1":
name = input("Intruce el nombre del contacto a buscar: ")
if name in agenda:
print(f"El numero de telefono de {name} es {agenda[name]}")
else:
print(f"El contacto {name} no existe")
case "2":
name = input("Introduce el nombre del contacto: ")
insert_contact()
case "3":
name = input("Introduce el nombre del contacto a actualizar: ")
if name in agenda:
insert_contact()
else:
print(f"El contacto {name} no existe.")
case "4":
print(agenda)
case "5":
name = input("Introduce el nombre del contact a eliminar: ")
if name in agenda:
del agenda[name]
else:
print(f"El contacto {name} no existe")
case "6":
print("Saliendo de la agenda.")
break
case _:
print("Opcion no valida. Elige una opcion del 1 al 5.")

my_agenda()
Loading