前言
我们这一节还是对之前学习内容的一个综合运用,主要涉及到函数编程、字典以及列表的使用、条件语句、循环结构等等。通过本节的学习读者可以检验之前内容的掌握情况。我们以问答游戏为例介绍这些知识点的具体运用方法。
实践
问答游戏,也即针对提出的问题用户给出正确答案的选项,如果答对就计一分,如果答错则不计分。所以不难想象,问答游戏需要为每一个问题设定正确答案,所以我们需要用字典来保存问题和答案的对应情况,其中问题为键,答案为值。
questions = {
"Who created Python?: ": "A",
"What year was Python created?: ": "B",
"Python is tributed to which comedy group?: ": "C",
"Is the Earth round?: ": "A"
}
可见我们创建了一个名为questions
的字典,其中一共包含四个问题以及他们的正确选项。除了答案的设计,我们还需要设计候选项供用户选择,每一个问题有四个选项。为了存储这些候选项,我们可以使用二维列表来存储:
options = [
["A. Guido van Rossum", "B. Elon Musk", "C. Bill Gates", "D. Mark Zuckerburg"],
["A. 1989", "B. 1991", "C. 2000", "D. 2016"],
["A. Lonely Island", "B. Smosh", "C. Monty Python", "D. SNL"],
["A. True", "B. False", "C. sometimes", "D. What's Earth?"]
]
每一行是一个问题的四个候选项。有了问题、正确答案、候选项之后,我们的问答游戏便可以进行了。我们这里采用模块化设计的思路,将整个问题分割为一个个子问题,然后对每个子问题分别编写函数进行实现。其实不难想,我们的问题可以分割为:开始游戏,答案检验,得分打印,询问是否再次游戏这四个部分。我们先来实现最简单的答案检验部分:
def Check_Answer(answer, guess):
if answer == guess:
print("CORRECT!")
return 1
else:
print("WRONG!"