Python实现简单猜数字游戏
作者:Ainke 发布时间:2021-03-22 14:31:50
本文实例为大家分享了Python实现简单猜数字游戏的具体代码,供大家参考,具体内容如下
一、需求分析
编写一个猜数字游戏,游戏规则:计算机给出一个1-20的之间的随机数字,让玩家来猜猜它是几,计算机会告诉你每次猜出的数字或大或小,如在6次内猜到正确数字,即赢了。
二、编写思路
1.首先导入random随机模块 ,然后定义随机数的范围,然后定义次数。
2.使用while循环来判断是否符合随机数和输入数值的比较,并且设置次数递减
3.使用 isdigit 函数来完成判断玩家数据类型,避免报错。
4.使用if else 流程控制语句即玩家输入数字比随机数大则提醒玩家数字大,反之则小并且提醒玩家剩余几次机会。
5.最后编写输入机会用完猜对则游戏结束,猜错则提醒机会用完,并且公布电脑给出的随机数答案。
三、问题
1.如何来判断玩家输入的数据类型来避免报错?
解决:使用isdigit函数来判断玩家输入的数据类型是否为数字,是则继续运行反之则提醒玩家输入的内容不合法。
2.如何限制玩家输入字符的数量?
解决:定义一个最大常量和最小常量,超出最大常量或者最小常量则会提醒玩家输入内容的范围。
四、代码
import random # 导入随机模块
times = 6 # 定义尝试次数
game = random.randint(0, 20) # 定义随机数范围
max = 20 # 定义最大常量
min = 0 # 定义最小常量
print('猜一猜我心目中的数字(0-20之间):')
print('你有%d次机会:' % times)
while times > 0: # 循环判断如果有机会往下运行
times = times - 1 # 次数递减
str = input() # 输入数值
if not str.isdigit(): # 判断数据类型 输入的是不是数字
print('您输入的数据:' + str + '不合法,请重新输入我心目中的数字(0-20)之间,还有%d次机会' % times)
else:
guess = int(str)
if guess == game: #玩家输入与随机数相同
print('猜对了!')
else:
if guess > max: #玩家输入大于猜测随机数范围
print('输入无效!请输入%d到%d之间的数字,还有%d次机会.' % (min, max, times))
continue
if guess > game: #玩家输入大于随机数
print('您输入的数字大了!还有%d次机会' % times)
else:
print('您输入的数字小了!还有%d次机会' % times)
if times > 0: #还有次数
print('在尝试一次吧')
else:
print('没机会了')
print('我心目中的数字是%d' % game)
print('游戏结束!')
五、感悟
通过本次的项目练习,我感觉自己收获还是很大的,不仅考验了自己对基础知识的掌握程度,而且和同学在讨论中也发现了更多的问题并且学会解决问题,然后在师父的验收过程中也发现了代码可以调优完善的地方,最后在纪老师验收的过程中,通过看其他同学的代码和自己的代码来对比可以发现一些自己所不了解的知识及语法,老师也提了很多的问题,并且提供了更多的思路,例如代码里曲线 背景快出现的原因,以及如何设计游戏更多的乐趣,然后以后完成项目还可以使用PPT,因为这样可以更清楚更便于自己或者同学来理解,使我受益匪浅,在自己解决问题的过程中也学会了一些更多的函数用法,例如如何判断数据类型,通过在网上搜索学习了这个函数,我也对类似的这种函数进行了解:
s为字符串
s.isalnum() 所有字符都是数字或者字母,为真返回 Ture,否则返回 False。
s.isalpha() 所有字符都是字母,为真返回 Ture,否则返回 False。
s.isdigit() 所有字符都是数字,为真返回 Ture,否则返回 False。
s.islower() 所有字符都是小写,为真返回 Ture,否则返回 False。
s.isupper() 所有字符都是大写,为真返回 Ture,否则返回 False。
s.istitle() 所有单词都是首字母大写,为真返回 Ture,否则返回 False。
s.isspace() 所有字符都是空白字符,为真返回 Ture,否则返回 False。
来源:https://blog.csdn.net/Ainwa/article/details/113527407


猜你喜欢
- 自去年以来,我们正在开发区块链(Blockchain)业务。最近使用过Ethereum并使用PHP,所以我想我们应该聊聊这个话题。这里有个前
- 很多时候我们会发现有的时候输出的结果特别多的时候,会在最后输出时用。。。代替,最后输出一个总长度,那要咋么弄咧?import pandas
- 生成器是 Python 的基本组成部分。生成器是一个至少有一个“yield”表达式的函数。它们是可以
- 基于pygame的飞机大作战小游戏,适合新手,不能直接运行,只能在命令行进入当前游戏目录,输入python game.py才能够运行,尚不知
- 说在最前不知道小伙伴们在写代码的时候有没有区分开numpy.abs和abs函数,别小看这两个函数,如果在写程序的时候正确区分使用这两个函数可
- 作者: wyh草样出处:https://www.cnblogs.com/wyh0923/p/14084898.html什么是文件文件是系统存
- 做项目的时候,用户认证几乎是必不可少的,如果我们的项目由于一些原因不得不使用 users 之外的用户表进行认证,那么就需要多做一点工作来完成
- 其实网上已经有许多python语言书写的串口,但大部分都是python2写的,没有找到一个合适的python编写的串口助手,只能自己来写一个
- 我在网上找到了一篇文章,简直堪称神器。刚开始用brew search mysql ...能找到,按照提示一步一步安装,结果到最后就是启动不起
- 本文实例讲述了go语言实现猜数字小游戏的方法。分享给大家供大家参考。具体分析如下:随机生成一个数字,输入一个数字看是否匹对,匹配则结速,反之
- 记得在面试腾讯实习生的时候,面试官问了我这样一道问题。//下述两种声明方式有什么不同 function foo(){}; 
- 前言Python处理Excel的包是openpyxl,其支持操作的文件类型为:.xlsx, .xlsm, .xltx, .xltmpip i
- 当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF- 8
- 也有些正则方法可以限制回归算法输出结果中系数的影响,其中最常用的两种正则方法是lasso回归和岭回归。lasso回归和岭回归算法跟常规线性回
- 主要记录两种不同的beam search版本版本一使用类似层次遍历的方式进行搜索,用队列进行维护,每次循环对当前层的所有节点进行搜索,这些节
- 先看看弹窗效果,如下: //放大图片 $(page).on('click','.popupIm
- 摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误
- 今天准备把几个txt文件合并成一个文件时,用f.write方法写入时,发现程序执行完了,本应该十万行左右的txt记录,实际上只被写入了4k多
- 本文实例为大家分享了python实现俄罗斯方块的具体代码,供大家参考,具体内容如下#coding=utf-8 from tkinter im
- 什么是类,对象,实例,类## 标题变量(类属性),实例变量(实例属性)面向对象编程(Object-oriented Programming,