我在while循环中遇到if语句时遇到了问题。
while pressed == 8 :
print(answerlistx[randomimage], answerlisty[randomimage])
entryx = e1.get()
entryy = e2.get()
answerx = answerlistx[randomimage]
answery = answerlisty[randomimage]
print(entryx, entryy)
if e1 == answerx and e2 == answery:
print("correct")
canvas.delete(images)
randomimage = random.randrange(0,49+1)
scorecounter = scorecounter + 1
game = PhotoImage(file=imagelist[randomimage])
images = canvas.create_image(30, 65, image = game, anchor = NW)
e1.delete(0, END)
e2.delete(0, END)
pressed = ''
else:
print("incorrect")
e1.delete(0, END)
e2.delete(0, END)
pressed = ''
while循环应该检查以查看条目小部件的输入是否与答案匹配,但即使答案正确,它也会转到else语句。我在if语句之前有2个打印语句打印输入,答案只是因为没有它,但它确实正确地显示了它。我还以为它可能与字符串和整数混合在一起所以我将答案列表中的所有答案都改为字符串而没有运气。 任何人都能弄清楚它有什么问题吗? 提前谢谢。
答案 0 :(得分:6)
您正在测试条目对象是否与答案相同。使用实际值:
if entryx == answerx and entryy == answery:
而不是针对e1
和e2
进行测试。