猜数字小游戏

直接上源码了

lst = []
# 使用range函数生成一个含有数字1-10的列表
correct = list(range(1,11))
i = 0
while i < 9:
    data = input('看看你的运气怎么样,请猜一个1-10之间的数字,你有9次猜数的机会!:')
    # isdigit判断是不是一个自然数,replace用于替换,以下replace的作用是把用户输入的小数和负数都变成自然数。
    if data.replace(".", '').replace('-','').isdigit():
        # count判断用户输入了几个小数点
        if data.count(".") == 0:
            data = int(data)
            if 1 <= data <= 10 and data not in lst:
                i += 1
                # remove用于从correct列表中删除用户输入的字符
                correct.remove(data)
                # append用于把用户输入的data
                lst.append(data)
                print('你猜得的不对,在猜猜!')
            elif data in lst:
                print('这个数字你输入过了,你这么快就忘了呀')
            elif data < 0:
                print('你输入了一个负数你造吗!!')
            else:
                print('你确定你输入的是一到十之间的一个数字嘛。')
        elif data.count(".") == 1:
            print('你干嘛输入一个小数')
        else:
            print('你输入的是软件版本号还是日期呀,怎么有不止一个小数点')
    else:
        print("输入一个1~10数字的数字不要输入字符")
# pop和remove的作用差不多,但区别是pop删除列表中的东西后会把删除的东西作为返回符返回。
# 在这里也可以使用遍历的方法去拿出最后一个用户没输入过的值
data = correct.pop()
print('正确号码是:',data, '看来今天又是被生活蹂躏的一天')

上面是一个皮皮虾版本,如果需要一个简化版,可以将那些多余的判断都删了,具体方法如下

correct = list(range(1,11))
lst = []
i = 0
while i < 9:
    data = input('看看你的运气怎么样,请猜一个1-10之间的数字,你有9次猜数的机会!:')
    # isdigit判断是不是一个自然数,replace用于替换,以下replace的作用是把用户输入的小数和负数都变成自然数。
    if data.isdigit():
        data = int(data)
        if 1 <= data <= 10 and data not in lst:
            i += 1
            # remove用于从correct列表中删除用户输入的字符
            correct.remove(data)
            # append用于把用户输入的data
            lst.append(data)
            print('你猜得的不对,在猜猜!')
        elif data in lst:
            print('这个数字你输入过了')
    else:
        print("输入不符合要求")
 # pop和remove的作用差不多,但区别是pop删除列表中的东西后会把删除的东西作为返回符返回。
 # 在这里也可以使用遍历的方法去拿出最后一个用户没输入过的值
data = correct.pop()
print('正确号码是:',data, '看来今天又是被生活蹂躏的一天')