条件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,向上取整,然后再加上左值

   

 

posted on 2023-07-09 00:14  Delphi搬运工  阅读(38)  评论(0)    收藏  举报