我想知道当我从版本1的arr [n]更改为版本2的n时为什么会有不同的结果吗?
版本1
def summer_69(arr):
list_sum2 = 0
n = 0
for arr[n] in range(arr[n] == 6, (arr[n]== 9) + 1):
list_sum2 += arr[n]
print(list_sum2)
summer_69([1, 3, 5])
summer_69([4, 5, 6, 7, 8, 9])
版本1的结果
0
0
版本2
def summer_69(arr):
list_sum2 = 0
n = 0
for n in range(arr[n] == 6, (arr[n]== 9) + 1):
list_sum2 += arr[n]
print(list_sum2)
summer_69([1, 3, 5])
summer_69([4, 5, 6, 7, 8, 9])
版本2的结果
1
4
答案 0 :(得分:3)
范围不是这样的。
在此行:
for n in range(arr[n] == 6, (arr[n]== 9) + 1):
arr[n] == 6
和(arr[n]== 9) + 1
返回的是真值,因为==
是一个比较运算符,因此n
最多只能取值0或1。
您想要
for n in range(6, 10):
以使n
的值从6迭代到9,range()
在左边是包含的,在右边是排除的