【发布时间】:2023-03-21 12:42:01
【问题描述】:
我是编程新手,我正在尝试从 codingbat.com 了解这个解决方案。
给定一个整数数组,如果数字序列 1、2、3 出现在数组中的某个位置,则返回 True。
这是解决方案:
def array123(nums):
# Note: iterate with length-2, so can use i+1 and i+2 in the loop
for i in range(len(nums)-2):
if nums[i]==1 and nums[i+1]==2 and nums[i+2]==3:
return True
return False
但是为什么要使用 (len(nums)-2) 呢?它与我们开始 for-in 循环的位置有关吗?
我好像在网上找不到答案,希望有人能帮忙。
【问题讨论】:
-
你明白
range()是做什么的吗? -
这与循环开始的位置无关。这是循环结束的地方。
-
我了解范围的作用,抱歉我无法理解为什么我希望它以 -2 结尾,如:array123([1, 1, 2, 3, 1]) 然后它会通过在 3 处停止的循环(即 -2)运行吗?
-
对,但是如果你删除了
-2,那么范围会在什么时候结束呢?请注意,在循环中,代码将 2 添加到i。 -
哦,所以它最终会增加超过可用数字并且没有要处理的数据!
标签: python arrays for-loop if-statement