条件if语句的学习
条件if语句的学习比较简单:if-elif-elif-..-else
#该实例演示了猜字猜谜游戏
number=7
guess=-1
print(‘数字猜谜游戏!')
while guess!=number:
guess=int(input('请输入你猜的数字!'))
if guess==number:
print('恭喜,你猜对了!')
elif guess>number:
print('你猜的数字大了....')
elif guess<number:
print('你猜的数字小了....')
然后根据这游戏,想到写一个猜数字谜对半猜的方法的函数:
一般玩这游戏,会给玩家猜的范围,比如1-100中猜,从中取出一个数number,让玩家来猜,最科学的猜法是,先猜1-100的中间值answer,然后根据提示,比如小了,那么就从answer-100中
再取中间值,循环取中间值,直到猜到正确的值。
def guessgame(number,startnumber,endnumber)->int:
ln=startnumber #区间左值
rn=endnumber #区间右值
n=1 #猜的次数
guess=math.ceil((ln+rn)/2) #第一次猜的值
while guess != number:
if guess>number:
rn=guess
guess=math.ceil((rn-ln)/2)+ln
n+=1
elif guess<number:
ln=guess
guess=math.ceil((rn-ln)/2)+ln
n+=1
return n
n1=guessgame(21,1,100)
print(n1) #输出为:7
需要注意的是:n初始值为1,因为当第一次取中间值,就猜中,没有进入循环,return n 记得放在循环外,然后区间的两边取值,如果不清楚,就自己在纸上画一下,大了,那就原左值跟guess组成区间(ln,guess),再猜的值就是右减左,除于2,向上取整,然后再加上左值
浙公网安备 33010602011771号