2012-06-27 65 views
1
def main(): 
    again = "y" 
    while again == "y" or again == "Y": 
     module() 
     again = raw_input("Do it again Y/y? ") 
     return 

進入Y/Y時,程序剛剛坐。它不關閉,但它也不會重新啓動。輸入除Y/Y以外的任何內容,程序將關閉。Python雖然循環不工作

我確定我缺少一些簡單的東西。

回答

2

得到輸入後,循環內部有一個return,所以無論輸入如何,您都將退出該函數。

另一種方法:

def main(): 
    while True: 
     module() 
     again = raw_input("Do it again Y/y? ") 
     if again.lower() != 'y:' 
      return 

這簡化了在幾個方面的循環結構:

  1. 沒有初始分配給變量again循環之前是必要的。
  2. 輸入轉換爲lower case,因此我們只有 與'y'進行比較,而不是大寫和小寫兩種版本。
  3. 簡化了循環控制,無限循環 僅在用戶輸入除'Y''y'以外的其他任何內容時纔會退出。
+1

我怎麼樣是的是是唯一的選擇,就像沙漠中的選擇:-) –

+0

爲什麼downvote?沒有解釋,這對OP,SO或我沒有用。如果出現錯誤,我會很樂意糾正它,但我只能用建設性的反饋來做到這一點:) – Levon

+0

我沒有downvote。 –

0

return導致您退出函數main。將其移出時間塊或小怪,但完全擺脫它。

5
def main(): 
    again = "y" 
    while again == "y" or again == "Y": 
     module() 
     again = raw_input("Do it again Y/y? ") 
    return 

使用Python縮進是關鍵

+0

啊謝謝你。這是程序員的困境。句法!! –

+0

如果您認爲我的答案是幫助您解決問題的答案,您會介意將其標記爲其中一個添加接受的答案嗎?乾杯 –