Ru-Board.club
← Вернуться в раздел «Web-программирование»

» Язык программирования Python (Питон, Пайтон)

Автор: quamque
Дата сообщения: 19.08.2002 18:08
Python — интерпретируемый, интерактивный, объектно-ориентированный язык программирования высокого уровня. Поддерживает классы, модули (которые могут быть объединены в пакеты), обработку исключений, а также многопоточную обработку. Питон относится к классу языков с динамической типизацией, обеспечивает «сборку мусора» и удобные высокоуровневые структуры данных, такие как словари (хэш-таблицы), списки, кортежи. Питон обладает простым и мощным синтаксисом. Огромное количество высококачественных библиотек.

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

Скачать: http://www.python.org/download/
Подробнее: http://ru.wikipedia.org/wiki/Python



оригинальное сообщение от quamque:
Здесь в основном говорят о программировании на Perl и PHP,
Недавно я взялся за Python и нашёл, что язык не только забавен сам по себе (функциональное программирование, отступы вместо скобок), но и выгодно отличается от PHP и Perl.
По сравнению с PHP более объектно ориентирован, есть обработка исключений.
Если сравнивать с Perl, то внутренности языка глубоко запрятаны, поэтому читать код и учиться на нём писать программы намного легче.
Если что забыл - добавьте, плз.
Хотелось бы обрасти полезными ссылками и замечаниями об этом языке.



Домашняя страница - http://python.org
PyPy -- будущая реализация интерпретатора http://pypy.org/
Usenet - главный англоязычный форум - comp.lang.python - http://groups.google.com/groups?hl=ru&group=comp.lang.python
Jython -- Python для JVM http://Jython.org
Python под .Net (IronPython) -- http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython
Пакеты (= модули, расширения, библиотеки) -- http://www.python.org/pypi , https://pythonpackages.com/ , http://www.vex.net/parnassus/
Ускорители - MyPy, Numba, Nuitka, Cython, PyPy

Самые известные программы на Python
Mailman - для организации почтовых рассылок - http://www.gnu.org/software/mailman/
http://zope.org - один из самых известных проектов на Python
http://twistedmatrix.com - application-framework понимающий кучу протоколов (http, https, ssh, ftp, irc... и много прочего) и позволяющий строить на его основе в принципе любые сетевые (не только web) приложения
http://bittorrent.com -- оригинальный Битторент, кстати и сайт этот сделан на Питоне с использованием фрэймворка
Trac - Вики, Тикеты, просмотр VC репозиторий
ViewVC (изначально ViewCVS) - просмотр VC репозиторий
подробнее см. здесь

Книги и доки по Питону:
Страничка Википедии
http://www.python.ru/files/book-ods.pdf (рус)
Краткий обзор языка Python http://www.helloworld.ru/texts/comp/lang/python/python2/index.htm
Python 2.7 Quick reference на английском, но очень удобно сделан, варианты для печати/просмотра
Ветка по варезным книжкам (ebooks)
Учебный курс по языку Python Романа Сузи

Русскоязычные сайты:
Учебник по Python 2.5: http://ru.wikibooks.org/wiki/Учебник_Python_2.5
INTUIT Учебный курс "Язык программирования Python"
http://zope.net.ru/ http://zope3.ru/
http://python.ru
Python FAQ: http://zope.net.ru/Python/FAQ/
http://iso.ru/cgi-bin/main/journal.cgi - Практически в каждом номере журнала есть статьи по питону
Обучающий комплекс по языку программирования Питон: http://desk.nl/~vadim/python/
http://python.su

Форумы:
* http://python.anabar.ru/forumz/anafo.py?forumid=4
* http://forum.vingrad.ru/index.php?showforum=116
* http://python.promsoft.ru
* http://ru-python.livejournal.com
* http://python.com.ua/forum = http://python.su
* http://code.activestate.com/recipes/langs/python/ - "рецепты" решения типичных задач

Web-программирование на Python
Фрэймворки:
* Zope FAQ: http://zope.net.ru/Zope/FAQ/
* Web.py
* Django
* Pylons
* Google App Engine
* Werkzeug
* Flask
* Bottle
* Pyramid
* Django

GUI (оконные графические приложения) на Питоне
Python+GTK=pyGTK
wxPython -- самый популярный - для работы с wxWidgets
Python+QT=pyQT
pyGame
nufox = XUL + python
pySWT = python + Eclipse SWT
PyAMF = Python + Flash/Flex/ActionScript
kivy kivy.org GUI для Android-ios-win-lin в т.ч. мультитач

Редакторы и IDE - хоть для Питона практически и не нужны никакие IDE
IDLE - включён в стандартную поставку Питона
pyDev - http://pydev.sourceforge.net/ (плагин для Eclipse)
SPE - http://spe.pycs.net/
Wing IDE - http://wingware.com ($)
Boa-Constructor - http://boa-constructor.sourceforge.net/
Vim
Emacs XEmacs
UliPad - http://wiki.woodpecker.org.cn/moin/UliPad
PyScripter (под Windows) - http://pyscripter.googlecode.com
NBPython (ветка Netbeans) - http://deadlock.netbeans.org/hudson/job/python/
PyCharm - http://www.jetbrains.com/pycharm/ ($)
Komodo Edit
Автор: ivank
Дата сообщения: 19.08.2002 19:25
quamque
естно говря, новые возмоджности версии 2.2 на меня производят впечатление слегка излишних. Я уверен, что они полезны... Но... Когда ты пишешь что либо на питоне, ты не уверен что с появлением новой версии (и новых возможностей) твоя программа не станет выглядеть уродливо. Так я когда-то писал интерфейс итераторов ручкми, а в новой версии оно есть штатно.

Вот использование отступов для выделения блоков, это да, это удобно.

А вообще язык рулёзный. Правда, "настоящим функциональным программированием" там и не пахнет
Автор: scam
Дата сообщения: 19.08.2002 23:02
quamque, насколько я знаю это язык программирования максимально приближен к человеческому, наверное за такими языками будущее.

p.s. А это похоже на деградацию сложное --> простое????
Автор: ivank
Дата сообщения: 20.08.2002 10:09
scam

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

И по возможностям он превосходит и PHP и Perl месте взятые. У перла перед ним одно преимущество -- CPAN. И то количество модулей для Питона стремительно растёт.
Автор: UncoNNecteD
Дата сообщения: 20.08.2002 11:36
Не слышал что на нем можно для WEB писать. А вот приложения на нем написанные видел... что скажу - тормознутые они, сложно устанавливать (то есть надо питон ставить и к нему еще модуль графический), может конечно само приложение было кривое, но маловероятно...
Автор: ivank
Дата сообщения: 20.08.2002 13:09
UncoNNecteD

Цитата:
Не слышал что на нем можно для WEB писать
Можно на всём, что поддерживает ввод/вывод через stdin\stdout. питону и модуль соответствующий есть -- CGI.


Цитата:
тормознутые они
Это беда графичесской библиотеки Tkinter, на просто враппер к Tcl/tk. На перле не быстрее было бы, т.к. там графичесский модуль один в один работает. Допустим, если писать с использованием Win32 extensions, о работать будет неотличимо от "родных" приложений. А графику, соответственно, делать на OpenGL или Pygame.


Цитата:
сложно устанавливать (то есть надо питон ставить и к нему еще модуль графический),
Под Windows есть инсталятор со всеми стандартными модулями. Да и на любой платформе оно без проблем собирается (чистый C). Опять же для любого скриптового языка надо ставить интерпретатор, и здесь он не хуже Perl/PHP/WSH.


Цитата:
может конечно само приложение было кривое, но маловероятно...
Очень даже вероятно, кривых приложений везде много.
Автор: Fakin
Дата сообщения: 20.08.2002 13:12
UncoNNecteD, для Web можно и на паскале писать, главное сервер научить запускать приложение.
Автор: qusejodan
Дата сообщения: 20.08.2002 15:34
Не стоит расхваливать Питон, и ничем он не лучше Перла.
Ему до перла ДАЛЕКО.
И многие просто не знают возможностей перла.
Я часто встречал людей которые например не слышали даже о том что в перле есть и классы и наследование оных и всё-такое.

Перл, он любому языку "прикурить" даст.
Автор: ivank
Дата сообщения: 20.08.2002 16:40
qusejodan
А можно примеры того, что умеет перл и не умеет питон? С классами, кстати, питон ИМХО лучше справляется. В смысле фич больше. Правда там и бесполезных (на мой взгял) не мало...
Автор: qusejodan
Дата сообщения: 20.08.2002 17:02
Честно говоря очень не хочется повторять тонны флейма perl vs. python.

Сделай поиск по гуглу, и посмотри, а там уж сделай свои выводы.
Не факт, что они совпадут с моими.

Одна вещь мне откровенно нравится в перле: There is more than one way to do it.
Для питона это не верно.
Твой же кстати аргумент про CPAN - не последний. И сколько бы ни говорили про появление такого же в другом языке - не поверю.
Никто и близко к CPANy не подошел.
Автор: quamque
Дата сообщения: 20.08.2002 18:37
qusejodan

Цитата:
Одна вещь мне откровенно нравится в перле: There is more than one way to do it.
Для питона это не верно.

Ну ты сказал! Как раз обратное меня сейчас несколько смущает - уж слишком много всяких возможностей Python в себе сочетает, часто не понятно какой способ лучше, начать с того, что Python это и процедурный и функциональный и объектно ориентированный язык в одном флаконе. Чтобы не быть голословным почитай: http://www.iso.ru/cgi-bin/main/journal.pl?do_what=details&id=28

Кстати, в отличие от Перла где ОО программирование - так с боку припёку, начинающий программист на Python'е уже сразу начинает пользоваться объектами, потому что они там везде.
И вообще Питон потихоньку одолевает Перл, когда я установил у себя Red Hat 7.2 обнаружил что многие скрипты теперь написаны на Питоне
UncoNNecteD

Цитата:
Не слышал что на нем можно для WEB писать.

А я в основном слыхал о применении Питона в интернет-проектах, самый известный - Zope. Не знал, что на нём ещё графические приложения пишут.
scam

Цитата:
насколько я знаю это язык программирования максимально приближен к человеческому

Ну любой язык программирования это компромис между человеческим и машинным языком, чем выше уровень языка тем менее он универсален и наоборот, чем ниже тем труднее работать с этим языком. Но Python мне кажется самым удачным компромисом среди тех языков, которые я знаю. Если бы у меня спросили на каком языке стоит учиться программировать, я бы посоветовал Python - настолько он простой в освоении и интуитивно понятный.
Кстати, некоторые Java-программисты желающие потестить классы написанные на Java используют коммандную строку Jython, посколько это намного быстрее и легче, чем писать и компилить программу использующую Java-класс
Автор: qusejodan
Дата сообщения: 20.08.2002 18:55
quamque
не ну я сказал, а так оно и есть на самом деле.
Более того, многие люди уходили с перла на питон потому что им не нравится эта парадигма : There is more than one way to do it.

Если для тебя это не так - хороший повод еще раз открыть книжку по перлу :)

не будем флеймить.
Автор: quamque
Дата сообщения: 20.08.2002 20:49
qusejodan
Нет уж пофлеймим)
Твоя парадигма применима, в какой-то мере, и к Питону, ну что здесь спорить - открой книжку по Питону Если подумать какая польза от этой парадигмы? -можно оптимизировать алгоритмы, если хорошо знаком с возможностями языка, а если не очень знаком, то всегда можно написать функцию на Си и использовать в своих прогах, в Питоне есть такая возможность.
Автор: ivank
Дата сообщения: 20.08.2002 21:42
quamque

Цитата:
это и процедурный и функциональный и объектно ориентированный язык в одном флаконе.
Питон, как и перл, это язык с некоторми функциональными чертами. Реально ФП там и не пахнет, достаточно взглянуть на ML, Ocaml, Haskell, что бы увидеть что такое "настоящее" ФП.


Цитата:
то всегда можно написать функцию на Си и использовать в своих прогах, в Питоне есть такая возможность.
Имхо правишльнее делать наоборот -- писать базис на C(++), а всё остальное (не столь критичное по времени) на питоне.
Автор: quamque
Дата сообщения: 21.08.2002 12:02
ivank

Цитата:
Реально ФП там и не пахнет, достаточно взглянуть на ML, Ocaml, Haskell, что бы увидеть что такое "настоящее" ФП.


Зачем же ФП добавляют в некоторые процедурные языки? Не для того ли чтобы легче было переходить адептам чисто функциональных языков?
Автор: ivank
Дата сообщения: 21.08.2002 16:28
quamque
нет, для того что бы было легче писать правильные программы. Адепт ФП в жизни не перейдёт без огромной необходимости на итеративный язык.
Автор: Fakin
Дата сообщения: 21.08.2002 16:51
Расшифруйте мне как самому последнему тормозу что есть ФП. А то незнание оного не есть гуд.
Автор: scam
Дата сообщения: 21.08.2002 17:07
quamque, я видел код проги написанной на питон. он достаточно своеобразен, но если подумать то действительно один из самых легких языков, но потом будет сложно перейти, скажем, на C, хотя его возможности превосходят питон и писать на нем во многом легче, но переходить на C c питона может оказаться тяжело.
А если уж решать с чего начинать, то ничего лучше ASMа нельзя предлжить поймешь его поймешь все языки - это лучший вариант
Автор: ivank
Дата сообщения: 21.08.2002 19:04
scam
Почему эито трудно переходиь на C? Во-первых, это язык скриптов всё-таки. Во-вторых, я не вижу причин, почему на C будет сложнее писать? Подсказку не дашь?

А с ассемблера начинать нельзя ни в коем случае. Среди "ассемблерщиков" модно оптимайзить по тактам, вместо того что бы подумать как сделать всё по уму. асм это крайний случай оптимизации, и не каждому дано соптимизировать даже лучше современного компилятора.

Fakin
ФП -- функционально программирование.
Автор: quamque
Дата сообщения: 22.08.2002 10:04
scam

Цитата:
ничего лучше ASMа нельзя предлжить

Можно предложить - машина Тьюринга:D
Автор: apatit
Дата сообщения: 22.08.2002 10:26
ivank

Цитата:

Во-первых, это язык скриптов всё-таки.


Ну почему же. Сходите вот сюда, например www.wxpython.org
Автор: scam
Дата сообщения: 22.08.2002 10:37
ivank
Ну вот потому, что он язык скриптов (больше оптимизирован под скрипты) лучше и не ничинать с него а C ну и тем более C++ - это универсальные языки - лучше сначала их изучать, а потом скриптовые.
А на счет ассемблера - ну может и не стоит с него начинать, но если уж его изучишь, то другие языки пойдут как помаслу и скриптовые и универсальные.
Автор: apatit
Дата сообщения: 22.08.2002 10:44
А вот картина роста количества скриптов с hotscripts.com

ASP (2419)
C and C++ (282)
CFML (117)
Flash (156)
Java (1062)
JavaScript (1258)
PHP (4494)
Perl (4337)
Python (80)
Remote Hosts (712)
Tools & Utilities (217)
XML (110)

Для РНР она очевидна, уже перл сделали. А вот питон -
Автор: ivank
Дата сообщения: 22.08.2002 11:42
apatit
И что? Чем это от Tkinter отличается? Тем что на wxWindows основано? Всё равно большую программу ты не будешь писать на Питоне, он всё же слишком медленен. Скрипты, в моём понимании это небольшие программы автоматизирующие некоторые действия написанные на скору руку. Или прототипы полноценной программы. К слову сказать, я тоже пишу оконные приложения на питоне. Я даже 3д-шутер написал , правда тормозной, т.к. не было желания его оптимизировать.

scam
Указываю на твоё заблуждение: асм язык примитивный. На нём ты не научишься писать ни в процедурном, ни в ОО-стиле, а уж про ФП и говориьт не надо. К примеру напиши мне на Haskell хотя бы код для реализации красно-чёрных деревьев. Это десяток строчек всего-то на этом языке, но не думаю что тебе их удасться сходу написать прочитав даже введение в язык. А это примитив, над тем как он пишется даже не думают обычно адепты сего языка. Короче, это о-о-очнь другая парадигма, без чтения книжек (пусть и электронных) ты в неё не въедешь.
Автор: scam
Дата сообщения: 22.08.2002 12:29
ivank
Да, наверное ты прав, но все равно останусь при своем мнении, что Питон не подходит для того чтобы с него начинали изучать програмирование. Лучше все-таки начинать НЕ с оо языков, каким является С.
Автор: apatit
Дата сообщения: 22.08.2002 12:33

Цитата:

каким является С.


или Паскаль
Автор: qusejodan
Дата сообщения: 22.08.2002 16:50
А теперь нормальная статистика, а именно www.freshmeat.net

Ada (28 projects)
APL (4 projects)
ASP (13 projects)
Assembly (133 projects)
Awk (26 projects)
Basic (11 projects)
C (4176 projects)
C# (11 projects)
C++ (1710 projects)
Cold Fusion (10 projects)
Delphi (30 projects)
Dylan (4 projects)
Eiffel (16 projects)
Emacs-Lisp (20 projects)
Erlang (6 projects)
Euler (1 project)
Euphoria (1 project)
Forth (11 projects)
Fortran (29 projects)
Haskell (13 projects)
Java (1508 projects)
JavaScript (153 projects)
Lisp (50 projects)
Logo (0 projects)
ML (23 projects)
Modula (4 projects)
Object Pascal (6 projects)
Objective C (47 projects)
OCaml (5 projects)
Other (130 projects)
Other Scripting Engines (55 projects)
Pascal (25 projects)
Perl (2188 projects)
PHP (1365 projects)
Pike (3 projects)
PL/SQL (42 projects)
Pliant (1 project)
PROGRESS (1 project)
Prolog (6 projects)
Python (766 projects)
Rexx (6 projects)
Ruby (75 projects)
Scheme (56 projects)
Simula (1 project)
Smalltalk (15 projects)
SQL (215 projects)
Tcl (292 projects)
Unix Shell (422 projects)
Visual Basic (10 projects)
XBasic (1 project)
Zope (22 projects)

Автор: ivank
Дата сообщения: 22.08.2002 18:26
scam
C слишком низкоуровневый. Лучше с паскаля в его турбо инкарнации. Или с плюсов, но только без заморочек с ОО, а использования STL. Или с питона На нём можно прекрасно писать в процедурном стиле, при этом, опять же, несущественные мелочи (вроде хранения строк в массивах символов) опускаются.
Автор: merd
Дата сообщения: 19.09.2002 14:22
Python - eto odin iz samix legkix jazikov, osobenno dlja tex, kto v programming idet na ochup, imenno s nego ja nashinala, kogda Perl pokazalsja snachala kitaiskoi gramatoi, izuchiv Python vozmozno v ochen korotkii srok, mnogo vspomogatelnix elementov i funkzii, dlja menja python eto kak pervaja vljublennost.Ja bi novichkam tolko ego sovetovala bi + jython!
Автор: ivank
Дата сообщения: 20.09.2002 16:45
merd
Ну на счёт лёгкости можно поспорить -- там сто-о-олько фенечек... Не меньше чем в перле. Хотя основы можно изучить за очень короткий срок.

Страницы: 1234567891011

Предыдущая тема: Вопрос по HTML и MS IE Explorer6.0


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.