Untitled
unknown
plain_text
2 years ago
4.0 kB
13
Indexable
import sqlite3
def crear_tabla_libros():
conn = sqlite3.connect('biblioteca.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS libros (
id INTEGER PRIMARY KEY,
titulo TEXT NOT NULL,
autor TEXT NOT NULL,
editorial TEXT NOT NULL,
ejemplares_disponibles INTEGER DEFAULT 0
)
''')
conn.commit()
conn.close()
def agregar_libro():
titulo = input("☆ Ingrese el título del libro: ")
autor = input("☆ Ingrese el autor del libro: ")
editorial = input("☆ Ingrese la editorial del libro: ")
ejemplares = int(input("☆ Ingrese la cantidad de ejemplares disponibles: "))
conn = sqlite3.connect('biblioteca.db')
cursor = conn.cursor()
cursor.execute('''
INSERT INTO libros (titulo, autor, editorial, ejemplares_disponibles)
VALUES (?, ?, ?, ?)
''', (titulo, autor, editorial, ejemplares))
conn.commit()
conn.close()
def eliminar_libro():
libro_id = int(input("☆ Ingrese el ID del libro que desea eliminar:"))
conn = sqlite3.connect('biblioteca.db')
cursor = conn.cursor()
cursor.execute('DELETE FROM libros WHERE id = ?', (libro_id,))
if cursor.rowcount == 0:
print("\n☆ Libro no encontrado ☆")
else:
print("☆ Libro eliminado exitosamente ☆")
conn.commit()
conn.close()
def actualizar_libro():
libro_id = int(input("☆ Ingrese el ID del libro que desea actualizar: "))
nuevos_ejemplares = int(input("☆ Ingrese la nueva cantidad de ejemplares disponibles: "))
nueva_editorial = input("☆ Ingrese la nueva editorial del libro: ")
conn = sqlite3.connect('biblioteca.db')
cursor = conn.cursor()
cursor.execute('''
UPDATE libros
SET ejemplares_disponibles = ?, editorial = ?
WHERE id = ?
''', (nuevos_ejemplares, nueva_editorial, libro_id))
conn.commit()
conn.close()
def buscar_libros():
valor = input("☆ Ingrese el valor a buscar (título o autor): ")
conn = sqlite3.connect('biblioteca.db')
cursor = conn.cursor()
cursor.execute('''
SELECT * FROM libros
WHERE titulo LIKE ? OR autor LIKE ?
''', ('%' + valor + '%', '%' + valor + '%'))
libros_encontrados = cursor.fetchall()
if not libros_encontrados:
print("\n☆ Libro no encontrado ☆")
else:
for libro in libros_encontrados:
print(f"☆ ID: {libro[0]}, ☆ Título: {libro[1]}, ☆ Autor: {libro[2]}, ☆ Editorial: {libro[3]}, ☆ Ejemplares Disponibles: {libro[4]}")
conn.close()
return libros_encontrados
def listar_libros():
conn = sqlite3.connect('biblioteca.db')
cursor = conn.cursor()
cursor.execute('SELECT * FROM libros')
libros = cursor.fetchall()
for libro in libros:
print(f"☆ ID: {libro[0]}, ☆ Título: {libro[1]}, ☆ Autor: {libro[2]}, ☆ Editorial: {libro[3]}, ☆ Ejemplares Disponibles: {libro[4]}")
conn.close()
return libros
# Crear la tabla si no existe
crear_tabla_libros()
def switch(opcion):
opciones = {
'1': agregar_libro,
'2': eliminar_libro,
'3': actualizar_libro,
'4': buscar_libros,
'5': listar_libros,
'6': lambda: print("☆¡Hasta luego!☆"),
}
opciones.get(opcion, lambda: print("Opción no válida. Por favor, ingrese un número del 1 al 6."))()
while True:
print("\n✧‿ ︵‿ ୨♡୧‿ MENÚ ‿ ୨♡୧‿ ︵‿✧")
print("\n1. Agregar Libro")
print("2. Eliminar Libro")
print("3. Actualizar Libro")
print("4. Buscar Libros (por título o autor)")
print("5. Listar Todos los Libros")
print("6. Salir\n")
opcion = input("Ingrese el número de la opción deseada: ")
switch(opcion)
if opcion == '6':
break
Editor is loading...
Leave a Comment