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