| ||||||||
КАТАЛОГ ТОВАРОВ Срок доставки товара в течении 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.
Зачем нужен ПитонЕсть английский язык. На нём общаются люди. А ещё – на немецком, филиппинском, испанском, греческом и прорве других. А есть Питон (голос зануды про правильное название). Это язык, на котором человек общается с компьютером. С компьютером можно общаться на куче языков: Си, Паскаль, Хаскель, Го, Свифт, Руби, ПХП, Бейсик, Эрланг, Эр и много других. Мы тут будем учить именно Питон. Начнём с короткого обзора того, чем он отличается от остальных языков. Делать ничего не надо: прочитал, запомнил пару пунктов и всё, можно хвастаться всем, что ты в теме (не надо так). ЛаконичностьУ Питона такое сообщество, что оно не приветствует разброда в использовании языка. Стандарт написания кода – это часть языка. Философия написания кода – тоже часть языка. Поэтому два хороших программиста напишут очень похожий код: не надо тратить время на "блин, а что он тут имел в виду?...". У Питона такой синтаксис, что он помогает писать код очень коротко. Нет лишних скобок, длинных ключевых слов, сложных трюков и всякого такого. Описать логику, перевести на английский, разбавить отступами и синтаксисом – всё, программа готова. У Питона такая стандартная библиотека, что она помогает выполнять кучу рутинных операций. Она поможет отправить емейл, закодировать строку, поднять веб-сервер, узнать время, удалить файл, посчитать дисперсию, заархивировать файл, вытащить данные из базы данных и ещё прорву всего всего парой строк. У Питона такое количество сторонних модулей, что можно сэкономить тысячи человеко-часов работы. Нужно написать сайт? Научить нейронную сеть разгадывать капчу? Скачать аудио из "Вконтакте"? Узнавать людей на фотографиях? Смоделировать полёт ракеты? Написать бота? Для всего этого есть готовые модули, их надо только установить и воспользоваться. Всё это делает процесс написания кода очень быстрым. Крутая документацияПопробуйте загуглить [python function], [python parse json] или, например [python create process]. В первых результатах будет ссылка на https://docs.python.org – сайт официальной документации. Это потому что документация очень подробная: в ней есть материалы для новичков, доки к каждому модулю, рекомендации по использованию, подводные камни и дальнейшее чтение. И это всё – для каждой версии языка. Такой удобной и подробной документации нет ни у кого. А ещё есть http://stackoverflow.com/ – сайт, на котором одни программисты отвечают другим программистам на вопросы о программировании. За время его существования там были заданы все возможные вопросы. Серьёзно: любой вопрос в духе "как это сделать на Питоне" или "почему этот код не работает" уже был задан, просмотрен и отвечен. Всё это делает процесс изучения и написания кода быстрым: вся нужная информация находится на расстоянии одного удачного поискового запроса. Какого из этих вопросов нет в официальных FAQ официальной документации?
Строгая динамическая типизацияДинамическая типизация – значит, в одной и той же переменной в разное время могут храниться значения разных типов. Сейчас – число, потом – строка, и всё – в одной переменной. Во многих языках так нельзя: создал, мол, целочисленную переменную, вот и храни в ней целые числа. Это удобно для компьютера, но не всегда удобно для программиста. Строгая типизация – значит, нельзя просто так производить действия с объектами разных типов. Например, строку с числом сложить не получится: сначала надо превратить строку в число, а только потом – сложить. Сам Питон такое преобразование делать не будет. Может показаться, что это неудобно, но на самом деле это защищает от прорвы ошибок. Чтобы понять о чём речь, достаточно посмотреть на JavaScript, язык со слабой типизацией: Автоматическое управление памятьюУправление памятью – это когда для каждой кучки данных в программе нужно руками выделить место в оперативной памяти. Следить, чтобы данные не вышли за пределы этого места. Не забыть освободить это место после того, как данные не нужны. В общем, адский геморрой. В Питоне об этом думать не надо: язык программирования всё сделает за программиста. Правда, сделает неидеально: о том, как Питон работает с памятью, надо знать. И ещё много всякогоПомимо перечисленного, Питон знаменит много чем ещё: отступами, интроспекцией, дзеном, портируемостью, GIL-ом, названием. Основы языка программирования 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 Вы можете присваивать переменным функции и использовать их соответственно. СтрокиСтроки в Python обособляются кавычками двойными «"» или одинарными «'». Внутри двойных ковычек могут присутствовать одинарные или наоборот. К примеру строка «Он сказал 'привет'!» будет выведена на экран как «Он сказал 'привет'!». Если нужно использовать строку из несколько строчек, то эту строку надо начинать и заканчивать тремя двойными кавычками «"""». Вы можете подставить в шаблон строки элементы из кортежа или словаря. Знак процента «%» между строкой и кортежем, заменяет в строке символы «%s» на элемент кортежа. Словари позволяют вставлять в строку элемент под заданным индексом. Для этого надо использовать в строке конструкцию «%(индекс)s». В этом случае вместо «%(индекс)s» будет подставлено значение словаря под заданным индексом. ОператорыОператоры while, if, for составляют операторы перемещения. Здесь нет аналога оператора select, так что придется обходиться if. В операторе for происходит сравнение переменной и списка. Чтобы получить список цифр до числа <number> — используйте функцию range(<number>). Вот пример использования операторов ФункцииДля объявления функции служит ключевое слово «def». Аргументы функции задаются в скобках после названия функции. Можно задавать необязательные аргументы, присваивая им значение по умолчанию. Функции могут возвращать кортежи, в таком случае надо писать возвращаемые значения через запятую. Ключевое слово «lambda» служит для объявления элементарных функций . КлассыЯзык Python ограничен в множественном наследовании в классах. Внутренние переменные и внутренние методы классов начинаются с двух знаков нижнего подчеркивания «__» (например «__myprivatevar»). Мы можем также присвоить значение переменной класса извне. Пример: ИсключенияИсключения в 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]Особенности
ЭпилогРазумеется в этой статье не описываются все возможности 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 существует огромное количество библиотек, облегчающих жизнь ученому. Например:
ОбучениеОчень часто в качестве первого языка программирования советуют именно Python. У некоторых российских школ есть успешный опыт обучения школьников программированию на языке Python. Кстати, Гвидо ван Россум находился под впечатлением от языка ABC, когда писал Python. А язык ABC предназначался для обучения и прототипирования.Критика языка PythonPython один из самых медленных языков программированияВ сети Интеренет можно найти много различных тестов скорости программ, написанных на разных языках программирования. 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 softwarewww.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 существует огромное количество библиотек, облегчающих жизнь ученому. Например:
ОбучениеОчень часто в качестве первого языка программирования советуют именно Python. У некоторых российских школ есть успешный опыт обучения школьников программированию на языке Python. Кстати, Гвидо ван Россум находился под впечатлением от языка ABC, когда писал Python. А язык ABC предназначался для обучения и прототипирования.Критика языка PythonPython один из самых медленных языков программированияВ сети Интеренет можно найти много различных тестов скорости программ, написанных на разных языках программирования. 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 softwarewww.mvoronin.pro 5 причин, по которым Python достаточно мощный для 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 |
|
||||||
© All rights reserved | Карта сайта
|