用python中的循环验证正确答案

2024-10-01 19:23:07 发布

您现在位置:Python中文网/ 问答频道 /正文

很抱歉这个非描述性的问题,我不知道该怎么说。在

我试图编写一个程序(GUI),在这个程序中,我问用户问题,然后他们回答,看看他们是否正确,但是当我输入正确的答案时,它仍然显示为不正确。在

我的代码看起来像这样。在

问题1提示

txtQuestion = Text(Point(5,8), "Question 1")
txtQuestion.setTextColor("red")
txtQuestion.setSize(16)
txtQuestion.setStyle("bold")
txtQuestion.draw(win)

txtAnswer = Text(Point(1.5,4), "Answer 1: ")
txtAnswer.setTextColor(color_rgb(255,127,80))
txtAnswer.setSize(14)
txtAnswer.setStyle("bold")
txtAnswer.draw(win)

txtAnswer2 = Text(Point(1.5,3), "Answer 2: ")
txtAnswer2.setTextColor(color_rgb(255,127,80))
txtAnswer2.setSize(14)
txtAnswer2.setStyle("bold")
txtAnswer2.draw(win)

txtAnswer3 = Text(Point(1.5,2), "Answer 3: ")
txtAnswer3.setTextColor(color_rgb(255,127,80))
txtAnswer3.setSize(14)
txtAnswer3.setStyle("bold")
txtAnswer3.draw(win)

txtAnswer4 = Text(Point(1.5,1), "Answer 4: ")
txtAnswer4.setTextColor(color_rgb(255,127,80))
txtAnswer4.setSize(14)
txtAnswer4.setStyle("bold")
txtAnswer4.draw(win)

txtEnterAn = Text(Point(8,3), "Enter your answer below: ")
txtEnterAn.setTextColor("black")
txtEnterAn.draw(win)

entAnswer = Entry(Point(8,2), 3)
entAnswer.draw(win)

Answer1 = entAnswer.getText()


win.getMouse()

#loop for answer
if Answer1 == "A":
     txtCorrect = Text(Point(5,9), "Correct!")
     txtCorrect.setTextColor("black")
     txtCorrect.draw(win)
else:
    txtCorrect = Text(Point(5,9), "Inorrect!")
    txtCorrect.setTextColor("black")
    txtCorrect.draw(win)

现在我不知道为什么每次我输入“A”时,它仍然显示为不正确的,我知道在另一个程序中,我不得不浮动entAnswer变量,但我想这次我不必这样做,因为它是一个字符串。在

我一定是忽视了情况,但我不能指手画脚,任何帮助都将不胜感激,谢谢!在

另外,我没有把它和代码放在一起,但是我确实在上面初始化了变量,比如Answer1=“”等等


Tags: textanswerwinpointdrawboldtxtcorrectsetsize
3条回答

我看不出逻辑会失败的原因,但你确定你按的是“a”而不是“a”吗。在

这里的问题似乎是你误解了gui的工作原理。它不像大多数编程指令开始的顺序打印/读取代码。GUI小部件只创建自己,绘制到屏幕上并等待事件。在

这条线:

Answer1 = entAnswer.getText()

最后将Answer1设置为空字符串,因为此时用户还没有在文本框中输入任何内容。相反,您必须创建一个回调函数,当用户点击一个按钮来评分时,GUI将调用该函数。然后在该函数中,您将能够读取用户的答案并将其标记为正确或不正确。在

我建议再次阅读GUI库的教程,以了解GUI编程的事件驱动风格。在

我建议您将用户界面的细节从显示问题、获取答案和确定正确性的问题中抽象出来。你只需要一个命令行、基于文本的用户界面就可以解决所有这些问题。一旦你有了这些,你就可以自信地继续进行用户界面设计,知道问卷背后的逻辑是合理的。在

这个想法有好几个名字:分层,MVC,等等。我推荐它来解决这个问题,因为它可以帮助你学习解决那些更困难的问题的方法,而这些问题是必不可少的。在

相关问题 更多 >

    热门问题