2016-10-03 104 views
-4

我想在python中創建更高或更低的遊戲,但無法讓我的循環結束。它只是繼續前進。我的代碼看起來像這樣我不能讓我的循環結束

a = 0 
def ask(b, d, p): 
    global a 
    while a < d: 
     global question 
     question = int(input()) 
     if question < b: 
      print"bigger" 
     elif question > b: 
      print"smaller" 
     else: 
      print p 
      break 
     del question 
     a += 1 
     if d1 == p1: 
      print "wow. you lost. shame on you." 
      time.sleep(3) 
      quit() 

如果有人能告訴我我做錯了那會很好。

+0

程序的其餘部分是什麼? 'ask'怎麼叫? – postelrich

+0

不知道「d」是否真的很大,或者「a」(全局)是否被設置爲一個非常大的負數,很難說清楚。 (實際上,爲什麼不把'a'放在函數內部:不需要使其成爲全局函數。) – Evert

+1

在Python 2.x中,使用'raw_input'而不是'input'來獲取文本。 'input'將評估表達式。這樣做很好,因爲「1」會自動轉換爲int,事實上,您可以輸入諸如「2 ** 5」之類的內容,但也可以輸入錯誤的值,如[1,2,3]或其他可疑的事情。 – tdelaney

回答

0

不知道剩下的代碼在這裏是我能提供的。

在提供的代碼中,您有d1 == p1,但它們從未在該區域中被調用或分配,因此它們將永不改變。因此你的循環永遠不會進展,因爲它內部的變量不能控制它。

編輯:對不起,你是正確的@Evert。如果a永遠超過d那麼它應該結束。所以循環應該最終結束,但如果打算應該這樣做的話,可能不會。應該是if question == answer

+0

在此之前,還有一個 Evert