Таким образом, для моего проекта я пытаюсь, чтобы пользователь вводил что-то в текстовое поле, и если он равен тому, что хранится в базе данных, тогда он скажет им, что это правда. Однако на данный момент, даже когда правильная вещь будет введена, она вернет false. Это текущий код для части, которая получает ответ, возвращает и сравнивает его:
def submit():
answerA=entry_A.get()
answerB=entry_B.get()
answerC=entry_C.get()
answerD=entry_D.get()
answerE=entry_E.get()
answerF=entry_F.get()
print(answerA,", ",answerB,", ",answerC,", ",answerD,", ",answerE,", ",answerF)
labelA=cursor.execute\
("select labelA from diagramLabels where diaName == 'plantCell'").fetchall()
con.commit()
if labelA == answerA:
print("Answer A is correct")
else:
print("Answer A is false")
И это результат, который он дает в Idle, а также то, что в базе данных
Пожалуйста, скажи мне, что я делаю неправильно.
Вы должны использовать fetchone()
вместо fetchall()
. fetchall()
возвращает несколько строк (например: (('nucleus',),)
), тогда как fetchone()
возвращает только одну строку. Затем вы получите что-то вроде этого: ('nucleus',)
Вы можете сравнить его с labelA[0] == answerA
.