2017-09-14 292 views
2

我已經完成了一個for循環,如果在另一個2旁邊有一個2,並且現在我正在嘗試使用while循環來做它,則返回true。我似乎無法讓我的while循環工作。將for循環轉換爲while循環

這裏的for循環我做

def has22(nums): 
    "Return true if array contains a 2 next to a 2 somewhere""" 
    for i in range(0, len(nums)-1): 
     if nums[i] == 2 and nums[i+1] == 2: 
      return True  
    return False 

我試圖運行這個while循環,但它不工作。

def has22(nums): 
    """While loop version""" 
    i = 0 
    while i < len(nums) - 1: 
     if nums[i] == 2 and nums[i+1] == 2: 
     return True 
     i += 1 

有人可以告訴我它有什麼問題嗎?

回答

0
  1. return True不縮進,所以它總是返回

  2. 功能不會返回`假

嘗試(即它不是if語句體。):

def has22(nums): 
    """While loop version""" 
    i = 0 
    while i < len(nums) - 1: 
     if nums[i] == 2 and nums[i+1] == 2: 
      return True 
     i += 1 
    return False 
+0

它能正常工作,但爲什麼i + = 1不縮進? – mgz

+0

'i + = 1'在while循環的主體中:你希望它在循環的每一次迭代中運行,而不僅僅當'if'條件爲真時 –