当前位置: 首页 > news >正文

从零开始学Python游戏编程13-整数3

在《从零开始学Python游戏编程11-整数1》、《从零开始学Python游戏编程12-整数2》中提到了定义整数以及输入整数的方法,接下来使用以上方法实现猜数字的游戏。

1 猜数字游戏的实现

游戏运行后,显示要求玩家猜数字的信息,当玩家输入数字后,游戏将玩家输入的数字与真正的“魔术数字”进行比较,如果两个数不相同,则显示错误信息后继续由玩家输入数字,直到猜对为止,此时会显示猜对的信息。代码如图1所示。

相关链接1 魔法数字,常在软件编程中可以看到,具体是指,该数字在程序源代码中,但是不知道该数字的含义和作用,即可读性很差。

图1 猜数字游戏代码

其中,第8行代码定义了“魔术数字”magicNumber的值是3,是一个整数类型;第9行代码使用while True语句,可以让玩家循环输入数字;第10-15行代码是while语句的代码段,第10行代码提示玩家输入猜的数字,并将其保存在number中;因为此时number是字符串类型,第11行代码通过int()将字符串类型转换为整数类型,并保存在变量playerNumber中;第12行代码通过if语句将玩家猜的数字playerNumber与魔术数字magicNumber进行比较;如果两个数相等,则表示玩家猜对了魔术数字,第13行代码显示玩家获胜的信息;第14行代码通过break跳出第9行中的while语句,游戏结束;如果两个数不相等,则说明玩家猜错了,第15行代码显示玩家猜错的信息,程序重新回到第9行代码重复以上过程。代码运行效果如图2所示。

图2 代码运行效果

2 猜数字游戏存在的问题

从图2可以看出,当玩家输入的是数字时,游戏运行正常,但是当玩家输入的不是数字,而是一段字符串时,游戏就会报错,如图3所示。

图3 游戏报错

从图3中可以看出,游戏运行后,提示玩家输入魔术数字,此时玩家输入的不是数字,而是英文字母“three”时,如图3①所示,按下回车后程序报错,报错的原因是第11行代码使用int()函数时,无法将玩家输入的“three”转化为整型,如图3②所示;错误类型是“ValueError”,如图3③所示。

3 猜数字游戏的改进

在“2 猜数字游戏存在的问题”中提到的问题,叫做“异常”,可以通过Python的异常处理语句来解决这个问题。

3.1 异常处理语句的用法

可以使用try…except语句来处理异常,该语句的用法如下所示。

try:
   产生异常的语句
except异常类型:
   处理异常的语句

其中,try语句的代码段中包括产生异常的语句,例如图1中第11行代码就是产生异常的语句;except语句后面跟的异常类型指的是诸如图3③中的“ValueError”的这种类型;except语句的代码段是处理异常的语句,当产生异常的语句产生的异常与except后面跟的异常类型匹配时,就会执行该except的代码段。

3.2 处理ValueError异常

在图1所示的代码中添加异常处理,代码如图4所示。

图4 添加了异常处理的代码

其中,第11-15行为添加了异常处理的代码,当玩家输入的不是数字而是字符串时,第12行中int()函数会发生ValueError异常,此时执行第14-15行代码,提示玩家输入正确格式的数字,并通过continue回到第10行代码。以上程序运行效果如图5所示。

图5 代码运行效果

相关文章:

  • 【LangChain Agent 】详解,构建自主决策的 LLM 应用
  • Django信号使用完全指南示例
  • 视频插帧EMAVFI:extracting motion and appearance via inter-frame attention for video
  • 虚拟世界的AI魔法:AIGC引领元宇宙创作革命
  • 【数据结构】排序算法(下篇·开端)·深剖数据难点
  • 高等数学同步测试卷 同济7版 试卷部分 上 做题记录
  • Spring Boot嵌入前端静态资源:从原理到实战的完整指南
  • 编译器优化技术解析
  • 鼠标连点器
  • js算法基础-01
  • python日期和时间、文件和目录操作
  • openstack云平台部署(脚本版)
  • 2025 年浙江保安员职业资格考试高效备考指南​
  • 学会把选择题变成填空题:如何主动设计人生答案
  • BACnet协议+设备数据接入
  • 2025 数字中国创新大赛数字安全赛道数据安全产业积分争夺赛初赛-东部赛区WriteUp
  • AI大模型与未来社会结构的重构:从工具到共生体
  • 代码随想录算法训练营第十一天
  • 前端AJAX请求上传下载进度监控指南详解与完整代码示例
  • ModuleNotFoundError: No module named ‘pandas‘
  • 网站内页没有排名/体验营销策略
  • 东莞公司建设网站制作/网站优化包括哪些
  • 南京鼓楼做网站/宁波seo入门教程
  • 龙岩网站建设方案优化/杭州优化关键词
  • public cms网站建设/深圳网站seo优化
  • 网站里的注册怎么做/长春百度网站优化