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

Python之猜数字游戏

说明: 

猜数字游戏由两个人参与,一个人设置一个数字,一个人猜数字。当猜数字的人说出一个数字,由出数字的人告知是否猜中:

若猜测的数字大于设置的数字,出数字的人提示“很遗憾,你猜大了”

若猜测的数字小于设置的数字,出数字的人提示“很遗憾,你猜小了”

若猜数字的人在规定的次数内猜中设置的数字,出数字的人提出“恭喜,猜数成功!”

输入“q”则退出程序。

解题思路:

1、由于是编写的程序,如果由人来输入猜的数字,则会被猜数字的人看到。所以采用随机数让电脑选出被猜的数字。

2、题目要求在规定次数内猜中设置的数字,出数字的人提出“恭喜,猜数成功!”。因此我们不能用while进行死循环,而需要使用for循环,并规定猜的次数,即循环的次数。

3、题目最后提出输入“q”则退出程序,但我们猜数字的时候肯定是需要将输入的类型变成int类型的。所以,需要在循环内再设定一个str类型的input来接收q这个退出程序的指令。

这里由于博主刚学Python,所以for循环用的可能有点问题,或许还有更符合题意的写法。

也可以将循环的次数在循环外用input来输入。

这里由于博主不知道该如何在循环结束后输出“猜数次数达到上限”的同时,不输出其他提示(刚开始的时候,博主将次数达到上限的提示放在循环外面,结果发现不管是输入“q”退出程序,还是猜中数字输出恭喜,都会同时输出达到上限的提示)。所以在循环外额外设置了一个sum数来记录循环次数。

import random
figure=random.randint(0,100)#电脑随机出要被猜的数字
sum=0#存储猜数次数
#rint(figure)
for x in range(5):
    guess = int(input("请输入你猜的数字(0-100):"))
    if(guess<figure):
        print("很遗憾,你猜小了")
        sum+=1  # 猜数次数加1
    elif(guess>figure):
        print("很遗憾,你猜大了")
        sum+=1  # 猜数次数加1
    else:
        print("恭喜,猜数成功!")
        break
    if(sum==5):
        print("猜数次数达到上限!")
        break
    print("如果想要退出程序,请输入q\n否则请按回车继续猜数")
    tc = input()
    if tc=="q":
     print("退出程序成功!")
     break

相关文章:

  • Python 程序的输出 | 第十套(异常处理)
  • 【Android入门】8、Service 后台线程、多线程、IntentService
  • 面向医学图像语义分割-MedISeg
  • puzzle(017.9)HueBots
  • SIM卡被锁怎么办
  • 腾讯云服务器有那么多的型号标准型,计算型,内存型等等,到底该如何选择?
  • 【Android入门】6、ContentProvider:跨程序的数据共享:访问其他 App、被其他 App 访问
  • 文献学习(part102-A)--Autoencoders
  • SS-Model【6】:U2-Net
  • 创新战略|工业企业如何应对颠覆式变革带来的挑战?
  • HashMap不安全后果及ConcurrentHashMap线程安全原理
  • 22_access 阶段
  • 如何位图转换矢量图或者数字油画底稿
  • 阿里巴巴面试题- - -多线程并发篇(三十八)
  • python java php一起考研资料文件下载系统 微信小程序
  • 【笔记】你不知道的JS读书笔记——Promise
  • in typeof instanceof ===这些运算符有什么作用
  • Java比较器对数组,集合排序
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 基于Android乐音识别(2)
  • 判断客户端类型,Android,iOS,PC
  • 如何设计一个比特币钱包服务
  • 数组大概知多少
  • 突破自己的技术思维
  • 一道面试题引发的“血案”
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • linux 淘宝开源监控工具tsar
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​linux启动进程的方式
  • (06)金属布线——为半导体注入生命的连接
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • ****Linux下Mysql的安装和配置
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .Net 6.0 处理跨域的方式
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 常见的偏门问题
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .考试倒计时43天!来提分啦!
  • ??eclipse的安装配置问题!??
  • @Bean, @Component, @Configuration简析
  • [Android]创建TabBar
  • [BZOJ1877][SDOI2009]晨跑[最大流+费用流]
  • [CentOs7]iptables防火墙安装与设置
  • [Flex] PopUpButton系列 —— 控制弹出菜单的透明度、可用、可选择状态
  • [IOI2007 D1T1]Miners 矿工配餐
  • [LeetBook]【学习日记】数组内乘积
  • [LeetCode] Copy List with Random Pointer 拷贝带有随机指针的链表
  • [LeetCode] Wildcard Matching
  • [Linux]文件基础-如何管理文件
  • [Linux基础开发工具---vim]关于vim的介绍、vim如何配置及vim的基本操作方法
  • [office] Excel自带的编辑函数求和方法 #其他#媒体