Прерывание циклов и повторное срабатывание переменной в диапазоне - PullRequest
0 голосов
/ 14 января 2020

Ниже я перебираю словарь - вы можете видеть «страницы», подсчитывающие, сколько страниц он просмотрел.

for pages in range(0,1000)

Кажется, что после перерыва значение страниц не сбрасывается до 0. Это очень важно. Как я могу обеспечить это?

ОТВЕТ

    numbers = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}

for key, value in numbers.items():
    print(key)
    for i in range(0, 1000):
        print('-', i)
        if i == value:
            break

1 Ответ

1 голос
/ 14 января 2020

Всякий раз, когда вы делаете это:

for record_job in range(0,1000):

record_job будет последовательно установлен на 0, 1, 2 и т. Д. c. Например:

numbers = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}

for key, value in numbers.items():
    print(key)
    for i in range(0, 1000):
        print('-', i)
        if i == value:
            break

Будет печатать:

one
- 0
- 1
two
- 0
- 1
- 2
three
- 0
- 1
- 2
- 3
four
- 0
- 1
- 2
- 3
- 4
five
- 0
- 1
- 2
- 3
- 4
- 5

Но если бы i было бы напечатано вне циклов, как показано ниже:

numbers = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}

for key, value in numbers.items():
    print(key)
    for i in range(0, 1000):
        print('-', i)
        if i == value:
            break
print(i)

Он напечатает 5, потому что это было последнее значение i, назначенное для текущей области. Что, как я полагаю, вы заметили? Если вы хотите очистить i для текущей области, то вы должны удалить его после завершения циклов:

numbers = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}

for key, value in numbers.items():
    print(key)
    for i in range(0, 1000):
        print('-', i)
        if i == value:
            break
del i
print(i) # NameError, i is no longer defined

Тем не менее, вы не должны называть свой словарь dict, потому что, делая это, вы слежка за встроенным, и это не очень хорошая практика.

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