python - 试图建立一个多项选择测验,但分数不断重置
问题描述
我正在尝试构建一个多项选择测验,从池中随机选择问题,然后在随机选择另一个问题之前删除已经提出的问题,同时保持分数(在这种情况下,'i' 代表分数)。我当前的问题是分数不断重置,因为(我相信)else/if 语句末尾的“frage()”调用将 i 设置为 0
我尝试在 fage() 方法之外定义分数并通常将其移动。我还尝试制作一系列 elif 语句,这样我就不必在每个输入提示的末尾使用 fage() ,但我觉得这使代码变得不必要地笨重和丑陋。
我是从这个测验的完全错误的方向开始的,还是我只是在某个地方犯了一个新手错误?
#chooses a question randomly from the pool and prints it
def frage():
random_idx = randint(0, len(question_pool) - 1)
print(question_pool[random_idx] ['frage'])
print(" ")
print("A:", question_pool[random_idx] ['a'],)
print("B:", question_pool[random_idx] ['b'],)
print("C:", question_pool[random_idx] ['c'],)
print("D:", question_pool[random_idx] ['d'])
#input prompt
score = 0
for i in range(0, len(question_pool) - 1):
guess = input("Was glaubst?: ")
guess = guess.lower()
#Result of input
if guess == question_pool[random_idx]['antwort']:
print(" ")
print("Ja freilich")
score = (score + 1)
print((str(score)) + (" Punkte"))
del question_pool[random_idx]
frage()
else:
print(" ")
print("Auweia")
print((str(i)) + (" Punkte"))
del question_pool[random_idx]
frage()
解决方案
您使用i
的是用于打印乐谱的循环计数器。对点使用另一个计数器
编辑:
也删除对 frage 的递归调用,它应该可以正常工作
推荐阅读
- javascript - Redux 操作未触发 - 没有错误
- maven - Maven 测试在本地(OSX)运行良好,但在移除 CI 机器上根本没有运行
- jira - 如何在 Jira Service Desk 中添加报告创建状态?
- r - 是否有语法糖来在 R 中定义数据框
- git - Git CodeCommit 凭证不断出现在 Mac OS X 上的 Keychain Access 中
- php - 如何修复“laravel 分页不更新搜索”
- c++ - 有没有办法创建一个以成员函数或成员为参数的函数?
- vue-component - Vue-tabilator:如何访问制表功能?
- c# - 按五分钟时间跨度分组
- vue.js - 请帮我理解 Vue 中 props 的使用