Skip to content

Commit 0728d00

Browse files
authored
Merge pull request #8945 from Aleran07/retos
Retos de programación 01, 02, 03 y 04 - Python
2 parents 4299b82 + 2259d6c commit 0728d00

File tree

4 files changed

+685
-0
lines changed

4 files changed

+685
-0
lines changed
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# 01
2+
x = 2
3+
y = 5
4+
z = 1+2
5+
print(z)
6+
z = 2-6
7+
print(z)
8+
z = 2/6
9+
print(z)
10+
z = 2*6
11+
print(z)
12+
13+
z = 1//2
14+
print(z)
15+
z = 2%6
16+
print(z)
17+
z = 2**6
18+
print(z)
19+
20+
21+
z = 1==2
22+
print(z)
23+
z = 2!=6
24+
print(z)
25+
z = 2<6
26+
print(z)
27+
z = 2>6
28+
print(z)
29+
z = 2>=6
30+
print(z)
31+
z = 2<=6
32+
print(z)
33+
34+
# Operadores lógicos
35+
z = (1==2) and (2<6)
36+
print(z)
37+
z = (1==2) or (2<6)
38+
print(z)
39+
z = not(1==2)
40+
print(z)
41+
z = not(2<6)
42+
print(z)
43+
44+
45+
# Operadores de asignación
46+
x = 2
47+
x += 2 # x = x + 2
48+
print(x)
49+
x -= 2 # x = x - 2
50+
print(x)
51+
x *= 2 # x = x * 2
52+
print(x)
53+
x /= 2 # x = x / 2
54+
print(x)
55+
x //= 2 # x = x // 2
56+
print(x)
57+
x %= 2 # x = x % 2
58+
print(x)
59+
x **= 2 # x = x ** 2
60+
print(x)
61+
62+
# operadores de identidad
63+
x = 2
64+
y = 5
65+
z = x is y
66+
print(z)
67+
z = x is not y
68+
print(z)
69+
y = 2
70+
z = x is y
71+
print(z)
72+
z = x is not y
73+
print(z)
74+
75+
# operadores de pertenencia
76+
x = "Hola"
77+
y = "H"
78+
z = "H" in x
79+
print(z)
80+
z = "H" not in x
81+
print(z)
82+
83+
84+
# operadores bit a bit
85+
x = 2 # 10 en binario
86+
y = 5 # 101 en binario
87+
z = x & y # AND bit a bit
88+
print(z) # 0 en binario
89+
90+
z = x | y # OR bit a bit
91+
print(z) # 7 en binario
92+
93+
94+
z = x ^ y # XOR bit a bit
95+
print(z) # 7 en binario
96+
z = ~x # NOT bit a bit
97+
print(z) # -3 en binario
98+
z = x << 1 # Desplazamiento a la izquierda
99+
print(z) # 4 en binario
100+
101+
# Ejercicios
102+
import random
103+
print("Operadores en Python\n")
104+
# OPERADORES ARITMÉTICOS
105+
print("Operadores Aritméticos")
106+
a = random.randint(1, 10)
107+
b = random.randint(1, 10)
108+
print(f' - La suma de {a} + {b} es igual a {a + b}')
109+
print(f' - La resta de {a} - {b} es igual a {a - b}')
110+
print(f' - La multiplic de {a} x {b} es igual a {a * b}')
111+
print(f' - La división de {a} entre {b} es igual a {a / b}')
112+
print(f' - El resto de {a} entre {b} es igual a {a % b}')
113+
print(f' - La división de piso de {a} entre {b} es igual a {a // b}')
114+
print(f' - La potencia de {a} elevado a {b} es igual a {a ** b}\n')
115+
116+
117+
118+
print("Ejercicio de dificultad extra")
119+
a = random.randint(1, 10)
120+
b = random.randint(1, 10)
121+
c = random.randint(1, 10)
122+
d = random.randint(1, 10)
123+
e = random.randint(1, 10)
124+
f = random.randint(1, 10)
125+
print(f' - El resultado de la operación ({a} + {b}) * ({c} - {d}) / ({e} + {f}) es igual a {((a + b) * (c - d)) / (e + f)}')
126+
print(f' - El resultado de la operación ({a} + {b}) * ({c} - {d}) // ({e} + {f}) es igual a {((a + b) * (c - d)) // (e + f)}')
127+
print(f' - El resultado de la operación ({a} + {b}) * ({c} - {d}) % ({e} + {f}) es igual a {((a + b) * (c - d)) % (e + f)}')
128+
129+
130+
# Ejercicio de dificultad extra
131+
# Crea un programa que imprima por consola todos los números comprendidos
132+
# * entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3.
133+
for i in range(10, 56):
134+
if i % 2 == 0 and i != 16 and i % 3 != 0:
135+
print(i)
136+
137+
x = 13
138+
y = x % 2
139+
print(y)
Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
# 02
2+
# Primero que son funciones basicas que representen las diferentes posibilidades de
3+
4+
5+
# funcion con parametro
6+
def mi_funcion(x): # Funcion con parametro
7+
#codigo
8+
print("what's up bro?")
9+
return
10+
11+
mi_funcion(1) # si o si toca enviarle un parametro para que se ejecute asi no haga nada con ese parametro
12+
13+
# funcion sin parametro
14+
def mi_funcion_sin_parametro():
15+
print("Aqui no se usa parametro")
16+
return
17+
18+
mi_funcion_sin_parametro()
19+
20+
# funcion sin parametro pero con retorno
21+
def funcion_sin_parametro_pero_con_retorno(): # las funciones puedes nombrarse de forma larga
22+
return "que pedo"
23+
24+
x = funcion_sin_parametro_pero_con_retorno() # aqui la funcion se crea para que retorne algo
25+
print(x)
26+
27+
# funcion con parametro y retorno
28+
def sumar(a, b):
29+
return a + b
30+
31+
print(sumar(2, 5))
32+
33+
# funciones con parametros por defecto
34+
def saludar(name="invitado"):
35+
print(f"Hola, {name}")
36+
37+
saludar()
38+
saludar("boludo")
39+
40+
# funciones con parametros variables
41+
def mostrar_args(*args, **kwargs):
42+
print("args:", args)
43+
print("kwargs:", kwargs)
44+
45+
mostrar_args(1, 2, 3, name="Brian", age=24)
46+
47+
"""
48+
Por lo tanto los parametros son datos que la funcion necesita.
49+
Mientras que el retorno es el resultado que entrega la funcion
50+
"""
51+
52+
# funciones anidadas
53+
def funcion_externa():
54+
print("Soy la función externa")
55+
56+
def funcion_interna():
57+
print("Soy la función interna")
58+
59+
# Llamamos a la interna dentro de la externa
60+
funcion_interna()
61+
62+
# Ejecuto la externa
63+
funcion_externa()
64+
# funcion_interna() son puede ser llamada fuera de la funcion mas grande
65+
66+
# funcion interna con retorno
67+
def externa(x):
68+
def interna(y):
69+
return y * 2
70+
return interna(x)
71+
72+
print(externa(5)) # 10
73+
74+
# funcion closure
75+
def multiplicador(n):
76+
def multiplicar(x):
77+
return x * n
78+
return multiplicar
79+
80+
doble = multiplicador(2)
81+
triple = multiplicador(3)
82+
83+
print(doble(5)) # 10
84+
print(triple(5)) # 15
85+
print(doble(2)) # 4
86+
87+
# Ejemplo random
88+
def caluladora_simple(x, tipo):
89+
def suma(y):
90+
return x + y
91+
def restar(y):
92+
return x - y
93+
def multiplicar(y):
94+
return x * y
95+
def dividir(y):
96+
return x / y
97+
# return {"sumar": suma, "restar": restar, "multiplicar": multiplicar, "dividir": dividir}
98+
if tipo == "suma":
99+
return suma
100+
elif tipo == "restar":
101+
return restar
102+
elif tipo == "multiplicar":
103+
return multiplicar
104+
elif tipo == "dividir":
105+
return dividir
106+
107+
x = caluladora_simple(2, "suma")
108+
y = x(3)
109+
print(y)
110+
111+
x = caluladora_simple(2, "restar")
112+
y = x(3)
113+
print(y)
114+
115+
x = caluladora_simple(2, "multiplicar")
116+
y = x(3)
117+
print(y)
118+
119+
x = caluladora_simple(2, "dividir")
120+
y = x(3)
121+
print(y)
122+
123+
124+
125+
def calculadora(n):
126+
def sumar(x):
127+
return x + n
128+
def multiplicar(x):
129+
return x * n
130+
def restar(x):
131+
return x - n
132+
133+
# Retorno un diccionario con varias funciones
134+
return {"sumar": sumar, "multiplicar": multiplicar, "restar": restar}
135+
136+
ops = calculadora(10)
137+
138+
print(ops ) # 15
139+
print(ops ) # 50
140+
print(ops ) # -5
141+
142+
143+
144+
x = 10 # variable global
145+
146+
def mostrar():
147+
print(x) # puede acceder a la global
148+
149+
mostrar() # 10
150+
print(x) # 10
151+
152+
###
153+
def funcion():
154+
y = 5 # variable local
155+
print(y)
156+
157+
funcion() # 5
158+
# print(y) # ❌ Error: NameError (no existe fuera de la función)
159+
160+
161+
162+
# Crear una funcion que que reciba 2 para metros de texto y retorne los numeros del 1 al 100
163+
def cadena_num(a, b):
164+
x = 0
165+
y = 0
166+
for i in range (1, 101):
167+
if i % 3 == 0:
168+
x += 1
169+
print(a)
170+
elif i % 5 == 0:
171+
x += 1
172+
print(b)
173+
else:
174+
y += 1
175+
print(i)
176+
return print(f"Numero de numeros impresos: {y}\nNumero de Textos impresos: {x}")
177+
178+
cadena_num("tres", "cinco")

0 commit comments

Comments
 (0)