用python续写猜数字游戏(加入循环)
的有关信息介绍如下:在《用python制作一个简单的猜数字游戏》里面,我们学习了用if语句制作简单的猜数字游戏,但是这个猜数字游戏只能猜一次,不连续。
下面,我们引进循环语句,把这个游戏完善一下。
24用python制作一个简单的猜数字游戏
先把上一篇文章里面的猜数字游戏的代码搬过来:
# -*- 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