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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Язык программирования Python (Питон, Пайтон)
 ОтветГолосаПроценты
первый раз слышу8
1.52%
слыхал, но ничего сказать про него немогу132
25.05%
изучал, но меня от него не прёт22
4.17%
изучаю и скоро на него перейду231
43.83%
скрипты пишу в основном на нём83
15.75%
пишу только на нём44
8.35%
я из комманды разработчиков Python'а7
1.33%
Гости не могут голосовать, зарегистрируйтесть!Всего Голосов: 527
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
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
можно ли для ключевого слова import как-то указать нестандартное расширение ищущихся python-файлов?

Всего записей: 6543 | Зарегистр. 14-02-2005 | Отправлено: 17:39 07-10-2016
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Функции subprocess.Popen и подобные (os.popen и т.п.) асинхронные или нет?
А то чего-то странно. Так

Код:
popen = subprocess.Popen(['git', '-C', path, 'init',], stderr=subprocess.STDOUT)
 
print('ok')

печатается сначала "ok", потом инфа от git.
 
А так

Код:
popen = subprocess.Popen(['git', '-C', path, 'init',], stderr=subprocess.STDOUT)
 
while popen.poll() is None:
    continue
 
print('ok')

наоборот.
 
Добавлено:
OS: Win 7

Всего записей: 6543 | Зарегистр. 14-02-2005 | Отправлено: 00:33 10-10-2016 | Исправлено: unreal666, 00:33 10-10-2016
AnotherNick

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
.
обратный слэш

Всего записей: 34 | Зарегистр. 23-09-2016 | Отправлено: 04:19 01-11-2016 | Исправлено: AnotherNick, 04:29 01-11-2016
karakurt2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я пытаюсь вот этот код с Excel VBA перевести на Python.  
 

Код:
 
Sub test()
    Dim fso As New Scripting.FileSystemObject
    Dim model As New NET32COMLib.INetModel
...
    Dim well As NET32COMLib.ISingleBranchModel
    Dim tubing As NET32COMLib.TubingObj
    model.OpenModel ("E:\IAM\ROSPAN_Ach\PIP\E300_flash_BIPs\GTN.bpn")
    model.GetNameList 7, arr, num
    For i = 0 To num - 1
        name = arr(i)
        Set well = model.GetSingleBranchModel(name)
        Set tubing = well.ObjectProperties("NKT")
...
    Next
End Sub
 

 
Не получается никак преобразовать интерфейс IObjectProperties, возвращаемый из GetSingleBranchModel() в интерфейс ITubing. Оба интерфейса определены в одной библиотеке типов Net32COM. Вот мои попытки.  
 

Код:
 
#!/bin/python
# -*- coding: utf-8 -*-
 
from __future__ import with_statement
import pythoncom
import pywintypes
import win32com
import win32com.client
import win32api
import re
 
fso = win32com.client.Dispatch("Scripting.FileSystemObject")
Net32COMLib = win32com.client.gencache.EnsureModule('{095B5403-3172-11D4-A949-0080C802A6A1}', 0, 1, 0)
model = win32com.client.Dispatch("Net32COM.INetModel")
model.OpenModel(fso.GetAbsolutePathName("..\\PIP\\E300_flash_BIPs\\GTN.bpn"))
 
(arr, num) = model.GetNameList(7)
well = model.GetSingleBranchModel(arr[0])
profile = well.ObjectProperties("NKT")
unknown = profile._oleobj_.QueryInterface(pythoncom.IID_IUnknown)
# unknown = win32com.client.CastTo(disp, "Net32COM.TubingObj")
# iface = unknown.QueryInterface(pywintypes.IID('{0236DE0E-8396-4A35-A138-FA84F5F64681}'), pywintypes.IID('{BFACF471-5752-43D0-A2B0-1541994D419E}'))
iface = unknown.QueryInterface(pywintypes.IID('{BFACF471-5752-43D0-A2B0-1541994D419E}'), pywintypes.IID('{0236DE0E-8396-4A35-A138-FA84F5F64681}'))
# tubing = win32com.client.Dispatch(disp, None, Net32COMLib.NamesToIIDMap.get('ITubing'))
# tubing = win32com.client.CastTo(well.ObjectProperties("NKT")._oleobj_.QueryInterface(pythoncom.IID_IDispatch), "Net32COM.Tubing")
# tubing = win32com.client.CastTo(well.ObjectProperties("NKT")._oleobj_.QueryInterface(pythoncom.IID_IDispatch), "Net32COM.Tubing.1")
# tubing = well.ObjectProperties("NKT")._oleobj_.QueryInterface(Net32COMLib.NamesToIIDMap["ITubing"])
# tubing = win32com.client.CastTo(well.ObjectProperties("NKT"), "Net32COM.ProfileObj")
tubing = win32com.client.Dispatch(iface)
dev = tubing.GetDeviationSurvey_SI(0)
 
print(profile)
print(dev)
 
 

 
Что я делаю не правильно?

Всего записей: 722 | Зарегистр. 06-12-2003 | Отправлено: 20:09 06-01-2017
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
python 2.7.x, win 7 x64.
 
как средствами python создать симлинк на файл? Имя файла должно быть юникодное.
 
Пытался делать с помощью subprocess.Popen:
 

Код:
...
cmd = 'cmd /c "mklink "%s" "%s""' % (symlink, src)
popen = subprocess.Popen(cmd, stderr=subprocess.STDOUT)
...

 
Но cmd не принимает юникод, т.е. нужен другой способ.

Всего записей: 6543 | Зарегистр. 14-02-2005 | Отправлено: 04:46 17-02-2017
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
http://stackoverflow.com/questions/1447575/symlinks-on-windows
http://stackoverflow.com/questions/6260149/os-symlink-support-in-windows

Всего записей: 6953 | Зарегистр. 20-09-2014 | Отправлено: 21:11 27-02-2017
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Делаю для Raspberry управление одной кнопкой (Если есть примеры, с удовольствием посмотрю). При удержании больше 2 сек должна выполняться команда 1, больше 3 сек команда 2, короткое нажатие 2-3 раза кнопкой должно сбрасывать все предыдущие команды. По отдельности все работает, т.е. время нажатия кнопки и кол-во нажатий, а вот все вместе не хочет. Еще хотел чтобы по прошествии 2 или 3 сек команда выполнялась сразу, а не после отпускания кнопки.
 

Код:
 
press=0
when_pressed = time.time()
 
while True:
  input_value_in2 = GPIO.input(18)
  if input_value_in2 == 0:
    time_pressed = time.time() - when_pressed
    if 1 < time_pressed < 2:
    print (press)
    if press > 2:
      print ("reset")
      press=0
    if 3 < time_pressed < 5:
      print (Led-On)
      press=press+1
    time.sleep(.2)
 

Всего записей: 288 | Зарегистр. 19-04-2003 | Отправлено: 15:42 18-11-2017
Mavrikii

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

Цитата:
GPIO.input(18)

срабатывает постоянно пока нажата кнопка или по какому то событию?
 

Цитата:
    if 1 < time_pressed < 2:  
    print (press)  

таб где ?)
 

Цитата:
   press=press+1  

должно быть без таба - вы же нажатия считаете, а не циклы от 3 до 5 секунд?

Всего записей: 6953 | Зарегистр. 20-09-2014 | Отправлено: 22:28 18-11-2017 | Исправлено: Mavrikii, 22:28 18-11-2017
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть i (кнопка с фиксацией). Когда она отжата (i=1), срабатывает flashLED, когда нажата (i=0) выходит сообщение "off". Все работает, но раздражает если не отработан цикл flashLED (кнопка нажимается) то "off" выходит 2 раза, один раз сразу после нажатия и 2-й раз когда закончился flashLED. Можно узнать почему ?
 

Код:
 
def flashLED(speed,time):
    for x in range(0, time):
        GPIO.output(16, 1)
        sleep(speed)
        GPIO.output(16, 0)
        sleep(speed)
 
i=0
 
def Input1(channel):
    if i == 1:
    flashLED(0.5,5)
    if i == 0:
    print ("off")
 

Всего записей: 288 | Зарегистр. 19-04-2003 | Отправлено: 19:55 24-11-2017
Mavrikii

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

Цитата:
def Input1(channel):  
    if i == 1:  
    flashLED(0.5,5)  
    if i == 0:  
    print ("off")  

для чего здесь указаны if если нет блоков к ним относящихся?
 

Всего записей: 6953 | Зарегистр. 20-09-2014 | Отправлено: 21:32 24-11-2017
digital422

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

Цитата:
для чего здесь указаны if если нет блоков к ним относящихся?

if i == 1: или if i == 0:  - меняется состояние кнопки на вкл(0) или выкл (1). В работающем скрипте это  if GPIO.input(16) == 1:. if i == 1: привел просто для сокращения. Если отключить flashLED то "off" выводится один раз, как и должен.

Всего записей: 288 | Зарегистр. 19-04-2003 | Отправлено: 07:34 25-11-2017
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
вы не поняли о чем я спросил
во многих языках блоки выделяются через { }

Код:
if (условие)
{
код выполняемый
при выполнении условия
}
а этот код выполнится независимо от условия

 
у питона эти скобки заменены отступами, поэтому подобный код будет записан как

Код:
if условие:
   код выполняемый
   при выполнении условия
 
а этот код выполнится независимо от условия

 
в вашем варианте кода условия не играют никакой роли, так как аналогичны записи

Код:
if (условие) {}

 
может, конечно, я отстал от жизни, но у питона было так.

Всего записей: 6953 | Зарегистр. 20-09-2014 | Отправлено: 07:38 25-11-2017 | Исправлено: Mavrikii, 07:40 25-11-2017
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tab перед flashLED имеется (видимо скопировалось так), так что flashLED срабатывает именно по условию перед if и print ("off")  тоже имеет Tab относительно if i == 0:. Была задача чтобы при if i == 1: мигал светодиод и цикл отключался при if i == 0:, эта задача выполняется, но код, который стоит после if i == 0: (для примера просто указал print) выполняется 2 раза, вот это и хочу исправить.

Код:
 
def Input1(channel):  
     if i == 1:  
         flashLED(0.5,5)  
     if i == 0:  
         print ("off")
 

Всего записей: 288 | Зарегистр. 19-04-2003 | Отправлено: 10:28 25-11-2017
Mavrikii

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

Цитата:
вот это и хочу исправить

приведенных кусков недостаточно. раз срабатывает 2 раза, значит два раза вызывается Input1 когда i = 0. Почему это происходит (вызывается два раза или значение i меняется невовремя) - приведенный вами код не дает полной информации.

Всего записей: 6953 | Зарегистр. 20-09-2014 | Отправлено: 11:38 25-11-2017
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это и есть весь код, может вот так будет проще, так тоже работает, но с тем же повтором. Проблема в цикле while, если его отключить, Off срабатывает один раз.

Код:
 
def Input1(channel):
  if GPIO.input(button) == 1:
  while GPIO.input(button) == 1:
    for i in range(0,5):
      GPIO.output (svd1,1)
      time.sleep (0.1)
      GPIO.output (svd1,0)
      time.sleep (0.1)
  if GPIO.input(button) == 0:
    print ('Off')
GPIO.add_event_detect(button, GPIO.BOTH, callback=Input1, bouncetime=100)
 

 
Ставил на Off print по времени, получается вот такая картина:
Off     2017-11-25      17:52:04
Off     2017-11-25      17:52:02
 
2 срабатывание по времени почем-то раньше, чем первое.

Всего записей: 288 | Зарегистр. 19-04-2003 | Отправлено: 15:49 25-11-2017 | Исправлено: digital422, 15:55 25-11-2017
Mavrikii

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

Цитата:
  if GPIO.input(button) == 1:  
  while GPIO.input(button) == 1:

еще таба не хватает
 
а два раза потому, что один раз из предыдущего нажатия - после выхода из цикла с i == 1 у вас код нажатия сразу 0, поэтому срабатывает  if == 0
а второй раз потому, что сработал обработчик события
 

Код:
if i == 1
...
elif i == 0
...  

Всего записей: 6953 | Зарегистр. 20-09-2014 | Отправлено: 21:10 25-11-2017 | Исправлено: Mavrikii, 21:10 25-11-2017
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
elif i == 0 вместо if i == 0  - с ним стало как надо, благодарю!
Tab есть, опять не так вставилось.

Всего записей: 288 | Зарегистр. 19-04-2003 | Отправлено: 21:39 25-11-2017
Mavrikii

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

Цитата:
elif i == 0 вместо if i == 0

можете еще просто условие с i == 0 поставить первым вместо i == 1, тогда и по старому работать будет

Всего записей: 6953 | Зарегистр. 20-09-2014 | Отправлено: 21:42 25-11-2017 | Исправлено: Mavrikii, 21:42 25-11-2017
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу чтобы в syslog вместе с сообщением вставлялась дата (или лучше отправлять на удаленный rsyslog сервер).
 
Так работает:

Код:
localtime = time.strftime("%Y-%m-%d \t %H:%M:%S")
print (localtime)

 
и в файл дата записывается

Код:
f.write('Open +'\t' + localtime + '\n')

 
а в syslog не хочет, понимаю что не так должно быть.

Код:
os.system('logger localtime')

Всего записей: 288 | Зарегистр. 19-04-2003 | Отправлено: 21:22 04-12-2017
Maks113

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно использовать пакет logging c настроенным обработчиком SysLogHandler.
 
Почитать можно тут.
https://docs.python.org/2/library/logging.handlers.html#sysloghandler
 
Добавлено:
Например так:

Код:
 
import logging
import logging.handlers
 
logger = logging.getLogger('MyLogger')
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter(u'< %(levelname)s > [ %(asctime)s ]: %(message)s')  # Формат сообщения
 
syslog = logging.handlers.SysLogHandler(address = '/dev/log')
syslog.setLevel(logging.DEBUG)
syslog.setFormatter(formatter)
logger.addHandler(syslog)
 
logger.warning('warn message')
 

Всего записей: 10 | Зарегистр. 13-12-2012 | Отправлено: 09:29 08-12-2017 | Исправлено: Maks113, 10:01 08-12-2017
Открыть новую тему     Написать ответ в эту тему

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

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

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru