-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathfunciones.py
292 lines (185 loc) · 8 KB
/
funciones.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
# Funciones en python
# Definición
# Una función es un bloque de código que realiza una tarea específica.
# Para definir una función en Python, se utiliza la palabra reservada def seguida del nombre de la función y paréntesis ().
# Sintaxis
# def nombre_de_la_funcion(parametros):
# # Código de la función
# return valor_de_retorno
#
# nombre_de_la_funcion(parametros)
# Ejemplo
def saludar():
print("Hola, mundo!")
saludar()
# Parámetros
# Los parámetros son valores que se pasan a la función para que realice una tarea específica.
# Los parámetros se definen entre los paréntesis de la función.
# Los parámetros pueden ser de cualquier tipo de datos.
# Los parámetros son opcionales.
# Ejemplo
def saludar(nombre):
print(f"Hola, {nombre}!")
saludar("Juan")
# Importante
# Los parámetros se pasan por valor, lo que significa que si se modifica el valor de un parámetro dentro de la función, no se modifica el valor original.
# Los parámetros solo existen dentro de la función, por lo que no se pueden acceder desde fuera de la función.
# Los argumentos son los valores que se pasan a la función cuando se llama a la función.
# Sobre la sobrecarga de funciones:
# Python no soporta la sobrecarga de funciones, es decir, no se pueden definir dos funciones con el mismo nombre y diferente número de parámetros.
# Si se definen dos funciones con el mismo nombre, la última función definida reemplaza a la primera función definida.
# Ejemplo
def sumar(a, b):
return a + b
def sumar(a, b, c):
return a + b + c
resultado = sumar(5, 3, 2)
print(resultado)
# TypeError: sumar(2,3) takes 3 positional arguments but 2 were given
# Parámetros por defecto
# Los parámetros por defecto son parámetros que tienen un valor predeterminado.
# Los parámetros por defecto se definen con un valor asignado en la definición de la función.
# Los parámetros por defecto son opcionales, es decir, si no se pasan valores a los parámetros, se utilizan los valores por defecto.
# Ejemplo
def saludar(nombre="mundo"):
print(f"Hola, {nombre}!")
saludar()
saludar("Juan")
# Parámetros con nombre
# Los parámetros con nombre son parámetros que se pasan a la función utilizando el nombre del parámetro.
# Los parámetros con nombre se definen con el nombre del parámetro seguido de un signo igual y el valor del parámetro.
# Los parámetros con nombre se pueden pasar en cualquier orden.
# Ejemplo
def saludar(nombre, apellido):
print(f"Hola, {nombre} {apellido}!")
saludar(apellido="Pérez", nombre="Juan")
# Parámetros variables
# Los parámetros variables son parámetros que pueden tener un número variable de valores.
# Los parámetros variables se definen con un asterisco (*) antes del nombre del parámetro.
# Los parámetros variables se pasan como una tupla.
# Ejemplo
def sumar(*numeros):
suma = 0
for numero in numeros:
suma += numero
return suma
resultado = sumar(5, 3, 2)
print(resultado)
# Nota: Una tupla es una secuencia inmutable de elementos, hablaremos de ellas más adelante.
# Parámetros con nombre variables
# Los parámetros con nombre variables son parámetros que pueden tener un número variable de valores con nombre.
# Los parámetros con nombre variables se definen con dos asteriscos (**) antes del nombre del parámetro.
# Los parámetros con nombre variables se pasan como un diccionario.
# Ejemplo
def saludar(**nombres):
for nombre, valor in nombres.items():
print(f"{nombre}: {valor}")
saludar(nombre="Juan", apellido="Pérez")
# Nota: Un diccionario es una colección desordenada de elementos, hablaremos de ellos más adelante.
# Parámetros por posición y por nombre
# Los parámetros por posición son los parámetros que se pasan a la función en el orden en que se definen los parámetros.
# Los parámetros por nombre son los parámetros que se pasan a la función utilizando el nombre del parámetro.
# Ejemplo
def saludar(nombre, apellido):
print(f"Hola, {nombre} {apellido}!")
saludar("Juan", "Pérez")
saludar(apellido="Pérez", nombre="Juan")
# Parámetros por posición y por nombre variables
# Los parámetros por posición y por nombre variables son los parámetros que se pasan a la función en el orden en que se definen los parámetros y utilizando el nombre del parámetro.
# Ejemplo
def saludar(nombre, apellido, **otros):
print(f"Hola, {nombre} {apellido}!")
for otro, valor in otros.items():
print(f"{otro}: {valor}")
saludar("Juan", "Pérez", edad=30, ciudad="Madrid")
# Parámetros por tipo de datos
# Los parámetros por tipo de datos son los parámetros que se pasan a la función con un tipo de datos específico.
# Los parámetros por tipo de datos se definen utilizando la anotación de tipo de datos.
# Estas anotaciones son opcionales y no afectan el comportamiento de la función.
# Las anotaciones de tipo de datos se definen con dos puntos (:) después del nombre del parámetro y el tipo de datos.
# Ejemplo
def sumarEnteros(a: int, b: int):
return a + b
resultado = sumarEnteros(5, 3)
print(resultado)
print(sumarEnteros("Hola", " esto funciona igualmente, pero podría no ser lo esperado"))
# Retorno de valores
# Una función puede devolver un valor utilizando la palabra reservada return.
# El valor de retorno puede ser de cualquier tipo de datos.
# Una función puede devolver múltiples valores utilizando una tupla.
# Ejemplo
def sumar(a, b):
return a + b
resultado = sumar(5, 3)
print(resultado)
# Retorno de valores indicando el tipo de datos
# El tipo de datos de retorno de una función se puede indicar utilizando la anotación de tipo de datos.
# La anotación de tipo de datos se define con una flecha (->) después de los paréntesis de la función y el tipo de datos de retorno.
# Estas anotaciones son opcionales y no afectan el comportamiento de la función.
# Ejemplo
def sumar(a: int, b: int) -> int:
return a + b
resultado = sumar(5, 3)
print(resultado)
print(sumar("Hola", " esto funciona igualmente, pero podría no ser lo esperado"))
# Retorno de valores múltiples
# Una función puede devolver múltiples valores utilizando una tupla.
# Para devolver múltiples valores, se utiliza la palabra reservada return seguida de los valores separados por comas.
# Ejemplo
def sumar_y_restar(a, b):
suma = a + b
resta = a - b
return suma, resta
resultado = sumar_y_restar(5, 3)
print(resultado)
# Nota: Una tupla es una secuencia inmutable de elementos, hablaremos de ellas más adelante.
# Funciones predefinidas
# Python tiene muchas funciones predefinidas que se pueden utilizar sin necesidad de importar ningún módulo.
# Ejemplo
print(abs(-5)) # Valor absoluto
print(max(5, 3, 8)) # Valor máximo
print(min(5, 3, 8)) # Valor mínimo
print(pow(2, 3)) # Potencia
print(round(3.14159, 2)) # Redondeo
# Módulos
# Un módulo es un archivo que contiene funciones, clases y variables.
# Python tiene muchos módulos predefinidos que se pueden importar y utilizar en un programa.
# Para importar un módulo se utiliza la palabra reservada import seguida del nombre del módulo.
# Ejemplo
import math
print(math.pi)
print(math.sqrt(25))
# Ejemplo
from math import pi, sqrt
print(pi)
print(sqrt(25))
# Ejemplo
from math import * # Importa todas las funciones del módulo
print(pi)
print(sqrt(25))
# Ejemplo
import math as m # Importa el módulo con un alias
print(m.pi)
print(m.sqrt(25))
# Ejemplo
from math import pi as p, sqrt as s # Importa funciones con alias
print(p)
print(s(25))
# Ejemplo
import random
print(random.randint(1, 10)) # Número aleatorio entre 1 y 10
print(random.choice(["a", "b", "c"])) # Elemento aleatorio
# Ejemplo
import datetime
print(datetime.datetime.now()) # Fecha y hora actual
# Ejemplo
import os
print(os.getcwd()) # Directorio actual
print(os.listdir()) # Lista de archivos y directorios
# Ejemplo
import sys
print(sys.argv) # Argumentos de la línea de comandos
# Ejemplo
import platform
print(platform.system()) # Sistema operativo
print(platform.release()) # Versión del sistema operativo