1
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循环'中有两个return语句。这让我很困惑。

4

4 回答 4

4

这可以更简单地重写(即“更pythonic”),如下所示:

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

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

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

于 2013-10-30T15:21:20.257 回答
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

于 2013-10-30T15:20:05.463 回答
1

第二个返回不在 for 循环中。它提供了循环是否“通过”的返回值False,当nums[i]该范围内没有一个等于 9 时。

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

于 2013-10-30T15:15:31.597 回答
0

您可以使用列表切片将其重写为更清晰:

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

    if 9 in sublist:
        return True
    else:
        return False
于 2013-10-30T15:21:41.487 回答