Как мне выйти из цикла внутри функции и вернуться к основной программе?Python

Программы на Python
Anonymous
Как мне выйти из цикла внутри функции и вернуться к основной программе?

Сообщение Anonymous »

Я работаю над созданием своего рода онлайн-библиотеки. Я использую SQLite3 с Python, и, по сути, я могу добавлять, удалять, просматривать свою библиотеку и искать книги.
Но если я выберу опцию поиска, я смогу найти книгу, и это даст мне результат, но он продолжает спрашивать меня, какую книгу я ищу, не возвращаясь к первоначальному приглашению, чего я не понимаю даже после добавления перерыва.
И это на самом деле не связано с «устранением неполадок/отладкой», а для функцию поиска, я бы хотел, чтобы пользователи могли искать книгу или автора вместе с написанными ими книгами. Однако что касается поиска авторов, я не знаю, как это сделать. У вас есть идеи?

Код: Выделить всё

import sqlite3
import os

dossier_actuel = os.path.dirname(os.path.abspath(__file__))
chemin_base_donnees = os.path.join(dossier_actuel, "bibliotheque.db")

def connection():
return sqlite3.connect(chemin_base_donnees)

def crea_biblio():
try:
with connection() as conn:
cursor = conn.cursor()
sql = '''CREATE TABLE IF NOT EXISTS Livres (
id_livre INTEGER PRIMARY KEY AUTOINCREMENT,
titre_livre TEXT,
auteur_livre TEXT
);'''
cursor.execute(sql)
conn.commit()
except Exception as e:
print(f"An error occured while creating the table : {e}")

def ajout_livre():
try:
with connection() as conn:
cursor = conn.cursor()
title = input("Which is the tittle of your new book : ")
author = input("Who is the author : ")
sql = "INSERT INTO Livres (titre_livre, auteur_livre) VALUES (?, ?);"
cursor.execute(sql, (title, author))
except Exception as e:
print(f"An error occurred while inserting the book: {e}")

def supp_livre():
try:
with connection() as conn:
cursor = conn.cursor()
nom = input("What is the title of the book you want to delete : ")
sql = '''DELETE FROM Livres WHERE titre_livre = ?;'''
cursor.execute(sql, (nom, ))
conn.commit()
except Exception as e:
print(f'An error occured while creating the table : {e}')

def view():
try:
with connection() as conn:
cursor = conn.cursor()
cursor.execute("SELECT id_livre, titre_livre, auteur_livre FROM Livres ORDER BY id_livre")
lignes = cursor.fetchall()
for ligne in lignes:
print(ligne[0], ligne[1], ligne[2])
except Exception as e:
print(f'An error occured while creating the table : {e}')

def search():
try:
with connection() as conn:
cursor = conn.cursor()
while True:
recherche = input("Quel livre recherchez-vous : ")
if recherche.upper() == 'FIN' :
break
sql = "select id_livre, titre_livre, auteur_livre from Livres where titre_livre like ?"
cursor.execute(sql, (recherche+'%',))
lignes = cursor.fetchall()
for ligne in lignes:
print(ligne[1], ligne[2])
break
except Exception as e:
print(f'An error occured while creating the table : {e}')

while True:
connection()
crea_biblio()
choice = input("Welcome to your online library. Would you like to (1) add a new book, (2) delete a book, (3) view your library, or (4) search for a book? ")

if choice=="1":
ajout_livre()
elif choice=="2":
supp_livre()
elif choice=="3":
view()
elif choice=="4":
search()
elif choice=="q":
break
P.S. Извините, некоторые части написаны на французском языке, а другие на английском — я не нашел времени, чтобы все стандартизировать.

Вернуться в «Python»