2015-06-20 49 views
0

我正在寫一個程序,應該猜測用戶的祕密號碼使用平分搜索。我覺得我理解二分法搜索的概念相當好,但是我的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) + "." 

我不知道是否有什麼我做錯了,但樹冠的綠色「運行」按鈕是灰色。爲什麼會發生?有人看到我的代碼顯然有什麼問題嗎?

+0

我不是一個蟒蛇開發,但你沒有一個主要的方法。 –

+0

@SilviuBurcea在Python中無關 – jonrsharpe

+0

前四行不正確縮進;也許Canopy阻止你嘗試運行帶有語法錯誤的代碼?您可以隨時嘗試運行腳本(IDLE /命令行)來查看。 – jonrsharpe

回答

0

我想你需要輸入raw_input函數insted只是printin'這些消息,程序無法找到l,h或c來進行比較。

0

重新啓動Canopy的IDE來解決您的問題。

當另一個腳本進入無限循環時,我遇到了類似的問題。

0

你有沒有得到這個呢? 我認爲你的初始選擇應該是一個空格:choice =「」 你的打印語句也需要括號。 也許你不需要raw_供你參考? 也許一些舍入或讓你的答案是整數。

+0

歡迎來到SO。請閱讀[如何解答](http://stackoverflow.com/help/how-to-answer),並按照指南 那裏提供優質的答案。 – thewaywewere