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

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

Модерирует : 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 30 31

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

Язык программирования Python (Питон, Пайтон)
 ОтветГолосаПроценты
первый раз слышу8
1.36%
слыхал, но ничего сказать про него немогу143
24.36%
изучал, но меня от него не прёт26
4.43%
изучаю и скоро на него перейду260
44.29%
скрипты пишу в основном на нём95
16.18%
пишу только на нём47
8.01%
я из комманды разработчиков Python'а8
1.36%
Гости не могут голосовать, зарегистрируйтесть!Всего Голосов: 587
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
MisterMyth

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

Всего записей: 1069 | Зарегистр. 03-01-2015 | Отправлено: 16:52 29-06-2024
Mavrikii

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

Цитата:
не понимаю вас
 

он написал, что данный пример выдает false, а не true.

Всего записей: 17047 | Зарегистр. 20-09-2014 | Отправлено: 18:08 29-06-2024
MisterMyth

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да я немного ошибся. Проверял на русский не текст внутри кавычек а строку.

Всего записей: 1069 | Зарегистр. 03-01-2015 | Отправлено: 18:28 29-06-2024
MisterMyth

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На что заменить регулярку вот тут:
 
def extract_any_text_with_quotes(line):
     
    matches = re.findall(r'"([^\"]*)"', line, re.UNICODE)
    logging.info(f'{matches}')
    return matches
 
сейчас ишет текст внутри кавычек, но нужно чтобы искало текст ВМЕСТЕ С кавычками. Но пропустит пустые кавычки.

Всего записей: 1069 | Зарегистр. 03-01-2015 | Отправлено: 14:33 30-06-2024
andr3w021

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





Спам

Всего записей: 1 | Зарегистр. 11-06-2025 | Отправлено: 15:22 11-06-2025 | Исправлено: andr3w021, 15:28 11-06-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хитро...
А что, так можно было?

Всего записей: 5682 | Зарегистр. 18-09-2018 | Отправлено: 19:42 11-06-2025
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С контроллера солнечной панели по modbus приходит значение температуры контроллера и батареи. По документации:  
High 8 bits: controller temperature, Low 8 bits: battery temperature.
Actual temperature value (b7:Sign bit b0-b6 Temperature value).
Нашел код:

Код:
 
regs_s=[136]
 
# Account for negative temperatures.
def getRealTemp(temp):
    if(temp/int(128) > 1):
        return -(temp%128)
    return temp
 
tempContr = str(getRealTemp(int(hex(regs_s[0])[2:-2], 16)))
tempBatExt = str(getRealTemp(int(hex(regs_s[0])[-2:], 16)))
print(tempContr)
print(tempBatExt)
 

Скрипт работал, но сегодня потеплело и пришло значение 136. На нем скрипт выдает ошибку:

Код:
 
<function getRealTemp at 0x7f6ca1823100>
    tempContr = str(getRealTemp(int(hex(regs_s[0])[2:-2], 16)))
                               ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 16: ''
 

 
Подскажите, что надо добавить для исправления ? Ошибка в tempContr, если ее закомментировать, tempBatExt выдает -8. Сейчас пришло 33155, результат: -1, -8, ошибки нет.

Всего записей: 400 | Зарегистр. 19-04-2003 | Отправлено: 20:57 14-02-2026 | Исправлено: digital422, 21:16 14-02-2026
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
а почему не работать напрямую с битами, зачем так сложно?

Код:
regs_s = [ 136 ]
 
def parse_temperatures(temp):
    b_temp = temp & 0xFF
    c_temp = temp >> 8
 
    def sign(byte):
        if byte & 0x80:
            return - (byte & 0x7F)
        else:
            return byte & 0x7F
 
    return sign(c_temp), sign(b_temp)
 
c_temp, b_temp = parse_temperatures(regs_s[0])
 
print(f"Controller: {c_temp}°C")
print(f"Battery: {b_temp}°C")

 
зачем regs_s делать массивом?

Всего записей: 17047 | Зарегистр. 20-09-2014 | Отправлено: 21:53 14-02-2026 | Исправлено: Mavrikii, 21:57 14-02-2026
digital422

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

Цитата:
зачем regs_s делать массивом?  

Ответ на запрос регистров modbus:  
regs_s = s.read_holding_registers(256,32)
[12, 74, 127, 0, 0, 136]
 

Всего записей: 400 | Зарегистр. 19-04-2003 | Отправлено: 21:56 14-02-2026 | Исправлено: digital422, 22:03 14-02-2026
Mavrikii

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

Цитата:
[136]
Controller: 0°C
Battery: -8°C
 
[33155]
Controller: -1°C
Battery: -3°C

ну, это понятно. и?
 

Цитата:
Controller - температура по 2-м значениям равна 0, так должно быть

если верхний байт = 0 (полное число меньше 256), да.

Всего записей: 17047 | Зарегистр. 20-09-2014 | Отправлено: 22:02 14-02-2026 | Исправлено: Mavrikii, 22:04 14-02-2026
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Controller - температура по 2-м значениям равна 0, так должно быть ?
[130]
Controller: 0°C
Battery: -2°C
 
[136]
Controller: 0°C
Battery: -8°C
 
[33155]
Controller: -1°C
Battery: -3°C

Всего записей: 400 | Зарегистр. 19-04-2003 | Отправлено: 22:04 14-02-2026
Mavrikii

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

Цитата:
Controller - температура по 2-м значениям равна 0, так должно быть ?

я ответил выше

Цитата:
если верхний байт = 0 (полное число меньше 256), да.

от 0 до 255 у вас заполняются только нижние 8 бит, верхние равны 0, поэтому и значение температуры контроллера будет 0
 
а вот 256 уже будет 00000001 00000000, то есть температура батареи 0, температура контроллера 1
33155 будет уже 10000001 10000011, то есть контроллер -0000001 или -1 градус, а батарея -0000011 или -3 градуса

Всего записей: 17047 | Зарегистр. 20-09-2014 | Отправлено: 22:06 14-02-2026 | Исправлено: Mavrikii, 22:13 14-02-2026
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Посмотрел график температуры, в течении дня она поднималась до +5, значит скрипт данные принимал. Можно предположить, что значения с контроллера 130 и 136 ошибочные, должно быть 5 знаков. Подскажите, как сделать проверку на кол-во символов?

Всего записей: 400 | Зарегистр. 19-04-2003 | Отправлено: 08:10 15-02-2026
Mavrikii

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

Цитата:
Подскажите, как сделать проверку на кол-во символов?

код написан правильно, вы оцениваете субъективные ощущения.
 

Цитата:
Можно предположить, что значения с контроллера 130 и 136 ошибочные

не нужно предполагать. у 130 и 136 верхние 8 бит - нули.
130 = 0000000010000010
136 = 0000000010001000
 
простая проверка
https://tsi.tyconsystems.com/doc/UserManuals/MODBUS%20PROTOCOL%203.7.pdf

Цитата:
Analytic: 1B19H represent the temperature of the controller is 1BH (27 &#8451;), the surface temperature of the battery for 19H(25 &#8451;)

1B19 это 6937, подставляем в код, получаем

Цитата:
Controller: 27°C
Battery: 25°C

 
даже если использовать ваш код, ошибка лишь потому, что 136 это 0088 в hex, но питон записывает это не как 0x0088, а как 0x88
если исправить эту проблему, результат будет тем же!
 
но если не хочется использовать более красивый код, то

Код:
padded = "0x{:04x}".format(regs_s[0])
tempContr = getRealTemp(int(padded[2:-2], 16))
tempBatExt = getRealTemp(int(padded[-2:], 16))

 
str тут не нужен, print и так выведет значение.

Всего записей: 17047 | Зарегистр. 20-09-2014 | Отправлено: 08:22 15-02-2026 | Исправлено: Mavrikii, 08:48 15-02-2026
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может не принимать 3-х значные значения, если эта ошибка исходит из контроллера?
 

Всего записей: 400 | Зарегистр. 19-04-2003 | Отправлено: 08:56 15-02-2026 | Исправлено: digital422, 14:59 15-02-2026
Mavrikii

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

Цитата:
Может не принимать 3-х значные значения

какие трехзначные значения? я написал вам как получить hex в желаемом вами формате.

Всего записей: 17047 | Зарегистр. 20-09-2014 | Отправлено: 08:59 15-02-2026
digital422

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

Цитата:
какие трехзначные значения?  

130 и 136. Или это был реальное значение 0 гр.?

Всего записей: 400 | Зарегистр. 19-04-2003 | Отправлено: 09:04 15-02-2026
Mavrikii

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

Цитата:
130 и 136. Или это был реальное значение 0 гр

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

Всего записей: 17047 | Зарегистр. 20-09-2014 | Отправлено: 09:05 15-02-2026
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Заменил код на первый предложенный вариант с битами.

Всего записей: 400 | Зарегистр. 19-04-2003 | Отправлено: 15:04 15-02-2026 | Исправлено: digital422, 21:30 15-02-2026
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Новый вопрос. Приходят данные с датчиков, для каждого создается свой if, что неправильно и неудобно. Как можно сократить код ?

Код:
 
temp1 = regs_c[0]
temp2 = regs_c[1]
tempX = regs_c[X]
 
t1 = int(float(temp1))
t2 = int(float(temp2))
tX = int(float(tempX))
 
if (t1 & 0x8000):
    s16t1 = -(((~t1) & 0xFFFF) + 1)
else:
     s16t1 = t1
 
if (t2 & 0x8000):
    s16t2 = -(((~t2) & 0xFFFF) + 1)
else:
    s16t2 = t2
 
 
print(s16t1)
print(s16t2)
...
print(s16X)
 

Всего записей: 400 | Зарегистр. 19-04-2003 | Отправлено: 17:48 17-02-2026
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 30 31

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


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

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

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru