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语句。这让我很困惑。
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语句。这让我很困惑。
这可以更简单地重写(即“更pythonic”),如下所示:
def array_front9(nums):
return 9 in nums[:4]
代码的前半部分将循环限制设置为前 4 个元素,如果数组nums
更短,则设置更少。 nums[:4]
通过创建一个最多只包含前 4 个元素的副本来做同样的事情。
循环正在检查是否9
在循环中找到该元素。如果找到,它会立即返回True
。如果从未找到,则循环将结束并False
返回。这是in
运算符的简写形式,是语言的内置部分。
让我解释:
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
。
第二个返回不在 for 循环中。它提供了循环是否“通过”的返回值False
,当nums[i]
该范围内没有一个等于 9 时。
至少,这就是你缩进它的方式。
您可以使用列表切片将其重写为更清晰:
def array_front9(nums):
sublist = nums[:4]
if 9 in sublist:
return True
else:
return False