En Python, def se utiliza para definir una función. Una función es un bloque de código reutilizable que realiza una tarea específica. A continuación, te proporciono tres ejemplos de definiciones de funciones en Python, junto con una explicación detallada de cada parte del código:
Ejemplo 1: Función simple sin argumentos ni valor de retorno
def saludar():
print("Hola, mundo!")
# Llamamos a la función para ejecutarla
saludar()def saludar():: Aquí estamos definiendo una función llamadasaludarsin argumentos. La declaración comienza con la palabra clavedef, seguida del nombre de la función y paréntesis vacíos (sin argumentos). El colon:indica el inicio del bloque de código de la función.print("Hola, mundo!"): Este es el cuerpo de la función. La función imprime "Hola, mundo!" en la consola.
Ejemplo 2: Función con argumentos y valor de retorno
def suma(a, b):
resultado = a + b
return resultado
# Llamamos a la función y almacenamos el resultado en una variable
resultado_suma = suma(5, 3)
print("La suma es:", resultado_suma)def suma(a, b):: Estamos definiendo una función llamadasumaque toma dos argumentos,ayb.resultado = a + b: Dentro de la función, calculamos la suma deayby la almacenamos en una variable llamadaresultado.return resultado: Devolvemos el valor calculado como resultado de la función.- Al llamar a la función
suma(5, 3), el resultado de la suma se almacena enresultado_sumay se imprime.
Ejemplo 3: Función con argumentos predeterminados
def saludar(nombre="usuario"):
print(f"Hola, {nombre}!")
# Llamamos a la función con y sin argumentos
saludar() # Imprime "Hola, usuario!"
saludar("Juan") # Imprime "Hola, Juan!"def saludar(nombre="usuario"):: Estamos definiendo una función llamadasaludarcon un argumentonombreque tiene un valor predeterminado de "usuario". Esto significa que si no se proporciona un valor al llamar a la función, se utilizará "usuario" como valor predeterminado.print(f"Hola, {nombre}!"): La función imprime un saludo que incluye el nombre proporcionado o el valor predeterminado si no se proporciona un nombre.
Espero que estos ejemplos te ayuden a comprender cómo se definen y utilizan las funciones en Python.
def saludar(nombre):
print(f"Hola, {nombre}!")
# Solicitamos el nombre al usuario y luego llamamos a la función
nombre = input("Como te llamas? ")
saludar(nombre)En este código:
- Definimos la función
saludarque toma un argumentonombre. - Luego, fuera de la función, solicitamos al usuario que ingrese su nombre utilizando
inputy almacenamos la entrada en la variablenombre. - Finalmente, llamamos a la función
saludarpasandonombrecomo argumento para que la función imprima el saludo con el nombre proporcionado por el usuario.
Claro, aquí tienes más ejemplos de cómo usar def para definir funciones en Python:
Ejemplo 4: Función con argumentos y sin valor de retorno
def suma(a, b):
resultado = a + b
# Llamamos a la función
suma(5, 3)- En este caso, definimos una función
sumaque toma dos argumentos,ayb. La función calcula la suma de estos números, pero no devuelve ningún valor (no hayreturn). - Llamamos a la función con
suma(5, 3), y la suma se calcula dentro de la función, pero no se almacena ni se muestra en la consola.
Ejemplo 5: Función con valor de retorno múltiple
def divide(a, b):
cociente = a // b # División entera
residuo = a % b
return cociente, residuo
# Llamamos a la función y almacenamos los valores de retorno en variables
resultado_cociente, resultado_residuo = divide(10, 3)
print("Cociente:", resultado_cociente)
print("Residuo:", resultado_residuo)- En este ejemplo, definimos una función
divideque toma dos argumentos,ayb. La función calcula tanto el cociente como el residuo de la división deaporby los devuelve como una tupla. - Llamamos a la función con
divide(10, 3)y almacenamos los valores de retorno en las variablesresultado_cocienteyresultado_residuo, que luego imprimimos.
Ejemplo 6: Función con recursión
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
# Llamamos a la función para calcular el factorial de 5
resultado = factorial(5)
print("Factorial de 5:", resultado)- En este ejemplo, definimos una función
factorialque calcula el factorial de un númeronutilizando recursión. - La función verifica si
nes igual a 0 y, si es así, devuelve 1 (caso base). Si no, calcula el factorial multiplicandonpor el factorial den - 1. - Llamamos a la función con
factorial(5)para calcular el factorial de 5 y lo almacenamos enresultado.
Estos ejemplos muestran diferentes formas de utilizar def para definir funciones en Python, desde funciones simples sin valor de retorno hasta funciones con argumentos y valor de retorno, e incluso funciones recursivas.
aquí tienes ejemplos de funciones interactivas de nivel medio que interactúan con el usuario:
Ejemplo 7: Calculadora simple
def calculadora():
print("Selecciona una operación:")
print("1. Suma")
print("2. Resta")
print("3. Multiplicación")
print("4. División")
opcion = input("Ingresa el número de la operación deseada: ")
num1 = float(input("Ingresa el primer número: "))
num2 = float(input("Ingresa el segundo número: "))
if opcion == "1":
resultado = num1 + num2
elif opcion == "2":
resultado = num1 - num2
elif opcion == "3":
resultado = num1 * num2
elif opcion == "4":
if num2 != 0:
resultado = num1 / num2
else:
resultado = "Error: División por cero"
else:
resultado = "Opción no válida"
print("Resultado:", resultado)
# Llamamos a la función para realizar cálculos
calculadora()- En este ejemplo, la función
calculadorainteractúa con el usuario para realizar operaciones matemáticas básicas. La función solicita al usuario que seleccione una operación (suma, resta, multiplicación o división), ingrese dos números y luego realiza la operación deseada.
Ejemplo 8: Conversor de temperatura
def conversor_temperatura():
print("Selecciona una opción:")
print("1. Convertir de Celsius a Fahrenheit")
print("2. Convertir de Fahrenheit a Celsius")
opcion = input("Ingresa el número de la opción: ")
temperatura = float(input("Ingresa la temperatura: "))
if opcion == "1":
resultado = (temperatura * 9/5) + 32
elif opcion == "2":
resultado = (temperatura - 32) * 5/9
else:
resultado = "Opción no válida"
print("Resultado:", resultado)
# Llamamos a la función para realizar conversiones de temperatura
conversor_temperatura()- En este caso, la función
conversor_temperaturapermite al usuario convertir temperaturas entre Celsius y Fahrenheit.
Ejemplo 9: Juego adivina el número
import random
def juego_adivina_numero():
numero_secreto = random.randint(1, 100)
intentos = 0
print("Bienvenido al juego Adivina el número.")
print("Estoy pensando en un número entre 1 y 100. ¡Adivina!")
while True:
intento = int(input("Ingresa tu suposición: "))
intentos += 1
if intento < numero_secreto:
print("Demasiado bajo. Intenta de nuevo.")
elif intento > numero_secreto:
print("Demasiado alto. Intenta de nuevo.")
else:
print(f"Felicitaciones. ¡Adivinaste el número en {intentos} intentos!")
break
# Llamamos a la función para jugar al juego Adivina el número
juego_adivina_numero()- Este ejemplo implementa un juego interactivo en el que el usuario intenta adivinar un número secreto generado al azar por la computadora.
Estas funciones interactivas permiten a los usuarios realizar cálculos, conversiones o participar en juegos mientras interactúan con el programa.
Aquí tienes ejemplos de funciones interactivas de nivel avanzado que permiten al usuario realizar tareas más complejas:
Ejemplo 10: Administrador de tareas
def administrador_tareas():
tareas = []
while True:
print("Opciones:")
print("1. Agregar tarea")
print("2. Ver tareas")
print("3. Salir")
opcion = input("Selecciona una opción: ")
if opcion == "1":
tarea = input("Ingresa la tarea: ")
tareas.append(tarea)
elif opcion == "2":
print("Tareas:")
for i, tarea in enumerate(tareas, start=1):
print(f"{i}. {tarea}")
elif opcion == "3":
break
else:
print("Opción no válida. Inténtalo de nuevo.")
# Llamamos a la función para administrar tareas
administrador_tareas()- En este ejemplo, la función
administrador_tareaspermite al usuario agregar, ver y gestionar tareas en una lista interactivamente.
Ejemplo 11: Calculadora de hipotecas
def calculadora_hipoteca():
principal = float(input("Monto del préstamo: $"))
tasa_interes = float(input("Tasa de interés anual (%): "))
plazo_anios = int(input("Plazo del préstamo (años): "))
tasa_interes_mensual = (tasa_interes / 100) / 12
plazo_meses = plazo_anios * 12
cuota_mensual = (principal * tasa_interes_mensual) / (1 - (1 + tasa_interes_mensual) ** -plazo_meses)
print(f"Cuota mensual: ${cuota_mensual:.2f}")
# Llamamos a la función para calcular una hipoteca
calculadora_hipoteca()- En este caso, la función
calculadora_hipotecapermite al usuario calcular la cuota mensual de una hipoteca en función del monto del préstamo, la tasa de interés y el plazo del préstamo.
Ejemplo 12: Generador de contraseñas seguras
import random
import string
def generar_contrasena(longitud):
caracteres = string.ascii_letters + string.digits + string.punctuation
contrasena = ''.join(random.choice(caracteres) for _ in range(longitud))
return contrasena
longitud_contrasena = int(input("Longitud de la contraseña: "))
contrasena_generada = generar_contrasena(longitud_contrasena)
print("Contraseña generada:", contrasena_generada)- Esta función
generar_contrasenacrea contraseñas seguras de la longitud especificada por el usuario, combinando letras mayúsculas y minúsculas, dígitos y caracteres especiales.
Estas funciones avanzadas permiten al usuario realizar tareas más complejas, como administrar tareas, calcular hipotecas y generar contraseñas seguras, mientras interactúan con el programa.
Las funciones de nivel profesional interactivo pueden involucrar tareas más complejas o procesamiento de datos. Aquí tienes tres ejemplos de funciones avanzadas que interactúan con el usuario:
Ejemplo 13: Buscador de archivos en un directorio
import os
def buscar_archivos():
ruta = input("Ingresa la ruta del directorio para buscar archivos: ")
extension = input("Ingresa la extensión de archivo a buscar (por ejemplo, '.txt'): ")
archivos_encontrados = []
for directorio_raiz, directorios, archivos in os.walk(ruta):
for archivo in archivos:
if archivo.endswith(extension):
archivos_encontrados.append(os.path.join(directorio_raiz, archivo))
print("Archivos encontrados:")
for archivo_encontrado in archivos_encontrados:
print(archivo_encontrado)
# Llamamos a la función para buscar archivos en un directorio
buscar_archivos()- Esta función permite al usuario especificar un directorio y una extensión de archivo, luego busca y muestra una lista de archivos en ese directorio que coinciden con la extensión especificada.
Ejemplo 14: Análisis de datos con pandas
import pandas as pd
def analizar_datos_csv():
archivo_csv = input("Ingresa la ruta del archivo CSV a analizar: ")
try:
df = pd.read_csv(archivo_csv)
estadisticas = df.describe()
print(estadisticas)
except FileNotFoundError:
print("Archivo no encontrado.")
except Exception as e:
print(f"Ocurrió un error: {e}")
# Llamamos a la función para analizar un archivo CSV con pandas
analizar_datos_csv()- En este ejemplo, la función permite al usuario cargar un archivo CSV utilizando la biblioteca Pandas y muestra estadísticas descriptivas del conjunto de datos.
Ejemplo 15: Envío de correos electrónicos
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def enviar_correo():
remitente = input("Correo del remitente: ")
contraseña = input("Contraseña del remitente: ")
destinatario = input("Correo del destinatario: ")
asunto = input("Asunto del correo: ")
mensaje = input("Mensaje: ")
try:
servidor_smtp = smtplib.SMTP("smtp.servidor.com", 587) # Reemplaza con el servidor SMTP correcto
servidor_smtp.starttls()
servidor_smtp.login(remitente, contraseña)
mensaje_correo = MIMEMultipart()
mensaje_correo["From"] = remitente
mensaje_correo["To"] = destinatario
mensaje_correo["Subject"] = asunto
mensaje_correo.attach(MIMEText(mensaje, "plain"))
servidor_smtp.sendmail(remitente, destinatario, mensaje_correo.as_string())
servidor_smtp.quit()
print("Correo enviado con éxito.")
except Exception as e:
print(f"Error al enviar el correo: {e}")
# Llamamos a la función para enviar un correo electrónico
enviar_correo()- Este ejemplo permite al usuario enviar correos electrónicos utilizando la biblioteca
smtplibde Python.
Estas funciones avanzadas interactúan con el usuario y realizan tareas más complejas, como buscar archivos, analizar datos y enviar correos electrónicos, lo que puede ser útil en aplicaciones profesionales y empresariales.