【发布时间】:2013-07-18 12:37:31
【问题描述】:
我在使用 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 个打印语句,答案是什么,以防万一它没有,但它确实正确显示了它。我还认为这可能是字符串和整数的混合,所以我将答案列表中的所有答案都更改为字符串,但没有运气。 任何人都能够弄清楚它有什么问题吗? 提前致谢。
【问题讨论】:
-
使用常识即可。如果它转到
else,e1 == answerx and e2 == answery不正确。时期。现在,找出原因。你检查过这些变量的类型和值吗?一些跟踪消息可以创造奇迹...... -
@KarolyHorvath OP 说“即使答案是正确的,它也会转到 else 语句”。
-
只是查看代码的观察结果,但您确定您不打算将
entryx和entryy与answerx和answery进行比较吗?因为这是您在比较之前打印的内容。目前,您正在比较e1和e2,您没有打印出来进行视觉验证。 -
@Haidro:我相信 python 编译器/运行时。我不相信OP。就这么简单。
-
@KarolyHorvath 这不是很好 tbh
标签: python if-statement while-loop