经典猜数游戏(python类封装)
五次机会猜测100以内随机正整数,我用初通的python类封装了代码并清屏上一次猜测提示,难有所增加咯。
(笔记模板由python脚本于2023年11月09日 12:31:30创建,本篇笔记适合掌握python循环和条件分支语句用法,初通python类的coder翻阅)
-
Python 官网:https://www.python.org/
-
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
- My CSDN主页、My HOT博、My Python 学习个人备忘录
- 好文力荐、 老齐教室
本文质量分:
本文地址: https://blog.csdn.net/m0_57158496/article/details/134308801
CSDN质量分查询入口:http://www.csdn.net/qc
- ◆ 经典猜数游戏
- 1、题目描述
- 2、算法解析
- 2.1 稍有难度
- 2.2 Python 类封装代码
◆ 经典猜数游戏
1、题目描述
题目描述截屏图片


【题目来源于 CSDN 问答社区提问“if语句实操(猜数字)”】
2、算法解析
此为经典题目,差不多编程学习都有练习过,知识点就是if判断+循环执行。逻辑简单易懂,更谈不上算法高深,在此我也不啰嗦解析了。
手写流程图

2.1 稍有难度
我在传统写法的基础上清屏了上一次猜数得到的提示,需要自己脑补记忆,使得玩耍的难度稍有增加。另我用python 3.x推崇的字符串插值格式化,编辑了游戏文本界面,稍微有了那么点儿顺眼。😋😋
代码运行效果截屏图片


做了输入防错处理


一般写法代码
#!/sur/bin/nve python
# coding: utf-8'''本案例的猜数字游戏是针对1-100以内的整数数字进行猜测,设定猜测的数字可通过input()函数接收,在案例描述中规定玩家只能有5次机会进行猜数,因此可使用for循环与rang()函数控制循环次数,在进行猜数过程中还需要对玩家输入的内容进行判断,可以使用if-elif 语句判断,使用isdigi()方法判断玩家输入的内容是否是数字;使用比较运算符判断玩家输入的数字是否符合在规定范围内;判断玩家输入的数字是否与设定猜测的数字相等,如果相等输出“恭喜你用了x次猜对了”,当输入次数达到5次时,则输出“很遗憾,x次机会已用尽,游戏结束,答案为y”。根据以 上分析可整理出以下实现思路:'''#(1)使用input()函数接收用户设定猜数的数值。
from random import randint
target = randint(1, 100) # 我认为(1)题目不妥,目标数值怎么可以从键盘输入哩。我这里改为机器随机出数(1~00)。#(2)使用for循环控制玩家猜测的次数。
for i in range(1, 6):while True:#(3)使用input()函数接收玩家输入的数据。guess = input(f"\033[2J\n{' 猜数字游戏 ':=^35}\n\n\n{' (输入1~100的整数) ':-^35}\n\n{'您猜?_':>16}").strip() #(5)判断输入的数据是否在指定范围内。#(4)判断输入数据的数据是否为数字。if not guess.isdigit():input(f"\n{' 请输入数字!':~^34}")elif not 1 <= int(guess) <= 100:input(f"\n{' 输入超出范围!':~^33}")else:guess = int(guess)break # 输入无误,退出while循环。'''(6)判断玩家输入的数据是否与设定猜测的数字-致,如果-致使用break语句跳出循环。(7)如果玩家输入的数据与设定猜测的数字不一-致,给出相应提示。'''if guess == target:print(f"\033[2J\n{' 猜数字游戏 ':=^35}\n\n\n{f' 恭喜你用了{i}次猜对了!':~^30}\n\n")exit() # 退出程序。elif guess < target:input(f"\n{f' 很遗憾,您猜小了!':~^31}")elif guess > target:input(f"\n{f' 很遗憾,您猜大了!':~^31}")#(8)当玩家猜测5次后,仍没有猜对,结束程序。
print(f"\033[2J\n{' 猜数字游戏 ':=^35}\n\n\n{' 很遗憾,5次机会已用尽!':^28}\n\n{f' 游戏结束,答案为{target}。':~^31}\n\n")
2.2 Python 类封装代码
我用我初通的python类,对猜数字游戏进行了封装,让代码更紧凑易读。
Python类封装的代码
#!/sur/bin/nve python
# coding: utf-8'''本案例的猜数字游戏是针对1-100以内的整数数字进行猜测,设定猜测的数字可通过input()函数接收,在案例描述中规定玩家只能有5次机会进行猜数,因此可使用for循环与rang()函数控制循环次数,在进行猜数过程中还需要对玩家输入的内容进行判断,可以使用if-elif 语句判断,使用isdigi()方法判断玩家输入的内容是否是数字;使用比较运算符判断玩家输入的数字是否符合在规定范围内;判断玩家输入的数字是否与设定猜测的数字相等,如果相等输出“恭喜你用了x次猜对了”,当输入次数达到5次时,则输出“很遗憾,x次机会已用尽,游戏结束,答案为y”。根据以 上分析可整理出以下实现思路:'''class Numgame:def __init__(self):#(1)使用input()函数接收用户设定猜数的数值。from random import randintself.target = randint(1, 100) # 我认为(1)题目不妥,目标数值怎么可以从键盘输入哩。我这里改为机器随机出数(1~00)。def _guess(self):while True:#(3)使用input()函数接收玩家输入的数据。guess = input(f"\033[2J\n{' 猜数字游戏 ':=^35}\n\n\n{' (输入1~100的整数) ':-^35}\n\n{'您猜?_':>16}").strip() #(5)判断输入的数据是否在指定范围内;(4)判断输入数据的数据是否为数字。if not guess.isdigit():input(f"\n{' 请输入数字!':~^34}")elif not 1 <= int(guess) <= 100:input(f"\n{' 输入超出范围!':~^33}")else:return int(guess) # 输入无误,退出while循环。def play(self):#(2)使用for循环控制玩家猜测的次数。for i in range(1, 6):guess = self._guess() # 调用_guess方法,获取玩家猜数。#(6)判断玩家输入的数据是否与设定猜测的数字一致,如果一致使用break语句跳出循环。if guess == self.target:print(f"\033[2J\n{' 猜数字游戏 ':=^35}\n\n\n{f'【Target: {self.target}】':^38}\n{'':﹊^20}\n\n{f' 恭喜你用了{i}次猜对了!':~^30}\n\n")exit() # 退出程序。#(7)如果玩家输入的数据与设定猜测的数字不一-致,给出相应提示。elif guess < self.target:input(f"\n{f' 很遗憾,您猜小了!':~^31}")elif guess > self.target:input(f"\n{f' 很遗憾,您猜大了!':~^31}")#(8)当玩家猜测5次后,仍没有猜对,结束程序。print(f"\033[2J\n{' 猜数字游戏 ':=^35}\n\n\n{' 很遗憾,5次机会已p用尽!':^28}\n\n{f' 游戏结束,答案为{self.target}。':~^31}\n\n")if __name__ == '__main__':Numgame().play() # 实例化猜数字游戏类并调用play方法开始游戏。
上一篇: Python类继承(单继承)(自定义“鸟”类,“鸣禽”、“猛禽”继承自“鸟”类,“画眉”、“百灵”继承自“鸣禽”,“鹰”、“雕”继承自“猛禽”)
下一篇:
我的HOT博:
本次共计收集 246 篇博文笔记信息,总阅读量 40.46w,平均阅读量 1644。已生成 16 篇阅读量不小于 4000 的博文笔记索引链接。数据采集于 2023-10-12 05:41:03 完成,用时 4 分 41.10 秒。
- ChatGPT国内镜像站初体验:聊天、Python代码生成等
( 59262 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/129035387
点赞:126 踩 :0 收藏:798 打赏:0 评论:71
本篇博文笔记于 2023-02-14 23:46:33 首发,最晚于 2023-07-03 05:50:55 修改。 - 让QQ群昵称色变的神奇代码
( 58086 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122566500
点赞:24 踩 :0 收藏:83 打赏:0 评论:17
本篇博文笔记于 2022-01-18 19:15:08 首发,最晚于 2022-01-20 07:56:47 修改。 - pandas 数据类型之 DataFrame
( 9173 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/124525814
点赞:6 踩 :0 收藏:31 打赏:0 评论:0
本篇博文笔记于 2022-05-01 13:20:17 首发,最晚于 2022-05-08 08:46:13 修改。 - 个人信息提取(字符串)
( 7215 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/124244618
点赞:1 踩 :0 收藏:13 打赏:0 评论:0
本篇博文笔记于 2022-04-18 11:07:12 首发,最晚于 2022-04-20 13:17:54 修改。 - Python列表(list)反序(降序)的7种实现方式
( 7161 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/128271700
点赞:5 踩 :0 收藏:22 打赏:0 评论:8
本篇博文笔记于 2022-12-11 23:54:15 首发,最晚于 2023-03-20 18:13:55 修改。 - 罗马数字转换器|罗马数字生成器
( 7035 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122592047
点赞:0 踩 :0 收藏:1 打赏:0 评论:0
本篇博文笔记于 2022-01-19 23:26:42 首发,最晚于 2022-01-21 18:37:46 修改。 - Python字符串居中显示
( 6966 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122163023
点赞:1 踩 :0 收藏:7 打赏:0 评论:1
本篇博文笔记 - 斐波那契数列的递归实现和for实现
( 5523 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122355295
点赞:4 踩 :0 收藏:2 打赏:0 评论:8
本篇博文笔记 - python清屏
( 5108 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/120762101
点赞:0 踩 :0 收藏:8 打赏:0 评论:0
本篇博文笔记 - 练习:字符串统计(坑:f‘string‘报错)
( 5103 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/121723096
点赞:0 踩 :0 收藏:1 打赏:0 评论:0
本篇博文笔记 - 回车符、换行符和回车换行符
( 5093 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/123109488
点赞:1 踩 :0 收藏:2 打赏:0 评论:0
本篇博文笔记于 2022-02-24 13:10:02 首发,最晚于 2022-02-25 20:07:40 修改。 - 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
( 4943 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/121645399
点赞:14 踩 :0 收藏:42 打赏:0 评论:0
本篇博文笔记 - 密码强度检测器
( 4323 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/121739694
点赞:1 踩 :0 收藏:4 打赏:0 评论:0
本篇博文笔记于 2021-12-06 09:08:25 首发,最晚于 2022-11-27 09:39:39 修改。 - 练习:生成100个随机正整数
( 4274 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122558220
点赞:1 踩 :0 收藏:6 打赏:0 评论:0
本篇博文笔记于 2022-01-18 13:31:36 首发,最晚于 2022-01-20 07:58:12 修改。 - 我的 Python.color() (Python 色彩打印控制)
( 4159 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/123194259
点赞:2 踩 :0 收藏:8 打赏:0 评论:0
本篇博文笔记于 2022-02-28 22:46:21 首发,最晚于 2022-03-03 10:30:03 修改。 - 罗马数字转换器(用罗马数字构造元素的值取模实现)
( 4149 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122608526
点赞:0 踩 :0 收藏:0 打赏:0 评论:0
本篇博文笔记于 2022-01-20 19:38:12 首发,最晚于 2022-01-21 18:32:02 修改。
精品文章:
- 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室
◆ Python 入门指南【Python 3.6.3】
好文力荐:
- 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
- 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
- 靠谱程序员的好习惯
- 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归
CSDN实用技巧博文:
- 8个好用到爆的Python实用技巧
- python忽略警告
- Python代码编写规范
- Python的docstring规范(说明文档的规范写法)
相关文章:
经典猜数游戏(python类封装)
五次机会猜测100以内随机正整数,我用初通的python类封装了代码并清屏上一次猜测提示,难有所增加咯。 (笔记模板由python脚本于2023年11月09日 12:31:30创建,本篇笔记适合掌握python循环和条件分支语句用法,初通python类的coder翻阅…...
环形链表~
题目描述 给你一个链表的头节点 head ,判断链表中是否有环。如果链表中存在环,则返回true。否则,返回false 。 解题思路 采用快慢指针的思想,创建fast和slow一快一慢指针,slow一次走一步,fast一次走两步&…...
GZ038 物联网应用开发赛题第1套
2023年全国职业院校技能大赛 高职组 物联网应用开发 任 务 书 (第1套卷) 工位号:______________ 第一部分 竞赛须知 一、竞赛要求 1、正确使用工具,操作安全规范; 2、竞赛过程中如有异议,可向现场考评人员反映,不得扰乱赛场秩序; 3、遵守赛场纪律,尊重考评人员…...
SQL关键字
SQL关键字包括以下内容: SELECT:从数据库表中查询数据 FROM:指定数据源表 WHERE:筛选满足条件的数据 GROUP BY:按照列或表达式将数据分组 HAVING:筛选分组后满足条件的数据 ORDER BY:按照列或表…...
第三章:人工智能深度学习教程-基础神经网络(第五节-了解多层前馈网络)
让我们了解反向传播网络 (BPN) 中的误差是如何计算的以及权重是如何更新的。 考虑下图中的以下网络。 反向传播网络(BPN) 上图中的网络是一个简单的多层前馈网络或反向传播网络。它包含三层,输入层有两个神经元 x 1和 x 2,隐藏层有两个神经元 z 1和 z 2,输出层有一个神经…...
如何实现Debian工控电脑USB接口安全管控
Debian 作为工控电脑操作系统具有稳定性、安全性、自定义性和丰富的软件包等优势,适用于要求高度可靠性和安全性的工控应用。 Debian 作为工控电脑操作系统在工业控制领域有很大优势,包括: 稳定性:Debian 的发布版以其稳定性而闻…...
开源知识库软件xwiki在Windows下的安装
文章目录 开源知识库软件-xwiki在windows上的部署0、参考文档1、前置环境准备1.1、Windows版本及系统配置1.2、JDK11安装1.3、Tomcat9安装1.4、MySQL5.7数据库的安装 2、xwiki安装3、配置3.1、修改配置支持对文档内容进行搜索 4、问题解决4.1、附件无法上传问题4.1、附件无法下…...
学习c#的第一天
目录 C# 简介 C# 强大的编程功能 C# 开发环境 .Net 框架(.Net Framework) C# 的集成开发环境 C# 有用的网站 C# 程序结构 C# 简介 C# 是一种由微软开发的现代、通用的面向对象编程语言,它已经得到了Ecma和ISO的认可。 C#最初是在.NE…...
机器学习实战——《跟着迪哥学Python数据分析与机器学习实战》
跟着迪哥学Python数据分析与机器学习实战 一、基础部分二、信用卡欺诈检测实战 —— 监督学习2.1 下采样与过采样2.1.1 过采样数据生成策略SMOTE 2.2 逻辑回归2.3 分类结果混淆矩阵2.4 过采样实战2.5 实战总结2.6 版本依赖排错 三、知识加油站¥银行卡的分类 一、基础…...
开源的全能维护 U 盘工具:Ventoy
开源的全能维护 U 盘工具:Ventoy 本篇文章聊聊迄今为止,我用着最舒服的一款开源 U 盘启动工具,Ventoy。 写在前面 好久不见,接下来计划写一个比较连续的内容,就先从最小的处着手吧。 经过长久的折腾,除…...
Redis7学习笔记01
一百零七、redis高级篇之缓存双写一致性面试题概览...
Redis的持久化机制和配置
Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。 Redis 的持久化机制有两种,第一种是RDB快照,第二…...
【IP固定】地平线开发板如何实现重启IP地址不变
文章目录 1 背景2 临时解决方案3 真正解决方案 1 背景 重新刷了地平线工具链OE包中BSP20230417的系统镜像,结果只能串口连接,无法实现网口连接,串口连接后,发现eth0和eth1的IP竟然是一样的,如下图所示 还挺少见的。 …...
CHATGPT----自然辩证法分析
CHATGPT----自然辩证法的要素,结构与功能 Chatgpt的要素组成: ChatGPT的构成主要包括语言模型、对话管理、知识库和用户接口等几个方面。 语言模型:ChatGPT的核心是语言模型,它是一种基于深度学习技术的自然语言处理模型&#…...
Python测试框架之pytest快速入门
pytest是一种流行的Python测试框架,支持创建简单的单元测试,也支持创建复杂的功能和集成测试。它提供了一系列有用的功能,能够方便地编写,组织和运行测试用例,并生成丰富的测试报告。 pytest的主要特点包括࿱…...
CSS 动画特效运用目录
主要是记录动画相关的特效实践案例和实现思路。 章节名称完成度难度文章地址完整代码下载地址拟态时钟动画完成一般文章地址完整代码下载...
css文本溢出省略号点点点
多行两端对齐省略号 .box {overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3; // 限制显示的行数,单行就改成1 }...
MSSQL 配置ORACLE 链接服务器
在有些场景,我们需要整合其他异构数据库的数据。我们可以使用代码去读取,经过处理后,再将数据保存到MSSQL数据库中。如果数据量比较大,但处理的逻辑并不复杂的情况下,这种方式就不是最好的办法。这时可以使用使用链接服…...
HiSilicon352 android9.0 适配红外遥控器
海思Android解决方案在原生Android基础上,基于传统电视用户使用习惯,增加了对红外遥控器和按键板的支持,使传统电视用户能更好适应智能电视方案。 一.功能描述: 在系统启动时,会先启动android_ir_user;vinp…...
0004Java安卓程序设计-springboot基于APP的鲜花商城
文章目录 **摘 要****目录**系统设计开发环境 编程技术交流、源码分享、模板分享、网课教程 🐧裙:776871563 摘 要 本毕业设计的内容是设计并且实现一个基于APP的鲜花商城。它是在Windows下,以MYSQL为数据库开发平台,java技术和…...
【六级】英语六级历年真题及答案解析PDF电子版(2015-2025年12月)
2026年上半年大学英语四六级考试将于6月13日举行!小编整理了2015年到2025年12月的全国大学英语六级CET6真题试卷、听力音频材料及答案解析,PDF电子版,方便大家随时下载学习。 2025年12月英语六级真题及答案解析(第一套࿰…...
神经网络训练核心挑战与实战解决方案
1. 神经网络训练的本质挑战训练神经网络就像教一个刚出生的婴儿认识世界——你需要提供足够多正确的例子,但又不能过度保护。这个过程的复杂性源于多个相互交织的因素。我在过去五年里训练过上百个不同架构的神经网络,发现即使是经验丰富的从业者也会在某…...
06、数据结构与算法---二叉树
递归的精髓其实在于关注好当前结点,尽可能少试图每次都将递归的过程在脑海里模拟一遍😮 一、树的理解 二叉树是最基本的树结构,先从此学起 这个结构像是生活中树的结构倒过来,根结点在上,叶子结点在最下 二、手动实现…...
3步掌握G-Helper:华硕笔记本性能控制的终极指南
3步掌握G-Helper:华硕笔记本性能控制的终极指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, an…...
Rust高性能网络抓包框架karasu:从零构建安全高效的流量分析工具
1. 项目概述:从“scozu/karasu”看开源项目命名背后的技术哲学最近在GitHub上闲逛,又发现了一个名字挺有意思的项目——scozu/karasu。乍一看,这像是一个典型的个人开发者仓库,用户名scozu加上项目名karasu。karasu在日语里是“乌…...
变电运维业务智能化管理系统设计与优化【附源码】
✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,查看文章底部二维码(1)电力远程智能巡视与一键顺控的运维优化策略&#x…...
路由选择协议技术
引言 在当今互联互通的网络世界中,数据包如何从源设备高效、准确地到达目的地,离不开路由选择协议的支撑。作为TCP/IP体系架构中的核心组成部分,路由选择协议负责动态维护网络中的路由表,确保数据能够沿着最优路径传输。本文将系统…...
VLOOKUP到XLOOKUP的正确打开方式
先说结论VLOOKUP是Excel里被用得最多也被骂得最多的函数,而XLOOKUP是它的全面升级版,能解决VLOOKUP几乎所有的痛点。如果你还在用VLOOKUP,是时候认识XLOOKUP了。这个东西是什么你一定遇到过这种场景,两张表,一张是员工…...
告别臃肿!用Pipenv虚拟环境给PyInstaller打包的exe瘦身提速(实测从167M到47M)
告别臃肿!用Pipenv虚拟环境给PyInstaller打包的exe瘦身提速(实测从167M到47M) 每次用PyInstaller打包Python脚本,生成的exe文件总是大得离谱,启动速度慢得像蜗牛?这可能是你的开发环境"太脏"了。…...
从波形到时序:手把手教你用create_clock搞定PLL输出、脉冲消隐等非标准时钟
从波形到时序:手把手教你用create_clock搞定PLL输出、脉冲消隐等非标准时钟 在芯片前端设计中,时钟约束的准确性直接影响时序收敛和功能实现。面对PLL输出、脉冲消隐等复杂时钟场景,传统50%占空比的简单约束方法往往力不从心。本文将深入解析…...
