Skip to content

#02-Python #7661

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

Merged
merged 8 commits into from
Jan 23, 2025
121 changes: 121 additions & 0 deletions Roadmap/02 - FUNCIONES Y ALCANCE/python/DaniRojasDev.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
'''
Función sin parametros
'''
def greet():
print ("Hello")
greet()

'''
Función con un parametro
'''
def greet_with_name(name):
print ("Hello", name)
greet_with_name("Dani")

'''
Función con varios parametros
'''
def greet_with_surname(name, surname):
print (f"Hello, {name} {surname}")

greet_with_surname("Dani", "Rojas")
greet_with_surname(name="Brais", surname="Moure")

'''
Función con un parametro por defecto
'''
# Si le damos un nuevo argumento lo coge, sino muestra el de por defecto
def default_greet_with_name(name="Paco"):
print ("Hello", name)

default_greet_with_name("Manolo")
default_greet_with_name()

'''
Función con retorno
'''
def return_greet(): # Cuando se llama a esta función nos retorna lo que le indiquemos con el return, eso lo podemos utilizar para lo que queramos por ejemplo un print
return "hola, Dani!"

print (return_greet())

'''
Función con retorno y argumentos
'''
def return_greet(name, surname): # Igual que la anterior pero dándole nosotros los argumentos
return f"{name}, {surname}!"

print (return_greet("Hola", "Brais"))

'''
Función con argumentos de longitud variable
'''
def variable_greet (*numbers): # Con el * hacemos que se cree una tupla
for n in numbers:
print (f"Numbers is, {n}")

variable_greet (1, 2, 3, 4, 5, 6)

'''
Función con argumentos de longitud variable y palabra clave
'''
def variable_greet_key (**numbers): # con ** conseguimos tener como entrada a parte del valor una lista de elementos clave
for key, n in numbers.items(): # key par la palbra clave, .items() para iterar los valores
print (f"{key}, ({n})")

variable_greet_key (one=1, two=2, three=3, four=4, five=5, six=6)

'''
Función dentro de función
'''
def exterior_function ():
print ("Llamo a la función exterior")
def interior_function ():
print ("Esto es la función interior")
interior_function()

exterior_function()

'''
Funciones del lenguaje
'''
str="print: Imprime por consola"
print(str) # Imprime por consola
print(type(str)) # Nos indica el tipo de variable que le hayamos metido
print(len(str)) # Cuenta el número de caracteres de un string
new_str=str.replace("consola","terminal") # Reemplaza la palabra de la izquierda por la de la derecha
print(f"Se cambia 'consola' por 'terminal', {new_str}")

'''
Variables locales y globales
'''
global_varible="esto es una variable global" # Se puede acceder desde todo el código

def show_local_variable():
local_variable="esto es una variable local"
print(local_variable)


print(global_varible)
#print(local_variable) no se puede hacer porque estamos fuera de la función
show_local_variable() #Llamamos a la función para imprimir por consola local_variable

'''
Extra
'''
def print_numbers(str_1, str_2):
c=0
for num in range(1,101):
if num % 3 == 0 and num % 5 == 0:
print(str_1,str_2)
elif num % 3 == 0:
print(str_1)
elif num % 5 == 0:
print(str_2)
else:
print(num)
c+=1
return c

print(print_numbers("Múltiplo de 3", "Múltiplo de 5"))

171 changes: 171 additions & 0 deletions Roadmap/03 - ESTRUCTURAS DE DATOS/python/DaniRojasDev.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
'''
Estructuras
'''
# Listas se crea con []
list_A=["Dani", "Rojas", "DaniRojasDev"]
print (type(list_A))
print(list_A)
# Indice
print(list_A[0])
print(list_A[1])
print(list_A[2])
#Reemplazo
list_A[2]="[email protected]"
print(list_A)
list_A[2]="DaniRojasDev"
#Inserción
list_A.append("34") # Al final de la lista
list_A.insert(3, "[email protected]") #En la posición que le indicamos
print(list_A)
#Borrado
list_A.remove("[email protected]")
print (list_A)
#ordenación
list_A.sort()
print(list_A)

print (type(list_A))

# Tuplas se crea con ()
tuple_A=("Dani", "Rojas", "DaniRojasDev")
print (type(tuple_A))
print (tuple_A)
# Indice
print(tuple_A[0])
print(tuple_A[1])
print(tuple_A[2])
#Reemplazo
#tuple_A[2]="[email protected]" no se puede realizar en una tupla

#Inserción
#tuple_A.append("34") # Al final de la lista no se puede realizar en una tupla
#tuple_A.insert(3, "[email protected]") #En la posición que le indicamos no se puede realizar en una tupla

#Borrado
#tuple_A.remove("[email protected]") no se puede realizar en una tupla

#ordenación
tuple_A=(sorted(tuple_A))
print(tuple_A)

print (type(tuple_A))

# Diccionario se crea con {} y hay que añadir "key":"valor"
dictionary_A={"Name": "Dani", "Surname":"Rojas", "Alias":"DaniRojasDev"}
print (type(dictionary_A))
print (dictionary_A)
# Indice
print(dictionary_A["Name"]) #En lugar de buscar por posición se busca por palabra clave (key)
print(dictionary_A["Surname"]) #En lugar de buscar por posición se busca por palabra clave (key)
print(dictionary_A["Alias"]) #En lugar de buscar por posición se busca por palabra clave (key)
#Reemplazo
dictionary_A["Alias"]="[email protected]"
print(dictionary_A)
dictionary_A["Alias"]="DaniRojasDev"
#Inserción
dictionary_A["Email"] = "[email protected]" # En orden alfabetico
print(dictionary_A)
#Borrado
del dictionary_A["Email"]
print (dictionary_A)
#ordenación
dictionary_A=dict(sorted(dictionary_A.items()))
print(dictionary_A)

print (type(dictionary_A))


# Set da igual el orden al meter los datos porque los ordena como quiere se crea también con {}
set_A={"Dani", "Rojas", "DaniRojasDev"}
print (type(set_A))
print (set_A)
#Inserción
set_A.add("34")
print(set_A)
#Borrado
set_A.remove("34")
print (set_A)
#ordenación
set_A = set(sorted(set_A)) # No se puede ordenar
print(set_A)

print(type(set_A))

print(" ")
print(" ")

'''
Extra
'''
print("Esta es la parte extra")
print(" ")

def agenda():
agenda={}
while True:

print("")
print("Bienvenido a la agenda ¿que quieres hacer?")
print("")
print("Buscar")
print("Insertar")
print("Actualizar")
print("Borrar")
print("Salir")
print("")

option=input ("Selecciona una opción: ")

match option:
case "Buscar":
name=input("Introduce el nombre del contacto que quieres buscar: ")
if name in agenda:
print("")
print(f"El número de {name} es {agenda[name]}")
else:
print("")
print("El contacto no existe")
case "Insertar":
name=input("Inserte nombre del contacto: ")
phone=input("Inserte número de telefono: ")
if phone.isdigit() and len(phone)>0 and len(phone)<=11:
agenda[name] = phone
print("")
print("Contacto guardado.")
else:
print("")
Print("Error, introduce un número de teléfono correcto")

case "Actualizar":
name=input("Introduce el nombre del contacto que quieres actualizar: ")
if name in agenda:
phone=input("Inserte nuevo número de telefono: ")
if phone.isdigit() and len(phone)>0 and len(phone)<=11:
agenda[name] = phone
print("")
print("Contacto modificado.")
else:
print("")
Print("Error, introduce un número de teléfono correcto")
else:
print("")
print("El contacto no existe")
case "Borrar":
name=input("Introduce el nombre del contacto que quieres borrar: ")
if name in agenda:
del agenda[name]
print("")
print("El contacto ha sido borrado")
else:
print("")
print("El contacto no existe")
case "Salir":
print("")
print("Cerrando agenda.")
break

case _:
print("")
print("Seleccione una opción válida")

agenda()