Примеры кода на Python для начинающих: 19 программ с разбором
Программирование на Python в примерах: 19 коротких программ для начинающих — условия, циклы, строки, словари, функции, файлы, классы. Код, вывод и разбор.
Содержание · 10 разделов
- Как запускать примеры
- Ввод, вывод и вычисления
- Приветствие: первая программа на Python
- Делим счёт в кафе
- Условия и циклы
- Индекс массы тела
- Вклад с капитализацией по годам
- Сумма покупок до пустой строки
- Строки и коллекции
- Фамилия и инициалы из ФИО
- Погода за неделю
- Телефонная книга на словаре
- Кто пришёл на оба занятия
- Функции и обработка ошибок
- Конвертер температур
- Каталог товаров: фильтр и сортировка
- Безопасный ввод числа
- Файлы, JSON и даты
- Дневник: запись и чтение файла
- Настройки в JSON между запусками
- Сколько дней до Нового года
- Жребий, призёры и кубик
- Классы и структура программы
- Банковский счёт: класс с методами
- Таймер: функция main и аргументы командной строки
- Счётчик нажатий: программа с окном
- Как учиться по готовым примерам
- Частые вопросы
- Почему программа падает с TypeError или ValueError после input?
- Почему после import random появляется AttributeError?
- Как остановить программу, которая зависла в цикле?
- Можно ли запустить примеры без установки Python?
- Что за книга «Программирование на Python в примерах и задачах»?
- Почему у меня вывод отличается от статьи?
- Итог
Программирование на 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.
Как учиться по готовым примерам
Прочитанный код забывается быстро, изменённый своими руками — запоминается. С каждым примером из статьи можно поработать так:
- Наберите код вручную вместо копирования: опечатки и сообщения об ошибках учат синтаксису быстрее, чем чтение.
- Предскажите вывод, затем запустите и сравните. Расхождение покажет, какую строку вы поняли неверно.
- Сломайте программу намеренно: уберите
int()у ввода, отступ у строки внутриif, ключ из словаря. Прочитайте сообщение об ошибке — последняя строка traceback называет тип ошибки и причину. - Добавьте одну функцию: в калькулятор чаевых — выбор процента, в телефонную книгу — удаление записи через
del, в банковский счёт — историю операций списком. - Соберите программу из нескольких примеров: телефонная книга, которая сохраняется в 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
- #Примеры кода
- #Для начинающих
- #Практика