Общий синтаксис
# Counter loop
i = 0
while i < n:
# body
i += 1
# Infinite loop with controlled exit
while True:
# body
if exit_condition:
break
# Loop with else block
while condition:
pass # body
else:
print("no break occurred")
Ключевые слова циклов
| Ключевое слово | Описание | Пример |
|---|---|---|
while |
Начинает цикл с предусловием. Тело выполняется, пока условие истинно. | while i < 5: |
break |
Прерывает выполнение цикла и передаёт управление строке после цикла. | if x == 0: break |
continue |
Пропускает оставшийся код текущей итерации и возвращается к условию. | if x < 0: continue |
else |
Блок после while, выполняемый при естественном завершении цикла. |
while ... else: ... |
Функции модуля random
| Функция | Описание | Пример | Возможный результат |
|---|---|---|---|
random.random() |
Случайное float в полуинтервале [0.0, 1.0). |
random.random() |
0.37444887175646646 |
random.randint(a, b) |
Случайное целое от a до b включительно. |
random.randint(1, 100) |
42 |
random.randrange(stop) |
Случайное целое от 0 до stop - 1. |
random.randrange(10) |
7 |
random.randrange(start, stop, step=1) |
Случайный элемент из диапазона, аналогичного range. |
random.randrange(0, 101, 10) |
30 |
random.choice(seq) |
Случайный элемент последовательности. | random.choice(["a", "b", "c"]) |
"b" |
Паттерны валидации ввода
При чтении данных от пользователя важно проверять, что введённое значение можно преобразовать в число. Ниже — классический и современный подходы.
📄 examples/input_validation_classic.py
while True:
raw = input("Enter a positive number: ")
if not raw.isdigit():
print("Please enter a valid integer.")
continue
value = int(raw)
if value > 0:
break
print("Number must be positive.")
print(f"You entered: {value}")
📄 examples/input_validation_walrus.py
# Modern pattern using the walrus operator (Python 3.8+)
while (raw := input("Enter a number: ")) != "exit":
if not raw.lstrip("-").isdigit():
print("Invalid input, try again.")
continue
print(f"Square of {raw} is {int(raw) ** 2}")
Проверить по документации: оператор «морж»
:= и функции модуля random описаны в официальной документации Python. Для криптографически стойкой случайности используйте secrets вместо random.
Параметры функций random
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
a в randint(a, b) | int | Нижняя граница диапазона (включительно). | да |
b в randint(a, b) | int | Верхняя граница диапазона (включительно). | да |
start в randrange | int | Начало диапазона (включительно). | да, если есть stop |
stop в randrange | int | Конец диапазона (не включительно). | да |
step в randrange | int | Шаг между возможными значениями. | нет (по умолчанию 1) |