Язык Python — описание, синтаксис, плюсы и минусы
Python — это высокоуровневый язык программирования общего назначения. Он имеет минималистичный синтаксис, направленный на повышение читаемости кода (и в целом на повышение производительности разработчика).
В статье рассмотрим основные особенности языка, его плюсы и минусы, базовый синтаксис + разберём простой пример кода.
О языке
По-русски Python произносится как — "пайтон", но более распространенная версия произношения — "питон". Язык поддерживает несколько парадигм программирования: объектно-ориентированное, функциональное, структурное, императивное и аспектно-ориентированное.
Основная реализация языка Python — CPython. Написана на C.
История создания
Разработку Python начал Гвидо ван Россум в декабре 1989 года. Для ОС Amoeba требовался расширяемый скриптовый язык. На досуге, Гвидо начал писать Python, позаимствовав некоторые наработки из языка ABC.
Версия Python 2.0 была выпущена 16 октября 2000 г., а первая обратно-несовместимая версия Python 3.0 — 3 декабря 2008 г.
Историю релизов Python можно посмотреть тут.
Какие задачи удобно решать на Python
Основной упор в Python делается на скорости написания кода (а не на скорости выполнения кода, как например в языках С и C++). Поэтому в первую очередь Python удобно использовать там, где нужно быстро написать что-то работающее.
Все чаще Python используется для анализа данных, как в науке, так и коммерческой сфере. Этому способствует простота языка и большое разнообразие открытых библиотек.
Другая область применения, для которой хорош Питон — системное администрирование и DevOps. На это есть как минимум 3 причины:
- благодаря своей простоте, системному администратору не так сложно выучить этот язык и начать им пользоваться;
- огромный выбор библиотек;
- python входит в состав большинства дистрибутивов Linux.
Типизация
Python является языком с полной динамической типизацией и автоматическим управлением памятью. Динамическая типизация означает, что тип переменной определяется только во время исполнения.
С одной стороны, динамическая типизация упрощает написание программ. Но с другой, имеет ряд недостатков — повышается риск ошибиться с типами и снижается производительность программы.
В "Питоне" реализованы встроенные типы, например:
- булевый тип;
- строка;
- целое число произвольной точности;
- число с плавающей запятой;
- комплексное число.
Также есть и готовые коллекции:
- списки;
- кортежи (неизменяемые списки);
- словари;
- множества.
Добавить новый тип можно написав свой класс или определив новый тип в модуле расширения.
Производительность
По производительности Python относительно медленный язык (по сравнению с C, Go, Java). Его скорость выполнения схожа с другими интерпретируемыми языками (PHP, Ruby). Однако возможность компиляции python-кода в байт-код позволяет добиться большей производительности.
Основные причины, из-за которых Python "медленный":
- GIL (глобальная блокировка интерпретатора).
- Динамическая типизация.
- Python это интерпретируемый, а не компилируемый язык.
Несмотря на это, в большинстве задач гораздо важнее быстро получить результат, нежели ускорить выполнение программы. Особенно это важно для бизнеса или стартапа, где критически важно быстро выпустить продукт в production и начать зарабатывать.
Если для задачи критична производительность, используйте последнюю версию Python. Или присмотритесь к PyPy.
GIL
Global Interpreter Lock — это глобальная блокировка интерпретатора Python. GIL накладывает ограничение на потоки — нельзя использовать несколько процессоров одновременно. Тем самым GIL помогает избежать конфликтов при одновременном обращении разных потоков к одним и тем же участкам памяти.
Многие разработчики против GIL в Python-е, однако создатель проекта Гвидо ван Россум заявляет, что GIL не так уж и плох, и убирать его из CPython`а он не планирует.
Плюсы и минусы Python
👍 Плюсы:
- низкий порог вхождения;
- язык широкого применения;
- минималистичный синтаксис;
- кроссплатформенность;
- открытый исходный код интерпретатора CPython;
- наличие дружелюбного, отзывчивого сообщества;
- поддержка многих IDE;
- огромное количество библиотек;
- входит в поставку большинства дистрибутивов Linux.
👎 Минусы:
- низкая производительность;
- отсутствие статической типизации.
Синтаксис
Программный код на Python организовывается в функции и классы. Они объединяются в модули, а модули могут быть объединены в пакеты.
Синтаксис Python прост и лаконичен, что делает его удобным для изучения.
Отличительная черта языка — использование отступов для выделения блоков кода и управляющих структур
В отличие от других языков программирования, отступы в Python напрямую влияют на вложенность выражений. Именно эта особенность положительно влияет на читаемость Python-кода.
Пример кода
Простой пример кода — классический "Hello, World!":
print("Hello, World!")
Попробуем разобрать более сложный код. Дано: 10 рандомных чисел. Необходимо отсортировать их в порядке возрастания.
from random import randint
def get_numbers(count):
numbers = []
for i in range(count):
numbers.append(randint(1, 99))
return numbers
my_numbers = get_numbers(10)
my_numbers.sort()
print(my_numbers)
Разберем код:
- В первой строке мы импортируем функцию
randint
из модуляrandom
. Эта функция нужна нам для генерации случайных целых чисел (модульrandom
входит в стандартную библиотеку Python, отдельно его устанавливать не нужно). get_numbers
— это функция. Об этом говорит инструкцияdef
В круглых скобках находится аргумент этой функции —count
.- Инструкцией
get_numbers(10)
мы вызываем функцию. Аргументcount
теперь равен 10. Count в нашем случае это количество чисел, которое мы хотим сгенерировать. - Инструкция
for i in range(count)
— это цикл (перебор). В нашем случае от 0 до 9. randint(1, 99)
вернет рандомное (случайное) число от 1 до 99.- Метод
append
добавит рандомное число в списокnumbers
. - И так 10 раз.
- Когда цикл закончится, функция вернет список из 10-ти рандомных чисел. Этот список мы присвоим переменной
my_numbers
. - Далее вызовем метод
sort
который отсортирует список по возрастанию. - А функция
print
выведет наш отсортированный список на экран (в консоль).
Результат выполнения данного скрипта выглядит следующим образом:
[20, 27, 29, 36, 53, 74, 75, 81, 87, 93]
В данной статье мы рассмотрели лишь верхушку айсберга под названием Python. Изучив этот язык вы удивитесь, насколько просто и лаконично может выглядеть код и как просто его писать.