很感谢本次培训师兄、师姐们在python上的详细教学,我从中受益匪浅。其实,在此之前我也尝试过自学一下python,可是我对于我所购买的python的学习书上所提供的文本编辑器——Geany的配置怎么也调不好,因此就一直卡在hello world,而那天的学习,至少给我python的学习提供了方向。当时我们所学习的主要内容之一是有关数字大爆炸的编写,话不多说,上成果。
import random
rd = random.randint(1,1001)
Min = 1
Max = 1000
for i in range(1001):
num=int(input('请你输入一个整数,范围在[{}-{}]之间\n你输入的是:'.format(Min,Max)))
A = range(Min,Max+1)
if num not in A:
print('你输入的数字错误,请重新输入')
continue
if num > rd:
Max = num-1
print('炸弹未引爆,游戏继续,范围缩小为:[{},{}]'.format(Min,Max))
machine_num=random.randint(Min,Max)
print('机器输入了数字:{}'.format(machine_num))
if machine_num > rd:
Max = machine_num - 1
elif machine_num < rd:
Min = machine_num + 1
elif machine_num == rd:
print('数字{}是炸弹,恭喜你,你赢了!'.format(machine_num))
break
elif num < rd:
Min = num +1
print('炸弹未引爆,游戏继续,范围缩小为:[{},{}]'.format(Min,Max))
machine_num=random.randint(Min,Max)
print('机器输入了数字:{}'.format(machine_num))
if machine_num > rd:
Max = machine_num - 1
elif machine_num < rd:
Min = machine_num + 1
elif machine_num == rd:
print('数字{}是炸弹,恭喜你,你赢了!'.format(machine_num))
break
else:
print('数字{}是炸弹,很遗憾,你输了!'.format(num))
break
展现成果
以上是有关数字大爆炸程序的代码,主体是借鉴了师兄的模板,当然,其中对于输入超出范围的数字的问题的解决,还要感谢一位同学提供的方法。之前我也都尝试过想办法解决,但效果不怎么好,而那位同学提供的建立集合的方法给了我很大的帮助,同时,他提供的“continue”,也得以让我的程序进行下去。哦,对了,还有一点,我亲自试了一下,集合的范围那里要输Max+1才行,如果输入的是Max,那么你一开始就输入不了1000的。