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

初学者必看!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.

相关推荐
热点推荐
不比不知道,一比吓一跳!日本激光武器连中国出口的都比不上

不比不知道,一比吓一跳!日本激光武器连中国出口的都比不上

深蓝独奏
2026-03-23 23:41:56
胡塞领导人:我们参战只打侵略者,中国不跟美以合污我们绝不为难

胡塞领导人:我们参战只打侵略者,中国不跟美以合污我们绝不为难

阿凫爱吐槽
2026-03-21 12:50:25
禁止所有中国外交官入境,不让两岸统一,这个国家比美国还要嚣张

禁止所有中国外交官入境,不让两岸统一,这个国家比美国还要嚣张

羽逸地之光
2026-03-19 14:02:05
如今黄金价格变成了一个天大的笑话,买黄金可笑到什么程度

如今黄金价格变成了一个天大的笑话,买黄金可笑到什么程度

趣味萌宠的日常
2026-03-24 02:32:16
周总理对毛主席说:“叶帅尚有一女在狱中”,毛主席说了9个字

周总理对毛主席说:“叶帅尚有一女在狱中”,毛主席说了9个字

芳芳历史烩
2026-03-23 18:23:17
赢了!协和董小姐她姑保住了党籍和退休金

赢了!协和董小姐她姑保住了党籍和退休金

熊太行
2025-08-15 19:09:13
杨紫真的已经瘦到天赋上限了,这也太牛了…

杨紫真的已经瘦到天赋上限了,这也太牛了…

手工制作阿歼
2026-02-22 13:25:34
CBA一夜3场惨案!上海4杀广东,北京3轮2败,最新积分:榜首易主

CBA一夜3场惨案!上海4杀广东,北京3轮2败,最新积分:榜首易主

小火箭爱体育
2026-03-23 22:03:01
英格兰队发布世界杯球衣:主场白色,客场红色上衣+蓝色球裤

英格兰队发布世界杯球衣:主场白色,客场红色上衣+蓝色球裤

懂球帝
2026-03-23 18:10:16
“转守为攻”,伊朗远程打击战力升级?

“转守为攻”,伊朗远程打击战力升级?

环球网资讯
2026-03-24 06:38:55
情侣参加酒局后回家,女子在男友洗漱时从客厅跳窗坠亡,家属向男友索赔 一审判了

情侣参加酒局后回家,女子在男友洗漱时从客厅跳窗坠亡,家属向男友索赔 一审判了

红星新闻
2026-03-23 11:38:32
陈冠希回应自己逐渐赵本山化

陈冠希回应自己逐渐赵本山化

微微热评
2025-12-06 00:28:48
《好好的时光》大结局!原来这才是真正的王元媛,比刘成还要狠

《好好的时光》大结局!原来这才是真正的王元媛,比刘成还要狠

动物奇奇怪怪
2026-03-24 01:11:10
中国也没法让美国改变主意,磋商和访华,都是特朗普的障眼法

中国也没法让美国改变主意,磋商和访华,都是特朗普的障眼法

阿握聊事
2026-03-24 05:13:18
CCTV不播!凌晨4点,郑钦文vs萨巴伦卡,2大优势助力,冲神奇纪录

CCTV不播!凌晨4点,郑钦文vs萨巴伦卡,2大优势助力,冲神奇纪录

大秦壁虎白话体育
2026-03-23 13:02:59
春秋航空工程师吴祖洪因挖出飞机手册隐蔽隐患 获国家有关部门通报表扬

春秋航空工程师吴祖洪因挖出飞机手册隐蔽隐患 获国家有关部门通报表扬

新民晚报
2026-03-23 12:25:00
武契奇吐槽中国导弹太贵,150万欧元一枚,能把北约吓傻眼

武契奇吐槽中国导弹太贵,150万欧元一枚,能把北约吓傻眼

利刃号
2026-03-19 17:29:06
山西两景区“闭关升级” 别跑空了!

山西两景区“闭关升级” 别跑空了!

黄河新闻网吕梁
2026-03-23 08:34:48
金价崩了!“1983年大抛售”重现,短线还要寻底?

金价崩了!“1983年大抛售”重现,短线还要寻底?

格隆汇
2026-03-23 12:38:55
网红富二代王政源被判入狱两年半,罚1500万,央视财经9分大制作

网红富二代王政源被判入狱两年半,罚1500万,央视财经9分大制作

裕丰娱间说
2026-03-23 08:55:04
2026-03-24 07:08:49
科技的视界
科技的视界
最新国内外科技资讯
6455文章数 150关注度
往期回顾 全部

科技要闻

裁掉2万多名员工后,扎克伯格对自己下手了

头条要闻

消息人士:谈判假消息欲为暗杀伊朗议长创造条件

头条要闻

消息人士:谈判假消息欲为暗杀伊朗议长创造条件

体育要闻

不敢放手一搏,你拿什么去争冠?

娱乐要闻

钟丽缇就女儿考拉争议道歉:女儿还小

财经要闻

市场见底了吗?谁在抛售?机构火线解读

汽车要闻

东风雪铁龙新凡尔赛C5X上市 官方一口价11.37万起

态度原创

家居
游戏
数码
旅游
教育

家居要闻

智慧生活 奢享家居

《CS2》更新上线:改换弹机制 换弹直接丢弹匣

数码要闻

再等等!苹果新款iPad 、Apple TV及HomePod mini仍预计今年推出

旅游要闻

秦兵:日本自毁“观光立国”战略前景

教育要闻

分数不够高、家里没资源?这4个专业就业比土木还难,填志愿慎选

无障碍浏览 进入关怀版