经典猜数游戏(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技术和…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...