Незнайка
Вся теория
Теория· 6 мин чтения

Основы программирования на Python: переменные, ветвления, циклы

Синтаксис переменных, условного оператора if-elif-else и циклов for и while в Python с примерами для задач ЕГЭ по информатике.

В этой статье вы сможете узнать:

  • как объявляются переменные и какие основные типы данных используются в Python;
  • как работает условный оператор if-elif-else для организации ветвлений;
  • как устроены циклы for и while и когда какой из них удобнее использовать.

Переменные и типы данных

В Python переменная создаётся присваиванием значения без явного указания типа — тип определяется автоматически по значению.

a = 5           # целое число (int)
b = 3.14        # вещественное число (float)
name = "Анна"   # строка (str)
flag = True     # логическое значение (bool)

Значение переменной можно изменить в любой момент, в том числе присвоив значение другого типа:

a = 5
a = "теперь строка"

Ввод и вывод данных

Функция input() считывает строку с клавиатуры, а функция print() выводит значение на экран. Поскольку input() всегда возвращает строку, для числового ввода нужно явное преобразование типа:

n = int(input())        # считать целое число
x = float(input())      # считать вещественное число
print("Результат:", n)

Условный оператор if-elif-else

Ветвление позволяет выполнять разные действия в зависимости от условия. В Python блоки кода выделяются отступами (обычно 4 пробела), а не скобками или ключевыми словами.

n = int(input())

if n > 0:
    print("Положительное число")
elif n < 0:
    print("Отрицательное число")
else:
    print("Ноль")

Условие после if и elif может быть любым логическим выражением, использующим операторы сравнения (==, !=, <, >, <=, >=) и логические операторы (and, or, not).

Цикл for

Цикл for используется, когда известно точное количество повторений — чаще всего для перебора диапазона чисел с помощью функции range().

for i in range(5):
    print(i)   # выведет числа от 0 до 4

Функция range(start, stop, step) позволяет задать начало, конец (не включается) и шаг перебора:

for i in range(1, 10, 2):
    print(i)   # выведет 1, 3, 5, 7, 9

Цикл while

Цикл while используется, когда число повторений заранее неизвестно и зависит от выполнения условия.

n = int(input())
count = 0
while n > 0:
    count += 1
    n = n // 10   # убираем последнюю цифру числа
print("Количество цифр:", count)

Важно следить, чтобы внутри цикла while изменялось значение переменной, участвующей в условии, — иначе цикл станет бесконечным.

Накопление результата в цикле

Частый паттерн задач ЕГЭ — накопление суммы, произведения, количества или максимума/минимума в цикле.

total = 0
for i in range(1, 101):
    total += i
print(total)   # сумма чисел от 1 до 100
max_value = float("-inf")
numbers = [3, 7, 2, 9, 4]
for x in numbers:
    if x > max_value:
        max_value = x
print(max_value)

Алгоритм разбора программы на Python

  1. Определите, какие переменные объявлены в программе и какой тип данных они хранят.
  2. Проследите порядок выполнения инструкций сверху вниз, обращая внимание на отступы, определяющие границы блоков кода.
  3. Если встретился условный оператор — определите, какое условие истинно при заданных входных данных, и какая ветвь выполняется.
  4. Если встретился цикл for — определите диапазон значений переменной цикла по параметрам range().
  5. Если встретился цикл while — определите условие продолжения цикла и проследите, как изменяются переменные на каждой итерации, пока условие не станет ложным.
  6. Проследите изменение накапливаемых переменных (суммы, счётчика, максимума) на каждой итерации цикла.

Примеры решения

Пример 1. Определите, что выведет программа:

x = 7
if x % 2 == 0:
    print("Чётное")
else:
    print("Нечётное")

Проверяем условие: 7mod  2=1≠07 \mod 2 = 1 \neq 0, значит условие ложно, выполняется ветка else.

Ответ: программа выведет «Нечётное».

Пример 2. Определите, что выведет программа:

s = 0
for i in range(1, 6):
    s += i * i
print(s)

Вычисляем сумму квадратов: 12+22+32+42+52=1+4+9+16+25=551^2+2^2+3^2+4^2+5^2 = 1+4+9+16+25 = 55.

Ответ: программа выведет 55.

Пример 3. Определите, что выведет программа:

n = 100
count = 0
while n > 1:
    n = n // 2
    count += 1
print(count)

Прослеживаем итерации: 100→50→25→12→6→3→1100 \to 50 \to 25 \to 12 \to 6 \to 3 \to 1 — цикл выполнился 6 раз (пока n>1n>1).

Ответ: программа выведет 6.

Часто задаваемые вопросы

Почему в Python не нужно заранее объявлять тип переменной? Python использует динамическую типизацию: тип переменной определяется автоматически на основе присвоенного значения и может изменяться при повторном присваивании — в отличие от языков со статической типизацией, где тип фиксируется один раз при объявлении.

Чем цикл for принципиально отличается от цикла while? Цикл for предназначен для перебора заранее известной последовательности значений (например, диапазона чисел или элементов списка) и завершается автоматически после последнего элемента, тогда как цикл while продолжается до тех пор, пока указанное условие остаётся истинным, и число повторений заранее может быть неизвестно.

Что произойдёт, если забыть изменить переменную внутри цикла while? Если условие цикла while всегда остаётся истинным (например, забыли изменить переменную, от которой оно зависит), цикл станет бесконечным и программа никогда не завершится — это одна из самых частых ошибок начинающих программистов.

Почему в Python важны отступы? Отступы в Python не являются просто визуальным оформлением — они определяют границы блоков кода (тела циклов, условных операторов, функций); неправильный отступ меняет логику программы или вызывает ошибку синтаксиса.

Похожие темы для изучения

  • Массивы: обработка и типовые алгоритмы (Python)
  • Рекурсивные алгоритмы (Python)
  • Логические операции и таблицы истинности
  • Системы счисления: перевод чисел между системами

Задачи для самостоятельного решения

  1. Определите, что выведет программа: x = 15; print("Да" if x % 3 == 0 else "Нет").
  2. Определите, что выведет программа с циклом for i in range(2, 11, 2): print(i, end=" ").
  3. Определите значение переменной s после выполнения цикла s = 1; for i in range(1, 5): s *= i.
  4. Определите, сколько раз выполнится цикл while в программе n = 50; while n > 0: n -= 7.
  5. Напишите программу, которая считывает число и выводит, является ли оно положительным, отрицательным или нулём.
  6. Объясните, почему программа n = 10; while n != 0: n -= 3 никогда не завершится, и предложите исправление.