Пыха всегда с тобой

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 24 Май, 2012, 08:33:42

Страниц: [1] 2 3 ... 7
Печать
Автор Тема: Введение в Python  (Прочитано 5969 раз)
0 Пользователей и 1 Гость смотрят эту тему.
adw0rd    ↓ 
23 Август, 2009, 12:43:43
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67


 
Оригинал статьи можно посмотреть у меня в блоге http://adw0rd.ru/2009/python-introduction/

Введение

Язык Python был изначально оптимизирован для достижения высокой скорости разработки, у него простой и интуитивно-понятный синтаксис (как по мне, так очень логичные конструкции, в следующих статьях я покажу это на конкретных примерах), динамическая типизация, отсутствие этапа компиляции (у Python динамическая компиляция) и встроенные инструментальные средства позволяют разработчикам создавать программы за более короткое время, чем при использовании других инструментов.
 
Он обладает такими возможностями, как модульность и объектно-ориентированное программирование, однако не обязывает использовать только ООП, вы также можете использовать процедурный подход.
 
Его объектная модель поддерживает такие понятия, как полиморфизм, перегрузка операторов и множественное наследование, однако, учитывая простоту синтаксиса и типизации Python, ООП не вызывает сложностей в применении. При наличии соответствующего связующего программного кода программы на языке Python могут использовать механизм наследования от классов реализованных на C++, Java и C#.

Основные факторы и преимущества этого языка

Многие компании во всем мире используют Python для разнообразных проектов, приведу краткий список этих компаний: NASA (научные вычисления), CERN, STSCI (Институт космического телескопа), NSA (шифрование и анализ разведданных), Apple, Google (в том числе и в поисковой системе), Яндекс, YouTube, BitTorrent (клиент peer-to-peer), Intel, Cisco, HP, Seagate, Nokia, Qualcomm, IBM, DreamWorks, Pixar (для анимационных фильмов) и многие другие организации во всем мире.

Качество программного обеспечения

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

Высокая скорость разработки

В сравнении с другими компилирующими языками программирования, такими как C, C++ и Java, Python значительно повышает производительность труда разработчика, так как эквивалентный код имеет в три и более раза меньший объем. Кроме того, программный код на языке Python запускается сразу же, минуя этапы компиляции и связывания.

Переносимость программ

Стандартная реализация языка Python написана на переносимом ANSI C, благодоря чему он компилируется и работает практически на всех основных платформах. Программы на языке Python могут выполняться на широком спектре устройств, начиная от наладонных компьютеров (PDA) и заканчивая суперкомпьютерами.
 
Большая часть программного кода на языке Python выполняется без изменений на любой поддерживаемой платформе:
 
* MS Windows и DOS;
* Mac OS и Mac OS X;
* FreeBSD, Linux, Solaris;
* BeOS, QNX, OS/2, VMS и VxWorks;
* PalmOS и PocketPC;
* Symbian и Windows Mobile;
* iPod и игровые консоли;
* и многие другие...
 

Более того, он имеет массу возможностей по созданию переносимых графических интерфейсов, программ доступа к базам данных, веб-приложений и т.д.

Поддержка библиотек

Python имеет большое число стандартных библиотек, которые вы можете использовать в своей программе, например такие как "библиотека для работы с регулярными выражениями", "библиотека для работы с сетью", так же вы можете написать свои библиотеки и использовать их на ряду со стандартными.
 
К числу сторонних библиотек можно отнести:
 
* NumPy - альтернатива Mathlab;
* PyGame - разработка игр и анимации;
* PIL - обработка графических изображений;
* PyRo - управление роботом;
* NLTK - анализировать фразы на естественном языке;
* библиотеки для работы с последовательным портом и т.д.

Интеграция компонентов

На сегодняшний день Python имеет возможность вызывать функции из библиотек на языке C/C++, сам вызываться из программ, написанных на языках C/C++, интегрироваться с Java-компонентами, взаимодействовать с другими платформами, как SOAP, XML-RPC, COBRA и т.д.
 
Возможность Python расширяться и встраиваться в системы на языках C и C++ делает его удобным и гибким языком для описания поведения других систем и компонентов. Прикладной интерфейс C API в Python позволяет программа на языке C вызывать и быть вызываемыми из программ на языке Python.
 
Такие инструменты, как SWIG и SIP, автоматически генерирующие программный код, могут автоматизировать действия по связыванию скомпилированных компонентов в Python для последующего использования их в сценариях.
 
А такие огромные платформы, как поддержка COM в Windows, Jython - реализация Python на языке Java, IronPython - реализация на базе .NET, представляют альтернативные возможности организации взаимодействий с компонентами. Например в Windows, программы на Python могут управлять такими приложениями, как Word или Excel.

Качество и поддержка ПО

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

Инструкция
Python
import this
активизует пасхальное яйцо, которое отображает некоторые принципы проектирования, лежащие в основе языка.

Давайте вспомним язык Perl, где каждый программист сочинял свой путь решения, после чего такой код было сложно понять другим программистам (в большинстве случаев и самому разработчику этого кода), а в нынешнее время самое главное это поддержка кода, а не быстрое его написание!

Что можно делать с помощью Python?

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

Системное программирование

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

Графический интерфейс

В состав Python входит стандартный ОО интерфейс к Tk GUI API, который называется Tkinter, позволяющий реализовывать переносимый графический интерфейс с внешним видом присущим операционной системе. Свободно распространяемое расширение PMW содержит дополнительные визуальные компоненты для набора Tkinter.
 
Кроме того, существует прикладной интерфейс wxPython GUI API, основанный на библиотеке C++, который предлагает альтернативный набор инструментов. Инструменты PythonCard и Dabo, построены на основе wxPython и Tkinter. При выборе соответствующей библиотеки вы сможете использовать другие инструменты для построения графических интерфейсов, например: Qt, GTK, MFC и Swing.

Веб-сценарии

Python поставляется со стандартными интернет-модулями, которые позволяют программам выполнять разнообразные сетевые операции. Сценарии могут производить взаимодействие через сокеты, извлекать данные полученные из html-форм; передавать файлы по протоколу FTP; обрабатывать файлы XML; передавать, принимать, создавать и производить разбор писем электронной почтой; производить взаимодействия по протоколам XML-RPC, SOAP, Telnet и т.д.
 
С помощью пакета mod_python для Apache можно запускать сценарии на языке Python, также он поддерживает шаблоны механизма Python Server Pages.
 
Система Jython обеспечивает бесшовную интеграцию Python/Java и поддерживает серверные апплеты, которые выполняются на стороне клиента.
 
Помимо всего этого для Python существуют полноценные пакеты веб-разработки, такие как Django, Zope, TurboGears, Pylons и WebWare, предназначенные для быстрого создания полнофункциональных высококачественных веб-сайтов.

Приложения баз данных

В Python имеется поддержка Sybase, Oracle, ODBC, MySQL, PostgreSQL, Informix, SQLite и многие другие. Также существует "переносимый прикладной программный интерфейс баз данных", предназначенный для доступа к БД SQL из сценариев Python, который унифицирует доступ к различным базам данных, что-то на подобие PDO для PHP.
 
Стандартный модуль Pickle реализует простую систему хранения объектов, позволяющий программам сохранять и восстанавливать объекты Python в файлах или в специализированных для этого объектах. Также можно использовать систему ZODB, которая является полостью ОО базой данных. Существует и еще один инструмент под названием SQLObject, который отображает реляционные таблицы в модель классов языка Python.

Python мощный

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

Динамическая типизация

В Python нет необходимости объявлять явно типы объектов, он сам следит за ними.

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

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

Модульное программирование

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

Встроенные типы объектов

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

Встроенные инструменты

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

Библиотеки утилит

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

Утилиты сторонних разработчиков

Так как Python открытый, то для него делают очень много сторонних библиотек, которые решить внутренними средствами не возможно. В сети можно найти свободную реализацию поддержки COM, средств для работы с изображениями, распределенных объектов COBRA, XML, механизмов доступа к БД и многое другое.
 
Несмотря на широкие возможности, Python имеет чрезвычайно простой синтаксис и архитектуру. В результате мы имеем мощный инструмент программирования, обладающий простотой и удобством, присущим языкам сценариев.

Python свободный

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

Python назван в честь Монти Пайтона (Monty Python)

Несмотря на то что на эмблеме Python изображена рептилия, правда в том, что создатель Python, Гвидо ван Россум, назвал свое детище в честь комедийного сериала "Летающий цирк Монти Пайтона", который транслировался по каналу BBC.
 
Он большой поклонник этого сериала, как и многие программисты со всего мира! В связи с этим, традиционные имена переменных "foo" и "bar" часто заменены на "spam" и "egg". Также, конференции по языку Python обычно имеют именование "Испанская инквизиция".

Какие преимущества у Python по сравнению с другим языком?

* Python имеет более широкие возможности, чем Tcl. Язык Python поддерживает "программирование в целом", что делает его применимым для разработки крупных систем.
 
* Python имеет более четкий синтаксис и более простую архитектуру, чем Perl, что делает код более удобочитаемым и простым в сопровождении.
 
* Python проще и удобнее, чем Java. Python - язык сценариев, а Java унаследовала сложный синтаксис от таких языков программирования, как C++, например.
 
* Python проще и удобнее, чем C++, но не редко он не конкурировать с C++, поскольку будучи языком сценариев, Python предназначен для другого круга задач.
 
* Python более зрелый и имеет более ясный синтаксис, чем Ruby. В отличии от Ruby и Java, ОО стиль программирования не является обязательным в Python - он не вынуждает использовать ООП в проектах, где этот стиль неприменим.
 
* Python обладает динамическими характеристиками таких языков, как SmallTalk и Lisp, но имеет более простой и традиционный синтаксис.

Резюме

Вот мы и закончили с введением в этот замечательный язык, однако теоретическая часть не окончена, в следующей статье расскажу про то как работает Python и PVM, также про альтернативные интерпретаторы на Java и .NET и для чего они нужны, и еще о многом другом.
« Последнее редактирование: 23 Август, 2009, 12:43:43 от adw0rd » Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
md5    ↓ 
20 Август, 2009, 03:01:39 , спустя
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10494
Сила слова: 1.19

ебать меня в глаза
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
adw0rd    ↓ 
20 Август, 2009, 03:06:19 , спустя 4 минуты 40 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67


ебать меня в глаза
http://pyha.ru/forum/topic/3209.msg65744#msg65744
Спустя 2 минуты 55 секунд добавил
Кароче убрал size=14 и size=11, list тоже убрал. Однако читать всеравно невозможно... рекомендую читать с блога :)
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Frozzeg    ↓ 
20 Август, 2009, 03:23:12 , спустя 16 минут 53 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5497
Сила слова: 1.67

мне кажется полноценные 3D игры на питоне не сделаешь
Записан

Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор.
Отложить на завтра — значит впасть в рекурсию. © Frozzeg
phpdude    ↓ 
20 Август, 2009, 03:40:10 , спустя 16 минут 58 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66


мне кажется полноценные 3D игры на питоне не сделаешь
не поверишь, делают
Спустя 29 секунд добавил
питон прелестная вещь... а минусы питона почему не называешь?))
такие как перезапуск веб сервера чтобы пересобрать egg кеш?
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
20 Август, 2009, 03:45:08 , спустя 4 минуты 58 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

такие как перезапуск веб сервера чтобы пересобрать egg кеш?
о веб-разработках будет позже :)
 
ну еще минус - он медленнее чем C/C++, но и это решается, расскажу в следующих статьях
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Frozzeg    ↓ 
20 Август, 2009, 03:47:37 , спустя 2 минуты 29 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5497
Сила слова: 1.67



мне кажется полноценные 3D игры на питоне не сделаешь
не поверишь, делают
игры разные бывают, я имел ввиду такие как FarCry например
 

такие как перезапуск веб сервера чтобы пересобрать egg кеш?
о веб-разработках будет позже :)
 
ну еще минус - он медленнее чем C/C++, но и это решается, расскажу в следующих статьях
он даже медленнее чем C#
Записан

Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор.
Отложить на завтра — значит впасть в рекурсию. © Frozzeg
adw0rd    ↓ 
20 Август, 2009, 03:48:48 , спустя 1 минуту 11 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

он даже медленнее чем C#
пруфлинк
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Frozzeg    ↓ 
20 Август, 2009, 03:49:49 , спустя 1 минуту 1 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5497
Сила слова: 1.67

http://www.rsdn.ru/forum/philosophy/1186019.flat.aspx
Записан

Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор.
Отложить на завтра — значит впасть в рекурсию. © Frozzeg
adw0rd    ↓ 
20 Август, 2009, 04:05:13 , спустя 15 минут 24 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67


http://www.rsdn.ru/forum/philosophy/1186019.flat.aspx
устал читать, выжимку можешь сделать с фактами?
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
mario    ↓ 
20 Август, 2009, 04:09:07 , спустя 3 минуты 54 секунды
НЕ ХУЕТА! ХУЕТА!

wazzup
Группа: Джедаи

Карма: 67
Сообщений: 6162
Сила слова: 1.09

а можно пример игр на питоне? очень заинтересовал язык... :)
Записан

с ув. mario.
Контакты
Frozzeg    ↓ 
20 Август, 2009, 04:09:49 , спустя 42 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5497
Сила слова: 1.67

4)C# исполняется быстрее.
 
Vlad2> Не... не быстрее... а на много быстрее. Статическая типизация и компиляция рулят.

а фактов нет
 

надо будет на досуге провести свой личный тест...
 
Записан

Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор.
Отложить на завтра — значит впасть в рекурсию. © Frozzeg
adw0rd    ↓ 
20 Август, 2009, 04:12:39 , спустя 2 минуты 50 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Frozzeg, я просто не работал с шарпом, и не в курсе был какая у него типизация и т.д., поэтому не включил его в список по аналогии с C/C++
Спустя 1 минуту 23 секунды добавил

а можно пример игр на питоне? очень заинтересовал язык... :)
я как-то давно играл на PDA сонерике, на нем еще и на C++ можно было писать
 
http://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_Python
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Frozzeg    ↓ 
20 Август, 2009, 04:16:22 , спустя 3 минуты 43 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5497
Сила слова: 1.67


а можно пример игр на питоне?
лично я одну чепуху пока находил...
Записан

Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор.
Отложить на завтра — значит впасть в рекурсию. © Frozzeg
rider-sx    ↓ 
20 Август, 2009, 04:17:20 , спустя 58 секунд
НЕ ХУЕТА! ХУЕТА!

drmmmmmm
Группа: Адекваты

Карма: 32
Сообщений: 2718
Сила слова: 1.18

adw0rd, плюсы то все просто замечательные :) А минусов нет, да? ;)
Записан

Страниц: [1] 2 3 ... 7
Печать
 

Перейти в: