Python基础练习题:猜数字小游戏
直接上源码了
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, '看来今天又是被生活蹂躏的一天')
上面是一个皮皮虾版本,如果需要一个简化版,可以将那些多余的判断都删了,具体方法如下
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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, '看来今天又是被生活蹂躏的一天')