我在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循环应该检查entry小部件的输入是否与答案匹配,但即使答案正确,它也会转到else语句。我在if语句之前有两个print语句,用于打印输入和答案,以防没有,但它确实正确地显示了这两个值。我还认为这可能是字符串和整数的混合,所以我把答案列表中的所有答案都改成了字符串,运气不好。
有谁能弄清楚这是怎么回事吗?
提前谢谢。

最佳答案

您正在测试条目对象是否与答案相同。使用实际值:

if entryx == answerx and entryy == answery:

而不是针对e1e2进行测试。

10-08 19:00