Python, для более простого программирования

Код Python должен быть индицирован
(Monty Python в работе)
Одного дня достаточно, чтобы начать программирование с Python и ты можешь писать за несколько часов скрипты, требующие дней с другими языками. Это широко используемый и переносимый язык.
Он обладает мощными функциями, такими как списки, кортежи, словари, что позволяет очень легко переводить идеи в строки кода.
Эти интегрированные списки делают его преемником Awk и любого другого языка обработки текста.
Происхождение названия - дань юмористической группе «Монти Питон», но одноимённая змея все же стала символом языка.
Автор языка Гвидо ван Россум работал в Google с 2005 по 2012 год и с тех пор работает в Dropbox. Однако в 2014 году Dropbox конвертировал большую часть своих программ в Go, что является нынешней тенденцией в веб-сервисах.
Эволюция
Разработанный на основе языка ABC, который был моделью, когда при упрощении языка программирования (переменные даже сохраняли свою ценность от сеанса к сеансу), Python изначально очень простой в чтении язык.
Но программисты никогда долго не сопротивляются своему злому демону, который побуждает их писать все более замысловатый и криографический код, что приводит язык к эволюции в усложнении, которое со временем приближает его к языку C++. Та же функция на одном языке может стать все менее понятной, к радости «эксперта».
Несмотря на появление в 2008 году, в 2016 году Python 3 всё ещё используется меньше, чем в Python 2. Несовместимость с предыдущими версиями без повышения производительности препятствует переходу. Страх, что существующие библиотеки будут несовместимы, что часто бывает, также тормозит его принятие.
Именно поэтому появилась неофициальная версия интерпретатора, Thauton, которая приносит Python 2 новые возможности, введенные в 3 как async/awais, например.
Несколько проектов призваны ускорить Python, компилируя его в C с помощью CPython, или с помощью виртуальной машины с Jython. От проекта Unladen Swallow по работе Python на LLVM отказались из-за технических препятствий, включая невозможность совместимости с библиотеками в C.
На самом деле Python, как корпоративный язык зашел в тупик: стандартный интерпретатор, не предназначен для современной среды многоядерных процессоров. Он слишком медленный. Можно использовать альтернативные реализации, одна из которых использует JIT. Но в этом случае теряется совместимость с расширениями и библиотеками, которые на самом деле являются первой причиной выбора этого языка.
Динамический сценарий
Этот язык сценариев может использоваться на сервере или в качестве языка приложений.
- Это изначально интерпретированный язык, но существуют компиляторы и порт для JVM и .NET.
- Он ориентирован на объект.
- Переменные динамические, тип не объявляется и может меняться.
- Отступы используются для распознавания блока, это свойственно только Python.
- Кортежи - это переменные или объекты, упакованные вместе, например, для возврата функций.
- Списки и диктанты являются другими встроенными составными объектами.
- Элементы могут быть вложены.
- Может быть расширен с помощью модулей C.
Python 3.0 меняет синтаксис языка, что делает его частично несовместимым с предыдущими версиями, до такой степени, что его считают немного новым языком среди старых пользователей.
- print x заменяется print (x).
- диапазон становится объектом, а не списком значений.
- Конец поддержки байтовых строк, все уникод.
- Оператор <> удален.
- dict.keys возвращает представление, а не список .
В чем часто критикуют язык, вне зависимости от версии:
- Выполнение кода происходит медленно. Поэтому его обычно заменяют на Go.
- Невозможно объявить переменную, как в JavaScript с var. Это лишает четкости и безопасности кода.
- Ориентация объектов довольно деревенская и импровизированная.
- Использование отступа для определения блока - часто спорный выбор конструкции. Таким образом, если комментировать одну строчку, это меняет структуру!
- Некоторые предустановленные глобальные функции должны быть скорее методами объектов (но PHP в этом плане гораздо хуже).
Можно сравнить синтаксис Python, Ruby, PHP, чтобы лучше судить о читаемости.
Примеры кода
Показывать буквы слов:
s = "demo"
for c in s:
print c
Показать элементы списка:
listdemo = [1,2,3] + [4,5]
subdemo = listdemo[1:3]
for num in subdemo:
print num
Должно отображаться: 2 3 4...
Уил... else
Добавление else в управляющую структуру while уникально для Python. Рассмотрим на примере:
while x < 10 :
x = x + 1
else:
print("x = 10")
Предложение else включается, когда условие while перестает быть истинным, так что как только x будет стоить 10.
Будет сказано, что это положение немного лишнее, потому что это всегда так, когда ты выходишь из петли, но, тем не менее, есть оправдание этому синтаксису:
while x < 10:
x = x + 1
if mytaylor == rich: break
else:
print("x = 10")
Видно, что из цикла можно выйти независимо от значения x, и не всегда включается else-клаузула. Она зависит только от значения x.
Остается, что выход из петли независимо от состояния - это прерывание в логике программы.
Инструменты
Программы на Python легче реализовать с помощью бесплатного EDI типа Eclipse, для которого можно найти множество примеров использования в Сети, или, если ты более вовлечен, коммерческого программного обеспечения типа PyCharm.
Вот список основных инструментов для написания скриптов Python:
- Python.org
Официальный дистрибутив с полным учебником. Благодаря программе setup, которую нужно загрузить, установка проста. - Таутон
Неофициальная версия, совместимая с Python 2.7, но с возможностями Python 3. - PyCharm от JetBrains.
Специализированная IDE, существует в бесплатной версии с открытым исходным кодом. - Нуитка
Компилятор Python для полного языка. - IPython
Бесплатный и современный инструмент для интерактивной разработки, получивший премию FSF 2012 года. Существует версия для Linux, Windows и Mac. - Jython
Версия, совместимая с Java. Компилирует источник Python в байткод, интерпретируемый виртуальной машиной Java. Однако ограничиваются старыми версиями языка.
Также существует компилятор для .NET, IronPython. - Для использования Python в браузере вместо JavaScript существует несколько реализаций: Brython, Sculpt, Pyjaco, Pyjs, Empythoned. У нас есть Oink. Pythonium также преобразует Python в JS .