💻 Примеры: первые программы

← К оглавлению урока

⚡ Первые программы за 30 секунд

# hello.py
print("Hello, Python!")
print("2025", "08", "14", sep="-")   # 2025-08-14
print("Hi", end=", ")                # без перевода строки
print("all")                          # -> Hi, all

name = input("Введите имя: ")
print("Hello, " + name)
ЗадачаИнструментПример
Вывести текстprint(...)print("Hi")
Разделитель между значениямиsep=print("a","b", sep="-")
Конец строки вместо переводаend=print("Hi", end=", ")
Прочитать вводinput(...)name = input("Имя: ")
Спецсимвол внутри строки\"Он сказал: \"Привет\""
Топ-3 ошибки: 2name = 5 — имя начинается с цифры · забытое присваивание результата input() переменной · попытка сложить строки из input() как числа ("5" + "3" даёт "53", а не 8).

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

Пример 1. Hello, Python!

Самая короткая программа на Python: один вызов встроенной функции.

# 01_hello.py
print("Hello, Python!")

Что происходит: print() получает строку в скобках и выводит её в консоль. Вывод: Hello, Python!

Пример 2. Вывод имени пользователя

input() — первая функция, которая делает программу интерактивной.

# 02_user_name.py
name = "Alice"  # результат input("Введите ваше имя: ")
print(name)
# Alice

Что происходит: input() сначала показывает приглашение, затем ждёт, пока пользователь нажмёт Enter, и возвращает введённый текст. Здесь вместо реального ввода с клавиатуры подставлено значение "Alice", чтобы пример можно было прогнать без интерактивного ожидания — в реальном файле строка выглядит как name = input("Введите ваше имя: ").

Пример 3. Личное досье: сборка строки из нескольких значений

Собираем результат из трёх введённых значений оператором +.

# 03_profile.py
name = "Алиса"   # input("Введите имя: ")
age = "25"        # input("Введите возраст: ")
city = "Париж"     # input("Введите город: ")

print(name + " " + age + " лет, проживает в городе " + city)
# Алиса 25 лет, проживает в городе Париж

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

Пример 4. Повторитель текста без цикла

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

# 04_repeater.py
text = "Привет"   # input("Введите текст: ")

print(text)
print(text)
print(text)
# Привет
# Привет
# Привет

Что происходит: каждый вызов print() выводит своё значение на новой строке — по умолчанию print() добавляет в конце символ перевода строки.

print() умеет выводить сразу несколько значений через запятую и управлять разделителем и завершающим символом.

# 05_print_sep_end.py
print("2025", "08", "14")
# 2025 08 14                (по умолчанию sep=" ")

print("2025", "08", "14", sep="-")
# 2025-08-14

print("Hello", end=", ")
print("World", end="!\n")
# Hello, World!              (два print() вывели одну строку)

print("a", "b", "c", sep="", end="|END\n")
# abc|END

Что происходит: sep задаёт разделитель между аргументами (по умолчанию — пробел), end — что добавить после вывода (по умолчанию — перевод строки). Изменив end, можно "склеить" вывод двух разных вызовов print() в одну видимую строку.

Пример 6. Экранирование спецсимволов

Кавычки и некоторые символы имеют особый смысл в строке. Обратная косая черта \ говорит интерпретатору: «следующий символ — не управляющий, а буквальный».

# 06_escape.py
quote = "Он сказал: \"Привет!\""
print(quote)
# Он сказал: "Привет!"

text = "Строка1\nСтрока2\tС табуляцией"
print(text)
# Строка1
# Строка2	С табуляцией

path_like = "Путь: C:\\Users\\Alice"
print(path_like)
# Путь: C:\Users\Alice

Почему так: \" — это буквальная кавычка внутри строки, ограниченной такими же кавычками; \n — перевод строки; \t — табуляция; \\ — один буквальный обратный слэш. Без экранирования кавычка внутри строки оборвала бы её раньше времени.

Пример 7. Комментарии

Комментарии объясняют код человеку; интерпретатор их полностью игнорирует.

# 07_comments.py
x = 5  # это переменная x
"""
Такую тройную строку интерпретатор просто вычислит и отбросит —
в функциях и классах это станет docstring.
"""
print(x)
# 5

Что происходит: текст после # и до конца строки не выполняется. Строка в тройных кавычках, если она не сохранена в переменную и не стоит первой в функции, — обычное выражение без побочных эффектов, поэтому её тоже часто используют как комментарий-описание.

Пример 8. Корректные и некорректные имена переменных

Неправильное имя переменной — самая частая причина SyntaxError на старте.

# 08_names.py
student_name = "Bob"
age_25 = 25
print(student_name, age_25)
# Bob 25

bad_examples = ["2nd_place = 2", "my-variable = 10", "if = 42"]
for code in bad_examples:
    try:
        exec(code)
    except SyntaxError as error:
        print(f"{code!r} -> SyntaxError: {error}")
# '2nd_place = 2' -> SyntaxError: invalid decimal literal (<string>, line 1)
# 'my-variable = 10' -> SyntaxError: cannot assign to expression here. Maybe you meant '==' instead of '='? (<string>, line 1)
# 'if = 42' -> SyntaxError: invalid syntax (<string>, line 1)

Что происходит: exec() здесь используется только для того, чтобы показать реальный текст ошибки для каждого неверного имени, не прерывая работу всего файла — в обычном коде так писать имена переменных, конечно, не нужно. 2nd_place начинается с цифры, my-variable Python читает как вычитание, if — зарезервированное слово.

⚠️ Проверить по документации: полный список зарезервированных слов Python — Keywords.

Пример 9. = — это не ==

Один знак присваивает значение, два знака сравнивают значения и возвращают True/False.

# 09_assign_vs_eq.py
a = 5          # присваивание: a теперь ссылается на 5
print(a)       # 5
print(a == 5)  # True  — сравнение, ничего не меняет
print(a == 6)  # False

Почему так: a = 5 — инструкция, у неё нет результата для вывода. a == 5 — выражение, оно вычисляет булево значение. Спутать их — частый источник логических ошибок в условиях (тема следующих уроков).

Пример 10. Ловушка: input() всегда возвращает строку

Даже если пользователь ввёл цифры, input() вернёт строку, а не число. Это открывает тему явного преобразования типов из урока 04.

# 10_input_is_str.py
num1 = "5"   # input("Первое число: ")
num2 = "3"   # input("Второе число: ")

print(num1 + num2)        # 53   — склеивание строк, не сложение
print(type(num1 + num2))  # <class 'str'>

Что происходит: + для строк означает конкатенацию, поэтому "5" + "3" даёт "53". Чтобы получить арифметическую сумму 8, нужно явно преобразовать обе строки функцией int() — это первый пример, где два одинаковых на вид символа + ведут себя по-разному в зависимости от типа операндов.

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

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