因此,对于我的项目,我试图让用户在文本框中键入一些内容,如果该内容等于数据库中存储的内容,那么它将告诉他们这是事实。但是,即使输入正确的内容,它也会返回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")
And this is the result it gives in Idle, along with what's in the database
请告诉我我在做错什么。
答案 0 :(得分:1)
您应该使用fetchone()
而不是fetchall()
。
fetchall()
返回许多行(例如:(('nucleus',),)
),而fetchone()
仅返回一行。
然后,您将获得如下内容:('nucleus',)
然后,您可以将其与labelA[0] == answerA
进行比较。