КАТАЛОГ ТОВАРОВ

Срок доставки товара в течении 1-3 дней !!!

 

ПОЛЬЗОВАТЕЛЬ
КОРЗИНА

Основы языка программирования Python за 10 минут. Язык python для чего нужен


Для каких целей используют Python

Наверное, много начинающих программистов не раз задавались вопросом: «А для чего вообще нужен Python?». Хочу по этому поводу поделится с вами своим опытом, а именно расскажу как я познакомился с Python, попал в ряды Web-разработчиков и стал разрабатывать дестопные приложения для любых систем.

О  Python впервые я узнал в 2010 году. Кто понятия не имеет что это такое, может более детальную информацию о Python узнать на Wiki. Главное преимущество в Python это простота его изучения. Дело в том, что он максимально приближен к понятному (человечному) английскому языку. Вы наверное хотите мне задать вопрос: «Ведь если ты опытный разработчик РНР, то зачем тебе нужен Python?». Дело в том, что при изучении Python, я параллельно запоминаю английские слова и одновременно их заучиваю. При этом, я занимаюсь НЕ только веб-разработкой, но работаю с дестопными приложениями для различных операционных систем, плюс к этому у меня есть возможность разрабатывать игры.

Могу сейчас с уверенностью сказать одно, что если бы была возможность вернуть время назад, то я бы в первую очередь начал изучать язык Python.

Как будет происходить изучение Python

Мои уроки Python будут происходить по классическому стилю. Я научу вас всему от корки до корки. Вы узнаете все, что знаю я сам. Уже через несколько занятий попытаемся написать несложные программки, типа Hello World.

 

После того как вы пройдете мои уроки  «Программирование на Python«, то узнаете все необходимое, чтобы в дальнейшем заниматься разработкой собственных сайтов на Django. Помимо этого, вы узнаете как писать дестопные приложения и консольные скрипты. После окончания обучения, все мои ученики будут иметь знания уровня Junior Python Developer.

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

Если у кого-то появилось желание узнать о языке Python, после прочтения написанных выше строк, то каждый из вас прямо сейчас имеет возможность начать изучать программирование на Python и пополнить ряды Junior Python Developer.

master-develop.com

Зачем нужен Питон

Есть английский язык. На нём общаются люди. А ещё – на немецком, филиппинском, испанском, греческом и прорве других.

А есть Питон (голос зануды про правильное название). Это язык, на котором человек общается с компьютером. С компьютером можно общаться на куче языков: Си, Паскаль, Хаскель, Го, Свифт, Руби, ПХП, Бейсик, Эрланг, Эр и много других.

Мы тут будем учить именно Питон. Начнём с короткого обзора того, чем он отличается от остальных языков. Делать ничего не надо: прочитал, запомнил пару пунктов и всё, можно хвастаться всем, что ты в теме (не надо так).

Лаконичность

У Питона такое сообщество, что оно не приветствует разброда в использовании языка. Стандарт написания кода – это часть языка. Философия написания кода – тоже часть языка. Поэтому два хороших программиста напишут очень похожий код: не надо тратить время на "блин, а что он тут имел в виду?...".

У Питона такой синтаксис, что он помогает писать код очень коротко. Нет лишних скобок, длинных ключевых слов, сложных трюков и всякого такого. Описать логику, перевести на английский, разбавить отступами и синтаксисом – всё, программа готова.

У Питона такая стандартная библиотека, что она помогает выполнять кучу рутинных операций. Она поможет отправить емейл, закодировать строку, поднять веб-сервер, узнать время, удалить файл, посчитать дисперсию, заархивировать файл, вытащить данные из базы данных и ещё прорву всего всего парой строк.

У Питона такое количество сторонних модулей, что можно сэкономить тысячи человеко-часов работы. Нужно написать сайт? Научить нейронную сеть разгадывать капчу? Скачать аудио из "Вконтакте"? Узнавать людей на фотографиях? Смоделировать полёт ракеты? Написать бота? Для всего этого есть готовые модули, их надо только установить и воспользоваться.

Всё это делает процесс написания кода очень быстрым.

Крутая документация

Попробуйте загуглить [python function], [python parse json] или, например [python create process]. В первых результатах будет ссылка на https://docs.python.org – сайт официальной документации.

Это потому что документация очень подробная: в ней есть материалы для новичков, доки к каждому модулю, рекомендации по использованию, подводные камни и дальнейшее чтение. И это всё – для каждой версии языка. Такой удобной и подробной документации нет ни у кого.

А ещё есть http://stackoverflow.com/ – сайт, на котором одни программисты отвечают другим программистам на вопросы о программировании. За время его существования там были заданы все возможные вопросы. Серьёзно: любой вопрос в духе "как это сделать на Питоне" или "почему этот код не работает" уже был задан, просмотрен и отвечен.

Всё это делает процесс изучения и написания кода быстрым: вся нужная информация находится на расстоянии одного удачного поискового запроса.

Какого из этих вопросов нет в официальных FAQ официальной документации?

  • Why am I getting strange results with simple arithmetic operations?
  • Why is Python installed on my machine?
  • How can I implement base abstract factory class in Python?
  • Writing C is hard; are there any alternatives?

Строгая динамическая типизация

Динамическая типизация – значит, в одной и той же переменной в разное время могут храниться значения разных типов. Сейчас – число, потом – строка, и всё – в одной переменной.

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

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

Может показаться, что это неудобно, но на самом деле это защищает от прорвы ошибок. Чтобы понять о чём речь, достаточно посмотреть на JavaScript, язык со слабой типизацией:

Автоматическое управление памятью

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

В Питоне об этом думать не надо: язык программирования всё сделает за программиста. Правда, сделает неидеально: о том, как Питон работает с памятью, надо знать.

И ещё много всякого

Помимо перечисленного, Питон знаменит много чем ещё: отступами, интроспекцией, дзеном, портируемостью, GIL-ом, названием.

devman.org

Основы языка программирования Python за 10 минут / Хабр

На сайте Poromenos' Stuff была опубликована статья, в которой, в сжатой форме, рассказывают об основах языка Python. Я предлагаю вам перевод этой статьи. Перевод не дословный. Я постарался подробнее объяснить некоторые моменты, которые могут быть непонятны.

Если вы собрались изучать язык Python, но не можете найти подходящего руководства, то эта статья вам очень пригодится! За короткое время, вы сможете познакомиться с основами языка Python. Хотя эта статья часто опирается на то, что вы уже имеете опыт программирования, но, я надеюсь, даже новичкам этот материал будет полезен. Внимательно прочитайте каждый параграф. В связи с сжатостью материала, некоторые темы рассмотрены поверхностно, но содержат весь необходимый метриал.

Основные свойства

Python не требует явного объявления переменных, является регистро-зависим (переменная var не эквивалентна переменной Var или VAR — это три разные переменные) объектно-ориентированным языком.

Синтаксис

Во первых стоит отметить интересную особенность Python. Он не содержит операторных скобок (begin..end в pascal или {..}в Си), вместо этого блоки выделяются отступами: пробелами или табуляцией, а вход в блок из операторов осуществляется двоеточием. Однострочные комментарии начинаются со знака фунта «#», многострочные — начинаются и заканчиваются тремя двойными кавычками «"""». Чтобы присвоить значение пременной используется знак «=», а для сравнения — «==». Для увеличения значения переменной, или добавления к строке используется оператор «+=», а для уменьшения — «-=». Все эти операции могут взаимодействовать с большинством типов, в том числе со строками. Например

>>> myvar = 3 >>> myvar += 2 >>> myvar -= 1""«Это многострочный комментарий Строки заключенные в три двойные кавычки игнорируются»"" >>> mystring = «Hello» >>> mystring += " world." >>> print mystring Hello world.# Следующая строка меняет значения переменных местами. (Всего одна строка!) >>> myvar, mystring = mystring, myvar

Структуры данных

Python содержит такие структуры данных как списки (lists), кортежи (tuples) и словари (dictionaries). Списки — похожи на одномерные массивы (но вы можете использовать Список включающий списки — многомерный массив), кортежи — неизменяемые списки, словари — тоже списки, но индексы могут быть любого типа, а не только числовыми. "Массивы" в Python могут содержать данные любого типа, то есть в одном массиве может могут находиться числовые, строковые и другие типы данных. Массивы начинаются с индекса 0, а последний элемент можно получить по индексу -1 Вы можете присваивать переменным функции и использовать их соответственно.

>>> sample = [1, [«another», «list»], («a», «tuple»)] #Список состоит из целого числа, другого списка и кортежа >>> mylist = [«List item 1», 2, 3.14] #Этот список содержит строку, целое и дробное число >>> mylist[0] = «List item 1 again» #Изменяем первый (нулевой) элемент листа mylist >>> mylist[-1] = 3.14 #Изменяем последний элемент листа >>> mydict = {«Key 1»: «Value 1», 2: 3, «pi»: 3.14} #Создаем словарь, с числовыми и целочисленным индексами >>> mydict[«pi»] = 3.15 #Изменяем элемент словаря под индексом «pi». >>> mytuple = (1, 2, 3) #Задаем кортеж >>> myfunction = len #Python позволяет таким образом объявлять синонимы функции >>> print myfunction(list) 3

Вы можете использовать часть массива, задавая первый и последний индекс через двоеточие «:». В таком случае вы получите часть массива, от первого индекса до второго не включительно. Если не указан первый элемент, то отсчет начинается с начала массива, а если не указан последний — то масив считывается до последнего элемента. Отрицательные значения определяют положение элемента с конца. Например:

>>> mylist = [«List item 1», 2, 3.14] >>> print mylist[:] #Считываются все элементы массива ['List item 1', 2, 3.1400000000000001] >>> print mylist[0:2] #Считываются нулевой и первый элемент массива. ['List item 1', 2] >>> print mylist[-3:-1] #Считываются элементы от нулевого (-3) до второго (-1) (не включительно) ['List item 1', 2] >>> print mylist[1:] #Считываются элементы от первого, до последнего [2, 3.14]

Строки

Строки в Python обособляются кавычками двойными «"» или одинарными «'». Внутри двойных ковычек могут присутствовать одинарные или наоборот. К примеру строка «Он сказал 'привет'!» будет выведена на экран как «Он сказал 'привет'!». Если нужно использовать строку из несколько строчек, то эту строку надо начинать и заканчивать тремя двойными кавычками «"""». Вы можете подставить в шаблон строки элементы из кортежа или словаря. Знак процента «%» между строкой и кортежем, заменяет в строке символы «%s» на элемент кортежа. Словари позволяют вставлять в строку элемент под заданным индексом. Для этого надо использовать в строке конструкцию «%(индекс)s». В этом случае вместо «%(индекс)s» будет подставлено значение словаря под заданным индексом.

>>>print «Name: %s\nNumber: %s\nString: %s» % (myclass.name, 3, 3 * "-") Name: Poromenos Number: 3 String: —   strString = ""«Этот текст расположен на нескольких строках»""   >>> print «This %(verb)s a %(noun)s.» % {«noun»: «test», «verb»: «is»} This is a test.

Операторы

Операторы while, if, for составляют операторы перемещения. Здесь нет аналога оператора select, так что придется обходиться if. В операторе for происходит сравнение переменной и списка. Чтобы получить список цифр до числа <number> — используйте функцию range(<number>). Вот пример использования операторов

rangelist = range(10) #Получаем список из десяти цифр (от 0 до 9) >>> print rangelist [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]for number in rangelist: #Пока переменная number (которая каждый раз увеличивается на единицу) входит в список… # Проверяем входит ли переменная# numbers в кортеж чисел (3, 4, 7, 9)if number in (3, 4, 7, 9): #Если переменная number входит в кортеж (3, 4, 7, 9)...# Операция «break» обеспечивает# выход из цикла в любой моментbreak else:# «continue» осуществляет «прокрутку»# цикла. Здесь это не требуется, так как после этой операции # в любом случае программа переходит опять к обработке циклаcontinueelse:# «else» указывать необязательно. Условие выполняется# если цикл не был прерван при помощи «break».pass # Ничего не делать  if rangelist[1] == 2:print «The second item (lists are 0-based) is 2»elif rangelist[1] == 3:print «The second item (lists are 0-based) is 3»else:print «Dunno»  while rangelist[1] == 1:pass

Функции

Для объявления функции служит ключевое слово «def». Аргументы функции задаются в скобках после названия функции. Можно задавать необязательные аргументы, присваивая им значение по умолчанию. Функции могут возвращать кортежи, в таком случае надо писать возвращаемые значения через запятую. Ключевое слово «lambda» служит для объявления элементарных функций .

# arg2 и arg3 — необязательые аргументы, принимают значение объявленное по умолчни,# если не задать им другое значение при вызове функци.def myfunction(arg1, arg2 = 100, arg3 = «test»):return arg3, arg2, arg1#Функция вызывается со значением первого аргумента — "Argument 1", второго — по умолчанию, и третьего — "Named argument". >>>ret1, ret2, ret3 = myfunction(«Argument 1», arg3 = «Named argument»)# ret1, ret2 и ret3 принимают значения "Named argument", 100, "Argument 1" соответственно >>> print ret1, ret2, ret3 Named argument 100 Argument 1  # Следующая запись эквивалентна def f(x): return x + 1 functionvar = lambda x: x + 1 >>> print functionvar(1)2

Классы

Язык Python ограничен в множественном наследовании в классах. Внутренние переменные и внутренние методы классов начинаются с двух знаков нижнего подчеркивания «__» (например «__myprivatevar»). Мы можем также присвоить значение переменной класса извне. Пример:

class Myclass: common = 10def __init__(self):self.myvariable = 3def myfunction(self, arg1, arg2):return self.myvariable  # Здесь мы объявили класс Myclass. Функция __init__ вызывается автоматически при инициализации классов. >>> classinstance = Myclass() # Мы инициализировали класс и переменная myvariable приобрела значение 3 как заявлено в методе инициализации >>> classinstance.myfunction(1, 2) #Метод myfunction класса Myclass возвращает значение переменной myvariable3# Переменная common объявлена во всех классах >>> classinstance2 = Myclass() >>> classinstance.common10 >>> classinstance2.common10# Поэтому, если мы изменим ее значение в классе Myclass изменятся# и ее значения в объектах, инициализированных классом Myclass >>> Myclass.common = 30 >>> classinstance.common30 >>> classinstance2.common30# А здесь мы не изменяем переменную класса. Вместо этого# мы объявляем оную в объекте и присваиваем ей новое значение >>> classinstance.common = 10 >>> classinstance.common10 >>> classinstance2.common30 >>> Myclass.common = 50# Теперь изменение переменной класса не коснется # переменных объектов этого класса >>> classinstance.common10 >>> classinstance2.common50  # Следующий класс является наследником класса Myclass# наследуя его свойства и методы, ктому же класс может # наследоваться из нескольких классов, в этом случае запись # такая: class Otherclass(Myclass1, Myclass2, MyclassN)class Otherclass(Myclass):def __init__(self, arg1):self.myvariable = 3print arg1   >>> classinstance = Otherclass(«hello») hello >>> classinstance.myfunction(1, 2)3# Этот класс не имеет совйтсва test, но мы можем # объявить такую переменную для объекта. Причем # tэта переменная будет членом только classinstance. >>> classinstance.test = 10 >>> classinstance.test10

Исключения

Исключения в Python имеют структуру try-except [exceptionname]:

def somefunction():try:# Деление на ноль вызывает ошибку10 / 0except ZeroDivisionError:# Но программа не "Выполняет недопустимую операцию"# А обрабатывает блок исключения соответствующий ошибке «ZeroDivisionError»print «Oops, invalid.»   >>> fnexcept() Oops, invalid.

Импорт

Внешние библиотеки можно подключить процедурой «import [libname]», где [libname] — название подключаемой библиотеки. Вы так же можете использовать команду «from [libname] import [funcname]», чтобы вы могли использовать функцию [funcname] из библиотеки [libname]

import random #Импортируем библиотеку «random»from time import clock #И заодно функцию «clock» из библиотеки «time»   randomint = random.randint(1, 100) >>> print randomint64

Работа с файловой системой

Python имеет много встроенных библиотек. В этом примере мы попробуем сохранить в бинарном файле структуру списка, прочитать ее и сохраним строку в текстовом файле. Для преобразования структуры данных мы будем использовать стандартную библиотеку «pickle»

import pickle mylist = [«This», «is», 4, 13327]# Откроем файл C:\binary.dat для записи. Символ «r» # предотвращает замену специальных сиволов (таких как \n, \t, \b и др.). myfile = file(r«C:\binary.dat», «w»)pickle.dump(mylist, myfile) myfile.close()   myfile = file(r«C:\text.txt», «w») myfile.write(«This is a sample string») myfile.close()   myfile = file(r«C:\text.txt») >>> print myfile.read()'This is a sample string' myfile.close()  # Открываем файл для чтения myfile = file(r«C:\binary.dat») loadedlist = pickle.load(myfile) myfile.close() >>> print loadedlist ['This', 'is', 4, 13327]

Особенности

  • Условия могут комбинироваться. 1 < a < 3 выполняется тогда, когда а больше 1, но меньше 3.
  • Используйте операцию «del» чтобы очищать переменные или элементы массива.
  • Python предлагает большие возможности для работы со списками. Вы можете использовать операторы объявлении структуры списка. Оператор for позволяет задавать элементы списка в определенной последовательности, а if — позволяет выбирать элементы по условию.
>>> lst1 = [1, 2, 3] >>> lst2 = [3, 4, 5] >>> print [x * y for x in lst1 for y in lst2] [3, 4, 5, 6, 8, 10, 9, 12, 15] >>> print [x for x in lst1 if 4 > x > 1] [2, 3]# Оператор «any» возвращает true, если хотя # бы одно из условий, входящих в него, выполняется. >>> any(i % 3 for i in [3, 3, 4, 4, 3])True# Следующая процедура подсчитывает количество # подходящих элементов в списке >>> sum(1 for i in [3, 3, 4, 4, 3] if i == 3)3 >>> del lst1[0] >>> print lst1 [2, 3] >>> del lst1
  • Глобальные переменные объявляются вне функций и могут быть прочитанны без каких либо объявлений. Но если вам необходимо изменить значение глобальной переменной из функции, то вам необходимо объявить ее в начале функции ключевым словом «global», если вы этого не сделаете, то Python объявит переменную, доступную только для этой функции.
number = 5  def myfunc():# Выводит 5print number  def anotherfunc():# Это вызывает исключение, поскольку глобальная апеременная # не была вызванна из функции. Python в этом случае создает # одноименную переменную внутри этой функции и доступную# только для операторов этой функции.print number number = 3  def yetanotherfunc():global number# И только из этой функции значение переменной изменяется. number = 3

Эпилог

Разумеется в этой статье не описываются все возможности Python. Я надеюсь что эта статья поможет вам, если вы захотите и в дальнейшем изучать этот язык программирования.

Преимущества Python

  • Скорость выполнения программ написанных на Python очень высока. Это связанно с тем, что основные библиотеки Python написаны на C++ и выполнение задач занимает меньше времени, чем на других языках высокого уровня.
  • В связи с этим вы можете писать свои собственные модули для Python на C или C++
  • В стандартныx библиотеках Python вы можете найти средства для работы с электронной почтой, протоколами Интернета, FTP, HTTP, базами данных, и пр.
  • Скрипты, написанные при помощи Python выполняются на большинстве современных ОС. Такая переносимость обеспечивает Python применение в самых различных областях.
  • Python подходит для любых решений в области программирования, будь то офисные программы, вэб-приложения, GUI-приложения и т.д.
  • Над разработкой Python трудились тысячи энтузиастов со всего мира. Поддержкой современных технологий в стандартных библиотеках мы можем быть обязаны именно тому, что Python был открыт для всех желающих.

habr.com

python - Для чего используется питон?

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

  • Легко читается и легко учится
  • Очень продуктивные или небольшие, а также крупные проекты
  • Большие библиотеки для многих вещей

введите описание изображения здесь

Как язык программирования общего назначения, Python может использоваться для нескольких вещей. Python можно легко использовать для небольших, крупных, онлайн и оффлайн проектов. Лучшие варианты использования Python - это веб-разработка, простой скриптинг и анализ данных. Ниже приведены несколько примеров того, что Python позволит вам сделать:

Веб-разработка:

Вы можете использовать Python для создания веб-приложений на многих уровнях сложности. Есть много отличных веб-фреймворков Python, включая Pyramid, Django и Flask, чтобы назвать несколько.

Анализ данных:

Python является ведущим языком выбора для многих ученых-исследователей. Python стал популярным в этой области благодаря своим превосходным библиотекам, в том числе; NumPy и Pandas и его великолепные библиотеки для визуализации данных, такие как Matplotlib и Seaborn.

Машинное обучение:

Что делать, если вы могли бы спрогнозировать удовлетворенность клиентов или проанализировать, какие факторы повлияют на цену домашних хозяйств или предсказать акции в течение следующих нескольких дней, исходя из данных предыдущих лет? Существует множество замечательных библиотек, реализующих алгоритмы машинного обучения, такие как Scikit-Learn, NLTK и TensorFlow.

Компьютерное зрение:

Вы можете делать много интересных вещей, таких как обнаружение лиц, определение цвета при использовании Opencv и Python.

Интернет о вещах с малиной Pi:

Малина Pi - очень маленький и доступный компьютер, который был разработан для обучения и приобрел огромную популярность среди любителей с самодельными аппаратными средствами и автоматизацией. Вы даже можете построить робота и автоматизировать весь свой дом. Малина Pi может использоваться в качестве мозга для вашего робота, чтобы выполнять различные действия и/или реагировать на окружающую среду. Кодирование на малине Pi может быть выполнено с использованием Python. Возможности бесконечны!

Разработка игр:

Создайте видеоигру с помощью модуля Pygame. В принципе, вы используете Python для написания логики игры. Приложения PyGame могут работать на устройствах Android.

Веб-скребок:

Если вам нужно захватить данные с веб-сайта, но на сайте нет API для публикации данных, используйте Python для очистки данных.

Написание скриптов:

Если вы делаете что-то вручную и хотите автоматизировать повторяющиеся вещи, такие как электронные письма, это не сложно автоматизировать, как только вы знаете основы этого языка.

Автоматизация браузера:

Выполните некоторые аккуратные вещи, такие как открытие браузера и публикация статуса Facebook, вы можете сделать это с помощью Selenium с Python.

Разработка графического интерфейса:

Создайте графическое приложение (настольное приложение), используя модули Python Tkinter, PyQt для поддержки.

Быстрое прототипирование:

У Python есть библиотеки практически для всех. Используйте его для быстрого создания (более низкого, часто менее мощного) прототипа. Python также отлично подходит для проверки идей или продуктов для известных компаний и начинающих.

Python может использоваться во множестве различных проектов. Если вы программист, ищущий новый язык, вы хотите, чтобы он стал популярным. Будучи новичком в программировании, Python - идеальный выбор для обучения быстро и легко.

qaru.site

Где применяется Python? Какое программное обеспечение написано на Python?

Какие программы написаны на Python?

Прикладное ПО для нормальных людей

Давайте пройдемся для начала по программам, которыми пользуются обычные люди, не являющиеся специалистами в области информационных технологий.
BitTorrent
Все версии до 6 этого торрент-клиента были написаны на Python. Версия 6 была переписана на C++.
Ubuntu Software Center
Цитата из Википедии: Центр приложений Ubuntu (англ. Ubuntu Software Center) — свободное программное обеспечение для поиска, установки и удаления пакетов в системе Ubuntu Linux. в последних версиях возможна покупка журналов о Linux и Ubuntu, также можно приобретать платные игры и софт. Приложение разработано на языке Python + Vala с использованием библиотек GTK+ и является графической оболочкой для Advanced Packaging Tool.
Blender
Цитата из Википедии: Blender — свободный, профессиональный пакет для создания трёхмерной компьютерной графики, включающий в себя средства моделирования, анимации, рендеринга, постобработки видео, а также создания интерактивных игр. В настоящее время пользуется наибольшей популярностью среди бесплатных 3D редакторов в связи с его быстрым и стабильным развитием, которому способствует профессиональная команда разработчиков.

Python используется как средство создания инструментов и прототипов, системы логики в играх, как средство импорта/экспорта файлов (например COLLADA), автоматизации задач.

Вот несколько страниц с документацией:
GIMP
Цитата из Википедии: GIMP («Гимп») — растровый графический редактор, программа для создания и обработки растровой графики и частичной поддержкой работы с векторной графикой. Python используется для написания дополнительных модулей, например, фильтров. Вот несколько страниц, которые глубже раскрывают тему:

Игры

Civilization IV
Большая часть игры написана на Python ( источник).
Battlefield 2
В сети Интернет есть много учебников и просто рецептов по изменению различных объектов и их поведения.
World of Tanks
Цитата из статьи " GUI в игре World of Tanks": В качестве скриптового языка в проекте используется Python. Всю красоту, которую мы сделали во Flash, нужно подключить в игре, наполнить данными, обработать и транслировать пользовательский ввод в реальные действия в игре. Все это как раз и делается в Python. Более полный список игр, которые используют Python, можно найти в Википедии и документации к Python.

Какие компании используют Python?

Список компаний, которые используют Python, длинный. Среди них Google, Facebook, Yahoo, NASA, Red Hat, IBM, Instagram, Dropbox, Pinterest, Quora, Яндекс, Mail.Ru.

Яндекс

Вот, пожалуйста, доклад " Python в ядре Яндекс.Диска". Сергей Иващенко (докладчик): Я расскажу о том, как мы используем Python в Яндекс.Диске, какие применяем библиотеки и фреймворки, какие задачи решаем и с какими проблемами сталкиваемся. Также затрону тему логирования и обработки асинхронных операций. В одном из видео на канале Яндекса, сотрудники рассказали о своих любимых языках. А ещё в блоге компании Яндекс есть запись " На каких языках программирования пишут в Яндексе" от 19 марта 2014 года. Так вот, 13% сотрудников Яндекс большую часть рабочего времени пишут на языке Python.

Mail.ru

Сотрудники Mail.ru тоже используют Python. В официальном блоге Mail.ru на Хабре есть несколько статей о Python:

Разработка прикладного ПО, в том числе игр

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

Научные исследования

Физики и математики очень любят Python за его простоту. Кроме того для Python существует огромное количество библиотек, облегчающих жизнь ученому. Например:
  1. SciPy — это открытая библиотека высококачественных научных инструментов для языка программирования Python. SciPy содержит модули для оптимизации, интегрирования, специальных функций, обработки сигналов, обработки изображений, генетических алгоритмов, решения обыкновенных дифференциальных уравнений и других задач, обычно решаемых в науке и при инженерной разработке.
  2. Matplotlib — библиотека на языке программирования Python для визуализации данных двумерной (2D) графикой (3D графика также поддерживается). Получаемые изображения могут быть использованы в качестве иллюстраций в публикациях.
  3. NumPy — это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами.
Более полный список библиотек для научных вычислений на языке Python можно найти в Википедии.

Обучение

Очень часто в качестве первого языка программирования советуют именно Python. У некоторых российских школ есть успешный опыт обучения школьников программированию на языке Python. Кстати, Гвидо ван Россум находился под впечатлением от языка ABC, когда писал Python. А язык ABC предназначался для обучения и прототипирования.

Критика языка Python

Python один из самых медленных языков программирования

В сети Интеренет можно найти много различных тестов скорости программ, написанных на разных языках программирования. Python обычно находится в конце списков.Обычно под Python имеют в виду CPython, эталонную реализацию языка. Существуют другие реализации языка Python, например PyPy. PyPy обгоняет по скорости CPython и многие другие скриптовые языки программирования, очень близок по скорости к Java. Но есть одна проблема - в PyPy не полностью реализован язык Python, из-за этого многие Python-программы на нем не работают.Многие программисты пишут вставки на C/C++, чтобы ускорить работу в узких местах. Python не предназначен для вычислительных задач, для задач, которые требуют много памяти (memory bound) и подобного. Нужно уметь выбирать подходящие инструменты для стоящих перед вами задач. Гвидо ван Россум говорит об этом в интервью.

GIL мешает одновременному выполнению нескольких потоков

Global Interpreter Lock не позволяет нескольким потокам Python выполняться одновременно. Это особенности CPython. Но недостаток ли это? Нужно понимать, что всё зависит от задачи. Если ваша задача зависит от скорости ввода-вывода (IO bound task), то эффективнее использовать несколько процессов, которые будут работать в асинхронном режиме с внешними ресурсами. А потоки с общей памятью хороши для вычислительных задач (CPU-bound). Но даже если вам нужна работа с потоками, то можно отключить GIL на время, так как это сделано в математическом пакет NumPy.

Нет хороших инструментов для дистрибуции

К сожалению код на Python, который имеет множество зависимостей от системных библиотек, сложно перенести на другие системы. Эту задачу решают с помощью virtualenv. но этот инструмент очень много критикуют системные администраторы.

Дополнительная информация

Python Success StoriesYou Used Python to Write WHAT?What is Python Used For?More proof that it's Python's world and we're just living in itAVERAGE SALARY FOR JOBS REQUIRING PYTHONList of Python software

www.mvoronin.pro

Где применяется Python? Какое программное обеспечение написано на Python?

Какие программы написаны на Python?

Прикладное ПО для нормальных людей

Давайте пройдемся для начала по программам, которыми пользуются обычные люди, не являющиеся специалистами в области информационных технологий.
BitTorrent
Все версии до 6 этого торрент-клиента были написаны на Python. Версия 6 была переписана на C++.
Ubuntu Software Center
Цитата из Википедии: Центр приложений Ubuntu (англ. Ubuntu Software Center) — свободное программное обеспечение для поиска, установки и удаления пакетов в системе Ubuntu Linux. в последних версиях возможна покупка журналов о Linux и Ubuntu, также можно приобретать платные игры и софт. Приложение разработано на языке Python + Vala с использованием библиотек GTK+ и является графической оболочкой для Advanced Packaging Tool.
Blender
Цитата из Википедии: Blender — свободный, профессиональный пакет для создания трёхмерной компьютерной графики, включающий в себя средства моделирования, анимации, рендеринга, постобработки видео, а также создания интерактивных игр. В настоящее время пользуется наибольшей популярностью среди бесплатных 3D редакторов в связи с его быстрым и стабильным развитием, которому способствует профессиональная команда разработчиков.

Python используется как средство создания инструментов и прототипов, системы логики в играх, как средство импорта/экспорта файлов (например COLLADA), автоматизации задач.

Вот несколько страниц с документацией:
GIMP
Цитата из Википедии: GIMP («Гимп») — растровый графический редактор, программа для создания и обработки растровой графики и частичной поддержкой работы с векторной графикой. Python используется для написания дополнительных модулей, например, фильтров. Вот несколько страниц, которые глубже раскрывают тему:

Игры

Civilization IV
Большая часть игры написана на Python ( источник).
Battlefield 2
В сети Интернет есть много учебников и просто рецептов по изменению различных объектов и их поведения.
World of Tanks
Цитата из статьи " GUI в игре World of Tanks": В качестве скриптового языка в проекте используется Python. Всю красоту, которую мы сделали во Flash, нужно подключить в игре, наполнить данными, обработать и транслировать пользовательский ввод в реальные действия в игре. Все это как раз и делается в Python. Более полный список игр, которые используют Python, можно найти в Википедии и документации к Python.

Какие компании используют Python?

Список компаний, которые используют Python, длинный. Среди них Google, Facebook, Yahoo, NASA, Red Hat, IBM, Instagram, Dropbox, Pinterest, Quora, Яндекс, Mail.Ru.

Яндекс

Вот, пожалуйста, доклад " Python в ядре Яндекс.Диска". Сергей Иващенко (докладчик): Я расскажу о том, как мы используем Python в Яндекс.Диске, какие применяем библиотеки и фреймворки, какие задачи решаем и с какими проблемами сталкиваемся. Также затрону тему логирования и обработки асинхронных операций. В одном из видео на канале Яндекса, сотрудники рассказали о своих любимых языках. А ещё в блоге компании Яндекс есть запись " На каких языках программирования пишут в Яндексе" от 19 марта 2014 года. Так вот, 13% сотрудников Яндекс большую часть рабочего времени пишут на языке Python.

Mail.ru

Сотрудники Mail.ru тоже используют Python. В официальном блоге Mail.ru на Хабре есть несколько статей о Python:

Разработка прикладного ПО, в том числе игр

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

Научные исследования

Физики и математики очень любят Python за его простоту. Кроме того для Python существует огромное количество библиотек, облегчающих жизнь ученому. Например:
  1. SciPy — это открытая библиотека высококачественных научных инструментов для языка программирования Python. SciPy содержит модули для оптимизации, интегрирования, специальных функций, обработки сигналов, обработки изображений, генетических алгоритмов, решения обыкновенных дифференциальных уравнений и других задач, обычно решаемых в науке и при инженерной разработке.
  2. Matplotlib — библиотека на языке программирования Python для визуализации данных двумерной (2D) графикой (3D графика также поддерживается). Получаемые изображения могут быть использованы в качестве иллюстраций в публикациях.
  3. NumPy — это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами.
Более полный список библиотек для научных вычислений на языке Python можно найти в Википедии.

Обучение

Очень часто в качестве первого языка программирования советуют именно Python. У некоторых российских школ есть успешный опыт обучения школьников программированию на языке Python. Кстати, Гвидо ван Россум находился под впечатлением от языка ABC, когда писал Python. А язык ABC предназначался для обучения и прототипирования.

Критика языка Python

Python один из самых медленных языков программирования

В сети Интеренет можно найти много различных тестов скорости программ, написанных на разных языках программирования. Python обычно находится в конце списков.Обычно под Python имеют в виду CPython, эталонную реализацию языка. Существуют другие реализации языка Python, например PyPy. PyPy обгоняет по скорости CPython и многие другие скриптовые языки программирования, очень близок по скорости к Java. Но есть одна проблема - в PyPy не полностью реализован язык Python, из-за этого многие Python-программы на нем не работают.Многие программисты пишут вставки на C/C++, чтобы ускорить работу в узких местах. Python не предназначен для вычислительных задач, для задач, которые требуют много памяти (memory bound) и подобного. Нужно уметь выбирать подходящие инструменты для стоящих перед вами задач. Гвидо ван Россум говорит об этом в интервью.

GIL мешает одновременному выполнению нескольких потоков

Global Interpreter Lock не позволяет нескольким потокам Python выполняться одновременно. Это особенности CPython. Но недостаток ли это? Нужно понимать, что всё зависит от задачи. Если ваша задача зависит от скорости ввода-вывода (IO bound task), то эффективнее использовать несколько процессов, которые будут работать в асинхронном режиме с внешними ресурсами. А потоки с общей памятью хороши для вычислительных задач (CPU-bound). Но даже если вам нужна работа с потоками, то можно отключить GIL на время, так как это сделано в математическом пакет NumPy.

Нет хороших инструментов для дистрибуции

К сожалению код на Python, который имеет множество зависимостей от системных библиотек, сложно перенести на другие системы. Эту задачу решают с помощью virtualenv. но этот инструмент очень много критикуют системные администраторы.

Дополнительная информация

Python Success StoriesYou Used Python to Write WHAT?What is Python Used For?More proof that it's Python's world and we're just living in itAVERAGE SALARY FOR JOBS REQUIRING PYTHONList of Python software

www.mvoronin.pro

5 причин, по которым Python достаточно мощный для Google / Хабр

Перевод статьи 5 Reasons why Python is Powerful Enough for Google

Вы готовитесь начать новый проект. Какой язык вам выбрать для разработки?

Или, если переформулировать данный вопрос: вы ищите работу, какой язык вам нужно учить?

По названию данной статьи вы можете догадаться, что правильным ответом я считаю Python. Но почему?

Ответ заключается в том, что Python — это мощный язык. Но что это значит? Что делает язык программирования мощным?

Python эффективный

В наши дни тонны интеллектуальной энергии уходит на Большие данные (как на их анализ, так и на их обработку). Чем больше данных вам необходимо обрабатывать, тем важнее управлять используемой вами памятью.

Python предоставляет генераторы как выражений, так и функций.

Генераторы допускают итеративную обработку вещей, по одному элементу за раз. Это не кажется каким-то фантастическим, пока вы не начнете понимать, что для нормальной итеративной обработки списка требуется список. Список занимает память. Очень большой список занимает много памяти.

Там, где это особенно удобно (когда у вас длинная цепочка процессов), необходимо применение к набору данных. Генераторы позволяют одновременно захватывать исходные данные по одному элементу и передавать их по всей цепочке процессов.

Я часто сталкиваюсь с необходимостью переноса данных с одного сайта на другой. Некоторые из сайтов, которые я переношу, имеют десятилетние истории и гигабайты данных. Используя средства миграции на основе генератора collective.transmogrifier, я могу считывать данные сайта, производить сложные, взаимозависимые обновления данных, в то время, как он обрабатывает, создает и сохраняет объекты на новом сайте в постоянной памяти.

Для приложений, в которых вы имеете дело еще большими наборами данных, такой инструмент может быть незаменимым. У Дэвида Бизли есть отличная презентация, в которой содержатся некоторые довольно убедительные примеры использования генераторов для системных задач. Взгляните и вы увидите, как разыграется ваше воображение!

Python быстрый

Ладно, ладно. Я слышу фырканье. Ведь Python — это интерпретируемый язык, не так ли? Разве они не медленные?

Дело в том, что за последние годы была проделана изумительная работа, чтобы улучшить производительность  Python.

Проект PyPy направлен на ускорение работы Python в целом (и отлично справляется с этим).

Numba может предложить потрясающее увеличение скорости, просто добавив декораторов в код, который у вас уже есть.

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

Python широко распространен

Python существует уже довольно давно и используется почти во всех областях деятельности. Reddit thread создал опрос «как вы используете Python на работе», в ответах задачи, начиная от системной автоматизации, тестирования и ETL до игр, CGI и веб-разработки.

Disney использует Python для поддержки своего творческого процесса.

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

Проверка PyPi, каталога общедоступных пакетов для Python, показывает 40 тысяч дополнений, доступных почти в 300 перечисленных категориях.

В принципе, если вы хотите что-то сделать на Python, есть довольно хорошие шансы, что у кого-то это уже есть, и вам не нужно начинать с нуля.

Python — это не Python

Недавно я читал пост о том, почему существует так много разных видов Python.

Автор считает, что Python на самом деле не язык, это описание языка. Это значит, что вы можете реализовать Python любым способом.

Python, с которым большинство людей взаимодействует, это CPython, реализация, написанная на C. Одна из особенностей CPython заключается в том, что она предлагает чистую интеграцию с кодом, написанным на C, поэтому реализация оберток вокруг библиотек C относительно проста.

Но есть и Jython, который предлагает глубокую интеграцию с Java-кодом, Iron Python для работы с C# и .NET-кодом, PyObjc для написания кода на Python с использованием инструментальных средств ObjectiveC и даже pyjs, который предлагает скомпилировать ваш Python для JavaScript.

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

Python — это легко

У Python репутация легкого для изучения языка. Синтаксис языка предназначен для чтения. Есть много споров по этому поводу, но факты говорят сами за себя.

Значительная часть популярности Python сосредоточена в таких областях, как научные вычисления. Люди, работающие в этой области, в первую очередь являются учеными и лишь потом программистами (если вообще ими являются).

Передовые системы, такие как NumPy и SciPy, были основаны не командами инженеров-программистов, а специалистами предметной области, которые создали инструменты, необходимые для выполнения работы.

Think about that.

Если вы создаете новый проект и работаете в какой-то специализированной области, кому вы хотите доверить разбираться с тем, какие проблемы следует решать? Конечно, вы можете нанять специалистов данной предметной области и разработчиков (и в конечном итоге, они вам понадобится). Вы даже можете научить их говорить друг с другом (и в конечном итоге, вам это тоже понадобится). Но если вы только начинаете, что вам лучше всего сделать?

Я считаю, что вам необходимо выбрать язык, который дает полномочия вашим экспертам напрямую.

Выберите Python.

habr.com