使用Bisection Search来猜测数字

时间:2015-06-20 05:26:33

标签: python search

我正在编写一个程序,该程序应该使用二分搜索来猜测用户的密码。我觉得我很了解二分法搜索的概念,但是我的IDE(Canopy)不会让我“运行”代码,我认为这是由于在运行之前它需要我做的错误或其他事情。

lowend = 1
highend = 100
guess = 50
choice = 0

print "Please think of a number between 0 and 100!"

while choice != 'c':
    print "Is your secret number " + str(guess) + "?"
    print "Enter 'h' to indicate the guess is too high.",
    print "Enter 'l' to indicate the guess is too low.",
    choice = raw_input("Enter 'c' to indicate I guessed correctly.")
    if choice == 'c':
        break
    elif choice == 'h':
            highend = guess
            guess = (highend + lowend)/2
            print 'Is your secret number ' + str(guess) + "?"
            choice = 0
    elif choice == 'l':
            lowend = guess + 1
            guess = (highend + lowend)/2
            print 'Is your secret number ' + str(guess) + "?"
    else:
            print "Sorry, I did not understand your input."
            choice = 0

print 'Your number is: ' + str(guess) + "."

我不确定我做错了什么,但是Canopy的绿色'跑'按钮是灰色的。为什么会这样?有没有人看到我的代码明显错误?

3 个答案:

答案 0 :(得分:1)

你有没有得到这个? 我认为你最初的选择应该是一个空格:choice =“” 您还需要在打印语句上使用括号。 也许你不需要raw_作为你的输入? 也许一些四舍五入或使你的答案整数。

答案 1 :(得分:0)

我想你需要输入一个带有 raw_input 功能的输入,只需要打印出来。这些消息,程序无法找到l,h或c来进行比较。

答案 2 :(得分:0)

重启Canopy的IDE以解决您的问题。

当另一个脚本进入无限循环时,我遇到了类似的问题。