Django-Admin.ru

Примеры кода на Python для начинающих: 19 программ с разбором

Программирование на Python в примерах: 19 коротких программ для начинающих — условия, циклы, строки, словари, функции, файлы, классы. Код, вывод и разбор.

Редакция Django-Admin.ru
· 19 мин чтения

Содержание · 10 разделов
  1. Как запускать примеры
  2. Ввод, вывод и вычисления
  3. Приветствие: первая программа на Python
  4. Делим счёт в кафе
  5. Условия и циклы
  6. Индекс массы тела
  7. Вклад с капитализацией по годам
  8. Сумма покупок до пустой строки
  9. Строки и коллекции
  10. Фамилия и инициалы из ФИО
  11. Погода за неделю
  12. Телефонная книга на словаре
  13. Кто пришёл на оба занятия
  14. Функции и обработка ошибок
  15. Конвертер температур
  16. Каталог товаров: фильтр и сортировка
  17. Безопасный ввод числа
  18. Файлы, JSON и даты
  19. Дневник: запись и чтение файла
  20. Настройки в JSON между запусками
  21. Сколько дней до Нового года
  22. Жребий, призёры и кубик
  23. Классы и структура программы
  24. Банковский счёт: класс с методами
  25. Таймер: функция main и аргументы командной строки
  26. Счётчик нажатий: программа с окном
  27. Как учиться по готовым примерам
  28. Частые вопросы
  29. Почему программа падает с TypeError или ValueError после input?
  30. Почему после import random появляется AttributeError?
  31. Как остановить программу, которая зависла в цикле?
  32. Можно ли запустить примеры без установки Python?
  33. Что за книга «Программирование на Python в примерах и задачах»?
  34. Почему у меня вывод отличается от статьи?
  35. Итог

Программирование на Python в примерах удобнее всего начинать с коротких рабочих программ: каждая занимает 5–25 строк, решает понятную бытовую задачу и показывает одну-две темы языка. Ниже 19 таких примеров — от приветствия и калькулятора чаевых до класса «Банковский счёт», утилиты командной строки и окна с кнопкой. К каждому приложены код, вывод реального запуска и разбор строк, на которые стоит обратить внимание.

Примеры обходятся стандартной библиотекой и проверены на Python 3.12. Это готовые программы для чтения и экспериментов. Если хотите решать сами, по условию и с проверкой ответа, переходите к задачам по Python с решениями — там 30 других заданий.

ПримерЧто показываетМодули
Приветствиеprint, input, int, f-строки—
Делим счёт в кафеарифметика, форматирование :.2f—
Индекс массы телаif/elif/else, float—
Вклад по годамцикл for, range, таблица в консоли—
Сумма покупокwhile True, break, continue—
Фамилия и инициалыметоды строк, распаковка—
Погода за неделюсписки, zip, генератор списка—
Телефонная книгасловарь, get, items—
Кто пришёл на занятиямножества и операции над ними—
Конвертер температурфункции, параметр по умолчанию—
Каталог товаровсортировка, lambda, key—
Безопасный ввод числаtry/except, повтор ввода—
Дневник в файлезапись и чтение файлаpathlib, datetime
Настройки в JSONсохранение данных между запускамиjson, pathlib
Дни до Нового годадаты и дни неделиdatetime
Жребий и кубикслучайный выборrandom
Банковский счёткласс, методы, исключения—
Таймер обратного отсчётаmain(), аргументы командной строкиargparse, time
Счётчик нажатийокно с кнопкойtkinter

Как запускать примеры

Скопируйте код в файл с расширением .py, например bill.py, и сохраните в кодировке UTF-8. Откройте терминал в папке с файлом и выполните команду:

python bill.py     # Windows (или py bill.py)
python3 bill.py    # macOS и Linux

Короткие фрагменты удобно проверять в интерактивном режиме: введите python (python3) без имени файла, и строки будут выполняться сразу после нажатия Enter. Выход — exit(). Подробнее о способах запуска, в том числе из IDLE и редактора, — в статье о запуске Python-скрипта.

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

Ввод, вывод и вычисления

Приветствие: первая программа на Python

name = input("Как вас зовут? ")
age = int(input("Сколько вам лет? "))

print(f"Привет, {name}!")
print(f"Через 10 лет вам будет {age + 10}.")
Как вас зовут? Аня
Сколько вам лет? 25
Привет, Аня!
Через 10 лет вам будет 35.

input() выводит подсказку и возвращает введённый текст — всегда строкой. Чтобы считать возраст, строку переводим в целое число функцией int(). Буква f перед кавычками делает f-строку: выражение в фигурных скобках вычисляется и подставляется в текст.

Делим счёт в кафе

total = float(input("Сумма счёта, руб.: "))
people = int(input("Сколько человек? "))
tip_percent = 10

tip = total * tip_percent / 100
per_person = (total + tip) / people

print(f"Чаевые {tip_percent}%: {tip:.2f} руб.")
print(f"С каждого: {per_person:.2f} руб.")
Сумма счёта, руб.: 3450
Сколько человек? 4
Чаевые 10%: 345.00 руб.
С каждого: 948.75 руб.

float() принимает дробные суммы. Оператор / в Python всегда возвращает дробное число, даже если делится нацело. Формат :.2f внутри f-строки округляет вывод до двух знаков после точки, само значение переменной при этом не меняется.

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

Индекс массы тела

weight = float(input("Вес, кг: ").replace(",", "."))
height = float(input("Рост, см: ").replace(",", ".")) / 100

bmi = weight / height ** 2

if bmi < 18.5:
    verdict = "ниже нормы"
elif bmi < 25:
    verdict = "норма"
elif bmi < 30:
    verdict = "избыточный вес"
else:
    verdict = "ожирение"

print(f"ИМТ: {bmi:.1f} — {verdict}")
Вес, кг: 72,5
Рост, см: 178
ИМТ: 22.9 — норма

Ветки if/elif проверяются сверху вниз, и выполняется первая, где условие истинно. Поэтому во второй ветке достаточно bmi < 25: значения меньше 18,5 до неё уже не дойдут. replace(",", ".") позволяет вводить дробь с запятой — без него float("72,5") завершится ошибкой ValueError. ** — возведение в степень.

Вклад с капитализацией по годам

amount = 100_000
rate = 12      # процентов годовых
years = 5

print("Год | Сумма на счёте")
for year in range(1, years + 1):
    amount += amount * rate / 100
    print(f"{year:>3} | {amount:>12,.2f}")
Год | Сумма на счёте
  1 |   112,000.00
  2 |   125,440.00
  3 |   140,492.80
  4 |   157,351.94
  5 |   176,234.17

range(1, years + 1) выдаёт числа от 1 до 5: правая граница в диапазон не входит. amount += ... — короткая запись amount = amount + .... В формате :>12,.2f знак > выравнивает число по правому краю в поле шириной 12 символов, запятая разделяет разряды. Подчёркивание в 100_000 только упрощает чтение числа.

Сумма покупок до пустой строки

total = 0
count = 0

print("Вводите цены покупок. Пустая строка — конец.")
while True:
    line = input("Цена: ")
    if line == "":
        break
    try:
        price = float(line)
    except ValueError:
        print("Это не число, попробуйте ещё раз.")
        continue
    total += price
    count += 1

print(f"Покупок: {count}, итого: {total:.2f}")
Вводите цены покупок. Пустая строка — конец.
Цена: 120
Цена: сто
Это не число, попробуйте ещё раз.
Цена: 89.9
Цена: 15
Цена:
Покупок: 3, итого: 224.90

while True — бесконечный цикл, когда заранее неизвестно, сколько раз повторять действие. break завершает цикл, continue пропускает остаток текущего шага и сразу запрашивает следующую цену. Блок try/except перехватывает ошибку преобразования, и программа продолжает работу.

Строки и коллекции

Фамилия и инициалы из ФИО

full_name = input("Фамилия Имя Отчество: ")

parts = full_name.strip().title().split()
surname, *names = parts
initials = " ".join(name[0] + "." for name in names)

print(f"{surname} {initials}")
Фамилия Имя Отчество:   иванов пётр сергеевич
Иванов П. С.

Методы строк можно вызывать цепочкой: strip() убирает пробелы по краям, title() делает первые буквы слов заглавными, split() режет строку по пробелам и возвращает список. Запись surname, *names = parts кладёт первое слово в surname, остальные — списком в names. name[0] — первый символ строки, " ".join(...) склеивает инициалы через пробел.

Погода за неделю

days = ["Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"]
temps = [12.5, 14.0, 9.8, 11.2, 16.4, 18.1, 15.0]

average = sum(temps) / len(temps)
warm_days = [day for day, t in zip(days, temps) if t > average]

print(f"Средняя: {average:.1f} °C")
print(f"Максимум: {max(temps)} °C, минимум: {min(temps)} °C")
print("Теплее среднего:", ", ".join(warm_days))
print("По возрастанию:", sorted(temps))
Средняя: 13.9 °C
Максимум: 18.1 °C, минимум: 9.8 °C
Теплее среднего: Вт, Пт, Сб, Вс
По возрастанию: [9.8, 11.2, 12.5, 14.0, 15.0, 16.4, 18.1]

sum, len, max, min и sorted — встроенные функции, которые работают с любым списком чисел. zip(days, temps) идёт по двум спискам параллельно и выдаёт пары «день — температура». Выражение в квадратных скобках — генератор списка: он собирает новый список из элементов, подходящих под условие if. sorted() возвращает отсортированную копию, исходный temps не меняется.

Телефонная книга на словаре

phones = {
    "Анна": "+7 900 111-22-33",
    "Борис": "+7 900 444-55-66",
}

phones["Вера"] = "+7 900 777-88-99"       # добавить запись
phones["Борис"] = "+7 911 000-00-01"      # изменить запись

for name in ["Анна", "Глеб"]:
    print(name, "→", phones.get(name, "нет в книге"))

print("Всего контактов:", len(phones))
for name, phone in sorted(phones.items()):
    print(f"{name:<6} {phone}")
Анна → +7 900 111-22-33
Глеб → нет в книге
Всего контактов: 3
Анна   +7 900 111-22-33
Борис  +7 911 000-00-01
Вера   +7 900 777-88-99

Словарь хранит пары «ключ — значение» и находит значение по ключу без перебора. Присваивание по новому ключу добавляет запись, по существующему — заменяет. phones["Глеб"] упал бы с ошибкой KeyError, а get() возвращает значение по умолчанию. items() выдаёт пары, sorted() упорядочивает их по ключу.

Кто пришёл на оба занятия

monday = {"Аня", "Боря", "Вика", "Гоша"}
friday = {"Вика", "Гоша", "Дима"}

print("Были оба раза:", sorted(monday & friday))
print("Только в понедельник:", sorted(monday - friday))
print("Хотя бы раз:", sorted(monday | friday))
print("Сколько разных людей:", len(monday | friday))
Были оба раза: ['Вика', 'Гоша']
Только в понедельник: ['Аня', 'Боря']
Хотя бы раз: ['Аня', 'Боря', 'Вика', 'Гоша', 'Дима']
Сколько разных людей: 5

Множество (set) хранит только уникальные элементы и умеет сравнивать наборы: & — пересечение, - — разность, | — объединение. Порядок элементов во множестве не гарантирован, поэтому для стабильного вывода результат пропущен через sorted().

Функции и обработка ошибок

Конвертер температур

def to_fahrenheit(celsius):
    """Переводит градусы Цельсия в Фаренгейты."""
    return celsius * 9 / 5 + 32


def to_celsius(fahrenheit):
    """Переводит градусы Фаренгейта в Цельсии."""
    return (fahrenheit - 32) * 5 / 9


def describe(celsius, unit="C"):
    if unit == "F":
        return f"{to_fahrenheit(celsius):.1f} °F"
    return f"{celsius:.1f} °C"


print(describe(36.6))
print(describe(36.6, unit="F"))
print(f"{to_celsius(451):.1f} °C")
36.6 °C
97.9 °F
232.8 °C

def объявляет функцию, return возвращает результат вызывающему коду. Строка в тройных кавычках сразу после заголовка — docstring, описание функции; его показывает help(to_fahrenheit). У параметра unit есть значение по умолчанию, поэтому describe(36.6) работает без второго аргумента. Функция может вызывать другие функции — так describe использует to_fahrenheit. Больше о параметрах и областях видимости — в статье о функциях в Python.

Каталог товаров: фильтр и сортировка

products = [
    {"name": "Ноутбук", "price": 74990, "stock": 3},
    {"name": "Мышь", "price": 1290, "stock": 0},
    {"name": "Монитор", "price": 18500, "stock": 7},
    {"name": "Клавиатура", "price": 3490, "stock": 12},
]

in_stock = [p for p in products if p["stock"] > 0]
by_price = sorted(in_stock, key=lambda p: p["price"])

for p in by_price:
    print(f"{p['name']:<11}{p['price']:>7} руб.  ({p['stock']} шт.)")

cheapest = min(in_stock, key=lambda p: p["price"])
print("Самый дешёвый в наличии:", cheapest["name"])
Клавиатура    3490 руб.  (12 шт.)
Монитор      18500 руб.  (7 шт.)
Ноутбук      74990 руб.  (3 шт.)
Самый дешёвый в наличии: Клавиатура

Список словарей — частый способ хранить табличные данные: каждая строка таблицы становится словарём. Параметр key говорит sorted() и min(), по какому значению сравнивать элементы. lambda p: p["price"] — короткая безымянная функция, которая получает товар и возвращает его цену. Для обратного порядка добавьте reverse=True.

Безопасный ввод числа

def ask_int(prompt, low, high):
    """Спрашивает целое число, пока пользователь не введёт корректное."""
    while True:
        text = input(prompt)
        try:
            number = int(text)
        except ValueError:
            print(f"«{text}» — не целое число.")
            continue
        if low <= number <= high:
            return number
        print(f"Нужно число от {low} до {high}.")


month = ask_int("Номер месяца: ", 1, 12)
print("Вы выбрали месяц", month)
Номер месяца: май
«май» — не целое число.
Номер месяца: 13
Нужно число от 1 до 12.
Номер месяца: 5
Вы выбрали месяц 5

Такую функцию удобно переносить из программы в программу: она прячет проверку ввода и возвращает уже готовое число. return внутри цикла сразу завершает и цикл, и функцию. Сравнение low <= number <= high — цепочка, которую Python понимает как «number между low и high включительно».

Файлы, JSON и даты

Дневник: запись и чтение файла

from datetime import datetime
from pathlib import Path

diary = Path("diary.txt")

note = input("Запись: ")
stamp = datetime.now().strftime("%d.%m.%Y %H:%M")
with diary.open("a", encoding="utf-8") as f:
    f.write(f"{stamp} | {note}\n")

print("Все записи:")
with diary.open(encoding="utf-8") as f:
    for number, line in enumerate(f, start=1):
        print(number, line.rstrip())

Вывод второго запуска (дата и время у вас будут свои):

Запись: Позвонить маме
Все записи:
1 10.10.2026 06:46 | Купить молоко
2 10.10.2026 06:46 | Позвонить маме

Режим "a" дописывает строки в конец файла и создаёт файл, если его нет; режим "w" стёр бы старые записи. Явная encoding="utf-8" нужна, чтобы кириллица одинаково читалась в Windows, macOS и Linux. Конструкция with сама закрывает файл после блока. enumerate(f, start=1) нумерует строки с единицы, rstrip() убирает перевод строки в конце. Файл создаётся в папке, из которой запущена программа.

Настройки в JSON между запусками

import json
from pathlib import Path

path = Path("settings.json")

if path.exists():
    settings = json.loads(path.read_text(encoding="utf-8"))
else:
    settings = {"theme": "светлая", "font_size": 14, "launches": 0}

settings["launches"] += 1

path.write_text(json.dumps(settings, ensure_ascii=False, indent=2), encoding="utf-8")
print(f"Запуск № {settings['launches']}, тема: {settings['theme']}")
Запуск № 1, тема: светлая

После второго запуска программа напечатает Запуск № 2, а файл settings.json будет выглядеть так:

{
  "theme": "светлая",
  "font_size": 14,
  "launches": 2
}

JSON — текстовый формат, в который превращаются словари, списки, строки и числа. json.dumps() переводит словарь в строку, json.loads() — обратно. ensure_ascii=False оставляет русские буквы читаемыми вместо кодов вида с, indent=2 добавляет отступы.

Сколько дней до Нового года

from datetime import date

WEEKDAYS = ["понедельник", "вторник", "среда", "четверг",
            "пятница", "суббота", "воскресенье"]

today = date(2026, 10, 10)          # в своей программе: date.today()
new_year = date(today.year + 1, 1, 1)

days_left = (new_year - today).days
print(f"Сегодня {today:%d.%m.%Y}, {WEEKDAYS[today.weekday()]}")
print(f"До Нового года {days_left} дн.")
print(f"1 января будет {WEEKDAYS[new_year.weekday()]}")
Сегодня 10.10.2026, суббота
До Нового года 83 дн.
1 января будет пятница

Разность двух дат — объект timedelta, количество дней лежит в его атрибуте days. weekday() возвращает номер дня недели от 0 (понедельник) до 6 (воскресенье), по нему берём название из списка. Названия дней сделаны своим списком: strftime("%A") без настройки локали выдаёт английские Saturday, Friday. Дата в примере зафиксирована, чтобы вывод совпадал; замените её на date.today().

Жребий, призёры и кубик

import random

random.seed(7)   # фиксируем результат; уберите строку — будет каждый раз новый

team = ["Аня", "Боря", "Вика", "Гоша", "Дима", "Ева"]

print("Дежурный:", random.choice(team))
print("Призёры:", random.sample(team, k=3))

random.shuffle(team)
print("Порядок выступлений:", team)
print("Кубик:", random.randint(1, 6), random.randint(1, 6))
Дежурный: Вика
Призёры: ['Боря', 'Гоша', 'Аня']
Порядок выступлений: ['Вика', 'Гоша', 'Боря', 'Ева', 'Дима', 'Аня']
Кубик: 5 2

choice выбирает один элемент, sample — несколько разных без повторов, shuffle перемешивает сам список, randint(1, 6) включает обе границы. random.seed(7) делает последовательность воспроизводимой: при каждом запуске выпадает одно и то же, это удобно для тестов. В другой версии Python числа при том же seed могут отличаться. Для паролей и токенов random не подходит — для них есть модуль secrets.

Классы и структура программы

Банковский счёт: класс с методами

class BankAccount:
    def __init__(self, owner, balance=0):
        self.owner = owner
        self.balance = balance

    def deposit(self, amount):
        if amount <= 0:
            raise ValueError("Сумма должна быть больше нуля")
        self.balance += amount

    def withdraw(self, amount):
        if amount > self.balance:
            raise ValueError("Недостаточно средств")
        self.balance -= amount

    def __str__(self):
        return f"Счёт {self.owner}: {self.balance} руб."


account = BankAccount("Анна", 1000)
account.deposit(500)
account.withdraw(300)
print(account)

try:
    account.withdraw(5000)
except ValueError as error:
    print("Ошибка:", error)
Счёт Анна: 1200 руб.
Ошибка: Недостаточно средств

Класс объединяет данные (владелец, баланс) и действия над ними (пополнить, снять). __init__ вызывается при создании объекта и заполняет его атрибуты, self — ссылка на сам объект. __str__ определяет, как объект выглядит в print(). raise сообщает о недопустимой операции исключением, а вызывающий код решает, как его обработать. Наследование, свойства и dataclass разобраны в статье о классах в Python.

Таймер: функция main и аргументы командной строки

import argparse
import time


def countdown(seconds):
    for left in range(seconds, 0, -1):
        print(f"Осталось {left} с")
        time.sleep(1)
    print("Время вышло!")


def main():
    parser = argparse.ArgumentParser(description="Таймер обратного отсчёта")
    parser.add_argument("seconds", type=int, help="сколько секунд отсчитать")
    args = parser.parse_args()
    countdown(args.seconds)


if __name__ == "__main__":
    main()
python timer.py 3
Осталось 3 с
Осталось 2 с
Осталось 1 с
Время вышло!

Так устроено большинство настоящих скриптов: логика в функциях, точка входа — main(), а проверка if __name__ == "__main__" запускает её только при прямом запуске файла. Если импортировать timer из другой программы, отсчёт не начнётся, зато функцией countdown можно будет пользоваться. argparse разбирает аргументы и сам пишет справку и ошибки:

$ python timer.py abc
usage: timer.py [-h] seconds
timer.py: error: argument seconds: invalid int value: 'abc'

Команда python timer.py --help покажет описание программы и аргумента. range(seconds, 0, -1) считает в обратную сторону: третий аргумент — шаг.

Счётчик нажатий: программа с окном

import tkinter as tk

count = 0


def on_click():
    global count
    count += 1
    label.config(text=f"Нажатий: {count}")


root = tk.Tk()
root.title("Счётчик")

label = tk.Label(root, text="Нажатий: 0", font=("Arial", 16))
label.pack(padx=20, pady=10)

button = tk.Button(root, text="Нажми меня", command=on_click)
button.pack(pady=(0, 20))

root.mainloop()

Программа открывает окно с надписью «Нажатий: 0» и кнопкой; каждое нажатие увеличивает число. command=on_click передаёт кнопке функцию без скобок — tkinter вызовет её сам при нажатии. pack() размещает элементы в окне, mainloop() запускает цикл обработки событий и держит окно открытым. global count разрешает функции менять переменную, объявленную вне её; в программах побольше состояние хранят в классе. tkinter входит в стандартную библиотеку, а в Ubuntu и Debian ставится пакетом python3-tk. Поля ввода, меню и сетка элементов — в статье о tkinter.

Как учиться по готовым примерам

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

  1. Наберите код вручную вместо копирования: опечатки и сообщения об ошибках учат синтаксису быстрее, чем чтение.
  2. Предскажите вывод, затем запустите и сравните. Расхождение покажет, какую строку вы поняли неверно.
  3. Сломайте программу намеренно: уберите int() у ввода, отступ у строки внутри if, ключ из словаря. Прочитайте сообщение об ошибке — последняя строка traceback называет тип ошибки и причину.
  4. Добавьте одну функцию: в калькулятор чаевых — выбор процента, в телефонную книгу — удаление записи через del, в банковский счёт — историю операций списком.
  5. Соберите программу из нескольких примеров: телефонная книга, которая сохраняется в JSON и спрашивает команды через while True, уже похожа на маленькое приложение.

Пишите код в едином стиле, как в примерах выше: отступ — четыре пробела, имена переменных и функций — строчными буквами через подчёркивание (per_person, ask_int), имена классов — с заглавной (BankAccount), по две пустые строки между функциями. Это правила стиля PEP 8, по ним пишут почти весь код на Python. Напоминание по синтаксису всех конструкций из статьи собрано в шпаргалке по Python.

Когда примеры перестанут вызывать вопросы, переходите к программам крупнее: в подборке проектов на Python для начинающих есть идеи от «Виселицы» до REST API, а в статье об автоматизации рутинных задач — скрипты для файлов, Excel и почты.

Частые вопросы

Почему программа падает с TypeError или ValueError после input?

input() всегда возвращает строку. "25" + 1 даёт TypeError: can only concatenate str (not "int") to str, поэтому числа переводят через int() или float(). Если ввести текст или дробь с запятой, преобразование завершится ValueError — его перехватывают через try/except, как в примере с безопасным вводом.

Почему после import random появляется AttributeError?

Скорее всего, файл с вашей программой называется random.py. Python находит его раньше модуля стандартной библиотеки и импортирует вместо него, поэтому сообщение выглядит так: AttributeError: partially initialized module 'random' has no attribute 'choice'. Переименуйте файл, например в draw.py. То же случается с файлами json.py, math.py, tkinter.py.

Как остановить программу, которая зависла в цикле?

Нажмите Ctrl+C в терминале. Python прервёт выполнение исключением KeyboardInterrupt и покажет строку, на которой работала программа. Обычно причина — while без break или условие, которое никогда не становится ложным.

Можно ли запустить примеры без установки Python?

Да, в браузере: онлайн-интерпретаторы и блокноты вроде Google Colab выполняют код без установки. Учтите ограничения: окно tkinter там не откроется, а файлы сохраняются на сервере сервиса. Для учёбы удобнее поставить Python и редактор на свой компьютер.

Что за книга «Программирование на Python в примерах и задачах»?

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

Почему у меня вывод отличается от статьи?

В дневнике и таймере участвуют текущие дата и время, а в примере с датами замените date(2026, 10, 10) на date.today() — и число дней изменится. Случайные значения совпадут, только если оставить random.seed(7) и запускать на той же версии Python. Остальные примеры при тех же входных данных выводят ровно то, что показано.

Итог

  • 19 примеров покрывают основы языка: ввод и вывод, условия, циклы for и while, строки, списки, словари, множества, функции, исключения, файлы, JSON, даты, random, классы, аргументы командной строки и окно на tkinter.
  • Все программы работают на стандартной библиотеке Python 3.12+ и запускаются командой python file.py (Windows) или python3 file.py (macOS, Linux).
  • Лучший способ учиться на примерах — менять их: добавлять функции, ломать и чинить, собирать из нескольких программ одну.
  • Следующий шаг — задачник с решениями: в нём программу по условию нужно написать самому.
  • #Python
  • #Примеры кода
  • #Для начинающих
  • #Практика
↑ ↓ выборEnter открытьEsc закрыть