1 问题
如何来判断玩家输入的数据类型来避免报错?
解决:
使用isdigit函数来判断玩家输入的数据类型是否为数字,是则继续运行反之则提醒玩家输入的内容不合法。
如何限制玩家输入字符的数量?
解决:定义一个最大常量和最小常量,超出最大常量或者最小常量则会提醒玩家输入内容的范围。
2 方法
- 首先导入random随机模块 ,然后定义随机数的范围,然后定义次数。
- 使用while循环来判断是否符合随机数和输入数值的比较,并且设置次数递减
- 使用 isdigit 函数来完成判断玩家数据类型,避免报错。
- 使用if else 流程控制语句即玩家输入数字比随机数大则提醒玩家数字大,反之则小并且提醒玩家剩余几次机会。
5.最后编写输入机会用完猜对则游戏结束,猜错则提醒机会用完,并且公布电脑给出的随机数答案。
代码清单 1
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('游戏结束!') |
---|
3 结语
就此问题,首先导入模块,再利用while,if循环实现多次猜谜,通过实验,证明该方法是有效的。但此方法或许并不是最优解答,与此代码中也有许多可改进之处,后续会在此基础上再优化。此过程中我也对python的知识有了一点学习和巩固。