python guía 2
2024-09-05 Regresar Atrás
Guía Avanzada de Python en Termux: Funciones, Menús, y Bases de Datos
En esta segunda parte, profundizaremos en conceptos más avanzados de Python y cómo aplicarlos en Termux. Aprenderás a crear funciones, construir un menú interactivo y cómo implementar una pequeña base de datos de usuarios. Con esto, podrás comenzar a desarrollar aplicaciones más complejas.
1. Funciones en Python
Las funciones en Python son bloques de código reutilizables que permiten organizar mejor tu programa. Las funciones pueden aceptar entradas (llamadas parámetros) y devolver resultados.
Ejemplo básico de una función:
# Definir una función que salude
def saludar(nombre):
return f"Hola, {nombre}!"
# Llamar a la función
print(saludar("Carlos"))
En este ejemplo, la función saludar
recibe el parámetro nombre
y devuelve una cadena que incluye el saludo.
2. Menús Interactivos
Una de las aplicaciones más comunes de las funciones es crear menús interactivos que permitan ejecutar diferentes opciones en tu programa. Esto es útil para desarrollar programas más complejos que ofrecen múltiples funcionalidades.
Crear un Menú con Opciones
A continuación, crearemos un menú simple con dos opciones: una para listar los archivos en el directorio y otra para comprimir un archivo. También usaremos funciones para organizar el código.
import os
import zipfile
# Función para listar archivos en el directorio actual
def listar_directorios():
directorios = os.listdir('.')
print("Contenido del directorio actual:")
for elemento in directorios:
print(elemento)
# Función para comprimir un archivo
def comprimir_archivo():
archivo_a_comprimir = input("Introduce el nombre del archivo a comprimir: ")
if os.path.exists(archivo_a_comprimir):
with zipfile.ZipFile('archivo_comprimido.zip', 'w') as zipf:
zipf.write(archivo_a_comprimir)
print(f"Archivo {archivo_a_comprimir} comprimido en archivo_comprimido.zip")
else:
print("El archivo no existe.")
# Función para mostrar el menú
def mostrar_menu():
print("Menú de Opciones:")
print("1. Listar directorios")
print("2. Comprimir archivo")
print("3. Salir")
# Programa principal
def main():
while True:
mostrar_menu()
opcion = input("Selecciona una opción (1, 2, o 3): ")
if opcion == '1':
listar_directorios()
elif opcion == '2':
comprimir_archivo()
elif opcion == '3':
print("Saliendo del programa...")
break
else:
print("Opción no válida, intenta de nuevo.")
# Ejecutar el programa principal
main()
Explicación del código:
- La función
mostrar_menu
imprime las opciones disponibles. - El bucle
while True
permite que el programa siga ejecutándose hasta que el usuario seleccione la opción de salir (opción 3
). - Las funciones
listar_directorios
ycomprimir_archivo
se llaman según la opción que elija el usuario.
Este tipo de menú es el inicio de cualquier aplicación que permita realizar varias acciones, y el hecho de usar funciones hace que el código sea más fácil de leer y mantener.
3. Creación de una Pequeña Base de Datos de Usuarios
Ahora crearemos un ejemplo más avanzado: una pequeña base de datos de usuarios que permite agregar nuevos usuarios y listar los existentes. Para este ejemplo, utilizaremos un archivo de texto como nuestra “base de datos” para mantener las cosas simples.
Script para manejar usuarios:
- Crear un archivo llamado
usuarios.py
en Termux:
nano usuarios.py
- Escribir el siguiente código para gestionar usuarios:
import os
# Función para agregar un nuevo usuario a la base de datos (archivo)
def agregar_usuario():
nombre = input("Introduce el nombre del usuario: ")
edad = input("Introduce la edad del usuario: ")
with open("usuarios.txt", "a") as archivo:
archivo.write(f"{nombre},{edad}\n")
print(f"Usuario {nombre} agregado correctamente.")
# Función para listar todos los usuarios
def listar_usuarios():
if os.path.exists("usuarios.txt"):
with open("usuarios.txt", "r") as archivo:
print("Usuarios registrados:")
for linea in archivo:
nombre, edad = linea.strip().split(',')
print(f"Nombre: {nombre}, Edad: {edad}")
else:
print("No hay usuarios registrados.")
# Función para mostrar el menú
def mostrar_menu():
print("\nMenú de Usuarios:")
print("1. Agregar usuario")
print("2. Listar usuarios")
print("3. Salir")
# Programa principal
def main():
while True:
mostrar_menu()
opcion = input("Selecciona una opción (1, 2, o 3): ")
if opcion == '1':
agregar_usuario()
elif opcion == '2':
listar_usuarios()
elif opcion == '3':
print("Saliendo del programa...")
break
else:
print("Opción no válida, intenta de nuevo.")
# Ejecutar el programa principal
main()
Explicación del código:
agregar_usuario
: Permite agregar un nuevo usuario con nombre y edad a un archivo llamadousuarios.txt
.listar_usuarios
: Lee el archivousuarios.txt
y muestra todos los usuarios almacenados.mostrar_menu
: Ofrece las opciones para agregar o listar usuarios.main
: Controla el ciclo principal del programa.
Guardar y ejecutar:
Para guardar el archivo, usa Ctrl + O
, luego Enter
, y para salir, usa Ctrl + X
. Para ejecutar el programa, escribe:
python usuarios.py
4. Desafío: Añadir Búsqueda de Usuario
Como práctica adicional, puedes agregar una función que permita buscar un usuario específico por nombre. Aquí tienes un ejemplo básico:
def buscar_usuario():
nombre_buscar = input("Introduce el nombre del usuario a buscar: ")
if os.path.exists("usuarios.txt"):
with open("usuarios.txt", "r") as archivo:
for linea in archivo:
nombre, edad = linea.strip().split(',')
if nombre.lower() == nombre_buscar.lower():
print(f"Usuario encontrado: Nombre: {nombre}, Edad: {edad}")
return
print("Usuario no encontrado.")
else:
print("No hay usuarios registrados.")
Luego, agrega esta opción en el menú principal y llámala desde main()
.
5. Explorando Bases de Datos Reales
Aunque en este ejemplo hemos usado un archivo de texto, Python también permite trabajar con bases de datos reales como SQLite o MySQL. Para SQLite, la biblioteca estándar de Python incluye soporte. A continuación, te muestro cómo puedes usar SQLite:
Ejemplo básico con SQLite:
import sqlite3
# Crear una conexión a la base de datos
conn = sqlite3.connect('usuarios.db')
c = conn.cursor()
# Crear una tabla si no existe
c.execute('''CREATE TABLE IF NOT EXISTS usuarios
(nombre TEXT, edad INTEGER)''')
# Insertar un usuario
c.execute("INSERT INTO usuarios VALUES ('Carlos', 25)")
# Guardar los cambios
conn.commit()
# Cerrar la conexión
conn.close()
Conclusión
Con estos ejemplos más avanzados, ahora tienes una mejor comprensión de cómo desarrollar programas interactivos en Python, crear menús, gestionar datos de usuarios y utilizar archivos como base de datos en Termux. Con la práctica, podrás seguir creando aplicaciones más útiles y complejas.
Continúa explorando, probando nuevas funcionalidades y desafíos.