2015-10-18 34 views
0
def straightCheck(playerHand): 
    playerHand.sort() 
    print(playerHand) 
    for i in range(len(playerHand)-1): 
      if playerHand[i] != playerHand [i+1] - 1: 
       handstrength = 0 
       return False 
       break 
      else: 
       handstrength = 5 
       return True 
    print(handstrength) 

x = [5,2,3,4,1] 
straightCheck(x) 

我很新的節目,我已經尚未掌握return命令。此功能無需退貨即可正常工作,但一旦我將其放入,playerHand將繼續打印,但handstrength不會。爲什麼不會這個函數打印的內容它應該

+1

應該做的功能是什麼? –

+0

確定一個數組只包含連續的數字@Padraic – callumbous

+0

你想使用'handstrength'變量嗎? –

回答

2

試試這個:

def straightCheck(playerHand): 
    playerHand.sort() 
    print(playerHand) 
    for i in range(len(playerHand)-1): 
     if playerHand[i] != playerHand[i+1] - 1: 
      handstrength = 0 
      print(handstrength) 
      return False 
    handstrength = 5 
    print(handstrength) 
    return True 

一個return指令終止函數的執行,這意味着後無碼它永遠不會執行。因此,如果您需要打印某些內容,請在返回之前進行打印。此外,break是不必要的,因爲return不僅會退出循環,它將退出整個功能。

雖然有一個潛伏的錯誤。注意,如果檢查失敗,您只應退出該函數,否則您必須保持循環。我們可以肯定的是,在我們退出循環後,只有有效,所以這部分邏輯必須是以外的循環。

+1

我想知道..循環中的重點是什麼,如果它總是在第一個循環返回 – Pynchia

+1

@Pynchia好抓,我更新了我的答案 –

相關問題