Python - как переменная влияет на цикл - PullRequest
0 голосов
/ 07 ноября 2018

Мне интересно, почему при переходе с arr [n] в версии 1 на n в версии 2 получается другой результат:

Версия 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 голосов
/ 07 ноября 2018

это не так, как работает диапазон.

в этой строке:

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() включительно слева и исключительно справа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...