1+ """ /*
2+ * EJERCICIO:
3+ * - Crea ejemplos de funciones básicas que representen las diferentes
4+ * posibilidades del lenguaje:
5+ * Sin parámetros ni retorno, con uno o varios parámetros, con retorno...
6+ * - Comprueba si puedes crear funciones dentro de funciones.
7+ * - Utiliza algún ejemplo de funciones ya creadas en el lenguaje.
8+ * - Pon a prueba el concepto de variable LOCAL y GLOBAL.
9+ * - Debes hacer print por consola del resultado de todos los ejemplos.
10+ * (y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades)
11+ *
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+ ## Funcion sin retorno y sin argumentos
25+
26+
27+ from cgi import print_arguments
28+
29+
30+ def saludar ():
31+ print ("Hola a todos!" )
32+
33+
34+ saludar ()
35+
36+ ## Funcion con retorno sin argumentos
37+
38+
39+ def my_name ():
40+ return "Lucas"
41+
42+
43+ print (my_name ())
44+
45+ ## Funcion con retorno y argumentos
46+
47+
48+ def suma (a , b ):
49+ return a + b
50+
51+
52+ print (suma (1 , 1 ))
53+
54+
55+ ## Funcion con parametro por defecto
56+
57+
58+ def saludo_default (nombre = "Lucas" ):
59+ print (f"Hola { nombre } " )
60+
61+
62+ saludo_default ()
63+
64+
65+ ## Retorno multiple
66+
67+
68+ def saludar_multiple ():
69+ return "Hola" , "Python"
70+
71+
72+ saludo , name = saludar_multiple ()
73+
74+ print (saludo )
75+ print (name )
76+
77+ ## Con numero variables de argumentos posicionales
78+
79+
80+ def variables_args_saludo (* args ):
81+ for name in args :
82+ print (f"Hola { name } " )
83+
84+
85+ variables_args_saludo ("pablo" , "comunidad" , "Python" )
86+
87+ ## Con numero variable de argumentos pero con **kwargs
88+
89+
90+ def kwargs_saludo (** kwargs ):
91+ for key , value in kwargs .items ():
92+ print (f"{ key } : { value } " )
93+
94+
95+ kwargs_saludo (nombre1 = "lucas" , nombre2 = "pepe" , nombre3 = "numero" )
96+
97+
98+ ## Funciones detro de otras
99+
100+
101+ def funcion_exterior ():
102+ def funcion_interna ():
103+ print ("Funcion interna: Hola Python" )
104+
105+ funcion_interna ()
106+
107+
108+ funcion_exterior ()
109+
110+ ## Funciones del lenguaje
111+
112+ print ("Imprime el texto" )
113+
114+ print (len ("String" ))
115+ print (len ([1 , 2 , 3 ]))
116+
117+ print (type (6 ))
118+ print (type (True ))
119+ print (type ("6" ))
120+
121+ print (chr (45 ))
122+
123+ print (hash ("Hola" ))
124+
125+ ## Variable locales y globales
126+
127+ variable_global = "Node.js"
128+
129+ print (variable_global )
130+
131+
132+ def hello_node ():
133+ variable_local = "Python"
134+ print (f"Hola, { variable_local } { variable_global } " )
135+
136+
137+ print (variable_global )
138+
139+ hello_node ()
140+
141+ """ * DIFICULTAD EXTRA (opcional):
142+ * Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
143+ * - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
144+ * - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
145+ * - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
146+ * - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
147+ * - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
148+ * """
149+
150+
151+ def print_numbers (cadena1 : str , cadena2 : str ):
152+ contador = 0
153+
154+ for num in range (1 , 102 ):
155+ if num % 3 == 0 and num % 5 == 0 :
156+ print (cadena1 + cadena2 )
157+ elif num % 3 == 0 :
158+ print (cadena1 )
159+ elif num % 5 == 0 :
160+ print (cadena2 )
161+ else :
162+ print (num )
163+ contador += 1
164+
165+ return contador
166+
167+ print (print_numbers ("fizz" , "buzz" ))
0 commit comments