Я получаю сообщение об ошибке: "UnboundLocalError: локальная переменная 'text_to_print', на которую ссылаются до назначения" - PullRequest
1 голос
/ 16 апреля 2020
def search():

        def back():
            searchwindow.destroy()

        def submit():
            inputID = ID.get()
            if inputID == "":
                messagebox.showerror("Error", "Please Enter An ID")
            elif len(inputID) != 6:
                messagebox.showerror("Error", "ID Must Be 6 Characters Long")
            else:
                cursor.execute(("SELECT * FROM tblRoomAllocation WHERE roomID = ?"), (inputID,))
                records = cursor.fetchall()
                for record in records:
                    text_to_print = str(record[0]) + " | " + str(record[1]) + " | " + str(record[2]) + " | " + str(record[3]) + " | " + str(record[4]) 
                messagebox.showinfo("Search Results", text_to_print)

Я попытался сделать "text_to_print" глобальным, и он все еще выдает мне ту же ошибку. Я только новичок в этом, поэтому, пожалуйста, помогите. Спасибо за любую помощь.

1 Ответ

1 голос
/ 16 апреля 2020

Поместите последнюю строку в остальное:

for record in records:
    text_to_print = str(record[0]) + " | " + str(record[1]) + " | " + str(record[2]) + " | " + str(record[3]) + " | " + str(record[4]) 
if records:
     messagebox.showinfo("Search Results", text_to_print)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...