网易首页 > 网易号 > 正文 申请入驻

初学者必看!Python编程构建简单测验应用

0
分享至

对于初学者来说,Python 编程应该是有趣的。作为喜欢随机趣闻和游戏的人,为琐事之夜构建一个测验应用程序,是学习 Python 中一些很酷概念的有趣且令人兴奋的途径。让我们看看制作这个应用程序需要什么。

初学者 Python 编程入门

Python 是 世界上使用最为广泛的语言之一,对于初学者来说是一个容易的起点。它是如此简单的一个工具,我们已经 在 Python 中构建了一个简单的待办事项列表,包括添加和删除元素。这个项目会稍微复杂一些,但我们有相同的起始步骤。

如果您尚未下载并设置您的 IDE,这相对简单。大多数用户在 Windows 或 Linux 上运行 Python,但也有 Mac 版本。如果您不确定系统上是否有 Python,您可以 在命令行检查版本。版本号将告诉您是否安装了 Python 以及安装的语言版本。

我正在使用 Windows 版的 Python,并且我已经提供了关于如何 使用我选择的 IDE(Visual Studio)来设置 Python 的详细信息。作为复习,以下是步骤:

  • 为您的操作系统安装 Python。
  • 安装您的 IDE(在我的例子中是 Visual Studio)。
  • 检查版本以确保正确安装了 Python。
  • 启动一个新项目。

现在我们已经完成了基本设置,我们可以继续实际构建应用程序!

设置我们的自定义问题结构

由于这是一个测验应用程序,我们需要一些东西来存储我们的问题和答案。为此,我们将以这种格式设置自定义问题结构:

"问题": <在此处插入问题>,

"选项": [<以逗号分隔的字符串组成的列表>],

"正确答案": <与正确答案相对应的列表中的字符串>

为此,我们将整理五个问题的测试库,从中随机化它们出现的顺序:

# 测验问题

问题列表 = [

"问题": "法国的首都是什么?",

"选项": ["伦敦", "柏林", "巴黎", "马德里"],

"正确答案": "巴黎"

},

"问题": "哪个行星被称为红色行星?",

"选项": ["火星", "金星", "木星", "土星"],

“正确答案”: “火星”

},

“问题”: “钾的化学符号是什么?”,

“选项”: [“P”, “Po”, “K”, “Li”],

“正确答案”: “K”

},

“问题”: “亚伯拉罕·林肯出生于哪一年?”,

“选项”: [“1909”, “1811”, “1809”, “1776”],

“正确答案”: “1809”

},

“问题”: “雨林的地理名称是什么?”,

“选项”: [“泰加林”, “荒地”, “塞尔瓦斯”, “硬质地层”],

“正确答案”: “塞尔瓦斯”

这种结构被称作字典。在任何编程语言里,字典都是键值对的集合 。您能够通过在字典中搜索特定的键,找到与之相关联的值。

我们还需要导入随机库,以便对问题数组进行打乱操作。为此,我们将在代码顶部包含这一行:

import random

import 关键字能让我们“引入”所需的任何库。在这种情况下,我们将导入随机库,其中包含用于随机化列表和数组的有用函数。像这样重用代码是 Python 强大之处之一。如果您需要什么,可能在某个地方有一个库具有您正在寻找的函数。

显示问题并获取响应

既然我们已经确定了要问的问题,那就得弄明白怎么给用户显示这些问题,以及怎么从他们那儿获取答案。为此,我们将定义两个函数:

#用于在屏幕上显示问题的函数

defdisplay_question(question):

print(question["question"])

fori, optioninenumerate(question["options"], 1):

print(f"{i}. {option}")

#用于获取用户输入的函数

defget_user_answer():

whileTrue:

try:

choice = int(input('输入您的答案(1 - 4): '))

if 1 <= choice <= 4:

return choice - 1

else:

print('请输入 1 到 4 之间的数字。')

except ValueError:

print('无效输入。请输入一个数字。')

让我们分别研究这些函数并确定它们的用途。display_question() 函数将获取问题,将其输出到屏幕,并打印每个选项和数字值。get_user_answer() 函数将收集用户的响应,并将其与我们之前设置的问题中定义的正确答案进行比较。

get_user_answer 函数还将进行一些基本的错误检查。如果用户输入的不是数字或者数字超出了选项的范围,我们将再次提示他们输入答案。

设计测验

现在我们有了问题和提示答案的方法,我们需要随机化问题并允许玩家回答每个问题。为此,我们将设计一个名为 run_quiz() 的函数:

# 从头到尾运行测验

defrun_quiz():

分数为 0

总问题数为 len(questions)

random.shuffle(questions)

对于 questions 中的每个问题:

display_question(问题)

用户的选择通过 get_user_answer() 获取

如果 问题["options"][用户选择] == 问题["correct_answer"]:

打印("正确!")

分数 += 1

否则:

打印(f"对不起,那是不正确的。正确答案是:{问题['correct_answer']})

打印() # 为了可读性添加一个空行

打印(f"测验完成!您的得分是 {分数} ,总分是 {总问题数} 。")

百分比 = (分数 / 总问题数) * 100

打印(f"您的分数: {百分比:.2f}%")

在这个函数中,我们定义了一个分数变量,我们将用它来确定玩家在我们的测验中的成功程度。接下来,您会注意到 random.shuffle(questions) 这一行,它将改变程序向用户提问的顺序。当我们只有像这样的五个问题时,会有很多重叠。然而,一旦您开始包含几十个问题,就不太可能预测问题会以什么顺序被提问。

这个 for 循环遍历我们数组中的每个问题,提问并等待答案。如果玩家答对了问题,他们的分数就会增加。如果答错了,他们会被提示正确答案,这样他们下次就会学到。当我们完成测验时,程序会打印用户答对的最终分数,作为问题总数的百分比。

构建游戏循环

所有游戏 都需要一个游戏循环。在这种情况下,我们的主要游戏循环将是我们的 main() 函数:

# 主要游戏循环

定义 主函数():

当 True:

打印("欢迎来到 Python 测验游戏!")

运行测验函数()

再次游玩 = 输入("您想再次游玩吗? (是/否): ").lower()

如果 再次游玩!= '是':

打印("感谢游玩!再见!")

中断

如果 __name__ == "__main__":

main()函数

这个函数将封装我们的整个测验,并询问玩家是否想再次游玩。如果他们不想,它将退出游戏。如果他们想,它将重新打乱问题并再次提问。

整合所有内容

一旦我们编写并保存了所有代码,我们就可以运行测验。Visual Studio 有一个方便的“运行”按钮,我用它来启动我的测验游戏。结果令人印象深刻:

如果答案错误,我们甚至有更正,并且有最终的分数计算:

一切似乎都如预期般运行,所以我们没有任何错误需要修复。恭喜您完成了您自己的 Python 测验游戏项目!

更新、改进和挑战

这是一款简单直接的问答游戏,不过只有五个问题,并不是很能让人兴奋起来。

  • 增加问题数量:您拥有的问题越多,对于玩家而言,游戏的挑战性就越强。
  • 选择随机的问题子集:别老是问所有的问题,而是挑一个问题子集来问。这样能增加可重玩性,因为玩家不清楚下次会碰到哪些问题。
  • 设计一个更友好的用户界面:对于初学者来说,在 Python 编程中使用终端是可行的,但搭建一个实际的用户界面比您想象的容易多了。
从这里走向何方

如果您正在找一个功能更齐全的 Python 指南,那您应该去看看 帮助新开发人员的应用程序和网站。

编程的一大好处就是您不必遵循任何人的范例。您可以边学边干。您学到的每一样东西在您职业生涯的某个时候都能派上用场。

我已经 把这个问答游戏的完整代码上传到 GitHub 了,所以您可以跟您自己的进行对照检查。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
世上最失败4大工程:损失惨重,中国占俩!却说有意料之外效果?

世上最失败4大工程:损失惨重,中国占俩!却说有意料之外效果?

三毛看世界
2026-04-17 16:43:17
采访了100个娶了小三的男人,他们几乎都说了同一句话,让人恍然

采访了100个娶了小三的男人,他们几乎都说了同一句话,让人恍然

千秋文化
2026-04-15 20:18:32
日薪支出4.3亿!供养90万员工的京东,正成为互联网最重印钞机

日薪支出4.3亿!供养90万员工的京东,正成为互联网最重印钞机

我不叫阿哏
2026-04-27 13:22:45
中国开始不理会美国

中国开始不理会美国

杨风
2026-04-26 22:58:45
张本智和父亲怒斥:希望中国人不要骂我儿子,我们在日本很受尊敬

张本智和父亲怒斥:希望中国人不要骂我儿子,我们在日本很受尊敬

拳击时空
2026-04-28 06:23:25
伊朗最高法院维持死刑判决 父亲被判死刑女儿获刑25年

伊朗最高法院维持死刑判决 父亲被判死刑女儿获刑25年

桂系007
2026-04-27 23:59:53
火箭全队可交易!两年季后赛已认清现实,杜兰特或加盟东部两豪强

火箭全队可交易!两年季后赛已认清现实,杜兰特或加盟东部两豪强

你的篮球频道
2026-04-28 08:16:20
番茄或被发现?研究发现:吃得越多,高血压患者寿命或越长?真假

番茄或被发现?研究发现:吃得越多,高血压患者寿命或越长?真假

路医生健康科普
2026-04-28 09:06:15
杀良冒功引诱孩子吸毒的派所副所长,居然只判了五年

杀良冒功引诱孩子吸毒的派所副所长,居然只判了五年

熊太行
2026-04-28 09:18:55
美国海军MQ-25“黄貂鱼”完成首飞,画面很美进度很糟糕

美国海军MQ-25“黄貂鱼”完成首飞,画面很美进度很糟糕

三叔的装备空间
2026-04-28 10:27:07
女演员千万别整容《八千里路云和月》看43岁万茜和24岁王和就知道

女演员千万别整容《八千里路云和月》看43岁万茜和24岁王和就知道

亦暖追剧随笔
2026-04-17 12:28:50
离大谱!温州一男子手术9430余元费用中,卫生材料费高达3927元…

离大谱!温州一男子手术9430余元费用中,卫生材料费高达3927元…

火山詩话
2026-04-26 09:48:23
瑞幸抢先拿下“接水小猫”!怡宝痛失天选代言猫!

瑞幸抢先拿下“接水小猫”!怡宝痛失天选代言猫!

广告案例精选
2026-04-27 16:19:54
北影节圆满落幕:三大惊喜、两大遗憾、宋佳落选,吴彦姝赢麻了

北影节圆满落幕:三大惊喜、两大遗憾、宋佳落选,吴彦姝赢麻了

八斗小先生
2026-04-27 16:22:44
刚继承母亲330亿股份,我回婆家拿衣服,电梯口保安低声说:太太

刚继承母亲330亿股份,我回婆家拿衣服,电梯口保安低声说:太太

云端小院
2026-04-28 07:06:37
谁能夺得本赛季总冠军?马布里给出答案,看衰如日中天的上海队

谁能夺得本赛季总冠军?马布里给出答案,看衰如日中天的上海队

南海浪花
2026-04-28 08:00:51
赵丽颖上海咖啡店吃甜品被偶遇!戴棒球帽和眼镜,“巴掌脸”抢镜

赵丽颖上海咖啡店吃甜品被偶遇!戴棒球帽和眼镜,“巴掌脸”抢镜

明星私服穿搭daily
2026-04-28 07:56:34
社保严查全面收紧!无数中小企业,正在为十年前的小聪明买单

社保严查全面收紧!无数中小企业,正在为十年前的小聪明买单

芳姐侃社会
2026-04-25 18:32:12
看看什么叫绝望:华人首富被印度裔公开审讯对美国的忠诚!

看看什么叫绝望:华人首富被印度裔公开审讯对美国的忠诚!

金哥说新能源车
2026-04-27 04:58:31
事件反转?湖南如厕老兵底裤被扒:曝是刑满释放人员 多次闹访缠访

事件反转?湖南如厕老兵底裤被扒:曝是刑满释放人员 多次闹访缠访

小鋭有话说
2026-04-26 15:20:50
2026-04-28 11:00:49
科技的视界
科技的视界
最新国内外科技资讯
6455文章数 152关注度
往期回顾 全部

科技要闻

10亿周活目标落空!传OpenAI爆发内部分歧

头条要闻

"探店"网红白冰偷税超900万被查 官方公布案件细节

头条要闻

"探店"网红白冰偷税超900万被查 官方公布案件细节

体育要闻

人类马拉松"破二"新纪元,一场跑鞋军备竞赛

娱乐要闻

杨幂险遭蒸汽眼罩毁容!伤照曝光…

财经要闻

俞敏洪再遭重击

汽车要闻

领克900大五座正式上市 限时售价25.48万起

态度原创

本地
教育
亲子
游戏
公开课

本地新闻

云游中国|逛世界风筝都 留学生探秘中国传统文化

教育要闻

戴尔夫妇豪掷10亿美元,这所大学的未来有多亮眼?

亲子要闻

搭档选对能少走一半路

神作对对碰!《GTA》与《黑旗》时隔13年再次同期发售

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版