forked from mouredev/roadmap-retos-programacion
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request mouredev#4690 from fborjalv/main
#1 - Python
- Loading branch information
Showing
3 changed files
with
352 additions
and
0 deletions.
There are no files selected for viewing
96 changes: 96 additions & 0 deletions
96
Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/fborjalv.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
# EJERCICIOS | ||
|
||
# Tipos de operadores: Aritméticos, Lógicos, Relacionales, asignación, pertenencia, identidad | ||
# Asignación: | ||
|
||
operador_a = 4 | ||
operador_b = 2 | ||
|
||
# Aritméticos | ||
print("--- OPERADORES ARITMÉTICOS---") | ||
print(f"Suma: {operador_a + operador_b} ") | ||
print(f"Resta: {operador_a - operador_b}") | ||
print(f"División: {operador_a / operador_b}") | ||
print(f"Multiplicación: {operador_a * operador_b}") | ||
print(f"Resto: {operador_a % operador_b}") | ||
print(f"Potencia: {operador_a ** operador_b}") | ||
|
||
# Lógicos | ||
print("--- OPERADORES LÓGICOS ---") | ||
print("si primer elemento es 2 y si segundo elemento es 4") | ||
print(operador_a == 2 and operador_b == 4) | ||
print("si primer elemento es 2 O segundo elemeto es 5") | ||
print(operador_a == 2 or operador_b ==5 ) | ||
print("si primer elemento NO es 2") | ||
print(not operador_a == 4) | ||
|
||
|
||
# Relacionales | ||
print("--- OPERADORES RELACIONALES ---") | ||
print(f"2 es mayor que 4: {operador_b > operador_a}") | ||
print(f"2 es menor que 4: {operador_b < operador_a}") | ||
print(f"2 es igual que 4: {operador_b == operador_a}") | ||
print(f"2 No es igual que 4: {operador_b != operador_a}") | ||
print(f"2 es menor o igual que 4: {operador_b <= operador_a}") | ||
print(f"2 es menor o igual que 4: {operador_b >= operador_a}") | ||
|
||
|
||
# Asignación | ||
|
||
print("--- OPERADORES DE ASIGNACIÓN ---") | ||
|
||
contador = 6 #asigna un valor | ||
print(contador) | ||
contador += 1 #incremeta valor en 1 y lo asigna a la variable | ||
print(contador) | ||
contador -= 1 #reduce valor en 1 y lo asigna a la variable | ||
print(contador) | ||
contador *= 2 | ||
print(contador) | ||
contador /= 2 | ||
print(contador) | ||
contador %= 2 | ||
print(contador) | ||
|
||
|
||
# Estructuras de control: condicionales (if), iterativas (for, while), excepciones | ||
|
||
a = 4 | ||
b = 3 | ||
c = 5 | ||
|
||
# CONDICIONALES | ||
if a == 3: | ||
print("a es igual a cuatro") | ||
elif b != 5: | ||
print("b no es igual a cinco") | ||
elif c == 4: | ||
print ("c es igual a cuatro") | ||
else: | ||
print("hemos llegado al final") | ||
|
||
# ITERATIVAS: | ||
var = "fborjalv" | ||
|
||
for i in var: | ||
print(i) | ||
|
||
count = 0 | ||
while count < len(var): | ||
print(var[count]) | ||
count +=1 | ||
|
||
try: | ||
print(10/0) | ||
except: | ||
print("no se puede divir por cero") | ||
finally: | ||
print("Fin al control de excepciones ") | ||
|
||
# DIFICULTAD EXTRA: | ||
|
||
for num in range(10,56): | ||
if num % 2 == 0 and not (num == 16 or num % 3 == 0): | ||
print(num) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
# FUNCIONES EN PYTHON | ||
|
||
# Funcionaes sin parámetros y sin retorno | ||
|
||
def func_no_param_no_return(): | ||
print("Soy una función sin parámetros ni retorno") | ||
|
||
# Funciones con un parametro | ||
|
||
func_no_param_no_return() | ||
|
||
def func_param_no_return(param1, param2): | ||
print(f"Soy una función con estos parametros: {param1, param2}") | ||
|
||
func_param_no_return(354, "string") | ||
|
||
def func_param_no_return_tipado(param1: str, param2: int): | ||
print(f"Soy una función con estos parametros tipados: {param1, param2}") | ||
|
||
func_param_no_return_tipado(354, "string") # Python no impore restricciones | ||
|
||
def func_param_predefinidos(name="Borja", l_name="Laja"): | ||
print(f"Soy {name} {l_name}") | ||
|
||
func_param_predefinidos() | ||
func_param_predefinidos("Brais", "Moure") | ||
|
||
# Funciones con varios parámetros | ||
|
||
def func_param_varias_variables(*nombres): | ||
print(nombres) | ||
|
||
func_param_varias_variables("Montaña", "Playa", "Campo") | ||
|
||
# Con un número variable de argumentos con palabra clave | ||
|
||
def variable_key_arg_greet(**names): | ||
for key, value in names.items(): | ||
print(f"{value} ({key})!") | ||
|
||
|
||
variable_key_arg_greet( | ||
language="Python", | ||
name="Borja", | ||
alias="fborjalv", | ||
age=32) | ||
|
||
# Funciones con retorno | ||
|
||
def func_con_retorno(numero, numero_2): | ||
return numero + numero_2 | ||
|
||
print(func_con_retorno(2, 3)) | ||
|
||
# Funciones con varios retornos | ||
|
||
def func_con_varios_retornos(numero, numero_2): | ||
return numero, numero_2 | ||
print(func_con_varios_retornos(4, 6)) | ||
|
||
# Funciones dentro de funciones | ||
|
||
def func_padre(): | ||
print("soy la función padre") | ||
def func_hijo(): | ||
print("soy la función hijo") | ||
func_hijo() | ||
|
||
func_padre() | ||
|
||
# Variables locales y globales | ||
|
||
my_var_global = "Soy una variable global" | ||
|
||
def manejo_de_variables(): | ||
my_var_local = "Soy una variable local" | ||
print(my_var_global) | ||
print(my_var_local) | ||
|
||
|
||
def manejo_de_variables_hija(): | ||
my_var_local_hija = "Soy variable local hija" | ||
print(my_var_global) | ||
print(my_var_local) | ||
print(my_var_local_hija) | ||
|
||
print(my_var_global) | ||
print(manejo_de_variables()) | ||
|
||
# EJERCICIO EXTRA | ||
|
||
def multiplos (text: str, text_2: str): | ||
|
||
contador = 0 | ||
|
||
for index in range(1, 101): | ||
|
||
if index % 3 == 0 and index % 5 == 0: | ||
print(index, text + " " + text_2) | ||
|
||
elif index % 3 == 0: | ||
print(index, text) | ||
|
||
elif index % 5 == 0: | ||
print(index, text_2) | ||
|
||
else: | ||
print(index) | ||
contador += 1 | ||
|
||
return contador | ||
|
||
contador = multiplos("primer", "segundo") | ||
print(f"Números que no son múltiplos ni de 3 ni de 5: {contador}") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
# ESTRUCTURAS - inserción, borrado, actualización y ordenación | ||
|
||
# LIST ARRAY | ||
|
||
print("LISTAS") | ||
|
||
list_user: list = ["Angel", "Borja", "Zaida", "Carlos", "Maite", "Pedro"] | ||
print(list_user) | ||
|
||
# inserción | ||
list_user.append("Carolina") | ||
print(list_user) | ||
|
||
# borrado | ||
list_user.remove("Carlos") | ||
print(list_user) | ||
|
||
# actualización | ||
|
||
list_user[0] = "Ángel" | ||
print(list_user) | ||
|
||
# ordenación | ||
list_user.sort(reverse=False) | ||
print(list_user) | ||
|
||
|
||
# TUPLAS | ||
print("TUPLAS: son inmutables") | ||
list_compra: tuple = ("pan", "leche", "verduras", "huevos", "aceite") | ||
print(list_compra) | ||
|
||
#ordenación - se tiene que transformar en lista | ||
list_compra_ordenada = sorted(list_compra) | ||
print(list_compra_ordenada, type(list_compra_ordenada)) | ||
print(tuple(list_compra_ordenada), type(tuple(list_compra_ordenada))) | ||
|
||
# SET - CONJUNTOS | ||
print("SETs: elementos únicos, no repetidos") | ||
set_coches: set = {"Ford", "Toyota", "Mercedes", "BMW", "Renault"} | ||
|
||
print(set_coches) | ||
|
||
#inserción | ||
set_coches.add("Hyundai") | ||
print(set_coches) | ||
set_coches.add("Ford") # NO SE AÑADE PORQUE ESTARÍA DUPLICADO | ||
|
||
# borrado | ||
set_coches.remove("Renault") | ||
print(set_coches) | ||
|
||
# ordenar | ||
set_coches_ord = sorted(set_coches) | ||
print(set_coches_ord, type(set_coches_ord)) | ||
print(set(set_coches_ord), type(set(set_coches_ord))) # NO SE PUEDEN ORDENAR, TIENEN QUE SER LISTAS | ||
|
||
# DICCIONARIOS | ||
print("DICCIONARIOS") | ||
|
||
bbdd_coches: dict = { | ||
"Ford": 23445, | ||
"BMW": 43525, | ||
"Toyota": 34543, | ||
"Mercedes": 34885, | ||
} | ||
|
||
print(bbdd_coches) | ||
|
||
# inserción | ||
|
||
bbdd_coches["Hyundai"] = 45356 | ||
print(bbdd_coches) | ||
|
||
# borrado | ||
|
||
bbdd_coches.pop("Toyota") | ||
del bbdd_coches["BMW"] | ||
print(bbdd_coches) | ||
|
||
# actualización | ||
|
||
bbdd_coches["Ford"] = "No disponible" | ||
print(bbdd_coches) | ||
|
||
# ordenación | ||
|
||
print(sorted(bbdd_coches)) | ||
|
||
# EJERCICIO | ||
|
||
def func_agenda(): | ||
|
||
agenda = { | ||
"borja": 234234243 | ||
} | ||
|
||
def nuevo_contacto(nombre, telefono): | ||
if telefono.isdigit() and len(telefono) > 0 and len(telefono) < 11: | ||
agenda[nombre] = telefono | ||
else: | ||
print( | ||
"Debes introducir un número de teléfono un máximo de 11 dígitos.") | ||
|
||
option = input(""" | ||
Introduce una de las siguientes opciones: | ||
1. Buscar un contacto | ||
2. Añadir un nuevo contacto | ||
3. Actualizar un contacto | ||
4. Eliminar un contacto | ||
5. Salir """) | ||
|
||
if option == "1": | ||
nombre = input("Buscar por nombre: ") | ||
if nombre in agenda: | ||
print(f"El numero de telefóno de {nombre} es {agenda[nombre]}") | ||
else: | ||
print("el nombre no está en la agenda") | ||
elif option == "2": | ||
nombre = input("Introduce el nombre del nuevo contacto: ") | ||
telefono = input("Introduce el telefono del nuevo contacto: ") | ||
nuevo_contacto(nombre, telefono) | ||
|
||
elif option == "3": | ||
nombre = input("Introduce el nombre que quieres actualizar: ") | ||
if nombre in agenda: | ||
telefono = input("Introduce el nuevo telefono del contacto: ") | ||
nuevo_contacto(nombre, telefono) | ||
else: | ||
print("El contacto no existe") | ||
|
||
elif option == "4": | ||
nombre = input("Introduce el contacto que quieres eliminar: ") | ||
if nombre in agenda: | ||
del agenda[nombre] | ||
else: | ||
print("El contacto no existe") | ||
elif option == "5": | ||
print("saliendo del programa...") | ||
|
||
func_agenda() |