Гид для новичков любого возраста

Python с нуля: первый шаг в программирование

Объясняем простыми словами — так, чтобы понял и десятилетний ребёнок, и его бабушка. Переменные, числа, текст, условия и циклы — с примерами, которые можно потрогать руками.

Знакомство

Что такое Python и зачем он нужен

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

Разница в том, что компьютер — существо очень послушное, но совершенно не умеющее догадываться. Он выполнит ровно то, что ему написали, шаг за шагом, ни на шаг не отступив от инструкции.

Представьте рецепт. «Возьми два яйца. Взбей их. Добавь муку.» — если написать рецепт для человека, он поймёт даже пропущенные мелочи. А вот программа на Python — это рецепт для очень буквального помощника: каждую мелочь придётся расписать самому.

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

Подготовка

Как установить и запустить Python

Есть два пути — выберите тот, что проще для вас прямо сейчас.

Способ 1. Установить на компьютер

Способ 2. Без установки, прямо в браузере

Если не хочется ничего устанавливать — можно найти в интернете бесплатный «онлайн-интерпретатор Python». Открываете страницу в браузере, пишете код и сразу видите результат. Отлично подходит, чтобы просто попробовать.

Совет. Для первого знакомства выбирайте способ без установки — так вы начнёте писать код уже через минуту, а не потратите время на настройку.
Практика

Первая программа

Традиция всех программистов мира — первым делом заставить компьютер поздороваться. Вот как это выглядит на Python:

код
print("Привет, мир!")
результат на экранеПривет, мир!

print(...) — это команда «показать на экране». Такая команда называется функцией: у неё есть имя (print) и скобки, куда мы кладём то, что нужно показать. Текст в кавычках — это и есть то самое сообщение.

Кавычки важны: они говорят Python «это не команда, это просто текст, покажи его как есть».

Основы

Переменные

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

код
age = 10
name = "Аня"

print(name)
print(age)
результат на экранеАня
10

Знак = здесь означает не «равно», как в математике, а «положить в коробку». Строка age = 10 читается так: «в коробку с именем age положи число 10».

Содержимое коробки можно менять в любой момент:

код
age = 10
print(age)   # покажет 10

age = age + 1
print(age)   # покажет 11
результат на экране10
11

Как называть переменные

🧪 Попробуйте сами

Впишите своё имя — увидите, как оно превращается в переменную и подставляется в текст.

— впишите имя выше —

Основные типы данных

У каждого значения в Python есть свой «тип» — вид данных, который определяет, что с ним можно делать. Пока достаточно запомнить четыре главных:

код
number = 5
gramm = 67.4
text = "Алиса"
valid = True

print(number, gramm, text, valid)
результат на экране5 67.4 Алиса True
ТипНазваниеПример
intцелое число5, -3
floatдробное число67.4
strтекст (строка)"Алиса"
boolлогическое значениеTrue или False

bool — это тип, у которого есть всего два возможных значения: True (истина) и False (ложь). Мы уже встречали их как результат сравнений и условий — и скоро увидим, что именно на них строятся if и циклы.

Основы

Числа

В Python есть два основных вида чисел: целые (int, от integer) — например, 5 или −3, и дробные (float, от «плавающая точка») — например, 3.14. Дробную часть отделяют точкой, а не запятой.

код
apples = 5
price = 1.5

print(apples * price)
результат на экране7.5

С числами можно делать обычную математику:

ЗнакЧто делаетПример
+сложение5 + 2 → 7
-вычитание5 - 2 → 3
*умножение5 * 2 → 10
/деление5 / 2 → 2.5
//деление без остатка5 // 2 → 2
%остаток от деления5 % 2 → 1
**возведение в степень5 ** 2 → 25
Обратите внимание. Обычное деление / в Python всегда возвращает дробное число, даже если оно делится нацело: 10 / 2 даёт 5.0, а не 5.

Короткая запись: +=, -=, *=, /=

Изменение переменной «саму через себя» встречается так часто, что для этого придумали сокращение. Вместо count = count + 1 можно написать короче — count += 1, смысл при этом не меняется.

код
count = 0

count += 1   # то же самое, что count = count + 1
count += 1

print(count)
результат на экране2

Так же работают -=, *= и /= — для вычитания, умножения и деления. Этот приём часто пригодится в циклах, когда нужно что-то считать или копить.

Основы

Текст (строки)

Текст в программировании называют «строкой» — это любая последовательность символов, заключённая в кавычки: одинарные '...' или двойные "...", разницы нет.

Строки можно склеивать знаком +:

код
first = "Приве"
second = "т!"

print(first + second)
результат на экранеПривет!

Но гораздо удобнее подставлять переменные в текст с помощью f-строк — строк с буквой f перед кавычками, где значения вставляются прямо в фигурных скобках:

код
name = "Аня"
age = 10

print(f"Привет, {name}! Тебе {age} лет.")
результат на экранеПривет, Аня! Тебе 10 лет.

Ещё пара полезных приёмов: len(text) считает количество символов, а text * 3 повторяет строку три раза подряд.

Основы

Ввод данных: input()

Пока что все значения мы задавали сами прямо в коде. Но программа становится куда интереснее, когда может спросить что-то у человека — для этого есть функция input().

код
name = input("Ваше имя: ")
age = int(input("Ваш возраст: "))
city = input("Ваш город: ")

print(f"Меня зовут {name}, мне {age} лет, я живу в {city}")
результат на экране (после ввода)Меня зовут Женя, мне 26 лет, я живу в Туле

Текст в скобках input("Ваше имя: ") — это подсказка, которую увидит человек. Программа остановится и будет ждать, пока не нажмут Enter, а всё, что было напечатано, попадёт в переменную.

Важная особенность. input() всегда возвращает текст (строку), даже если человек ввёл цифры. Поэтому input() + input() склеит два текста, а не сложит числа: "15" + "20" даст "1520", а не 35. Чтобы посчитать честную сумму, число нужно обернуть в int() (для целых) или float() (для дробных) — как мы и сделали с возрастом выше.
⌨️ Соберите программу с вводом

Заполните поля так, как будто отвечаете программе — код и результат соберутся сами.

имя: возраст: город:
Логика

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

Условия — это способ сказать программе: «сделай одно, если верно вот это, а иначе сделай другое». Жизнь вокруг нас полна таких развилок.

Например: «если идёт дождь — возьми зонт; а если светит солнце — возьми очки; иначе просто выходи налегке». В Python эта мысль пишется почти так же.
код
weather = "дождь"

if weather == "дождь":
    print("Возьми зонт")
elif weather == "солнце":
    print("Возьми очки")
else:
    print("Можно выходить налегке")
результат на экранеВозьми зонт

Разберём по частям:

Знак == (два знака равенства подряд) означает «проверить на равенство», в отличие от одного =, который «кладёт в коробку». Другие операторы сравнения:

ЗнакЗначение
==равно
!=не равно
> / <больше / меньше
>= / <=больше или равно / меньше или равно

Логические операторы: and, or, not

Иногда нужно проверить сразу несколько условий вместе — для этого есть три специальных слова.

ЗаписьКогда результат верен (True)
A and Bкогда верны оба условия сразу
A or Bкогда верно хотя бы одно из условий
not Aпереворачивает результат на противоположный
код
age = 15
has_parent = True

if age >= 18 or has_parent:
    print("Можно в кино")
else:
    print("Нужен взрослый рядом")
результат на экранеМожно в кино

Здесь достаточно, чтобы сработало хотя бы одно условие: либо возраст 18+, либо рядом родитель. А вот and требует, чтобы были верны сразу оба условия:

код
is_warm = True
has_umbrella = False

if is_warm and has_umbrella:
    print("Идём гулять")
else:
    print("Лучше остаться дома")
результат на экранеЛучше остаться дома

not работает иначе — он не сравнивает два условия, а просто переворачивает одно на противоположное:

код
is_raining = True
print(not is_raining)
результат на экранеFalse
🔀 Поиграйте с and / or

Включите переключатели и выберите оператор — результат посчитается вживую, так же, как это сделал бы Python.

тепло (warm)
есть зонт (umbrella)
оператор:
warm and umbrella
False
Важная особенность Python. Здесь нет фигурных скобок для обозначения блока кода — вместо них используются отступы (обычно 4 пробела). Всё, что стоит с отступом под строкой с if, elif или else, относится к этому блоку. Сбитый отступ — самая частая ошибка у новичков.

Диапазоны значений

Цепочку if / elif / else удобно использовать, чтобы разложить число по «корзинам» — например, определить возрастную категорию:

код
age = int(input("Ваш возраст: "))

if age >= 0 and age <= 12:
    print("Ребёнок")
elif age >= 13 and age <= 17:
    print("Подросток")
elif age >= 18 and age <= 50:
    print("Взрослый")
elif age >= 51:
    print("Пожилой")
else:
    print("Такого возраста не бывает")
результат на экранеПодросток

Тот же приём работает и для проверки на несколько конкретных значений через or — например, чтобы определить время года по номеру месяца:

код
month = int(input("Номер месяца: "))

if month == 12 or month == 1 or month == 2:
    print("Зима")
elif month >= 3 and month <= 5:
    print("Весна")
else:
    print("Лето или осень")
результат на экранеЗима

Комбинируем and и or на практике

Часто доступ к чему-либо разрешают разными способами — например, по паролю или по связке логина и пароля администратора:

код
login = input("Логин: ")
password = input("Пароль: ")

if password == "1a" or password == "2b":
    print("Доступ: пользователь")
elif login == "admin" and password == "3v":
    print("Доступ: администратор")
else:
    print("Доступ запрещён")
результат на экранеДоступ запрещён
Мини-проект: калькулятор

Вложенные условия

Внутри блока if или elif можно написать ещё один if — это называется вложенным условием: он проверяется, только когда сработало внешнее. Удобный пример — калькулятор, который не даёт делить на ноль:

код
a = int(input("Первое число: "))
b = int(input("Второе число: "))
op = input("Выбери +, -, *, /: ")

if op == "+":
    print(f"Сумма: {a + b}")
elif op == "-":
    print(f"Разность: {a - b}")
elif op == "*":
    print(f"Произведение: {a * b}")
elif op == "/":
    if b == 0:
        print("Делить на 0 нельзя!")
    else:
        print(f"Деление: {a / b}")
else:
    print("Такого действия нет")
результат на экранеДелить на 0 нельзя!

Обратите внимание на отступы: строка if b == 0: стоит внутри elif op == "/":, а значит выполняется только тогда, когда пользователь выбрал именно деление.

Повторения

Цикл for

Цикл — это способ заставить компьютер повторить одно и то же действие много раз, не переписывая код вручную. for используют, когда заранее известно, по какому набору предметов нужно пройтись.

Представьте коробку с фруктами. Вы говорите: «для каждого фрукта в коробке — покажи его название». Неважно, сколько там фруктов — три или тридцать, фраза звучит одинаково.
код
fruits = ["яблоко", "груша", "банан"]

for fruit in fruits:
    print(fruit)
результат на экранеяблоко
груша
банан

Часто нужно просто повторить действие определённое число раз — для этого есть функция range(), которая создаёт последовательность чисел:

код
for i in range(5):
    print(f"Шаг номер {i}")
результат на экранеШаг номер 0
Шаг номер 1
Шаг номер 2
Шаг номер 3
Шаг номер 4

range(5) даёт пять чисел: 0, 1, 2, 3, 4 — Python начинает счёт с нуля, это тоже стоит запомнить.

🍎 Посмотрите, как работает цикл

Нажмите кнопку — цикл пройдёт по коробке с фруктами шаг за шагом.

Ещё примеры for

Циклом можно пройтись не только по списку, но и по каждой букве строки:

код
word = "кот"

for letter in word:
    print(letter)
результат на экранек
о
т

А ещё в цикле часто копят результат — например, считают сумму чисел в отдельной переменной-накопителе:

код
numbers = [10, 20, 30]
total = 0

for n in numbers:
    total = total + n

print(total)
результат на экране60
➕ Посчитайте сумму своими числами

Впишите числа через запятую и запустите — увидите, как переменная total растёт на каждом шаге цикла.


Вложенные циклы: таблица умножения

Один for можно поставить внутрь другого — это называется вложенным циклом. Внешний цикл выбирает число, а внутренний — полностью пробегает по своему набору для каждого значения внешнего:

код
for i in range(2, 4):
    for j in range(1, 4):
        print(f"{i} * {j} = {i * j}")
результат на экране2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9

Для каждого значения i (2, потом 3) внутренний цикл заново проходит все значения j — поэтому строк получается 2 × 3 = 6. Расширив диапазоны до range(2, 10) и range(1, 10), получится полная таблица умножения.

Рисуем ёлочку

Вложенные циклы и повторение строк (" " * n) отлично подходят для несложной ASCII-графики:

код
size = int(input("Размер ёлки: "))

for i in range(1, size + 1):
    print(" " * (size - i) + "#" * (2 * i - 1))

for j in range(2):
    print(" " * (size - 2) + "//")
🎄 Нарисуйте ёлочку сами

Задайте размер (от 3 до 12) и посмотрите, что нарисует этот код.



    

Считаем с условием внутри цикла

Комбинация for + if + накопитель со знаком += позволяет отбирать и считать только нужные значения:

код
count = 0

for i in range(1, 51):
    if i % 7 == 0:
        count += 1

print(f"Всего чисел: {count}")
результат на экранеВсего чисел: 7

Цикл проверяет все числа от 1 до 50, и каждый раз, когда остаток от деления на 7 равен нулю, счётчик увеличивается на единицу.

Повторения

Цикл while

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

Представьте обратный отсчёт. «Пока счётчик больше нуля — говори число вслух и убавляй на единицу». Мы не знаем заранее число шагов в общем виде — просто следуем правилу, пока оно выполняется.
код
count = 3

while count > 0:
    print(count)
    count = count - 1

print("Старт!")
результат на экране3
2
1
Старт!
Частая ловушка. Если забыть строку count = count - 1, условие count > 0 никогда не станет ложным — цикл будет повторяться бесконечно, и программа «зависнет». Всегда проверяйте, что внутри цикла что-то меняется в сторону завершения условия.

Иногда цикл хочется прервать досрочно по особому условию — для этого есть команда break, которая немедленно останавливает цикл:

код
numbers = [4, 9, 15, 7]

for n in numbers:
    if n == 15:
        print("Нашли 15, хватит искать")
        break
    print(f"Проверяю {n}...")
результат на экранеПроверяю 4...
Проверяю 9...
Нашли 15, хватит искать

Ещё один пример while

Часто while используют, чтобы копить что-то до нужной цели — например, откладывать деньги, пока не наберётся нужная сумма:

код
savings = 0

while savings < 100:
    savings = savings + 20
    print(savings)
результат на экране20
40
60
80
100
💰 Соберите сумму сами

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

цель: шаг:

Бесконечный цикл с выходом по команде

Иногда программа должна работать, пока пользователь сам не решит остановиться. Для этого пишут while True — условие, которое всегда истинно, — а выход делают через break внутри:

код
while True:
    num = int(input("Введите число: "))
    print(f"Удвоенное число: {num * 2}")

    answer = input("Продолжить? (да/нет): ")
    if answer == "нет":
        break

Без break такой цикл не остановился бы никогда — поэтому while True всегда пишут вместе с проверкой, которая рано или поздно его прервёт.

🔐 Угадайте пароль

Программа проверяет пароль в цикле — «Ошибка, введите снова», пока не угадаете. Подсказка: название языка, который мы изучаем.


while True: ждём ввод...

Ещё несколько типичных задач

Этот же приём — while True плюс проверка внутри — лежит в основе множества похожих программ. Вот три коротких примера.

Считаем сумму чисел, пока не введут 0:

код
total = 0

while True:
    num = int(input("Число (0 — чтобы закончить): "))
    if num == 0:
        break
    total += num

print(f"Сумма: {total}")

Ищем первое число больше 100, которое делится на 13:

код
num = 100

while True:
    if num % 13 == 0:
        print(f"Нашли: {num}")
        break
    num += 1
результат на экранеНашли: 104

Считаем, сколько раз число можно поделить на 2, прежде чем оно станет меньше 1:

код
number = 16
count = 0

while number >= 2:
    number = number // 2
    count += 1

print(f"Раз: {count}")
результат на экранеРаз: 4
Итог

Шпаргалка на одну страницу

Коротко всё, что мы разобрали — чтобы можно было подглядывать, когда пишете свой первый код.

Переменная

age = 10 name = "Аня"

Вывод на экран

print("Привет!") print(f"Тебе {age} лет")

Ввод данных

name = input("Имя: ") age = int(input("Возраст: "))

Условие

if age > 18: print("взрослый") elif age > 0: print("ребёнок") else: print("хм")

and / or / not

if age >= 18 and has_ticket: print("можно") if a or b: print("хотя бы одно")

Цикл for

for x in range(5): print(x)

Цикл while

while True: x = input("Введи: ") if x == "стоп": break

Операторы сравнения

== != > < >= <=

Сокращённая запись

count += 1 total -= 5 x *= 2
Дальше

Что делать дальше

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

Не бойтесь ошибок — в программировании это не провал, а часть процесса: компьютер честно укажет на строку, где что-то пошло не так, и это всегда можно исправить.