创建一个python程序来猜测用户的“秘密号码”?

2024-06-25 23:06:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个程序,它要求您从0 to 100中想出一个数字。然后它将猜测它是否是50, lower than 50, or higher than 50。程序将一直用不同的数字猜测,直到猜出正确的数字为止。在

如果用户没有输入yeslower或{},那么输出应该是“我不明白”。我的代码的问题是它得到了一个无限循环。我假设有一个循环,我需要包括一些东西来结束它一旦用户说“是”。在

以下是我目前所拥有的(我是一个新手程序员,如果这没有意义或者我的代码很糟糕,我很抱歉!)公司名称:

print('Hello.')
print('Pick a secret number between 0 and 100.')
print('Is your secret number 50')
low = 0
high = 101
guess = 50
a = input('Enter yes/higher/lower:\n')
while True:
    if a == 'yes':
        print('Great!')
        break
    elif a == 'lower':
        high = guess
        guess1 = (guess-low)//2+low
        print('Next is', guess1)
        print('Is your secret number', guess1)
    elif a == 'higher':
        low = guess
        guess1 = (high-guess)//2+guess
        print('Next is', guess1)
        print('Is your secret number', guess1)
    elif a != 'yes' or 'higher' or 'lower':
        print('I did not understand')

Tags: ornumberyoursecretis数字loweryes
1条回答
网友
1楼 · 发布于 2024-06-25 23:06:01

试试这段代码,看看这是否是程序的预期行为。在

print('Hello.')
print('Pick a secret number between 0 and 100.')
print('Is your secret number 50')
low = 0
high = 100

while True:
    guess = int((low+high)/2)
    print('Is your secret number', guess)
    a = input('Enter yes/higher/lower:\n')
    if a == 'yes':
      print('Great!')
      break
    elif a == 'lower':
      high = guess-1
    elif a == 'higher':
      low = guess+1
    else:
        print('I did not understand')

算法如下:

  1. 您可以通过获得lowhigh值的middle进行猜测。所以你用guess = int((high+low)/2)来做这个
  2. 如果用户的数字大于您的guess,则将low值改为guess+1。如果用户的数字小于您的guess,那么您将high值改为guess-1。在
  3. 重复这个过程直到你最终得到用户的号码。在

相关问题 更多 >