我正在编写一个程序,该程序应该使用二分搜索来猜测用户的密码。我觉得我很了解二分法搜索的概念,但是我的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的绿色'跑'按钮是灰色的。为什么会这样?有没有人看到我的代码明显错误?
答案 0 :(得分:1)
你有没有得到这个? 我认为你最初的选择应该是一个空格:choice =“” 您还需要在打印语句上使用括号。 也许你不需要raw_作为你的输入? 也许一些四舍五入或使你的答案整数。
答案 1 :(得分:0)
我想你需要输入一个带有 raw_input 功能的输入,只需要打印出来。这些消息,程序无法找到l,h或c来进行比较。
答案 2 :(得分:0)
重启Canopy的IDE以解决您的问题。
当另一个脚本进入无限循环时,我遇到了类似的问题。