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

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是按照文字意思但是计算机语言就是可以简写)
      • 把分析的三条功能分为三个独立的个体去看实际上可以合并起来写
      • 由于前两个原因导致变量过于繁多
  • 第二次作答
    # 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&#xff1a;猜数字游戏 1. 猜数字游戏 版本12. 猜数字游戏 版本23. 猜数字游戏 版本34. 猜数字游戏 版本4 1. 猜数字游戏 版本1 题目猜数字游戏。在程序中预设一个0-9之间的整数, 让用户通过键盘输入所猜的数&#xff0c; 如果大于预设的数,显示“你猜的数字大于正确答案…...

docker 中给命令起别名

docker 的有些命令特别复杂&#xff0c;我们可以给它设置别名简化输入&#xff0c;就不用每次都输入那么多了&#xff01;&#xff01;&#xff01; 1. 进入 .bashrc 中修改配置&#xff08; .bashrc 是root下的隐藏文件&#xff09; cd /rootvim .bashrc2. 在 .bashrc 中加入…...

PHP的yaf框架自带插件

Yaf 框架的插件方法触发流程遵循一定的顺序&#xff0c;具体流程如下 Bootstrap 类的 _initPlugin 方法&#xff1a;在 Yaf 应用程序启动时&#xff0c;首先会执行 Bootstrap 类的 _initPlugin 方法。在这个方法中&#xff0c;你可以注册各种插件。例如&#xff1a; phpCopy …...

SpringCloud Alibaba【三】Gateway

Gateway配置与使用 前言新建gateway子项目pom.xml配置文件启动类访问接口方式 测试拓展 前言 在工作中遇到一种情况&#xff0c;一个父项目中有两个子项目。实际使用时&#xff0c;需要外网可以访问&#xff0c;宝信软件只能将一个端口号发布在外网上&#xff0c;所以需要运用…...

Azure - 机器学习实战:快速训练、部署模型

本文将指导你探索 Azure 机器学习服务的主要功能。在这里&#xff0c;你将学习如何创建、注册并发布模型。此教程旨在让你深入了解 Azure 机器学习的基础知识和常用操作。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验…...

C语言十进制转其它进制

短除法介绍 短除法&#xff1a; 主要功能为将十进制数据转为其它进制的数据&#xff0c;假设我们要转换为 X 进制&#xff0c;那么具体的流程如下&#xff1a; 十进制数字不断除以 X&#xff0c;直到商为 0 记录每次计算得到的余数 将余数倒序输出&#xff0c;即为对应的 X 进…...

网络建设 之 React数据管理

React作为一个用于构建用户界面的JavaScript库&#xff0c;很多人认为React仅仅只是一个UI 库&#xff0c;而不是一个前端框架&#xff0c;因为它在数据管理上是缺失的。在做一个小项目的时候&#xff0c;维护的数据量不多&#xff0c;管理/维护数据用useState/useRef就足够了&…...

如何隐藏woocommerce 后台header,woocommerce-layout__header

如何隐藏woocommerce 后台header&#xff0c;woocommerce-layout__header WooCommerce |Products Store Activity| Inbox| Orders| Stock| Reviews| Notices| breadcrumbs 在 functions.php 里添加如下代码即可&#xff1a; // Disable WooCommerce Header in WordPress Admi…...

通俗易懂的理解 解耦 概念

解耦&#xff08;Decoupling&#xff09;是计算机科学和软件工程中的一个概念&#xff0c;指的是降低系统中不同部分之间的依赖性&#xff0c;使系统的各个组件能够相对独立地进行开发、维护和演化。解耦的主要目标是减少组件之间的紧密耦合&#xff0c;以提高系统的灵活性、可…...

全志A40i android7.1 增加Vlan功能

一&#xff0c;VLAN基础知识 1.VLAN的定义&#xff1a; VLAN&#xff08;Virtual Local Area Network&#xff09;即虚拟局域网&#xff0c;是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信&#xff0c;而VLAN间不能直接通信&#xff0c;从…...

NAT技术与代理服务器

目录 一、NAT与NAPT技术 1.NAT技术 2.NAPT技术 &#xff08;1&#xff09;四元组的唯一性 &#xff08;2&#xff09;数据的传输过程 &#xff08;3&#xff09;NAPT的缺陷 二、代理服务器 1.正向代理和反向代理 2.代理服务器的应用 &#xff08;1&#xff09;游戏加…...

关于报错java.util.ConcurrentModificationException: null的源码分析和解决

一般有这种问题,方法中至少会有List或者Map下的至少两个子类,有可能参数类型相同,也有可能不同都有可能触发这个问题!其主要原因是使用了ArrayList进行删除操作或者使用iterator遍历集合的同时对集合进行修改都有可能会出现这个问题 ArrayList属于List下的子类 需要区分的是Li…...

使用koa搭建服务器(一)

最近有个需求需要使用到koa搭建服务器并编写接口对数据库进行增删改查&#xff0c;因此写一篇博客记录这段时间的收获。 一、新建koa项目 &#xff08;一&#xff09;安装koa及其相关依赖 npm i koa npm i koa-router// 中间件&#xff0c;用于匹配路由 npm i koa-bodyparse…...

echarts的柱状图的重叠和堆叠实现两个柱体的显示和之前的差值显示

效果图 主要思路 准备三个柱体&#xff08;原计划&#xff0c;实际进度&#xff0c;差值&#xff09; 原计划和实际进度设置成重叠 {barWidth: 20,// yAxisIndex: 1,z: 1,name: 原计划,type: bar,stack: ab,emphasis: { // 点击柱体其他柱体颜色会变浅disabled: true},label…...

泛积木-低代码 使用攻略

文档首发于 泛积木-低代码 使用攻略 我们以大纲的方式&#xff08;总体把握&#xff09;讲述如何高效、便捷使用 泛积木-低代码。 权限 首先说下权限&#xff0c;在 系统设置 / 权限设置 菜单内&#xff0c;我们可以新增调整项目内的权限&#xff0c;默认拥有管理员和成员两…...

红队专题-从零开始VC++C/S远程控制软件RAT-MFC-远控介绍及界面编写

红队专题 招募六边形战士队员[1]远控介绍及界面编写1.远程控制软件演示及教程简要说明主程序可执行程序 服务端生成器主机上线服务端程序 和 服务文件管理CMD进程服务自启动主程序主对话框操作菜单列表框配置信息 多线程操作非模式对话框 2.环境&#xff1a;3.界面编程新建项目…...

机器学习(五)如何理解机器学习三要素

1.8如何理解机器学习三要素 统计学习模型策略算法 模型&#xff1a;规律yaxb 策略&#xff1a;什么样的模型是好的模型&#xff1f;损失函数 算法&#xff1a;如何高效找到最优参数&#xff0c;模型中的参数a和b 1.8.1模型 机器学习中&#xff0c;首先要考虑学习什么样的…...

【计算机视觉】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&#xff0c;匹配流量 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) 题目要…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...