用python实现猜数字游戏

1 问题

如何来判断玩家输入的数据类型来避免报错?


解决:

使用isdigit函数来判断玩家输入的数据类型是否为数字,是则继续运行反之则提醒玩家输入的内容不合法。

如何限制玩家输入字符的数量?

解决:定义一个最大常量和最小常量,超出最大常量或者最小常量则会提醒玩家输入内容的范围。

2 方法

  1. 首先导入random随机模块 ,然后定义随机数的范围,然后定义次数。

  2. 使用while循环来判断是否符合随机数和输入数值的比较,并且设置次数递减

  3. 使用 isdigit 函数来完成判断玩家数据类型,避免报错。

  4. 使用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的知识有了一点学习和巩固。

你可能感兴趣的:(python,游戏,前端,linux,数据库)