6–11Программирование

Почему Python учат первым

Если спросить школьника, на каком языке он пишет первые программы, чаще всего ответ будет: на Python. На нём же решает задания большинство выпускников, сдающих ЕГЭ по информатике. Разбираемся, откуда взялся этот язык, почему он такой удобный для начала и где он может подвести.

Для 6–11 классов и родителей, которые выбирают кружок программирования.

Как появился Python

В декабре 1989 года нидерландский программист Гвидо ван Россум искал занятие на рождественские каникулы. Он решил написать язык, который будет понятным, как обычный английский текст, и при этом достаточно мощным для настоящей работы. Первая версия вышла в феврале 1991 года.

Название не про змею. Ван Россум любил британское комедийное шоу «Летающий цирк Монти Пайтона» и хотел короткое, немного загадочное имя. Змея на логотипе появилась позже, потому что так проще нарисовать.

Долгое время Python был языком энтузиастов. Взлёт начался в 2010-х годах, когда на нём стали писать анализ данных и машинное обучение. Сегодня Python в разных рейтингах держится на первом или одном из первых мест по популярности в мире.

Чем он удобен для начала

Сравним первую программу, которая выводит приветствие, на двух языках. Так она выглядит на Java:

public class Main { public static void main(String[] args) { System.out.println("Привет!"); } }

А так на Python:

print("Привет!")

В Java новичок должен написать пять строк, смысла половины которых он пока не понимает: класс, публичный, статический, массив строк. В Python одна строка, и каждое слово понятно. Это не значит, что Java плохой язык. Просто для первого знакомства лишние детали отвлекают от главного: от того, как думать алгоритмами.

  • Мало служебных слов. Не нужно заранее объявлять тип переменной: x = 5 сразу работает.
  • Отступы вместо скобок. Код внутри цикла или условия сдвигают вправо. Получается аккуратно само собой, и структура программы видна глазами.
  • Большие числа без ограничений. Python спокойно считает 2 в степени 1000, а во многих языках число просто «переполнится».
  • Огромная библиотека. Для графиков, таблиц, игр, работы с сайтами уже есть готовые модули.

Пример: сумма цифр числа

Типичная задача из школьного курса: найти сумму цифр числа. Вот решение, которое читается почти как инструкция на русском языке.

n = int(input()) s = 0 while n > 0: s += n % 10 n //= 10 print(s)

Читаем по строкам: взять число n, завести сумму s, равную нулю. Пока n больше нуля, прибавлять к сумме последнюю цифру (остаток от деления на 10) и отрезать эту цифру (целочисленное деление на 10). В конце вывести сумму. Для числа 2026 программа сложит 6, 2, 0 и 2 и выведет 10.

А можно ещё короче, и это тоже типично для Python:

print(sum(int(c) for c in input()))

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

Где используют Python

  • Искусственный интеллект. Самые популярные инструменты для обучения нейросетей сделаны для Python.
  • Анализ данных. Учёные, экономисты и маркетологи считают в нём таблицы и строят графики.
  • Сайты и сервисы. Многие крупные видеосервисы и соцсети написаны частично на Python.
  • Наука. Им пользуются астрономы, биологи, физики. Даже квантовые компьютеры программируют на Python.
  • Автоматизация. Скрипт может сам переименовать тысячу файлов или собрать данные с сайта.

Где Python подводит

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

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

Python на ЕГЭ

ЕГЭ по информатике сдают на компьютере. Участник может выбрать язык программирования из разрешённого списка, и подавляющее большинство выбирает Python. Многие задания, например про перебор вариантов, обработку файла с числами или работу со строками, на Python решаются в несколько строк.

Как решать типичные задания перебором, мы разобрали в статье о Python на ЕГЭ, а системы счисления с проверкой кодом в статье о двоичной системе.

Когда начинать? Для ребёнка 10–12 лет удобно стартовать с визуальных блоков вроде Scratch, а к 12–13 годам переходить на Python. Если цель ЕГЭ, хватит полутора-двух лет регулярных занятий, начиная с 9 или 10 класса.

Дзен Python

В Python спрятана пасхалка. Если написать в нём команду import this, программа выведет «Дзен Python», двадцать коротких принципов, по которым устроен язык. Несколько из них полезны любому, кто пишет код:

  • Красивое лучше уродливого.
  • Простое лучше сложного.
  • Читаемость имеет значение.
  • Должен быть один, и желательно только один, очевидный способ сделать это.

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

Разберём на занятии

Занимаемся по всем школьным предметам с 4 по 11 класс: живые занятия, общая доска и домашка, которую проверяет тот же преподаватель.

Первое занятие бесплатное: можно посмотреть формат вместе с ребёнком и решить, подходит ли он.

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

С какого возраста можно учить Python?

Читать и писать простые программы можно с 10–11 лет, если ребёнок уверенно читает и знает таблицу умножения. Раньше лучше начинать с визуальных блоков, где команды собираются мышкой.

Нужен ли английский, чтобы программировать на Python?

Команд немного, и их запоминают как значки: print, input, while, if. Но для чтения документации и ошибок английский очень помогает, так что программирование хорошо мотивирует учить язык.

Python 2 и Python 3 это разные языки?

Почти. Python 3 вышел в 2008 году и несовместим со старой версией в мелочах. Python 2 официально перестали поддерживать в 2020 году, учить нужно третью версию.