<p>我喜欢测验程序的前提,所以我很快就把自己的一个放在一起。这根本不是最优的,但它会记分,并验证您是否用数字回答,这样我们就可以更轻松地验证正确的答案</p>
<p>这是:</p>
<pre><code>def asker(question, alternatives, answer):
print(question)
for idx, alt in enumerate(alternatives):
idx +=1
print(f'{idx}. {alt}')
while True:
try:
ans = input("Answer(q to skip): ")
ans = int(ans)
break
except ValueError:
if ans.lower() == "q":
return False
print("Error, answer has to be a number. Please try again.")
return asker(question, alternatives, answer)
if ans == answer:
return True
return False
questions = [
[
"What is colder, -40C or -40F?", # The question itself
["-40C", "-40F", "They are both as cold"], # The alternatives of the question
3 # Answer, as an integer
],
[
"Who was the first president of the United States of America?",
["George Washington", "Thomas Jefferson", "Abraham Lincoln"],
1
],
[
"Are clowns scary?",
["Yes!", "No!"],
1
]
]
player = input("Name of the Player: ")
score = []
for q in questions:
score.append(asker(*q))
print("Results of the Quiz:")
print(f"'{player}' got {sum(score)} out of {len(questions)} correct!")
print("Congratulations!")
</code></pre>
<p>下面是一个演示:</p>
<pre><code>Name of the Player: Hampus
What is colder, -40C or -40F?
1. -40C
2. -40F
3. They are both as cold
Answer(q to skip): 3
Who was the first president of the United States of America?
1. George Washington
2. Thomas Jefferson
3. Abraham Lincoln
Answer(q to skip): 2
Are clowns scary?
1. Yes!
2. No!
Answer(q to skip): 1
Results of the Quiz:
'Hampus' got 2 out of 3 correct!
Congratulations!
</code></pre>