Python3返回值缩进
查找33: 给定一个整数列表,如果数组的旁边包含一个3,则返回True 某处有个3Python3返回值缩进,python,function,Python,Function,查找33: 给定一个整数列表,如果数组的旁边包含一个3,则返回True 某处有个3 has_33([1, 3, 3]) → True has_33([1, 3, 1, 3]) → False has_33([3, 1, 3]) → False 我就是这样做的: def has_33(nums): for i in range(0, len(nums)-1): if nums[i] == 3 and nums[i+1] == 3: return T
has_33([1, 3, 3]) → True
has_33([1, 3, 1, 3]) → False
has_33([3, 1, 3]) → False
我就是这样做的:
def has_33(nums):
for i in range(0, len(nums)-1):
if nums[i] == 3 and nums[i+1] == 3:
return True
else:
return False
“好的,好的”
答案是:
def has_33(nums):
for i in range(0, len(nums)-1):
if nums[i] == 3 and nums[i+1] == 3:
return True
return False
为什么第一种代码方法不起作用?有人能解释一下吗
def has_33(nums):
for i in range(0, len(nums)-1):
print("iteration ",i)
if nums[i] == 3 and nums[i+1] == 3:
return True
else:
return False
因此,在上面的代码中,如果您看到从else
部分返回的代码。此外,中的循环只执行一次
您想要的是,循环应该运行完整的长度,所以最后需要您返回
False
。因为在您的示例中,第一次没有找到3旁边的另一个3时返回False。您需要等待返回False,直到它检查完所有列表。您的第一个变体不会循环数字-它总是在第一步返回。当您返回时,您的函数退出,控制流返回给调用方。因此,如果一行中没有2个连续的3个s,则将退出函数,而不检查数组的其余部分