Python代码解释需要

时间:2013-10-30 15:13:53

标签: python

def array_front9(nums):
    end = len(nums)
    if end > 4:
        end = 4

    for i in range(end):
        if nums[i]==9:
            return True
    return False

我需要了解上面的python代码以及为什么两个在'for循环'中返回语句。这让我很困惑。

4 个答案:

答案 0 :(得分:4)

这可以更简单地重写(即“更多pythonic”),因为:

def array_front9(nums):
   return 9 in nums[:4]

代码的前半部分是将循环限制设置为前4个元素,如果数组nums更短,则设置为更少。 nums[:4]通过创建仅包含前4个元素的副本来完成同样的事情。

循环正在检查循环中是否找到元素9。如果找到,则会立即返回True。如果从未找到,则循环结束并返回False。这是in运算符的缩写形式,是语言的内置部分。

答案 1 :(得分:2)

让我解释一下:

def array_front9(nums):   # Define the function "array_front9"
    end = len(nums)       # Get the length of "nums" and put it in the variable "end"
    if end > 4:           # If "end" is greater than 4...
        end = 4           # ...reset "end" to 4

    for i in range(end):  # This iterates through each number contained in the range of "end", placing it in the variable "i"
        if nums[i]==9:    # If the "i" index of "nums" is 9...
            return True   # ...return True because we found what we were looking for
    return False          # If we have got here, return False because we didn't find what we were looking for

如果循环完成(完成)而没有返回True,则有两个return语句。

答案 2 :(得分:1)

第二次返回不在for循环中。如果循环“通过”,则False的返回值为nums[i],而{{1}}中的任何一个都不等于该范围内的9。

至少,这就是你缩进它的方式。

答案 3 :(得分:0)

您可以使用列表切片更清楚地重写此内容:

def array_front9(nums):
    sublist = nums[:4]

    if 9 in sublist:
        return True
    else:
        return False