Skip to content

Commit f074c68

Browse files
#2 - Python
Correcion y adición de algunas palabras y comentarios erroneos. ## Describe tus cambios ***(Opcional)*** *Sobre todo aconsejable si la "Pull Request" se corresponde con una corrección adicional y no con la presentación de un ejercicio.* ## Comprobaciones Asegúrate de cumplir los siguientes puntos antes de realizar la "Pull Request": - [ ] El título de mi Pull Request sigue este formato: "#[número] - [lenguaje_utilizado]". *(Ej: #00 - Python")* - [ ] El nombre el fichero que se corresponde con el de mi usuario en GitHub más la extensión del lenguaje. *(Ej: mouredev.py)* - [ ] El fichero de corrección se encuentra dentro del directorio del ejercicio y en una carpeta con el nombre del lenguaje de programación utilizado en minúsculas. *(Ej: 00/python/mouredev.py)* - [ ] He revisado que el nombre del directorio del lenguaje no es conflictivo: - c#, no csharp - c++, no cplusplus - go, no golang - javascript, no js - [ ] Únicamente he incluido los ficheros de ejercicios. No se aceptarán Pull Requests que contengan archivos adicionales asociados a editores de código o semejantes. ## Información * Tienes toda la información sobre los retos semanales en [retosdeprogramacion.com/roadmap](https://retosdeprogramacion.com/roadmap). * Cada semana se realizará la corrección en directo y publicación de un nuevo reto en [twitch.tv/mouredev](https://twitch.tv/mouredev). * Recuerda que tienes un grupo de apoyo llamado "reto-semanal" en [Discord](https://discord.gg/mouredev). ## Describe tus cambios ***(Opcional)*** *Sobre todo aconsejable si la "Pull Request" se corresponde con una corrección adicional y no con la presentación de un ejercicio.* ## Comprobaciones Asegúrate de cumplir los siguientes puntos antes de realizar la "Pull Request": - [ ] El título de mi Pull Request sigue este formato: "#[número] - [lenguaje_utilizado]". *(Ej: #00 - Python")* - [ ] El nombre el fichero que se corresponde con el de mi usuario en GitHub más la extensión del lenguaje. *(Ej: mouredev.py)* - [ ] El fichero de corrección se encuentra dentro del directorio del ejercicio y en una carpeta con el nombre del lenguaje de programación utilizado en minúsculas. *(Ej: 00/python/mouredev.py)* - [ ] He revisado que el nombre del directorio del lenguaje no es conflictivo: - c#, no csharp - c++, no cplusplus - go, no golang - javascript, no js - [ ] Únicamente he incluido los ficheros de ejercicios. No se aceptarán Pull Requests que contengan archivos adicionales asociados a editores de código o semejantes. ## Información * Tienes toda la información sobre los retos semanales en [retosdeprogramacion.com/roadmap](https://retosdeprogramacion.com/roadmap). * Cada semana se realizará la corrección en directo y publicación de un nuevo reto en [twitch.tv/mouredev](https://twitch.tv/mouredev). * Recuerda que tienes un grupo de apoyo llamado "reto-semanal" en [Discord](https://discord.gg/mouredev).
1 parent 05cc49a commit f074c68

File tree

2 files changed

+245
-3
lines changed

2 files changed

+245
-3
lines changed

Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/python/Franz-Arzapalo.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -289,15 +289,15 @@
289289
# Ejemplo Operador walrus:
290290
print(k := 2)
291291
# Como se obesarva en la terminal imprime k y k fue definida en la misma funcion print esto puede ser util para
292-
# reducir el numero de lineas de codigo en un funcion pero es critica porque es dificil de interpretar para el resto de personas.
292+
# reducir el numero de lineas de codigo en un funcion pero es criticada porque es dificil de interpretar para el resto de personas.
293293

294294
# 2. Utilizando las operaciones con operadores que tú quieras, crea ejemplos
295295
# que representen todos los tipos de estructuras de control que existan
296296
# en tu lenguaje:
297297
# Condicionales, iterativas, exepciones...
298298

299299
"""
300-
TIpos de sitemas de control
300+
Tipos de estructuras de control
301301
"""
302302

303303
# Variables para los ejemplos:
@@ -324,7 +324,7 @@
324324
print(f"Ejm_int-1 no es = {2}")
325325
# AL usar esta extension "else" lagragamos una accion que se ejecutara si el caso definido con if no es True.
326326

327-
# Extension de if "ELif"
327+
# Extension de if "ELif" esto renplaza de cierta manera "Switch" esto no existe en python pero es es util saberlo.
328328
if Ejm_string_1 == "str" :
329329
print(f"Ejm_string_1 = {Ejm_string_1}")
330330
elif Ejm_string_1 == "stg" :
@@ -405,6 +405,25 @@
405405
print("El bucle ha finalizado")
406406
# Se puede usar el else en while aqui el else se ejecuta cuando la condicion del while se deja de cumplirn osea cuando el bucle se termina.
407407

408+
# Modificadores "Break" y "Continue" : Son modificadores de comportamiento para los bucles se usan de la siguiente manera.
409+
410+
# "Break":
411+
for l in "Break":
412+
if l == "a":
413+
print("Econtro la a")
414+
break
415+
print(l)
416+
# De esta forma cuando "l" sea igual a "a" el bucle parara pero antes se ejecutara el codigo que lo precede.
417+
418+
# "Continue":
419+
num = 5
420+
while x > 0:
421+
num -= 1
422+
if num == 3:
423+
continue
424+
print(num)
425+
# De esta forma cuando "num" sea igual a 3 el bucle omitira y pasara a la siguiente operacion.
426+
408427
# Manejo de excepciones
409428
try:
410429
print(10 / 0)
Lines changed: 223 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,223 @@
1+
"""
2+
EJERCICIO: #02 FUNCIONES Y ALCANCE
3+
4+
- Crea ejemplos de funciones básicas que representen las diferentes
5+
posibilidades del lenguaje:
6+
Sin parámetros ni retorno, con uno o varios parámetros, con retorno...
7+
- Comprueba si puedes crear funciones dentro de funciones.
8+
- Utiliza algún ejemplo de funciones ya creadas en el lenguaje.
9+
- Pon a prueba el concepto de variable LOCAL y GLOBAL.
10+
- Debes hacer print por consola del resultado de todos los ejemplos.
11+
(y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades)
12+
DIFICULTAD EXTRA (opcional):
13+
Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
14+
- La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
15+
- Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
16+
- Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
17+
- Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
18+
- La función retorna el número de veces que se ha impreso el número en lugar de los textos.
19+
20+
Presta especial atención a la sintaxis que debes utilizar en cada uno de los casos.
21+
Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda.
22+
"""
23+
24+
# 1. Crea ejemplos de funciones básicas que representen las diferentes
25+
# posibilidades del lenguaje:
26+
# Sin parámetros ni retorno, con uno o varios parámetros, con retorno...
27+
28+
"""
29+
Antes de definir una funcion podemos recapitular de forma que en retos anteriores vimos funciones nativas como range() o como bin()
30+
y es eso las funciones nativas son las funciones que ya estan en python de forma determinada o preinstalada pero nosotros tambien
31+
podemos crear nuestras propias funciones con el comando def para definir la funcion esto nos pedira un nombre para la funcion y de forma
32+
opcional un parametro que ira entre parentesis terminando con los dos puntos para pasar a definir la accion que se ejecutara.
33+
"""
34+
35+
# Definir una funcion basica sin parametros con "def":
36+
37+
def ejemplo ():
38+
print("Ejemplo")
39+
40+
# para usar la funcion se tiene que nombrar y usar el parentesis.:
41+
42+
ejemplo()
43+
44+
# Definir una funcion basica con parametro:
45+
46+
def ejemplo1 (lenguaje):
47+
print (f"Hola, {lenguaje}!")
48+
49+
ejemplo1("Python")
50+
51+
# Hasta ahora estas funciones no tenian retorno pero se podian ver resultados gracias a la funcion print().
52+
53+
# Definir una funcion basica con parametro y retorno.
54+
55+
def ejemplo2 (Nombre):
56+
return f"Hola {Nombre}"
57+
58+
print(ejemplo2("Franz"))
59+
60+
# A simple vista no parece relevante este cambio pero es por la necesidad de imprimir el cambio para verlo en la consola.
61+
# Las funciones nos sirven para ahorra timepo y codigo pues cunado vamas a repetir las mismas acciones con cambios puntuales
62+
# el tener una funcion para automatizar esos cambios es bastante util.
63+
# Return sirve especificamente para sacar el resultado de la funcion de dentro de la funcion no la imprime pero ahi esta.
64+
65+
# Definir una funcion basica con mas de un parametro y retorno:
66+
67+
def ejemplo3 (Lenguaje, Nombre):
68+
return f"Hola {Nombre}, {Lenguaje} es increible!"
69+
70+
print(ejemplo3("Python", "Franz"))
71+
72+
# De esta forma podemos poner mas parametros en la funcion.
73+
# El orden en el que se definen los parametros son el mismo orden en el que se tienen que ingresar dichos parametros para su uso correcto.
74+
75+
# Asignar valores predeterminados a los parametros de una funcion:
76+
77+
def ejemplo4 (numero=", no ingreso un numero"):
78+
return f"Su numero es {numero}"
79+
80+
print(ejemplo4())
81+
82+
# De esta forma si no se ingresa parametros en la funcion se ejecutara con el valor definido si esto no se hace y se ejecuta una funcion
83+
# sin parametros aparecera un error en la consola y se dentra la ejecucion de todo codigo que le siga.
84+
85+
# Definir una funcion con mas de un retorno:
86+
87+
def ejemplo5 ():
88+
return "uno", "dos"
89+
90+
numero1, numero2 = ejemplo5()
91+
92+
print(numero1)
93+
print(numero2)
94+
95+
# Definiendo las variables separadas por comas se podra separar mas de un valor que retorne una funcion.
96+
97+
# Podemos tambien hacer funciones que utilicen el mismo parametro pero que se introduscan mas variables para ese parametro:
98+
99+
def ejemplo6 (*names):
100+
for name in names:
101+
print(f"¡Hola, {name}!")
102+
print(type(names))
103+
ejemplo6("Python", "Franz", "Erick", "Arzapalo")
104+
105+
# Con el bucle for podemos separar una gran cantidad de valores que se pongan en un parametro.
106+
# Pero lo mas importante es el * puesto antes del parametro esto combierte los valores que se ingrese en un grupo de valores conocido
107+
# como tuplas esto varia en otros leguajes pero en python es una herramienta muy util.(Esto es conocido como *args refiriendose a arguments)
108+
109+
# Ahora el siguiente nivel del tipo de funcion anterior es crear un funcion con un palabra clave y un valor de la misma forma con
110+
# una cantidad de valores variables para el parametro.
111+
112+
def ejemplo7 (**names):
113+
for keys, value in names.items():
114+
print(f"{keys}, ({value}!)")
115+
ejemplo7(lenguaje="Python", name="Franz", numero=14, serie="the office", pelicula="harry potter")
116+
117+
# En el bucle usamos .items() para poder acceder a los valores de cada clave porque cuando se trabaja con diccionarios de no usar el items
118+
# solo se trabajaria con las claves pero como se trabaja con esta es bastante util el tener un valor como con las tuplas pero ahora el
119+
# tener cada valor un nombre nos facilita de gran manera trabajar de otra forma esto simplifica el trabajo.
120+
121+
# Comentarios en funciones:
122+
def comentada ():
123+
"""
124+
Esta es una funcion que se usara como ejemplo para demostrar lo
125+
importante y util que puede ser comentar una funcion de esta forma.
126+
"""
127+
return "Funcion comentada"
128+
129+
help(comentada)
130+
print(comentada.__doc__)
131+
132+
# De esta forma se llama al comentario dentro de un funcio y si esta ha sido comentada con su funcion apoyara de gran manera a otra
133+
# persona que quiera leer el codigo osea es una buena practica el comentar las funciones de esta forma.
134+
135+
# Anotacion en funciones:
136+
137+
def ejemplo8 (x:int) -> int:
138+
return x*5
139+
print(ejemplo8("Franz"))
140+
141+
# De esta forma se anota en un funcion el tipo de parametro que se quiere o se necesita para el correcto funcionamiento de la funcion
142+
# pero solo lo hacer notar como se dice no afecta ni inpone esa regla por ello ne no cumplirse y la funcio puede funcionar sin
143+
# la necesidad de se cumpla la notacion se ejecutara de forma normal.
144+
145+
# 2. Comprueba si puedes crear funciones dentro de funciones.
146+
147+
"""
148+
En python se pueden crear funciones dentro de otras funciones la principal caracteristica de estas funcion son que no funcionan afuera
149+
de la funcion en la que fureron definidas son como funciones temporales.
150+
"""
151+
152+
def funcion_mayor ():
153+
def funcion_menor ():
154+
print("Esta es la funcion menor")
155+
print("Esta es la funcion mayor")
156+
funcion_menor()
157+
funcion_mayor()
158+
159+
# funcion_menor() # No la reconoce porque fue llamada fuera de la funcion principal.
160+
161+
# 3. Utiliza algún ejemplo de funciones ya creadas en el lenguaje (built-in).
162+
163+
# https://docs.python.org/es/3.8/library/functions.html
164+
# Documentacion de funciones nativas python.
165+
166+
"""
167+
Built-in o tambien conocidas como funciones nativas son funciones definidas o preinstaladas en el lenguaje en este caso python,
168+
son muchas pero muy utiles solo veremos 3:
169+
"""
170+
171+
print(len("Franz")) # 5
172+
# len hace un conteo de objetos en este caso el numero de letras.
173+
# Nos puede ayudar por ejemplo para saber el numero de iteraciones que podriamos tener usando el bucle for.
174+
# Ojo solo funciona con grupos de obejtos como el bucle for no con integers o floats.
175+
176+
print(type(x:=3+4j)) # <class 'complex'
177+
# Type retorna el tipo de variable que se le ingresa en este caso complex por que es un numero complejo.
178+
# Nos puede ayudar mas cuando no sabemos de que tipo es una variable talvez que no encontras definida o que no sabemos como termina despues de una operacion.
179+
180+
print("python".upper()) # PYTHON
181+
# upper() convierte todos los caracteres de una cadena de texto a mayusculas.
182+
# Solo puede trabajar con strings.
183+
184+
# 4. Pon a prueba el concepto de variable LOCAL y GLOBAL.
185+
186+
Variable_global = "Global"
187+
188+
def ejemplo9 ():
189+
Variable_local= "Local"
190+
print(f"Variable globa ({Variable_global}), Variable local ({Variable_local})")
191+
192+
print(Variable_global)
193+
# print(Variable_local) no se puede llamar fuera de la funcion
194+
195+
ejemplo9()
196+
197+
# 5. Debes hacer print por consola del resultado de todos los ejemplos.
198+
# (y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades) (cumplida)
199+
200+
# 6. Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
201+
# - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
202+
# - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
203+
# - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
204+
# - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
205+
# - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
206+
207+
def FizzBuzz (Cadena1, Cadena2):
208+
count=0
209+
for n in range(1, 101):
210+
if n % 3 == 0 and n % 5 == 0:
211+
print(Cadena1+Cadena2)
212+
elif n % 3 == 0:
213+
print(Cadena1)
214+
elif n % 5 == 0:
215+
print(Cadena2)
216+
else:
217+
print(n)
218+
count+=1
219+
return(count)
220+
221+
print(FizzBuzz("Fizz", "Buzz"))
222+
223+
# Fin.

0 commit comments

Comments
 (0)