2015-03-02 87 views
0

在做出如何檢查猜測是否正確的功能之後,我很難說出我想要的內容。遊戲勝出時我該如何結束循環?

ntries = 0 
while ntries < 10: 
    ntries +=1 
    if test_guess(code,guess)==True: 
     print 'You win! You guessed the code in',ntries,'tries.' 
    elif test_guess(code,guess)==False: 
     guess = str(raw_input('Your guess: ')) 
print 'You lose!' 

的問題是,當玩家成功地猜測,比如說,8次嘗試的代碼,正在打印的結果是:

> You win! You guessed the code in 8 tries. 
> You win! You guessed the code in 9 tries. 
> You win! You guessed the code in 10 tries. 
> You lose! 

我知道這是因爲while循環表示循環不斷當ntries仍然小於10時運行。我如何獲得它,以便在贏得並停止時只打印嘗試次數?

+0

使用'break' print語句下面。 – KronoS 2015-03-02 21:55:17

回答

5

您的if聲明中的break關鍵字突圍了您的循環。

另外:您的if-elif塊過於冗長。由於test_guess正在返回某些東西,所以您可以重寫它。這也會在else條件中移動ntries變量,因爲如果你真的猜到了,但它失敗了,那麼增加它纔有意義。

if test_guess(code, guess): 
    print 'You win! You guess the code in', ntries, 'tries.' 
    break 
else: 
    ntries += 1 
    guess = str(raw_input('Your guess: ')) 
2

只是使用破

ntries = 0 
    while ntries < 10: 
    ntries +=1 
    if test_guess(code,guess)==True: 
     print 'You win! You guessed the code in',ntries,'tries.' 
     break 
    elif test_guess(code,guess)==False: 
     guess = str(raw_input('Your guess: ')) 
print 'You lose!'