tariel.ge › Полезное: бесплатные книги › Программирование: от нулей и единиц до PythonБесплатно · автор Тариел Бежанидзе
← Учебник по программированию ЛИСТ 15БЛОК 3 — PYTHON: ОСНОВЫРЕВ. 1
Глава 15 · Python: основы

Условия и циклы

Три конструкции структурного программирования из главы 07 — здесь, наконец, в реальном синтаксисе, который встретится в каждом Python-скрипте, который ты когда-либо напишешь.

Отступы — не просто красиво, а обязательный синтаксис

В Pascal (глава 07) отступы были соглашением для читаемости — формально код работал бы и без них, границы блоков задавали begin/end. В Python отступы — обязательная часть синтаксиса: именно они, а не скобки или ключевые слова, определяют, какие строки относятся к телу условия или цикла, а какие уже находятся вне его.

IndentationError — первая ошибка, с которой почти каждый сталкивается

Смешивание пробелов и табуляции, или просто непоследовательный отступ в соседних строках одного блока — вызовет ошибку IndentationError при попытке запустить скрипт. Стандартная практика — использовать 4 пробела на один уровень вложенности последовательно по всему файлу, и большинство современных редакторов кода делают это автоматически при нажатии Tab.

Условия: if / elif / else

age = 25

if age < 18:
    print("Ты ещё молод")
elif age < 65:
    print("Ты взрослый")
else:
    print("Почтенный возраст")

Операторы сравнения и логические операторы

ОператорЗначение
==Равно (не путать с одиночным = — присваиванием)
!=Не равно
< > <= >=Меньше, больше, меньше/больше или равно
andЛогическое И — оба условия должны быть истинны
orЛогическое ИЛИ — достаточно одного истинного условия
notЛогическое отрицание

"Правдивые" и "ложные" значения помимо True/False

В условии Python принимает не только настоящие True/False, но и автоматически трактует некоторые другие значения как ложные: число 0, пустую строку "", пустой список, специальное значение None (отсутствие значения). Всё остальное считается истинным. Это позволяет писать компактные проверки вроде if name: вместо более многословного if name != "":, но стоит явно знать про это поведение, чтобы не удивляться, почему условие сработало неожиданным образом.

Цикл while — условие проверяется каждый раз заново

count = 0
while count < 5:
    print(count)
    count = count + 1
Прямое сравнение с ручным циклом BASIC из главы 06

В BASIC такой же цикл собирался вручную из GOTO и проверки условия отдельными пронумерованными строками — фактически то же самое, что делает while здесь, только с явно видимой структурой вместо разбросанных по программе прыжков. while — по сути тот же цикл "проверяй условие и повторяй, пока оно истинно", просто с синтаксисом, честно отражающим структурное программирование главы 07, а не GOTO главы 06.

Цикл for — не совсем то же самое, что в языках C-семейства

В отличие от классического for в C-подобных языках (которым управляют счётчик, условие и шаг, записанные в одной строке), for в Python — это цикл "для каждого": перебор элементов какой-либо последовательности одного за другим.

for number in range(5):
    print(number) # напечатает 0, 1, 2, 3, 4

range(5) создаёt последовательность чисел от 0 до 4 (пять значений, не включая само число 5) — стандартный способ организовать цикл с заданным числом повторений, когда нужен именно счётчик, а не перебор готовой коллекции данных (той же теме будет посвящена глава 17 про списки).

break и continue

Вложенность — блоки внутри блоков

Условия и циклы можно вкладывать друг в друга — цикл внутри условия, условие внутри цикла, и так далее, с каждым уровнем вложенности добавляющим ещё один шаг отступа. Именно эта вложенная структура и есть то самое "структурное программирование" из главы 07 в чистом виде, без единого GOTO.

Что дальше

Следующая глава — функции: способ дать имя повторяющемуся блоку кода и вызывать его снова и снова, не копируя текст — прямое развитие идеи GOSUB из BASIC и процедур Pascal, уже встречавшихся в главах 06–07.

Глава15 — Условия и циклы
Блок3 — Python: основы
Далее16 — Функции
СтатусГотово · рев. 1
Предыдущая глава ← 14 · Переменные и типы данных Следующая глава 16 · Функции →

Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.