Santiago Quiñones Cuenca
Software Developer and Educator, Master in Software Engineering, Research UTPL {Loja, Ecuador} Repositories: http://github.com/lsantiago
Programación - Ingeniería en Geología
Profesor: Santiago Quiñones
Docente Investigador
Departamento de Ingeniería Civil
Funciones con parámetros obligatorios y opcionales
Tipos de parámetros en una función
def es_mayor(x, y):
return x > y
Si has estado jugando con el lenguaje, sabrás que a la hora de definir una función puedes indicar una serie de parámetros.
>> es_mayor(5, 3)
True
Al invocar la función, lo haremos de la siguiente manera:
por defecto, los valores de los argumentos se asignan a los parámetros en el mismo orden en el que los pasas al llamar a la función.
Parámetros posicionales y parámetros con nombre
def introduccion(nombre, apellido):
print("Hola, mi nombre es", nombre, apellido)
# paso de parámetros posicionales
introduccion("Jorge", "Ramos")
introduccion("María", "Castillo")
introduccion("Cristina", "Guaman")
# paso de parámetros con palabra clave
introduccion(nombre = "James", apellido = "Bond")
introduccion(apellido = "Skywalker", nombre = "Luke")
1
2
3
Abrir enlace
Parámetros opcionales
# para casos donde algunos valores de ciertos argumentos son más
# utilizados que otros
def introduccion(first_name, last_name="Peréz"):
print("Hola, mi nombre es", first_name, last_name)
introduccion("Jorge", "Castillo")
Son parámetros que se indican con un valor por defecto y si no se pasan al invocar a la función entonces toman este valor.
¿Puedes predecir la salida del programa?
¿Y? No parece haber cambiado algo, pero cuando se invoca de una manera inusual.
introduccion("Enrique")
introduccion(first_name="Guillermo")
Abrir enlace
Ámbito de las variables
Variables locales y globales
Modularidad: Cada función debe tener una tarea específica y claramente definida.
Nombres descriptivos: Elige nombres significativos para tus funciones.
Encapsulamientos de datos: Evita variables globales y pasa los datos como argumentos.
Documentación: Incluye comentarios o documentación clara dentro de las funciones
Reutilización de código: Envuelve tareas similares en funciones reutilizables.
Pruebas: Realiza pruebas para verificar el comportamiento de las funciones.
Cada función debe tener una tarea específica y claramente definida. Evita crear funciones demasiado largas o con múltiples responsabilidades. Si una función se vuelve demasiado compleja, considera dividirla en funciones más pequeñas y coherentes.
def calcular_area_rectangulo(ancho, alto):
area = ancho * alto
return area
Elige nombres descriptivos y significativos para tus funciones. Esto ayudará a otros desarrolladores (o a ti mismo en el futuro) a comprender rápidamente qué hace cada función sin tener que revisar su implementación.
def calcular_promedio(lista_numeros):
suma = sum(lista_numeros)
promedio = suma / len(lista_numeros)
return promedio
Evita utilizar variables globales dentro de tus funciones, ya que esto puede dificultar el seguimiento y el mantenimiento del código. En su lugar, pasa los datos necesarios como argumentos de la función y devuelve los resultados necesarios utilizando la declaración return
.
def saludar(nombre):
mensaje = "¡Hola, " + nombre + "!"
return mensaje
Si encuentras que necesitas realizar una tarea similar en varios lugares de tu programa, considera envolver ese código en una función reutilizable. Esto reduce la duplicación de código y facilita los cambios y las correcciones en el futuro.
def calcular_area_triangulo(base, altura):
area = (base * altura) / 2
return area
def calcular_area_circulo(radio):
area = 3.14 * (radio ** 2)
return area
Incluye comentarios o documentación clara dentro de tus funciones para explicar su propósito, los parámetros esperados y los valores de retorno. Esto ayuda a otros desarrolladores a utilizar correctamente tus funciones y facilita el mantenimiento del código en el futuro.
def obtener_mayor_valor(lista_numeros):
"""
Esta función devuelve el valor máximo de una lista de números.
Parámetros:
- lista_numeros: una lista de números enteros.
Retorna:
- El valor máximo de la lista.
"""
max_valor = max(lista_numeros)
return max_valor
Es una buena práctica escribir pruebas unitarias para tus funciones. Las pruebas unitarias te ayudan a verificar que tus funciones se comporten como se espera en diferentes escenarios. Esto proporciona una capa adicional de seguridad y facilita la detección de errores o comportamientos inesperados.
def sumar(a, b):
return a + b
# Prueba unitaria
resultado = sumar(2, 3)
print(resultado) # Output: 5
No es más que un archivo que contiene instrucciones y definiciones (variables, funciones, clases, ...)
El fichero debe tener extensión .py
y su nombre se corresponde con el nombre del módulo.
Los módulos tienen un doble propósito:
Si se tienen dos archivos creados por nosotros de la siguiente manera:
Según el teorema de Pitágoras el cuadrado de la hipotenusa es igual a la suma del cuadrado de los catetos: (C² = A² + B²). Utilizando este concepto es posible conocer de que tipo es un triángulo:
Crear un modulo teoremas.py con la función pitagoras que devuelva el tipo de triángulo.
Dados cuatro números reales que representan coordenadas cartesianas: (x1,y1),(x2,y2). Escribe una función distancia(x1, y1, x2, y2)
para calcular la distancia entre los puntos (x1,y1) y (x2,y2). Lea cuatro números reales e imprima la distancia resultante calculada por la función.
La fórmula de distancia entre dos puntos es:
Agregar al módulo matematicas.py y realizar pruebas
Escriba una función llamada car2pol que tome como argumentos las coordenadas de un punto (x,y) en el plano cartesiano. La función deberá calcular "r" y "a" a partir de "x" y "y".
Instrucciones:
- Definir la función car2pol.
- Pedir al usuario las coordenadas cartesianas (x,y) del punto.
- Utilizar la función car2pol para convertir las coordenadas cartesianas a polares.
- Imprimir los valores de r y a obtenidos.
arctan: La función arctan en Python es proporcionada por el módulo math y se llama atan(). Esta función devuelve el arco tangente de un número en radianes.
Tema | URL |
---|---|
Espacios de nombres, módulos | https://j2logo.com/python/tutorial/espacios-de-nombres-modulos-y-paquetes/ |
Parámetros posicionales y parámetros con nombre en una función | https://j2logo.com/tipo-parametros-funcion-python/ |
Variables locales y globales | https://snakify.org/es/lessons/functions/ |
Funciones y parámetros | https://j2logo.com/python/tutorial/funciones-en-python/#function-params |
Importing Your Own Python Modules Properly | https://www.youtube.com/watch?v=GxCXiSkm6no&ab_channel=NeuralNine |
By Santiago Quiñones Cuenca
Software Developer and Educator, Master in Software Engineering, Research UTPL {Loja, Ecuador} Repositories: http://github.com/lsantiago