将for循环转换为while循环

时间:2017-09-14 02:34:49

标签: python-3.x while-loop

我做了一个for循环,如果另一个2旁边有一个2,则返回true,现在我尝试使用while循环。我似乎无法使我的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

我试着在循环中运行它,但它不起作用。

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

有人可以告诉我它有什么问题吗?

1 个答案:

答案 0 :(得分:0)

  1. return True没有缩进,所以总是返回它(即它不是if语句的主体)

  2. 该函数永远不会返回`False

  3. 尝试:

    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