- en
- Language: ru
- Documentation version: latest
break, continue, pass
В Python есть несколько операторов, которые позволяют менять поведение циклов по умолчанию.
Оператор break
Оператор break позволяет досрочно прервать цикл:
break прерывает текущий цикл и продолжает выполнение следующих выражений
если используется несколько вложенных циклов, break прерывает внутренний цикл и продолжает выполнять выражения, следующие за блоком * break может использоваться в циклах for и while
Пример с циклом for:
In [1]: for num in range(10):
...: if num < 7:
...: print(num)
...: else:
...: break
...:
0
1
2
3
4
5
6
Пример с циклом while:
In [2]: i = 0
In [3]: while i < 10:
...: if i == 5:
...: break
...: else:
...: print(i)
...: i += 1
...:
0
1
2
3
4
Использование break в примере с запросом пароля (файл check_password_with_while_break.py):
username = input('Введите имя пользователя: ' )
password = input('Введите пароль: ' )
while True:
if len(password) < 8:
print('Пароль слишком короткий\n')
elif username in password:
print('Пароль содержит имя пользователя\n')
else:
print('Пароль для пользователя {} установлен'.format(username))
# завершает цикл while
break
password = input('Введите пароль еще раз: ')
Теперь можно не повторять строку
password = input('Введите пароль еще раз: ')
в каждом ответвлении,
достаточно перенести ее в конец цикла.
И, как только будет введен правильный пароль, break выведет программу из цикла while.
Оператор continue
Оператор continue возвращает управление в начало цикла. То есть, continue позволяет «перепрыгнуть» оставшиеся выражения в цикле и перейти к следующей итерации.
Пример с циклом for:
In [4]: for num in range(5):
...: if num == 3:
...: continue
...: else:
...: print(num)
...:
0
1
2
4
Пример с циклом while:
In [5]: i = 0
In [6]: while i < 6:
....: i += 1
....: if i == 3:
....: print("Пропускаем 3")
....: continue
....: print("Это никто не увидит")
....: else:
....: print("Текущее значение: ", i)
....:
Текущее значение: 1
Текущее значение: 2
Пропускаем 3
Текущее значение: 4
Текущее значение: 5
Текущее значение: 6
Использование continue в примере с запросом пароля (файл check_password_with_while_continue.py):
username = input('Введите имя пользователя: ')
password = input('Введите пароль: ')
password_correct = False
while not password_correct:
if len(password) < 8:
print('Пароль слишком короткий\n')
elif username in password:
print('Пароль содержит имя пользователя\n')
else:
print('Пароль для пользователя {} установлен'.format(username))
password_correct = True
continue
password = input('Введите пароль еще раз: ')
Тут выход из цикла выполнятся с помощью проверки флага password_correct. Когда был введен правильный пароль, флаг выставляется равным True, и с помощью continue выполняется переход в начало цикла, перескочив последнюю строку с запросом пароля.
Результат выполнения будет таким:
$ python check_password_with_while_continue.py
Введите имя пользователя: nata
Введите пароль: nata12
Пароль слишком короткий
Введите пароль еще раз: natalksdjflsdjf
Пароль содержит имя пользователя
Введите пароль еще раз: asdfsujljhdflaskjdfh
Пароль для пользователя nata установлен
Оператор pass
Оператор pass
ничего не делает. Фактически, это такая заглушка для
объектов.
Например, pass
может помочь в ситуации, когда нужно прописать
структуру скрипта. Его можно ставить в циклах, функциях, классах. И это
не будет влиять на исполнение кода.
Пример использования pass:
In [6]: for num in range(5):
....: if num < 3:
....: pass
....: else:
....: print(num)
....:
3
4