Python-变量如何影响循环

时间:2018-11-07 13:12:38

标签: python list for-loop

我想知道当我从版本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

1 个答案:

答案 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()在左边是包含的,在右边是排除的