我们经常遇到用户登录时密码忘记而进行字码猜测的过程,有的时候可以无限制地试错密码,也有的时候只允许有限次数的试错,对于这样的问题我们可以编写段代码进行“猜数字”游戏,增加代码的趣味性,便于提高生的兴趣。
猜数字游戏1.0版
age_of_boy = 20 #假定某男孩的年龄是20岁
guess_age = int(input("guess age:")) #指引用户输入,猜测数字,int是将字符串强制转化为整型的数值
if guess_age ==age_of_boy:
print("Yes you got it!") #如果用户猜对了数字,提示“猜对了”。
elif guess_age>age_of_boy:
print("Think smaller...") #如果用户猜的数字大于假定的数字,则提示用户往小的方向猜。
else:
print("Think bigger....“) #如果用户猜数字小于假定的数值,则提示往大的方向猜,从语法上来说只要不是第一二两种情况就是第三种,所以只需用else来判断 。
此程序只能运行一次就结束了,不符合实际应用情况,于是2.0版本就是加一个循环的语法即可。
猜数字游戏2.0版
while:
age_of_boy = 20 #假定某男孩的年龄是20岁
guess_age = int(input("guess age:")) #指引用户输入,猜测数字,int是将字符串强制转化为整型的数值
if guess_age ==age_of_boy:
print("Yes you got it!") #如果用户猜对了数字,提示“猜对了”。
elif guess_age>age_of_boy:
print("Think smaller...") #如果用户猜的数字大于假定的数字,则提示用户往小的方向猜。
else:
print("Think bigger....“) #如果用户猜数字小于假定的数值,则提示往大的方向猜,从语法上来说只要不是第一二两种情况就是第三种,所以只需用else来判断 。
2.0版用的是while无限次循环,也不太现实,一般我们猜密码是有次数限制的,于是计次循环的3.0版是这样的:
猜数字游戏3.0版(只允许用户试错3次)
age_of_boy = 20 #假定某男孩的年龄是20岁
for i in range(3): #加入一个for循环,循环次数为3
guess_age = int(input("guess age:")) #指引用户输入,猜测数字,int是将字符串强制转化为整型的数值
if guess_age ==age_of_boy:
print("Yes you got it!") #如果用户猜对了数字,提示“猜对了”。
elif guess_age>age_of_boy:
print("Think smaller...") #如果用户猜的数字大于假定的数字,则提示用户往小的方向猜。
else:
print("Think bigger....“) #如果用户猜数字小于假定的数值,则提示往大的方向猜,从语法上来说只要不是第一二两种情况就是第三种,所以只需用else来判断 。
else:
print("Fuck off") #用户试错3次提示错误信息,游戏结束。
这里还是与实际情况有差距,比如有的人想无限次地玩,有的人只想玩几次就算了,如何让用户可以根据自己的喜好来决定是否继续玩呢?这就是4.0版了。
猜数字游戏4.0版
count = 0 #引入一个计次函数count,初始值为0.
while count <3:
age_of_boy = 20 #假定某男孩的年龄是20岁
guess_age = int(input("guess age:")) #指引用户输入,猜测数字,int是将字符串强制转化为整型的数值
if guess_age ==age_of_boy:
print("Yes you got it!") #如果用户猜对了数字,提示“猜对了”。
elif guess_age>age_of_boy:
print("Think smaller...") #如果用户猜的数字大于假定的数字,则提示用户往小的方向猜。
else:
print("Think bigger....“) #如果用户猜数字小于假定的数值,则提示往大的方向猜,从语法上来说只要不是第一二两种情况就是第三种,所以只需用else来判断 。
count +=1
if count ==3:
countine_confirm = input("Do you want to keep guessing......") #当用户试错3次时提示用户是否要继续玩。
if countine_confirm !="n":
count == 0 #当用户输入的不是n键时,计数器返回初始值0,即用户如果输入n,则退出,输入其他键就继教玩。