Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Язык программирования Python (Питон, Пайтон)

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Открыть новую тему     Написать ответ в эту тему

Язык программирования Python (Питон, Пайтон)
 ОтветГолосаПроценты
первый раз слышу8
1.37%
слыхал, но ничего сказать про него немогу142
24.40%
изучал, но меня от него не прёт25
4.30%
изучаю и скоро на него перейду258
44.33%
скрипты пишу в основном на нём94
16.15%
пишу только на нём47
8.08%
я из комманды разработчиков Python'а8
1.37%
Гости не могут голосовать, зарегистрируйтесть!Всего Голосов: 582
quamque



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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




Исправил название /Cheery/

Всего записей: 227 | Зарегистр. 19-12-2001 | Отправлено: 19:08 19-08-2002 | Исправлено: dvs, 13:45 23-12-2013
BagaBaga

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
под катом (пример кода)
Подробнее...

Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 21:30 13-05-2013 | Исправлено: BagaBaga, 21:30 13-05-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BagaBaga
ну, вообще то, double precision это 8 байт, а float в питоне - тоже 8 байт
 
ps: эх, давно не писал на фортране (а приходилось), но у вас явная ошибка

Цитата:
 SUBROUTINE GGMRAW(ART,DOLG,TET,DOLM,TETM)  
      INTEGER ART  
      DOUBLE PRECISION ZPI,FAKTOR,CBG,CI,SI,XLM,BM,CBM,SBM,  
     *      CLM,SLM,SBG,BG,SLG,CLG,XLG,YLG  

а где описание типа передаваемых переменных? может, конечно, в используемом вами диалекте это не нужно, но DOLG и остальные явно не будут double precision и могут быть чем угодно.
я, помнится, в свое время, очень намучался с этим, так как фортрану безразличен тип, работает напрямую с памятью.
по умолчанию входные параметры будут FLOAT, но я не знаю с какой точностью вы их задаете.
 
дайте хотя бы какие то цифры для сравнения.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:39 13-05-2013 | Исправлено: Cheery, 21:50 13-05-2013
BagaBaga

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хм, воспроизвести расхождение в третьем знаке не получается (забыл, на каких координатах тестировал). Все расхождения сейчас начинаются с 4го знака, а 5-6 цифр вроде и есть "предел" точности float.

Код:
 
(коширота, долгота) (90., 270.)
       фортран -----> (79.309720,               339.427200)
       питон     -----> (79.30971309266545, 339.4272171141133)
 
(коширота, долгота) (180., 180.)
       фортран -----> (168.600000,               0.000000Е+00)
       питон     -----> (168.59999999960664, 0.0                )
 

 
Тогда похоже, что эти параметры по умолчанию в фортрановском коде float

Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 00:25 15-05-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BagaBaga

Цитата:
Тогда похоже, что эти параметры по умолчанию в фортрановском коде float

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:46 15-05-2013
BagaBaga

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Про погрешность - не забываю (просто в потерянном "удачном" примере "испугало" расхождение в третьем знаке... Найти бы теперь этот пример). А также о различных эффектах оптимизатора.

Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 18:53 15-05-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по документированию:
есть типа такого

Код:
class MyClass (object):
 
    ...
 
    def fun1 (self):
        ...
        if чего-то_здесь:
            self.var1 = 1
        else:
            self.var1 = 2
 
    def fun2 (self):
        ...
        и_здесь_используется_переменная_var1
 

где в таком варианте можно/нужно описывать для чего нужна эта переменная?

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 07:02 12-07-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
корректно ли так замерять время выполнения кода ?

Код:
 
starttime = time.clock()
замеряемый код
mytime = time.clock() - starttime
 

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 03:08 26-07-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
да, а можно и так

Код:
import timeit
start_time = timeit.default_timer()
# code you want to evaluate
elapsed = timeit.default_timer() - start_time


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:11 26-07-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть текст. Нужно заменить переносы строк (\n) на "<p>&nbsp;</p>" с такими условиями: "\n\n\n" заменяется на "<p>&nbsp;</p>", "\n\n\n\n" на "<p>&nbsp;</p><p>&nbsp;</p>",  "\n\n\n\n\n" на "<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p> ". Т.е. кол-во "<p>&nbsp;</p>" меньше на 2, чем \n.
Как такое оптимальней сделать?

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 11:07 11-08-2013 | Исправлено: unreal666, 11:16 11-08-2013
bomzhe



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666

Код:
import re
def process(data):
    return re.sub(r'\n+(?=\n\n)', lambda m: '<p>&nbsp;</p>' * len(m.group(0)), data)

Всего записей: 110 | Зарегистр. 26-10-2010 | Отправлено: 16:36 11-08-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzhe
не подходит.  
process('aaa\n\n\n\n\n') должен вывести 'aaa<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>', а выводит 'aaa<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>\n\n'.
 
Похоже надо так:

Код:
import re  
def process(data):  
    return re.sub(r'(\n+)\n\n', lambda m: '<p>&nbsp;</p>' * len(m.group(1)), data)

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 17:49 11-08-2013 | Исправлено: unreal666, 17:51 11-08-2013
bomzhe



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
И правда, невнимательно посмотрел условие. Остаётся подчистить результат от оставшихся единичных/двойных переносов ('foo\n\n\nbar\n\nspam\n42' -> 'foo<p>&nbsp;</p>bar\n\nspam\n42').

Всего записей: 110 | Зарегистр. 26-10-2010 | Отправлено: 18:46 11-08-2013 | Исправлено: bomzhe, 18:55 11-08-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как импортировать модуль/пакет с использованием import (не __import__), путь к которому содержит пробелы?

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 03:39 22-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
http://stackoverflow.com/a/9123555/1164491

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:46 22-12-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
т.е. без __import__ никак

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 03:57 22-12-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как покороче способом проверить на наличие нужного пути в sys.path и, если этот путь отсутствует, добавить его в sys.path.

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 06:01 22-12-2013
panda3

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
Ну, например:

Код:
if MyPath.upper() not in map(str.upper, sys.path):
    sys.path.append(MyPath)

Всего записей: 203 | Зарегистр. 06-02-2007 | Отправлено: 12:49 23-12-2013 | Исправлено: panda3, 12:50 23-12-2013
dvs



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
if MyPath.upper() not in map(str.upper, sys.path):
    sys.path.append(MyPath)  

 
# в unix/linux/android/macos:
sys.path = list(set(sys.path + [my_path]))

----------
Python developer                    

Всего записей: 332 | Зарегистр. 18-05-2001 | Отправлено: 13:35 23-12-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В классе есть такой метод:

Код:
 
class ИмяКласса (Какой-то объект):
    _escape_html_table = {
        ord('&'): u'&amp;',
        ord('<'): u'&lt;',
        ord('>'): u'&gt;',
        #ord('"'): u'&quot;',
        #ord("'"): u'&#39;',
    }
 
...
 
def __escape_html(self, content, params_dict):
    """Преобразовать символы &, < и/или > в ссылки-мнемоники."""
    _escape_html_table = self._escape_html_table
 
    if ESCAPE_PARAM_NAME not in params_dict:
        return content.translate(_escape_html_table)
    else:
        table = {}
        escape = params_dict[ESCAPE_PARAM_NAME]
        for char in escape:
            ord_char = ord(char)
            if ord_char in _escape_html_table:
                table[ord_char] = _escape_html_table[ord_char]  
        return content.translate(table)
 
...

 
ESCAPE_PARAM_NAME -это имя параметра, импортируемое из другого файла.
content - юникодная строка (содержимое юникодного текстового файла)
params_dict - юникодный словарь (dict), в котором может быть, а может и не быть элемент с ключом, имя которого содержится в ESCAPE_PARAM_NAME (точнее, ключ "escape").
 
Можно ли это дело организовать попроще? А то при беглом просмотре описания dict и string.translate только это смог придумать.
 
Цель: на входе функции юникодные строка и словарь. Если в словаре содержится нужный ключ и какие-либо символы в нем совпадают с ключами в словаре _escape_html_table, то, соответственно, заменить их в content ссылками мнемониками (character entity references).
 
Python 2.7

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 08:18 25-12-2013 | Исправлено: unreal666, 08:20 25-12-2013
Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А стандартный cgi.escape не пойдет?

----------
http://jenyay.net - софт, исходники и фото

Всего записей: 1773 | Зарегистр. 13-10-2001 | Отправлено: 20:25 25-12-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Компьютерный форум Ru.Board » Интернет » Web-программирование » Язык программирования Python (Питон, Пайтон)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru