首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python简单测验程序-如何解决问题循环

Python简单测验程序-如何解决问题循环
EN

Stack Overflow用户
提问于 2019-02-13 13:17:10
回答 2查看 958关注 0票数 0

Python中的学习者(版本为2.7.5)。

目前,我正在开发一个简单的测验脚本,允许用户重新回答问题,并限制用户回答错误问题的机会。

因此,将总限制设置为5,并且消息(例如“结束!”)将在达到限制时显示给用户。所有问题都共享该限制。

当我测试下面提到的脚本时,我发现了几个问题。

1)即使问题1答错了5次,问题2仍然会显示,如果已经达到限制,如何阻止下一个问题出现?

2)我想问一下,我应该在哪里插入结束消息的代码(" end !")如果达到了限制呢?

非常感谢!

代码语言:javascript
运行
复制
def quiz():
score = 0
counter = 0
print "Please answer the following questions:"
print "Question 1 - ?"
print "a."
print "b."
print "c."
while counter <5:
    answer = raw_input("Make your choice:")
    if answer == "c":
        print("Correct!")
        score = score +1
    else:
        print("Incorrect!")
        counter = counter +1
print "Question 2 - ?"
print "a."
print "b."
print "c."
while counter <5:
    answer2 = raw_input("Make your choice:")
    if answer2 == "a":
        print("Correct!")
        score = score +1
    else:
        print("Incorrect!")
        counter = counter +1
    print
    print ("Your score is ") + str(score)

附注:代码似乎与复制和粘贴功能有点不协调。很抱歉给您带来不便

EN

回答 2

Stack Overflow用户

发布于 2019-02-13 13:27:14

你真的应该对它进行重构,让它少一点重复。因此,我会将问题和答案逻辑放入它们自己的函数中,并传入问题文本和正确答案。然而,按原样使用您的代码,每次您递增计数器时,都需要检查它是否大于5,并且只使用while True进行循环。因此,对于每个问题:

代码语言:javascript
运行
复制
correct = "a"
while True:
    answer = raw_input("Make your choice:")
    if answer == correct:
        print("Correct!")
        score = score +1
        break
    else:
        print("Incorrect!")
        counter = counter +1
        if counter == 5:
            print "END!"
            return
        break
票数 0
EN

Stack Overflow用户

发布于 2019-02-13 13:33:17

您总是打印第二个问题,而不检查是否达到了错误答案的限制。在打印第二个问题之前,您可以这样做

代码语言:javascript
运行
复制
if counter >= 5:
    print "END!"
    return

如果达到限制,则条件中的return语句将终止quiz函数。这需要在打印任何问题之前完成。

此外,您可以使用带有答案的问题列表和一个简单的for循环来迭代所有问题,避免每次都重复相同的逻辑,从而改进代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54663012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档