Увеличение вложенного оператора if в python - PullRequest
1 голос
/ 09 марта 2019

У меня есть эта функция с вложенными операторами if, где после второго, если есть приращение переменных. Проблема заключается в том, что они увеличиваются только один раз, хотя метод печати выполняется столько раз, сколько есть экземпляров рассматриваемого числа (ноль или семь). Если я перемещу строку приращения вверх и помещу ее ниже первого оператора if, переменная приращения обновится, и это сработает. Я попробовал тот же код, версию на JavaScript, и у меня не было этой проблемы. Я был бы признателен, если бы кто-то мог объяснить, почему это происходит, какова логика Python за этим.

def spy_game(integers):
    zeros_index = 0
    seven_index = 0
    zeros_count = 0
    seven_count = 0
    for number in integers:
        if number == 0:
            if zeros_index < integers.index(number):
                zeros_index = integers.index(number)
                print(zeros_index)
                zeros_count = zeros_count + 1
                print(zeros_count)
        elif number == 7:
            if seven_index < integers.index(number):
                seven_index = integers.index(number)
                seven_count += 1
                print(seven_count)
    if zeros_count > 1 and seven_count > 0:
        return zeros_index < seven_index
    else:
        return False
...