python实验1 猜数字游戏
实验0:猜数字游戏
- 1. 猜数字游戏 版本1
- 2. 猜数字游戏 版本2
- 3. 猜数字游戏 版本3
- 4. 猜数字游戏 版本4
1. 猜数字游戏 版本1
- 题目
猜数字游戏。在程序中预设一个0-9之间的整数, 让用户通过键盘输入所猜的数, 如果大于预设的数,显示“你猜的数字大于正确答案”: 小于预设的数,显示“你猜的数字小于正确答案”, 如此循环,直至猜中该数,显示“你猜了N次,猜对了,真厉害”, 其中N是用户输入数字的次数。 - 题目分析
- 要实现用户输入数字进行比较大小的功能
- 要实现判断是否输入的内容为数字
- 要实现判断用户输入的内容是否为0-9之间数
- 第一次作答
# 1. guess_game.py 自己写的answer = 1 times = 1 guess_int = 100 while (not answer == guess_int):# 把判断int和正确区域放在里边,以便于刷新guess_intis_int = Falseis_correct_area = Falseguess = input("请猜一个0-9之间的整数:")# 判断是否为0-9之间的数字while (not is_correct_area):# 利用try-except将字符型转换为int型while (not is_int):try:guess_int = int(guess)is_int = Trueexcept ValueError:guess = input("输入无效,不是一个整数,请再次输入:")if guess_int < 0 or guess_int > 9:guess = input("输入无效,不是0-9之间的整数,请再次输入:")is_int = Falseelse:is_correct_area = Trueprint(guess_int)# 进行比较大小# times作为记的次数times += 1if guess_int < answer:print("你猜的数字小于正确答案")elif guess_int == answer:print("你猜了{}次,猜对了,真厉害".format(times-1))else:print("你猜的数字大于正确答案")if answer == guess_int:break- 运行结果
请猜一个0-9之间的整数:你好 输入无效,不是一个整数,请再次输入:10 输入无效,不是0-9之间的整数,请再次输入:8 8 你猜的数字大于正确答案 请猜一个0-9之间的整数:3 3 你猜的数字大于正确答案 请猜一个0-9之间的整数:0 0 你猜的数字小于正确答案 请猜一个0-9之间的整数:1 1 你猜了4次,猜对了,真厉害 请按任意键继续. . . - 第一次作答总结
- 第一个while的判断条件写的麻烦,直接就是
while True就可以(not answer == guess_int是按照文字意思但是计算机语言就是可以简写) - 把分析的三条功能分为三个独立的个体去看实际上可以合并起来写
- 由于前两个原因导致变量过于繁多
- 第一个while的判断条件写的麻烦,直接就是
- 运行结果
- 第二次作答
# 3. guess_game.py 第二次写answer = 3 N = 0 while True:try:guess_int = int(input("请输入0-9之间的数字:"))if 0 <= guess_int <= 9:N += 1# 注意N要放在合格变量的里边if guess_int < answer:print("你猜的数字小于正确答案")elif guess_int == answer:print("你猜了{}次,猜对了,真厉害".format(N))breakelse:print("你猜的数字大于正确答案")else:print("输入的范围错误请重新输入。")except ValueError:print("输入格式错误请再次输入。")- 运行结果
请输入0-9之间的数字:你好 输入格式错误请再次输入。 请输入0-9之间的数字:10 输入的范围错误请重新输入。 请输入0-9之间的数字:8 你猜的数字大于正确答案 请输入0-9之间的数字:1 你猜的数字小于正确答案 请输入0-9之间的数字:7 你猜的数字大于正确答案 请输入0-9之间的数字:5 你猜的数字大于正确答案 请输入0-9之间的数字:4 你猜的数字大于正确答案 请输入0-9之间的数字:3 你猜了7次,猜对了,真厉害 请按任意键继续. . . - 第二次作答总结
- 计数变量N需要放在合格变量里边否则输入错误变量之后也会计数
- try-except
- 运行结果
- chatgpt答案
# 0.guess_game.py chatgptanswer = 5 # 你预设的正确答案 times = 0 while True:guess = input("请猜一个0-9之间的整数:")try:guess_int = int(guess)if 0 <= guess_int <= 9:times += 1 # 统计猜的次数if guess_int < answer:print("你猜的数字小于正确答案")elif guess_int > answer:print("你猜的数字大于正确答案")else:print(f"你猜了{times}次,猜对了,真厉害")breakelse:print("输入无效,不是0-9之间的整数,请再次输入")except ValueError:print("输入无效,不是一个整数,请再次输入")- 运行结果
请猜一个0-9之间的整数:你好 输入无效,不是一个整数,请再次输入 请猜一个0-9之间的整数:10 输入无效,不是0-9之间的整数,请再次输入 请猜一个0-9之间的整数:5 你猜了2次,猜对了,真厉害 请按任意键继续. . .
- 运行结果
2. 猜数字游戏 版本2
- 题目
猜数字游戏续。 改编1中的猜数字游戏, 让计算机能够随机产生一个预设数字, 范围在0-100之间,其他游戏规则不变。 - 作答
# 1. guess_game.py 自己写的import randomanswer = random.randint(0, 100) N = 0 while True:try:guess_int = int(input("请输入0-100之间的数字:"))if 0 <= guess_int <= 100:N += 1# 注意N要放在合格变量的里边if guess_int < answer:print("你猜的数字小于正确答案")elif guess_int == answer:print("你猜了{}次,猜对了,真厉害".format(N))breakelse:print("你猜的数字大于正确答案")else:print("输入的范围错误请重新输入。")except ValueError:print("输入格式错误请再次输入。") - 运行结果
请输入0-100之间的数字:你好 输入格式错误请再次输入。 请输入0-100之间的数字:110 输入的范围错误请重新输入。 请输入0-100之间的数字:50 你猜的数字小于正确答案 请输入0-100之间的数字:75 你猜的数字小于正确答案 请输入0-100之间的数字:85 你猜的数字大于正确答案 请输入0-100之间的数字:80 你猜的数字小于正确答案 请输入0-100之间的数字:83 你猜了6次,猜对了,真厉害 请按任意键继续. . .
3. 猜数字游戏 版本3
- 题目
猜数字游戏再续。 用变量maxtimes设置允许猜数字的最大次数 (比如最多只允许猜6次maxtimes=6) 并在猜错后提示还有几次机会。 用for循环改写整个程序,并提交。 (提示,猜对后可使用break跳出循环) - 用while循环(没按照要求)
# 1. guess_game.py 自己写的(while循环增加判断功能的代码)import randomanswer = random.randint(0, 100) N = 0 maxtimes = 6 while True: # 改为for循环,但是由于for循环一旦开始就无法改变循环次数,需要进行改变,要有前提条件猜对了才算次数try:guess_int = int(input("请输入0-100之间的数字:"))if 0 <= guess_int <= 100:N += 1if guess_int < answer:if N == maxtimes: # 由于不想增加while循环的次数所以在这里增加判断break的条件,也可以在下一次循环的时候增加判定break的条件,会减少几行代码print("次数用尽了,最终答案是{}".format(answer))breakelse:print("你猜的数字小于正确答案,你还有{}次机会。".format(maxtimes-N))elif guess_int == answer:print("你猜了{}次,猜对了,真厉害".format(N))breakelse:if N == maxtimes:print("次数用尽了,最终答案是{}".format(answer))breakelse:print("你猜的数字大于正确答案,你还有{}次机会。".format(maxtimes-N))else:print("输入的范围错误请重新输入。")except ValueError:print("输入格式错误请再次输入。") - 运行结果
请输入0-100之间的数字:你好 输入格式错误请再次输入。 请输入0-100之间的数字:10000 输入的范围错误请重新输入。 请输入0-100之间的数字:10 你猜的数字小于正确答案,你还有5次机会。 请输入0-100之间的数字:50 你猜的数字小于正确答案,你还有4次机会。 请输入0-100之间的数字:30 你猜的数字小于正确答案,你还有3次机会。 请输入0-100之间的数字:303 输入的范围错误请重新输入。 请输入0-100之间的数字:2 你猜的数字小于正确答案,你还有2次机会。 请输入0-100之间的数字:1 你猜的数字小于正确答案,你还有1次机会。 请输入0-100之间的数字:0 次数用尽了,最终答案是92 请按任意键继续. . . - 用for循环少了两个功能
# 2. guess_game.py for循环没有检查格式的代码 import randomanswer = random.randint(0, 100) N = 0 maxtimes = 6 for i in range(maxtimes):guess = int(input("请输入0-100之间的数字:"))N += 1if guess < answer:print("你猜的数字小于正确答案,你还有{}次机会。".format(maxtimes-N))elif guess == answer:print("你猜了{}次,猜对了,真厉害".format(N))else:print("你猜的数字大于正确答案,你还有{}次机会。".format(maxtimes-N)) if N == maxtimes and guess != answer: # 代码少但是输出格式不美化print("次数用尽了,最终答案是{}".format(answer)) - 运行结果
请输入0-100之间的数字:2 你猜的数字小于正确答案,你还有5次机会。 请输入0-100之间的数字:3 你猜的数字小于正确答案,你还有4次机会。 请输入0-100之间的数字:4 你猜的数字小于正确答案,你还有3次机会。 请输入0-100之间的数字:5 你猜的数字小于正确答案,你还有2次机会。 请输入0-100之间的数字:6 你猜的数字小于正确答案,你还有1次机会。 请输入0-100之间的数字:7 你猜的数字小于正确答案,你还有0次机会。 次数用尽了,最终答案是23 请按任意键继续. . .
4. 猜数字游戏 版本4
- 题目
猜数字游戏之续了又续。 为了增加代码的复用性, 将猜数字游戏封装为函数GuessSecret(maxtimes), 将允许猜数字的最大次数maxtimes作为参数。 在调用GuessSecret时允许用户自己设置maxtimes,美化程序的输出界面。 - 作答
# 1. guess_game.py 自己写的 import randomdef GuessSecret(maxtimes):answer = random.randint(0, 100)N = 0while True: # 改为for循环,但是由于for循环一旦开始就无法改变循环次数,需要进行改变,要有前提条件猜对了才算次数try:guess_int = int(input("请输入0-100之间的数字:"))if 0 <= guess_int <= 100:N += 1if guess_int < answer:if N == maxtimes: # 由于不想增加while循环的次数所以在这里增加判断break的条件,也可以在下一次循环的时候增加判定break的条件,会减少几行代码print("次数用尽了,最终答案是{}".format(answer))breakelse:print("你猜的数字小于正确答案,你还有{}次机会。".format(maxtimes-N))elif guess_int == answer:print("你猜了{}次,猜对了,真厉害".format(N))breakelse:if N == maxtimes:print("次数用尽了,最终答案是{}".format(answer))breakelse:print("你猜的数字大于正确答案,你还有{}次机会。".format(maxtimes-N))else:print("输入的范围错误请重新输入。")except ValueError:print("输入格式错误请再次输入。")maxtimes = int(input("请输入允许猜的最大次数:")) GuessSecret(maxtimes)
流程图过两天更新
相关文章:
python实验1 猜数字游戏
实验0:猜数字游戏 1. 猜数字游戏 版本12. 猜数字游戏 版本23. 猜数字游戏 版本34. 猜数字游戏 版本4 1. 猜数字游戏 版本1 题目猜数字游戏。在程序中预设一个0-9之间的整数, 让用户通过键盘输入所猜的数, 如果大于预设的数,显示“你猜的数字大于正确答案…...
docker 中给命令起别名
docker 的有些命令特别复杂,我们可以给它设置别名简化输入,就不用每次都输入那么多了!!! 1. 进入 .bashrc 中修改配置( .bashrc 是root下的隐藏文件) cd /rootvim .bashrc2. 在 .bashrc 中加入…...
PHP的yaf框架自带插件
Yaf 框架的插件方法触发流程遵循一定的顺序,具体流程如下 Bootstrap 类的 _initPlugin 方法:在 Yaf 应用程序启动时,首先会执行 Bootstrap 类的 _initPlugin 方法。在这个方法中,你可以注册各种插件。例如: phpCopy …...
SpringCloud Alibaba【三】Gateway
Gateway配置与使用 前言新建gateway子项目pom.xml配置文件启动类访问接口方式 测试拓展 前言 在工作中遇到一种情况,一个父项目中有两个子项目。实际使用时,需要外网可以访问,宝信软件只能将一个端口号发布在外网上,所以需要运用…...
Azure - 机器学习实战:快速训练、部署模型
本文将指导你探索 Azure 机器学习服务的主要功能。在这里,你将学习如何创建、注册并发布模型。此教程旨在让你深入了解 Azure 机器学习的基础知识和常用操作。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验…...
C语言十进制转其它进制
短除法介绍 短除法: 主要功能为将十进制数据转为其它进制的数据,假设我们要转换为 X 进制,那么具体的流程如下: 十进制数字不断除以 X,直到商为 0 记录每次计算得到的余数 将余数倒序输出,即为对应的 X 进…...
网络建设 之 React数据管理
React作为一个用于构建用户界面的JavaScript库,很多人认为React仅仅只是一个UI 库,而不是一个前端框架,因为它在数据管理上是缺失的。在做一个小项目的时候,维护的数据量不多,管理/维护数据用useState/useRef就足够了&…...
如何隐藏woocommerce 后台header,woocommerce-layout__header
如何隐藏woocommerce 后台header,woocommerce-layout__header WooCommerce |Products Store Activity| Inbox| Orders| Stock| Reviews| Notices| breadcrumbs 在 functions.php 里添加如下代码即可: // Disable WooCommerce Header in WordPress Admi…...
通俗易懂的理解 解耦 概念
解耦(Decoupling)是计算机科学和软件工程中的一个概念,指的是降低系统中不同部分之间的依赖性,使系统的各个组件能够相对独立地进行开发、维护和演化。解耦的主要目标是减少组件之间的紧密耦合,以提高系统的灵活性、可…...
全志A40i android7.1 增加Vlan功能
一,VLAN基础知识 1.VLAN的定义: VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接通信,从…...
NAT技术与代理服务器
目录 一、NAT与NAPT技术 1.NAT技术 2.NAPT技术 (1)四元组的唯一性 (2)数据的传输过程 (3)NAPT的缺陷 二、代理服务器 1.正向代理和反向代理 2.代理服务器的应用 (1)游戏加…...
关于报错java.util.ConcurrentModificationException: null的源码分析和解决
一般有这种问题,方法中至少会有List或者Map下的至少两个子类,有可能参数类型相同,也有可能不同都有可能触发这个问题!其主要原因是使用了ArrayList进行删除操作或者使用iterator遍历集合的同时对集合进行修改都有可能会出现这个问题 ArrayList属于List下的子类 需要区分的是Li…...
使用koa搭建服务器(一)
最近有个需求需要使用到koa搭建服务器并编写接口对数据库进行增删改查,因此写一篇博客记录这段时间的收获。 一、新建koa项目 (一)安装koa及其相关依赖 npm i koa npm i koa-router// 中间件,用于匹配路由 npm i koa-bodyparse…...
echarts的柱状图的重叠和堆叠实现两个柱体的显示和之前的差值显示
效果图 主要思路 准备三个柱体(原计划,实际进度,差值) 原计划和实际进度设置成重叠 {barWidth: 20,// yAxisIndex: 1,z: 1,name: 原计划,type: bar,stack: ab,emphasis: { // 点击柱体其他柱体颜色会变浅disabled: true},label…...
泛积木-低代码 使用攻略
文档首发于 泛积木-低代码 使用攻略 我们以大纲的方式(总体把握)讲述如何高效、便捷使用 泛积木-低代码。 权限 首先说下权限,在 系统设置 / 权限设置 菜单内,我们可以新增调整项目内的权限,默认拥有管理员和成员两…...
红队专题-从零开始VC++C/S远程控制软件RAT-MFC-远控介绍及界面编写
红队专题 招募六边形战士队员[1]远控介绍及界面编写1.远程控制软件演示及教程简要说明主程序可执行程序 服务端生成器主机上线服务端程序 和 服务文件管理CMD进程服务自启动主程序主对话框操作菜单列表框配置信息 多线程操作非模式对话框 2.环境:3.界面编程新建项目…...
机器学习(五)如何理解机器学习三要素
1.8如何理解机器学习三要素 统计学习模型策略算法 模型:规律yaxb 策略:什么样的模型是好的模型?损失函数 算法:如何高效找到最优参数,模型中的参数a和b 1.8.1模型 机器学习中,首先要考虑学习什么样的…...
【计算机视觉】3D视觉
文章目录 一、基本问题二、三个坐标系 X w \boldsymbol{X}_w Xw到 X c \boldsymbol{X}_c Xc的转换 X c \boldsymbol{X}_c Xc到 x i \boldsymbol{x}_i xi的转换投影矩阵尺度模糊问题 三、相机标定四、立体视觉 我的《计算机视觉》系列参考UC Berkeley的CS180课程&#x…...
策略路由和路由策略
目录 策略路由 路由策略 策略路由和路由策略 策略路由 Step1:配置ACL,匹配流量 acl number 2010 rule 10 permit source 192.168.10.0 0.0.0.255 acl number 2020 rule 10 permit source 192.168.20.0 0.0.0.255 Step2:流分类traffic classifier jiaoxue //匹配…...
[动态规划] (一) LeetCode 1137.第N个泰波那契数
[动态规划] (一) LeetCode 1137.第N个泰波那契数 文章目录 [动态规划] (一) LeetCode 1137.第N个泰波那契数题目解析解题思路状态表示状态转移方程初始化和填表顺序返回值 代码实现总结空间优化代码实现 总结 1137. 第 N 个泰波那契数 题目解析 解题思路 状态表示 (1) 题目要…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
