Основы программирования на языке Python. Часть 1
С чем у вас ассоциируется слово «питон»? Если со змеей, то пора мыслить шире. В этой статье мы узнаем, в чем особенности программирования на «змеином» языке, выберем себе необходимые инструменты для работы и напишем свою первую программу.

Вводная информация. Инструменты для работы
Python — высокоуровневый язык программирования, отдающий большой приоритет скорости, простоте и удобству написания кода, поэтому он является одним из самых простых в освоении.
Как подготовиться к написанию программ?
Файлы кода, написанного на Python, имеют расширение .py. Для их работы на компьютер необходимо установить интерпретатор языка – программу, которая и будет выполнять написанный нами код. Найти его установочный файл можно на официальном сайте python.org во вкладке Downloads.
Помимо интерпретатора, который будет читать наш код, нам необходимо приложение, где мы будем его писать — среда разработки. И здесь появляется большое количество вариантов. Самыми популярными средами разработки являются:
- IDLE. Эта среда разработки идет в комплекте с интерпретатором и является самой простой из всех. Во всех смыслах слова «простой».
- малый вес и небольшое количество потребляемой памяти позволят запустить его на любом устройстве;
- максимально простая организация — отдельный файл открывается в отдельной вкладке.
- никакого дополнительного функционала — это просто блокнот, который лишь немного выделит код для удобства и запустит его.
- PyCharm. Это как танк Т-34, по сравнению с которым IDLE — трехколесный велосипед.
- мощный функционал, в том числе более удобная подсветка кода, автоматическая помощь при написании кода, удобное выделение ошибок прямо в коде и так далее.
- требовательность — установленная среда разработки весит около 1 гигабайта и потребляет большое количество ресурсов при своем запуске;
- сложность внутренней организации — программа не позволяет запускать отдельно файлы с программами. Эти файлы должны объединяться в проекты, а настройка проектов иногда может быть довольно проблематичным занятием.
Если ваш компьютер мощнее калькулятора и вы хотите получать небольшие, но полезные подсказки при написании кода — это ваш кандидат.
- Sublime Text 3. Промежуточное звено между двумя предыдущими вариантами, которое вобрало по чуть-чуть всего хорошего из них, но с одним дополнительным минусом.
- относительная «легкость» самой среды и малое количество потребляемых ресурсов;
- отдельные файлы открываются в одной вкладке в разных окнах;
- выделение ошибочных строк и небольшая помощь при написании кода.
- все преимущества этой программы, похожие на преимущества PyCharm, работают не так хорошо, как у PyCharm;
- невозможность ввода данных с клавиатуры. Если вы еще не знаете, что это и как — не расстраивайтесь, эта программа тоже не знает. О вводе данных с клавиатуры мы поговорим чуть ниже.
Последний недостаток является относительным, так как это далеко не самая важная функция, которой вы будете пользоваться каждый раз при написании кода, а альтернатива этому есть.
Вывод и ввод данных. Переменные
Программам почти всегда приходится работать с какой-то информацией — данными. Они ее получают от пользователя, как-то преобразуют и сообщают о результатах своих действий. По своей сути слова «данные» и «информация» являются равнозначными, так что не удивляйтесь, если мы или кто-то другой будут употреблять эти слова в качестве синонимов.
Процесс получения программой информации называется вводом данных в программу. В рамках нашего изучения языка Python мы научимся вводить данные в программу вручную (пользователь вписывает данные с клавиатуры) и из файлов.
Вывод данных — это процесс отображения программой обработанных данных. В качестве способа вывода мы будем использовать консоль, то есть текстовое приложение, которое уже встроено в среды разработки — те самые IDLE, PyCharm и Sublime Text 3. С помощью этого приложения программа может отображать текст на экране компьютера.
Давайте научим нашу программу писать сообщения и отображать их на экран!
Выбрав среду программирования, без лишних раздумий и колебаний создаем новый файл .py, пишем свою первую программу:
print(“Hello world”)
После ее запуска будет выведено сообщение: Hello world.
Поздравляем, вы стали программистом!

А теперь начнем становиться хорошими программистами и разберемся с тем, что мы написали:
- print – функция вывода данных на экран.
После функции в скобках нужно записать текст, который мы хотим вывести. Если вписать в скобках несколько значений через запятую, они будут выведены на экран в одну строку через пробел.
- “Hello world” – это строка (= просто кусочек текста), которую мы создали и сразу передали в функцию print.
Сейчас поговорим о том, что такое переменная и что сложного в том, чтобы придумать ей имя.
Когда мы вывели строку на экран, программа сразу ее забыла. Но иногда нам важно, чтобы программа помнила то, что мы в нее ввели. Тогда нужна уже не строка, а переменная.
Переменные используются для долгосрочной работы с данными. Присвоив имя какому-либо значению, то есть какой-то информации, хранимой в памяти: строке, числу и т.д. — в любом месте программы к нему можно обратиться именно по этому имени.
Переменная — это именованная информация, которая хранится в компьютере при работе программы.
Схема создания переменной:
имя_переменной = значение
Давайте сохраним строку “Hello world” как переменную, присвоив ей имя s.
Какое имя дать переменной — извечная проблема программирования. Основные правила и советы по именованию переменных:
-
Имя переменной может состоять только из букв латинского алфавита, цифр и символа «_».
- Хорошей практикой является давать переменным осмысленные имена.
Последний совет стоит раскрыть. Например, для строки “Hello world” можно было бы выбрать имя string (строка) или подобное, а для переменной, которая что-то считает — count (счет). Главное, чтобы было по названию понятно, что в ней.
Конечно, никто не может запретить вам назвать переменную sdhcjUBbh56. Но, во-первых, написать это же имя во второй раз без опечатки будет тяжело, а, во-вторых, уже к середине программы с большим количеством таких переменных вы забудете, какая за что отвечает.
Ввод данных с клавиатуры — самый простой способ передать значения программе в процессе ее работы. Он происходит с помощью функции input(), после срабатывания которой программа останавливается и ждет, пока мы введем в нее значение. В скобках функции можно указать сообщение, которое будет выведено программой перед тем, как она «перейдет в режим ожидания».
| Важно сразу запомнить: любые данные, введенные в программу с помощью команды input, будут переданы в формате строки. |

Типы данных
Выше мы разобрались, что являет собой переменная s. А что еще можно записать в переменную?
Типы данных — виды значений, которые может принимать переменная.
Большую часть из типов данных мы подробно будем изучать по мере необходимости. Для начала неплохо хотя бы знать о существовании основных и об их обозначениях в Python:
-
Целые числа (int) – хранят любые целые числа. Это ноль, а также все положительные и все отрицательные числа, используемые при счете.
Один тип данных может быть приведен к другому по обозначению. Например:
- Дробное число можно привести к целому, прописав его внутри команды int — тогда его дробная часть просто отбрасывается. Если привести целое число к дробному командой float, оно получит десятичную дробную часть, равную 0.

- Строки, состоящие только из цифр, можно привести к целочисленному типу командой int (допустим, для корректной работы математических операций), и наоборот — число можно сделать строкой командой str.

- Логические значения имеют соответствие с целыми числами: значение True соответствует 1, а False – 0. Такие результаты мы и получим при переводе из числа в логическое значение командой bool, или наоборот — командой int.


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

Математические операции
Как работать с числами и какие математические действия применимы к строкам?
Python содержит все базовые математические операции для работы с целыми и дробными числами:

Кроме обычного деления в Python есть еще два, основанных на принципе деления с остатком — когда вместо дробной части указывается остаток.
Например: 20 / 6 = 3 (ост. 2) – целой частью от деления будет 3, остатком от деления — 2.
Так, у нас на вооружении есть команды целочисленное деление и остаток от деления. Каждая из этих операций выдаст нам соответствующее значение.

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

Так, следующий код

выведет на экран число 6.
У нас также есть возможность проводить операции между величинами разных типов данных.
Например, в коде

переменная а имеет тип int, переменная b имеет тип float, и их сумма, записанная в переменную с, тоже имеет тип float.

Какой приоритет операций будет соблюдаться в программе? Такой же, как в обычной математике:
- Возведение в степень.
- Умножение/деление.
- Сложение/вычитание.
Для изменения порядка операций также можно использовать скобки.
Сложение и умножение также применимы к строкам:
- Складывать можно несколько строк — они будут «слипаться», создавая одну большую строку.

- Возможно умножение строки на целое число. Тогда будет создана новая строка, состоящая из повторяющейся исходной.
Здесь важно помнить, что строка, состоящая только из цифр, — все равно строка, и применение этих операторов к ней будет применено именно как к строке, а не числу:

Практика
Теперь пришло время закрепить полученные навыки «в бою». Так, со временем начнем и собственные игры создавать. Спойлер: в этой статье.
Попробуем написать простую программу.
Пользователь вводит в программу 2 числа, программа возвращает ему их сумму.

Здесь мы в первых двух строках программы считываем строки, введенные пользователем, и превращаем их в числа, затем в 3-ей строке находим сумму чисел и выводим ее.
Вариант 2. Эту же задачу можно решить другими способами:

В этом решении, в отличие от предыдущего, мы сохранили сумму в отдельную переменную summ и вывели на экран уже ее.
Вариант 3.

Здесь мы в переменные сохранили строки, а преобразовали их в числа уже при подсчете.
Вариант 4. Можно даже так:
В таком решении нет никаких переменных, считанные с консоли данные сразу подставляются в выражение.
Таким образом, даже самые простые задачи можно решать множеством способов, и вам предстоит научиться выбирать из них наилучший.
Впереди нас ждет знакомство с еще большим количеством особенностей языка и их применением. Приглашаем вас продолжить изучение данной темы в статье «Основы программирования на языке Python. Часть 2».
Фактчек
- Для работы программ, написанных на языке Python, необходим интерпретатор языка. Написание программы можно производить в любой из удобных сред разработки.
- Для вывода данных на экран используется функция print(); для ввода данных с клавиатуры используется функция input().
- Для долгосрочной работы с данными используются переменные, которым могут быть присвоены различные типы данных. Между типами данных возможен перевод, для этого используются их обозначения.
- Python поддерживает все основные математические операторы для работы с числами.
Проверь себя
Задание 1.
Файл с расширением .py — это…
- ссылка на русскоязычный сайт
- файл программы Python
- установочный файл интерпретатора Python
- такого не бывает
Задание 2.
Выберите допустимое имя переменной:
- 123number
- constant!
- eto_Stroka
- count-strings
Задание 3.
Результатом записи выражения “23” * 2 будет:
Задание 4.
Результатом записи int(2.88) ** 4 будет:
Ответы: 1. — 2; 2. — 3; 3. — 2; 4. — 3.
Первая программа. Среда разработки IDLE

Сегодня мы напишем свою первую программу в среде разработки IDLE.
После загрузки и установки python открываем IDLE (среда разработки на языке Python, поставляемая вместе с дистрибутивом).
Здесь и далее буду приводить примеры под ОС Windows, так как именно она у меня сейчас под рукой.
Запускаем IDLE (изначально запускается в интерактивном режиме), после чего уже можно начинать писать первую программу. Традиционно, первой программой у нас будет «hello world».
Чтобы написать «hello world» на python, достаточно всего одной строки:
Вводим этот код в IDLE и нажимаем Enter. Результат виден на картинке:
Поздравляю! Вы написали свою первую программу на python! (если что-то не работает).
С интерактивным режимом мы немного познакомились, можете с ним ещё поиграться, например, написать
Но, всё-таки, интерактивный режим не будет являться основным. В основном, вы будете сохранять программный код в файл и запускать уже файл.
Для того, чтобы создать новое окно, в интерактивном режиме IDLE выберите File → New File (или нажмите Ctrl + N).
В открывшемся окне введите следующий код:
Первая строка печатает вопрос ("Как Вас зовут? "), ожидает, пока вы не напечатаете что-нибудь и не нажмёте Enter и сохраняет введённое значение в переменной name.
Во второй строке мы используем функцию print для вывода текста на экран, в данном случае для вывода «Привет, » и того, что хранится в переменной «name».
Теперь нажмём F5 (или выберем в меню IDLE Run → Run Module) и убедимся, что то, что мы написали, работает. Перед запуском IDLE предложит нам сохранить файл. Сохраним туда, куда вам будет удобно, после чего программа запустится.
Вы должны увидеть что-то наподобие этого (на скриншоте слева — файл с написанной вами программой, справа — результат её работы):
Поздравляю! Вы научились писать простейшие программы, а также познакомились со средой разработки IDLE. Теперь можно немного отдохнуть, а потом начать изучать python дальше. Можете посмотреть синтаксис python, циклы или условия. Желаю удачи!
Для вставки кода на Python в комментарий заключайте его в теги
Основы Python в кратком изложении
Когда-то давным давно, на одном закрытом форуме я пытался проводить обучение Пайтону. В общем дело там заглохло. Мне стало жалко написанных уроков, и я решил их выложить для широкой общественности. Пока самый первый, самый простой. Дальше идет интереснее, но может быть это будет не интересно. В общем, этот пост будет пробным шаром, если понравится, буду выкладывать дальше.
Python для начинающих. Глава первая. «О чем это мы»
На всякий случай, немного скучного «evangelism». Кому он надоел, можно пропустить несколько абзацев.
Python (читается как «Пайтон» а не «питон») — скриптовый язык, разработанный Гвидо ван Россумом в качестве простого языка, легкого в изучении новичку.
В наше время Пайтон – широко распространенный язык, который используется во многих областях:
— Разработка прикладного ПО (например linux-утилиты yum, pirut, system-config-*, IM-клиент Gajim и многие другие)
— Разработка web-приложений (мощнейший Application-сервер Zope и разработанная на его основе CMS Plone, на основе которой работает например сайт ЦРУ, и масса фреймворков для быстрой разработки приложений Plones, Django, TurboGears и многие другие)
— Использование в качестве встраиваемого скриптового языка во многих играх, и не только (в офисном пакете OpenOffice.org, 3d редакторе Blender, СУБД Postgre)
— Использование в научных рассчетах (с пакетами SciPy и numPy для расчетов и PyPlot для рисования графиков Пайтон становится практически сравним с пакетами типа MatLab)
И это конечно далеко не полный список проектов, использующих этот замечательный язык.
1. Сам интерпретатор, его можно взять тут (http://python.org/download/).
2. Среда разработки. Она для начала необязательна, да и идущий в дистрибутиве IDLE подойдет новичку, но для серъезных проектов нужно что-то посерьезней.
Для Windows я использую замечательный легковесный PyScripter (http://tinyurl.com/5jc63t), для Linux – Komodo IDE.
Хотя для первого урока достаточно будет просто интерактивной оболочки самого Пайтона.
Просто запустите python.exe. Приглашение ввода не заставит себя долго ждать, оно выглядит так:
Также можно записывать программы в файлы с расширением py, в вашем любимом текстовом редакторе, который не добавляет к тексту своих символов разметки (нет Word не подойдет). Также желательно чтобы этот редактор умел делать «умные табуляторы» и не заменял пробелы знаком табуляции.
Для запуска файлов на исполнение по ним можно щелкать 2 раза. Если консольное окно закрывается слишком быстро, вставьте в конце программы следующую строку:
raw_input()
Тогда интерпретатор будет в конце программы ждать нажатия enter.
Или ассоциируйте py-файлы в Far с Пайтоном и открывайте нажимая enter.
Наконец можно воспользоваться одной из многих удобных IDE для Пайтона, которые предоставляют и возможности отладки и подсветку синтаксиса и многие другие «удобства».
Немного теории.
Для начала, Пайтон – язык со строгой динамической типизацией. Что это означает?
Есть языки со строгой типизацией (pascal, java, c и т.п.), у которых тип переменной определяется заранее и не может быть изменен, и есть языки с динамической типизацией (python, ruby, vb), в которых тип переменной трактуется в зависимости от присвоенного значения.
Языки с динамической типизацией можно разделить еще на 2 вида. Строгие, которые не допускают неявного преобразования типа (Пайтон) и нестрогие, которые выполняют неявные преобразования типа (например VB, в котором можно легко сложить строку '123' и число 456).
Разобравшись с классификацией Пайтона, попробуем немного «поиграть» с интерпретатором.
>>> a = b = 1 >>> a, b (1, 1) >>> b = 2 >>> a, b (1, 2) >>> a, b = b, a >>> a, b (2, 1)
Таким, образом мы видим что присваивание осуществляется с помощью знака =. Присвоить значение можно сразу нескольким переменным. При указании интерпретатору имени переменной в интерактивном режиме, он выводит ее значение.
Следующее, что необходимо знать – как строятся базовые алгоритмические единицы – ветвления и циклы. Для начала, необходима небольшая справка. В Пайтоне нет специального ограничителя блоков кода, их роль выполняют отступы. То есть то что написано с одинаковым отступом – является одним командным блоком. Поначалу это может показаться странным, но после легкого привыкание, понимаешь что эта «вынужденная» мера позволяет получать очень читабельный код.
Итак условия.
Условие задается с помощью оператора if, который заканчивается «:». Альтернативные условия которые будут выполняться если первая проверка «не прошла» задаются оператором elif. Наконец else задает ветку, которая будет выполнена если ни одно из условий не подошло.
Обратите внимание, что после ввода if интерпретатор с помощью приглашения «. » показывает что он ожидает продолжения ввода. Чтобы сообщить ему что мы закончили, необходимо ввести пустую строку.
(Пример с ветвлениями почему-то рвет разметку на хабре, не смотря на танцы с тегами pre и code. Простите за неудобство, я его кинул сюда pastebin.com/f66af97ba, если кто-то подскажет что не так — буду очень признателен)
Простейшим случаем цикла является цикл while. В качестве параметра он принимает условие и выполняется до тех пор, пока оно истино.
Вот маленький пример.
>>> x = 0 >>> while xОбратите внимание что поскольку и print x и x+=1 написаны с одинаковым отступом, они считаются телом цикла (помните что я говорил про блоки? ;-) ).
Второй вид циклов в Пайтон – цикл for. Он аналогичен циклу foreach других языков. Его синтаксис условно таков.
for переменная in список:
командыПеременной будут присваиваться по очереди все значения из списка (на самом деле там может быть не только список, но и любой другой итератор, но не будем пока этим забивать голову).
Вот простой пример. В роли списка будет выступать строка, которая является ничем иным как списком символов.
>>> x = "Hello, Python!" >>> for char in x: . print char . H e l . !Таким образом мы можем разложить строку по символам.
Что же делать если нам нужен цикл, повторяющийся определенное число раз? Очень просто, на помощь придет функция range.На входе она принимает от одного до трех параметров, на выходе возвращает список чисел, по которому мы можем «пройтись» оператором for.
Вот несколько примеров использования функции range, которые объясняют роль ее параметров.
>>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(2, 12) [2, 3, 4, 5, 6, 7, 8, 9, 10, 11] >>> range(2, 12, 3) [2, 5, 8, 11] >>> range(12, 2, -2) [12, 10, 8, 6, 4]И маленький пример с циклом.
>>> for x in range(10): . print x . 0 1 2 . 9Ввод-вывод
Последнее, что следует знать перед тем как начать использовать Пайтон полноценно – это как осуществляется в нем ввод-вывод.
Для вывода используется команда print, которая выводит на печать все свои аргументы в удобочитаемом виде.
Для ввода с консоли используется функция raw_input(приглашение), которая выводит на экран приглашение и ожидает ввода пользователя, возвращая то что ввел пользователь в виде своего значения.
x = int(raw_input ("Введи число:")) print "Квадрат этого числа составляет ", x * xВнимание! Несмотря на существование функции input() схожего действия, использовать ее в программах не рекомендуется, так как интерпретатор пытается выполнить вводимые с ее помощью синтаксические выражения, что является серьезной дырой в безопасности программы.
Вот и все для первого урока.
Домашнее задание.
1. Составить программу расчета гипотенузы прямоугольного треугольника. Длина катетов запрашивается у пользователя.
2. Составить программу нахождения корней квадратного уравнения в общем виде. Коэффициенты запрашиваются у пользователя.
3. Составить программу вывода таблицы умножения на число M. Таблица составляется от M * a, до M * b, где M, a, b запрашиваются у пользователя. Вывод должен осуществляется в столбик, по одному примеру на строку в следующем виде (например):
5 х 4 = 20
5 х 5 = 25
И так далее.Python для новичков: сферы применения и возможности
Как устроен Python, чем он хорош, а также кто, как и зачем использует его в работе. Гайд для программистов и интересующихся Python.
Иллюстрация: Wikimedia Commons / Pngwing / Annie для Skillbox Media
Евгений Кучерявый
Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Андрей Долгов
Backend-разработчик в VVDEV. Пишет на JavaScript, Python и C#.
Python — это скриптовый язык программирования. Он универсален, поэтому подходит для решения разнообразных задач и для многих платформ: начиная с iOS и Android и заканчивая серверными операционными системами.
Как и где применяется Python
Это интерпретируемый язык, а не компилируемый, как C++ или Java. Программа на Python представляет собой обычный текстовый файл. Код можно писать практически в любом редакторе или использовать специальные IDE:
- PyCharm — мощная среда разработки от JetBrains.
- Spyder — IDE, оптимизированная для работы в Data Science. Идёт в пакете с Anaconda.
- IDLE — стандартный текстовый редактор в составе языка.
- SublimeText — текстовый редактор с множеством плагинов.
- Visual Studio Code — популярный текстовый редактор от Microsoft.
Python можно встретить почти везде: в вебе, мобильных и десктопных приложениях, а также в играх. На нём пишут нейросети, проводят научные исследования и тестируют программы. Поговорим подробнее об основных сферах его применения.
Веб-разработка
Чаще всего Python используют в веб-разработке. Для него написано множество фреймворков: FastAPI, Flask, Tornado, Pyramid, TurboGears, CherryPy и, самый популярный, Django.
Ещё на Python пишут парсеры для сбора информации с веб-страниц. Делают это с помощью таких популярных библиотек:
- Scrapy — кросс-платформенная высокопроизводительная библиотека с большим сообществом пользователей.
- Beautiful Soup — простая и мощная библиотека для парсинга HTML- и XML-документов. Отличается хорошей документацией.
- Selenium — инструмент для автоматизации и тестирования онлайн-приложений, который позволяет имитировать работу браузера.

Научные исследования и машинное обучение
Благодаря лаконичности, простому синтаксису и богатому набору инструментов Python стал любимым языком учёных. Есть специальные библиотеки для Python, которые позволяют строить графики, проводить исследования и вычисления:
- SciPy — набор инструментов для научных вычислений.
- NumPy — расширение, которое позволяет оперировать матрицами и многомерными массивами.
- pandas — библиотека для аналитики данных.
- Matplotlib — библиотека для построения графиков различной сложности.
Также для Python есть множество свободных ML-инструментов:

Тестирование
Ещё одна область применения Python — автоматизация тестирования. Многие специалисты по автоматизации QA выбирают Python из-за его простоты. Он отлично подходит тем, кто имеет небольшой опыт в разработке приложений. Развитое сообщество, логичный синтаксис и удобочитаемость упрощают процесс обучения.
У Python есть простые фреймворки для модульного тестирования:
Десктоп-приложения
Хоть язык не компилируется, с его помощью всё же можно создать десктопные программы. Вот, например, небольшой список популярных приложений, которые написаны на Python:
- GIMP — визуальный редактор на Linux;
- Ubuntu Software Centre — центр приложений в ОС Ubuntu (один из дистрибутивов Linux);
- BitTorrent до шестой версии — менеджер торрент-закачек (позже программу переписали на C++, но сети peer-to-peer всё ещё работают на Python);
- Blender — программа для создания 3D-графики;
- Ansible — механизм управления конфигурацией, позволяющий развёртывать многоузловое программное обеспечение;
- Mercurial — кросс-платформенный инструмент управления распределённым исходным кодом.
Мобильные приложения
Мобильная разработка на Python менее популярна. Для Android чаще используют Java, C#, C++ или Kotlin, а для iOS — Swift или Objective-C. На Python обычно программируют серверную часть приложения. Например, клиент «Инстаграма»* для iOS написан на Objective-C, а сервер — на Python. Тем не менее у Python есть фреймворки для разработки кросс-платформенных мобильных GUI-приложений: Kivy и BeeWare.

Игры
Многие компьютерные игры полностью или частично написаны на Python. Существует заблуждение, что этот язык не подходит для серьёзных проектов, но на самом деле он использовался в разработке таких хитов, как:
- Battlefield 2;
- World of Tanks;
- Civilization IV;
- The Sims 4;
- EVE Online.
Хоть Python позволяет писать пользовательские интерфейсы и работать с графикой, чаще всего на нём пишут скрипты — например, для взаимодействия персонажей, запуска сцен и обработки событий. На Python написан искусственный интеллект AlphaStar для StarCraft 2, способный победить сильнейших профессиональных игроков.

Какие компании используют Python
В основном Python используют стартапы и компании, которые разрабатывают крупные проекты. Вот лишь часть огромного списка его пользователей — крупных организаций:
- Google — использует язык в качестве компонента поискового движка.
- Dropbox — применяет Python для оптимизации серверной части и внешнего интерфейса.
- Spotify — использует Python для аналитики данных.
- «Инстаграм»*, «Фейсбук»* — используют в серверной части.
- BitTorrent — в компании построили на Python сеть peer-to-peer.
- Агентство национальной безопасности США — шифрует и анализирует разведданные.
- Esri — использует Python в качестве инструмента настройки геоинформационных программ.
- Pixar, Industrial Light & Magic — создают на Python анимационные фильмы.
- Intel, Cisco, HP, Seagate, Qualcomm и IBM — тестируют и анализируют рынок с помощью Python.
- NASA, Los Alamos, Fermilab, JPL — применяют язык в научных вычислениях.
Кроме того, Python используют в Positive Technologies, Houdini, Yahoo, Red Hat, Pinterest, Quora, VK и «Яндексе». Короче, Python есть практически в каждой компании.
Преимущества Python
Главное преимущество Python — его простота. Не нужно тратить месяцы на изучение сложного синтаксиса, как в C++, и переживать об утечках памяти. Язык всё сделает за вас.
Другие достоинства Python:
- Это интерпретируемый язык. До запуска программа на Python представляет собой обычный текстовый файл, который можно запустить на любой платформе, где установлен интерпретатор.
- Он отлично подходит новичкам. Python хорошо спроектирован и логичен. Для его изучения даже не нужно знать английский язык. Благодаря его простоте разработка идёт намного быстрее, потому что программист пишет меньше кода.
- У языка мощное сообщество. Сообщество пользователей Python настолько большое, что если вы столкнётесь с непонятной ошибкой, то, скорее всего, быстро найдёте её решение в интернете. Ведь до вас кто-то уже столкнулся с похожей и выложил решение на Stack Overflow.
Недостатки Python
А теперь перейдём к «ложке дёгтя»:
- Программы на Python — среди самых медленных. Приложения для iOS на Swift работают в 8,7 раза быстрее, чем на Python. Реализация PyPy по скорости близка к Java, но в ней есть не все возможности оригинального языка. Python не подходит для задач, требующих большого объёма памяти, — их лучше решать вставками на C или C++.
- Сильная зависимость языка от системных библиотек. Это затрудняет перенос приложений на другие системы. Чтобы решить проблему, придумали Virtualenv, но и у него есть недостатки: избыточность полных методов изоляции, костыли, дублирование системных библиотек.
- Global Interpreter Lock (GIL) не позволяет выполнять несколько потоков одновременно в реализации CPython. Однако GIL можно отключить на какое-то время, как это сделано в пакете NumPy.
- Динамическая типизация. «Вот это да! — скажете вы. — Разве динамическая типизация — это не круто»? С одной стороны — да, но именно из-за неё ошибки отображаются во время выполнения (runtime), а не компиляции (compile time).

Трудоустройство и средняя зарплата Python-разработчика
Популярность Python растёт уже больше восьми лет, язык часто занимает первые места в индексе TIOBE. Параллельно растёт и востребованность Python-разработчиков. Средняя зарплата «питониста» в России — 180 тысяч рублей. Правда, чтобы получать такую зарплату, нужно знать не только сам язык, но и его фреймворки и другие дополнительные технологии.

Нижняя зарплатная планка для начинающих разработчиков находится на уровне 30 тысяч рублей. Программисты со стажем от двух лет могут рассчитывать на зарплату в 100–150 тысяч рублей.
Зачастую на должность стажёра или младшего специалиста можно устроиться только в крупную компанию, а расположены они в больших городах вроде Москвы и Санкт-Петербурга. Из-за этого новичкам сложно найти работу в регионах — остаётся искать заказы на фрилансе.
Заключение
Язык программирования Python с каждым годом становится всё популярнее и востребованнее. Он отлично подходит для многих направлений разработки: от веба до тестирования и анализа данных.
Программы на Python гибкие, легко масштабируются, а для их создания не требуется содержать большую команду разработчиков. У языка простой и понятный синтаксис и мощное сообщество, которое его развивает и популяризирует.
* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook* и Instagram* на территории Российской Федерации по основаниям осуществления экстремистской деятельности».


