2012-09-24 63 views
0

我試圖讓我的程序重複,當用戶輸入y/n,但我很困惑如何使用這種類型的輸入一段時間真正的,下面是一些代碼。python重複程序,而真

again = input("Would you like to play again? enter y/n: ") 
if again == "n": 
    print ("Thanks for Playing!") 
    quit 

if again == "y": 
    print ("Lets play again..") 
    ???? 

另外,我還要做一個else語句,如果用戶在不同的角色進入,但我對如何着手,考慮不確定我有if語句2不同。

+0

使用功能......或者只是做'而再次='n'' –

+0

很簡單的例子,需要驗證:當再次==‘Y’: –

回答

3

在編寫獨立的Python程序時,最好使用main函數。它允許您輕鬆地添加一些單元測試,使用您的功能或從其他模塊的類(如果您導入它們)等。

如果您必須檢查是否滿足某些條件,以防其他條件不滿足,並根據哪些條件爲真來執行一些操作,您可以使用if ... elif ... else語句。

此外,請注意,在這種情況下,您不能使用input()函數作爲程序。你真正想在這裏使用的是raw_input。這兩個函數的區別在於raw_input()總是返回一個字符串,而input()將評估用戶的輸入,就好像它是在你的代碼中寫入的,而不是input()。因此,如果用戶輸入「y」(帶引號),則字符串對象將被存儲爲變量的值。但是,如果用戶輸入y(不帶引號),則input()將嘗試對此進行評估,如果未定義y,則會拋出錯誤。

你可以在這個主題here閱讀更多。

def main(): 
    while True: 
     again = raw_input("Would you like to play again? Enter y/n: ") 

     if again == "n": 
      print ("Thanks for Playing!") 
      return 
     elif again == "y": 
      print ("Lets play again..") 
     else: 
      print ("You should enter either \"y\" or \"n\".") 

if __name__ == "__main__": 
    main() 
+0

那做什麼,我需要的,除了在開始程序的開始,我沒有發佈早期的代碼,我會把整個代碼放在主函數中嗎? –

+0

是的,把我原來的代碼扔到循環中,並按預期工作,感謝您的幫助。 –

+0

通常使用該文件來定義不同的功能,包括要直接執行的文件的main()函數。所以你使用main()函數來處理用戶運行程序時應該執行的所有內容(但是如果它使用了一些其他函數,當然可以將它們放在main()函數之外,或者甚至在這個特定之外文件)。 – aruseni

0

你可以做這樣的事情:

指定一個布爾值,一個叫播放變量,然後用其作爲循環條件。

所以你會有;

playing = True 
while playing: 
    choice = input("would you like to play again? y/n: ") 
    if choice == "n": 
     print "Thanks for playing" 
     playing = False 
    else: 
     print "play again.. etc..." 

playing變量設置爲false與事業中的循環終止。

1
def play_game(): 
    if int(raw_input("Guess a number:"))!= 5: 
      print "You Lose!" 
    else: 
      print "You Win!" 

def play_again(): 
    return raw_input("Play Again?").lower() == "y" 

while True: 
    play_game() 
    if not play_again(): break 

print "OK Goodbye..." 
0

我有我的工作代碼和它的循環每次它進入else語句,基本上循環回if語句..

剛開始學習Python,我真的很喜歡它。 這是我的簡單代碼。

print 'Welcome to "Guess my number"' 

def main(): 
    while True: 
     number = raw_input('Please Enter a number between 1 and 10: ') 
     if number == '5': 
      print 'You Got It!! It\'s number ' + number 
      return 
     else: 
      print 'Please try again!' 
main() 
raw_input("\nPress enter") 
+0

在OP環境中回答總是比較好,因爲它提供了一個新的 –