操作方法
先把上一篇文章里面的猜数字游戏的代码搬过来: # -*- coding: utf-8 -*- import random a=random.randint(1,100) n=input('请输入数字') if n.isdigit(): n=int(n) if n==a: print('猜对了') elif n>a: print('大了') else: print('小了') else: print('你输入的不是整数') 这里面有两个嵌套的if语句。 此时,猜一次,就需要重新运行。而每次运行,就可能得到另一个数字a。
写一个while循环,这个游戏就可以一直玩下去了: # -*- coding: utf-8 -*- import random a=random.randint(1,100) while True: n=input('请输入数字') if n.isdigit(): n=int(n) if n==a: print('猜对了') elif n>a: print('大了') else: print('小了') else: print('你输入的不是整数') 注意,if语句整体缩进一下。现在,这个游戏可以连续的进行了。
猜数字游戏,可不是胡乱猜测,里面还是有一点小窍门的,看下图,用三段论猜数字。
但是,我们发现,就算我们猜对了,电脑还是需要我们继续猜,这是什么原因呢? 原来,这就是所谓的“思循环”,电脑会一直循环下去,因为我们没有写出退出循环的指令。 我们需要在猜对了的时候,加一个break指令。 看下图,猜对了,就会退出本轮游戏。
上面采用的是while循环,而for循环也可以写这个游戏: # -*- coding: utf-8 -*- import random a=random.randint(1,100) for i in range(1,10): n=input('请输入数字') if n.isdigit(): n=int(n) if n==a: print('猜对了') break elif n>a: print('大了,再小点') else: print('小了,再大点') else: print('你输入的不是整数') i+=1 9次机会,应该绰绰有余了。
如果只有两次机会,猜到的概率就很低了: # -*- coding: utf-8 -*- import random a=random.randint(1,100) for i in range(1,3): n=input('请输入数字') if n.isdigit(): n=int(n) if n==a: print('猜对了') break elif n>a: print('大了,再小点') else: print('小了,再大点') else: print('你输入的不是整数') i+=1