经典猜数游戏(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技术和…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
