【问题标题】:Quiz from external text file Python来自外部文本文件 Python 的测验
【发布时间】:2017-11-22 05:20:09
【问题描述】:

我正在尝试创建一个测验,其中我有来自外部文本文件的问题和答案以导入 Python,以便用户可以输入选择。

问题是我的代码只在测验的结束打印一次"Correct",并且没有在回答每个问题后说明用户的问题是正确还是不正确。

第一列 (detail[0]) 是问题所在,正确答案在第四列 (detail[4]))

谢谢

这是文本文件中的内容:

What is 1+1,1,2,2
What is 2+2,4,2,4

下面是源代码:

def quiz():
    file = open("quiz.txt","r")
    right = False

    for line in file:
        detail = line.split(",")
        print(detail[0])
        select = input("Select 1 or 2: ")
        if select == detail[3]:
            right = True
            break

    if right == True:
        print("Correct")
    else:
        print("Incorrect")

【问题讨论】:

  • 好吧,当给出第一个正确答案时,您 break 退出了 for 循环,那么您期望会发生什么?
  • 另外你只在for循环完成后打印“正确”或“不正确”,所以只针对最后一个问题。
  • 我有一个类似的代码,它具有中断功能,所以我尝试使用它,但显然这是一个问题,所以我已经删除了它。您有什么建议可以纠正这个问题吗?

标签: python python-3.x


【解决方案1】:

只需将主要的for-loop 修改为print 那里的结果然后:

for line in file:
    detail = line.split(",")
    print(detail[0])
    select = input("Select 1 or 2: ")
    if select == detail[3]:
        print("correct!")
    else:
        print("incorrect :(")

【讨论】:

  • 感谢您的帮助,但它只适用于代码中的最后一个问题,不知道为什么。
  • 我认为这与文件的格式有关,真的是每行第三个逗号后面的问题吗?看一下,我相信你可以解决或者如果你被卡住了,在问题中发布文件内容
  • 我已将其添加到我的代码中,其中正确答案始终是文件中的最后一个,因此正确答案始终是详细信息[3]
  • 是的,我一直在重试并更改文件中的位置以查看是否有任何更改,但同样,仅适用于文件中的最后一个问题。不过还是谢谢
猜你喜欢
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
相关资源
最近更新 更多