Funciones en Python¶
1. ¿Qué son las funciones?¶
Definición de función
En Python, una función es un bloque de código que realiza una tarea específica y puede ser reutilizado a lo largo del programa. Las funciones nos ayudan a dividir nuestro código en módulos más pequeños y manejables. Al usar funciones, evitamos la repetición de código, lo que hace que nuestro programa sea más eficiente y fácil de mantener.
Propósito de las funciones:¶
- Reutilizar código: Definir una función una sola vez y llamarla en cualquier parte del programa.
- Organizar el código: Dividir un programa grande en pequeñas partes que se puedan gestionar mejor.
- Facilitar la lectura: Aumentar la claridad y comprensión del código al dividir las tareas en bloques bien definidos.
2. Cómo definir y usar funciones en Python¶
Sintaxis básica de una función:¶
Para definir una función en Python, usamos la palabra clave def, seguida del nombre de la función y los parámetros entre paréntesis.
def nombre_de_funcion(parametros):
# Código que realiza la tarea
return valor
def: Es la palabra clave que indica que estamos definiendo una función.nombre_de_funcion: Es el nombre de la función. Debe seguir las mismas reglas de nomenclatura que las variables.parametros: Son los valores que la función recibe para realizar su tarea. Los parámetros pueden ser múltiples y se separan por comas.return: La palabra clave que nos permite devolver un valor desde la función. Si no hay unreturn, la función no devolverá nada (por defecto retornaNone).
Ejemplo de función sencilla:¶
def saludar():
print("¡Hola, mundo!")
Para llamar a la función, simplemente escribimos su nombre seguido de paréntesis:
saludar() # Imprime: ¡Hola, mundo!
3. Parámetros y argumentos¶
Parámetros y argumentos:¶
- Parámetros: Son los valores que la función espera recibir cuando es definida.
- Argumentos: Son los valores que se pasan a la función cuando la llamamos.
Ejemplo con parámetros:¶
def saludar(nombre):
print(f"¡Hola, {nombre}!")
En este caso, nombre es un parámetro de la función. Para llamarla, necesitamos pasar un argumento:
saludar("Juan") # Imprime: ¡Hola, Juan!
Parámetros por defecto:¶
Puedes asignar valores por defecto a los parámetros, para que si el usuario no pasa un argumento, se use el valor predeterminado.
def saludar(nombre="Juan"):
print(f"¡Hola, {nombre}!")
Si no se pasa un argumento, la función usará "Juan" por defecto:
saludar() # Imprime: ¡Hola, Juan!
4. Funciones que no retornan nada¶
En Python, las funciones pueden no retornar nada. Si no utilizamos return, la función realiza una acción, pero no devuelve ningún valor.
Ejemplo de función que no retorna valor:¶
def imprimir_mensaje():
print("Esto es un mensaje.")
Aunque esta función no devuelve ningún valor, realiza una acción (imprimir un mensaje en la consola).
5. Funciones anónimas en Python (Funciones lambda)¶
En Python, puedes crear funciones anónimas usando lambda. Estas funciones son útiles cuando se necesita una función simple y no se quiere definir una función completa con def.
Sintaxis de una función lambda:¶
lambda argumentos: expresión
Ejemplo de función lambda:¶
suma = lambda x, y: x + y
print(suma(3, 4)) # Imprime: 7
En este caso, lambda crea una función anónima que toma dos argumentos x y y, y devuelve su suma. Esta función se puede utilizar de forma inmediata sin necesidad de crear un nombre para ella.
6. Ejercicios resueltos¶
Ejercicio 1: Calcular el área de un círculo¶
Descripción: Crea una función que reciba el radio de un círculo y calcule su área utilizando la fórmula Área = π * radio^2. Usa math.pi para obtener el valor de π.
Ejercicio 1: Calcular el área de un círculo
- Descripción: Crea una función que reciba el radio de un círculo y calcule su área utilizando la fórmula
Área = π * radio^2. Usamath.pipara obtener el valor de π.
Solución
import math
def calcular_area(radio):
return math.pi * radio ** 2
radio = float(input("Introduce el radio del círculo: "))
area = calcular_area(radio)
print(f"El área del círculo es: {area}")
Ejercicio 2: Saludar a una persona¶
Descripción: Crea una función que reciba el nombre de una persona y le imprima un mensaje de saludo como "¡Hola, [nombre]!" donde [nombre] es el nombre de la persona.
Ejercicio 2: Saludar a una persona
- Descripción: Crea una función que reciba el nombre de una persona y le imprima un mensaje de saludo como "¡Hola, [nombre]!" donde [nombre] es el nombre de la persona.
Solución
def saludar(nombre):
print(f"¡Hola, {nombre}!")
nombre_usuario = input("¿Cómo te llamas? ")
saludar(nombre_usuario)
Ejercicio 3: Convertir grados Celsius a Fahrenheit¶
Descripción: Crea una función que reciba una temperatura en grados Celsius y la convierta a Fahrenheit utilizando la fórmula Fahrenheit = (Celsius * 9/5) + 32.
Ejercicio 3: Convertir grados Celsius a Fahrenheit
- Descripción: Crea una función que reciba una temperatura en grados Celsius y la convierta a Fahrenheit utilizando la fórmula
Fahrenheit = (Celsius * 9/5) + 32.
Solución
def celsius_a_fahrenheit(celsius):
return (celsius * 9/5) + 32
celsius = float(input("Introduce la temperatura en grados Celsius: "))
fahrenheit = celsius_a_fahrenheit(celsius)
print(f"{celsius} grados Celsius son {fahrenheit} grados Fahrenheit.")
Ejercicio 4: Calcular la longitud de una lista¶
Descripción: Crea una función que reciba una lista y devuelva su longitud sin utilizar la función len().
Ejercicio 4: Calcular la longitud de una lista
- Descripción: Crea una función que reciba una lista y devuelva su longitud sin utilizar la función
len().
Solución
def calcular_longitud(lista):
contador = 0
for item in lista:
contador += 1
return contador
mi_lista = [1, 2, 3, 4, 5]
longitud = calcular_longitud(mi_lista)
print(f"La longitud de la lista es: {longitud}")
Ejercicio 5: Verificar si un número es primo¶
Descripción: Crea una función que reciba un número y verifique si es un número primo. Un número primo es aquel que solo es divisible por 1 y por sí mismo.
Ejercicio 5: Verificar si un número es primo
- Descripción: Crea una función que reciba un número y verifique si es un número primo. Un número primo es aquel que solo es divisible por 1 y por sí mismo.
Solución
def es_primo(numero):
if numero <= 1:
return False
for i in range(2, int(numero ** 0.5) + 1):
if numero % i == 0:
return False
return True
numero_usuario = int(input("Introduce un número para verificar si es primo: "))
if es_primo(numero_usuario):
print(f"El número {numero_usuario} es primo.")
else:
print(f"El número {numero_usuario} no es primo.")
7. Ejercicios prácticos (sin solución)¶
Ejercicio 1: Calcular el área de un círculo¶
- Descripción: Crea una función que reciba el radio de un círculo y calcule su área utilizando la fórmula
Área = π * radio^2. Usamath.pipara obtener el valor de π.
Ejercicio 2: Saludar a una persona¶
- Descripción: Crea una función que reciba el nombre de una persona y le imprima un mensaje de saludo como "¡Hola, [nombre]!" donde [nombre] es el nombre de la persona.
Ejercicio 3: Convertir grados Celsius a Fahrenheit¶
- Descripción: Crea una función que reciba una temperatura en grados Celsius y la convierta a Fahrenheit utilizando la fórmula
Fahrenheit = (Celsius * 9/5) + 32.
Ejercicio 4: Calcular la longitud de una lista¶
- Descripción: Crea una función que reciba una lista y devuelva su longitud sin utilizar la función
len().
Ejercicio 5: Verificar si un número es primo¶
- Descripción: Crea una función que reciba un número y verifique si es un número primo. Un número primo es aquel que solo es divisible por 1 y por sí mismo.
Ejercicio 6: Crear una calculadora simple¶
- Descripción: Crea una función que reciba dos números y un operador (
+,-,*,/) y devuelva el resultado de la operación.
Ejercicio 7: Convertir minutos a horas y minutos¶
- Descripción: Crea una función que reciba un número de minutos y lo convierta en horas y minutos (por ejemplo, 130 minutos -> 2 horas y 10 minutos).
Ejercicio 8: Crear una función que cuente las vocales¶
- Descripción: Crea una función que reciba una cadena de texto y cuente cuántas vocales contiene (a, e, i, o, u). La función debe devolver el número de vocales.
Ejercicio 9: Crear una función que reciba un número y lo imprima invertido¶
- Descripción: Crea una función que reciba un número entero y lo imprima de manera invertida. Por ejemplo, si recibe 12345, debe imprimir 54321.
Ejercicio 10: Encontrar el valor máximo en una lista¶
- Descripción: Crea una función que reciba una lista de números y devuelva el número más grande.
Soluciones ejericios prácticos¶
Soluciones
-
- Descripción: Crea una función que reciba el radio de un círculo y calcule su área utilizando la fórmula
Área = π * radio^2. Usamath.pipara obtener el valor de π.
Calcular el área de un círculo
1 2 3 4 5 6 7 8
import math def calcular_area(radio): return math.pi * radio ** 2 radio = float(input("Introduce el radio del círculo: ")) area = calcular_area(radio) print(f"El área del círculo es: {area}") - Descripción: Crea una función que reciba el radio de un círculo y calcule su área utilizando la fórmula
-
Saludar a una persona
- Descripción: Crea una función que reciba el nombre de una persona y le imprima un mensaje de saludo como "¡Hola, [nombre]!" donde [nombre] es el nombre de la persona.
1 2 3 4 5
def saludar(nombre): print(f"¡Hola, {nombre}!") nombre_usuario = input("¿Cómo te llamas? ") saludar(nombre_usuario) -
Convertir grados Celsius a Fahrenheit
- Descripción: Crea una función que reciba una temperatura en grados Celsius y la convierta a Fahrenheit utilizando la fórmula
Fahrenheit = (Celsius * 9/5) + 32.
1 2 3 4 5 6
def celsius_a_fahrenheit(celsius): return (celsius * 9/5) + 32 celsius = float(input("Introduce la temperatura en grados Celsius: ")) fahrenheit = celsius_a_fahrenheit(celsius) print(f"{celsius} grados Celsius son {fahrenheit} grados Fahrenheit.") - Descripción: Crea una función que reciba una temperatura en grados Celsius y la convierta a Fahrenheit utilizando la fórmula
-
Calcular la longitud de una lista
- Descripción: Crea una función que reciba una lista y devuelva su longitud sin utilizar la función
len().
1 2 3 4 5 6 7 8 9
def calcular_longitud(lista): contador = 0 for item in lista: contador += 1 return contador mi_lista = [1, 2, 3, 4, 5] longitud = calcular_longitud(mi_lista) print(f"La longitud de la lista es: {longitud}") - Descripción: Crea una función que reciba una lista y devuelva su longitud sin utilizar la función
-
Verificar si un número es primo
- Descripción: Crea una función que reciba un número y verifique si es un número primo. Un número primo es aquel que solo es divisible por 1 y por sí mismo.
1 2 3 4 5 6 7 8 9 10 11 12 13
def es_primo(numero): if numero <= 1: return False for i in range(2, int(numero ** 0.5) + 1): if numero % i == 0: return False return True numero_usuario = int(input("Introduce un número para verificar si es primo: ")) if es_primo(numero_usuario): print(f"El número {numero_usuario} es primo.") else: print(f"El número {numero_usuario} no es primo.") -
Crear una calculadora simple
- Descripción: Crea una función que reciba dos números y un operador (
+,-,*,/) y devuelva el resultado de la operación.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
def calculadora(num1, num2, operador): if operador == "+": return num1 + num2 elif operador == "-": return num1 - num2 elif operador == "*": return num1 * num2 elif operador == "/": if num2 != 0: return num1 / num2 else: return "Error: División por cero" else: return "Operador no válido" num1 = float(input("Introduce el primer número: ")) num2 = float(input("Introduce el segundo número: ")) operador = input("Introduce el operador (+, -, *, /): ") resultado = calculadora(num1, num2, operador) print(f"El resultado es: {resultado}") - Descripción: Crea una función que reciba dos números y un operador (
-
Convertir minutos a horas y minutos
- Descripción: Crea una función que reciba un número de minutos y lo convierta en horas y minutos (por ejemplo, 130 minutos -> 2 horas y 10 minutos).
1 2 3 4 5 6 7 8
def convertir_a_horas_y_minutos(minutos): horas = minutos // 60 minutos_restantes = minutos % 60 return horas, minutos_restantes minutos = int(input("Introduce el número de minutos: ")) horas, minutos_restantes = convertir_a_horas_y_minutos(minutos) print(f"{minutos} minutos son {horas} horas y {minutos_restantes} minutos.") -
Crear una función que cuente las vocales
- Descripción: Crea una función que reciba una cadena de texto y cuente cuántas vocales contiene (a, e, i, o, u). La función debe devolver el número de vocales.
1 2 3 4 5 6 7 8 9 10 11
def contar_vocales(texto): vocales = "aeiou" contador = 0 for letra in texto.lower(): if letra in vocales: contador += 1 return contador texto_usuario = input("Introduce un texto: ") cantidad_vocales = contar_vocales(texto_usuario) print(f"El texto tiene {cantidad_vocales} vocales.") -
Crear una función que reciba un número y lo imprima invertido
- Descripción: Crea una función que reciba un número entero y lo imprima de manera invertida. Por ejemplo, si recibe 12345, debe imprimir 54321.
1 2 3 4 5 6
def imprimir_invertido(numero): return str(numero)[::-1] numero_usuario = int(input("Introduce un número: ")) numero_invertido = imprimir_invertido(numero_usuario) print(f"El número invertido es: {numero_invertido}") -
Encontrar el valor máximo en una lista
- Descripción: Crea una función que reciba una lista de números y devuelva el número más grande.
1 2 3 4 5 6 7 8 9 10
def encontrar_maximo(lista): maximo = lista[0] for numero in lista: if numero > maximo: maximo = numero return maximo lista_numeros = [10, 25, 3, 8, 15] maximo = encontrar_maximo(lista_numeros) print(f"El número más grande es: {maximo}")