Результаты поиска
Какие арифметические действия есть в Python
Объясните на примере.
415   1   10:57, 21st July, 2020
XML обработка в Python
Я собираюсь построить часть проекта, который должен будет построить и разместить документ XML в веб-сервисе, и я хотел бы сделать это в Python, чтобы расширить свои навыки в этом.
К сожалению, хотя я довольно хорошо знаю модель XML в .NET, я не уверен, каковы плюсы и минусы моделей XML в Python.
У кого-нибудь есть опыт выполнения обработки XML в Python? С чего бы вы посоветовали мне начать? Файлы XML, которые я буду создавать, будут довольно простыми.
Как я могу найти полный путь к шрифту из его отображаемого имени на Mac?
Я использую Photoshop javascript API, чтобы найти шрифты в данном PSD.
Учитывая имя шрифта, возвращаемое API, я хочу найти фактический физический файл шрифта, которому соответствует имя шрифта на диске.
Это все происходит в программе python, работающей на OSX, поэтому я думаю, что ищу один из:
- Некоторые Photoshop javascript
- Функция Python
- OSX API, что я могу позвонить из python
Получить предварительный просмотр JPEG из PDF на Windows?
У меня есть кроссплатформенное приложение (Python), которое должно генерировать предварительный просмотр JPEG первой страницы PDF.
На Макинтоше я мечу икру глотками . Есть ли что-то столь же простое, что я могу сделать на Windows?
Система непрерывной интеграции для кодовой базы Python
Я начинаю работать над хобби-проектом с кодовой базой Python, и я хотел бы создать некоторую форму непрерывной интеграции (т. е. запуск батареи тест-кейсов каждый раз, когда производится регистрация и отправка электронных писем nag ответственным лицам, когда тесты терпят неудачу), подобную CruiseControl или TeamCity .
Я понимаю , что могу сделать это с помощью крючков в большинстве VCSes, но для этого требуется, чтобы тесты выполнялись на той же машине, что и сервер управления версиями, что не так элегантно, как хотелось бы. Есть ли у кого-нибудь предложения по небольшой, удобной для пользователя системе непрерывной интеграции с открытым исходным кодом, подходящей для кодовой базы Python ?
cx_Oracle: Как выполнить итерацию по результирующему набору?
Существует несколько способов перебора результирующего набора. Каков компромисс каждого из них?
Использование 'in' для сопоставления атрибута объектов Python в массиве
Я не помню, спал я или нет, но я, кажется, помню, что была функция, которая позволяла что-то вроде,
foo in iter_attr(array of python objects, attribute name)
Я просмотрел документы, но такие вещи не подпадают ни под какие очевидные заголовки списка
Представления классов в Django
Django вид указывает на функцию, которая может быть проблемой, если вы хотите изменить только немного функциональности. Да, я мог бы иметь миллион аргументов ключевых слов и даже больше операторов if в функции, но я больше думал об объектно-ориентированном подходе.
Например, у меня есть страница, на которой отображается пользователь. Эта страница очень похожа на страницу, которая отображает группу, но она все еще не настолько похожа, чтобы просто использовать другую модель данных. Группа также имеет членов и т. д...
Одним из способов было бы указать представления на методы класса, а затем расширить этот класс. Пробовал ли кто-нибудь этот подход или у него есть другие идеи?
Python и MySQL
Я могу заставить Python работать с Postgresql, но я не могу заставить его работать с MySQL. Основная проблема заключается в том, что на общей учетной записи хостинга у меня нет возможности устанавливать такие вещи, как Django или PySQL, я обычно не могу установить их на свой компьютер, поэтому, возможно, это хорошо, что я не могу установить на хосте.
Я нашел bpgsql действительно хорошим, потому что он не требует установки, это один файл, который я могу посмотреть, прочитать, а затем вызвать функции. Кто-нибудь знает что-то подобное для MySQL?
Как я могу использовать Python itertools.groupby()?
Я не смог найти понятного объяснения того, как на самом деле использовать функцию Python itertools.groupby() . Я пытаюсь сделать вот что:
- Возьмите список-в этом случае дочерние элементы объективированного элемента
lxml - Разделите его на группы по некоторым критериям
- Затем позже повторите каждую из этих групп отдельно.
Я ознакомился с документацией и примерами , но мне было трудно применить их за пределами простого списка цифр.
Итак, как я могу использовать itertools.groupby() ? Есть ли другая техника, которую я должен использовать? Указатели на хорошее чтение "prerequisite" также будут оценены.
Добавление метода к существующему экземпляру объекта
Я читал, что можно добавить метод к существующему объекту (т. е. не в определении класса) в Python.
Я понимаю, что это не всегда хорошо делать. Но как это сделать?
Какова наиболее эффективная графовая структура данных в Python?
Мне нужно уметь манипулировать большим (10^7 узлов) графом в python. Данные, соответствующие каждому узлу / ребру, минимальны, скажем, небольшое количество строк. Каков наиболее эффективный , с точки зрения памяти и скорости , способ сделать это?
Дикт диктов более гибок и прост в реализации, но я интуитивно ожидаю, что список списков будет быстрее. Опция списка также потребует, чтобы я хранил данные отдельно от структуры, в то время как дикты позволят сделать что-то подобное:
graph[I][J]["Property"]="value"
Что бы вы предложили?
Да, мне следовало бы немного прояснить, что я подразумеваю под эффективностью. В данном конкретном случае я имею в виду его в терминах произвольного поиска доступа.
Загрузка данных в память не является огромной проблемой. Это делается раз и навсегда. Трудоемкая часть-это посещение узлов, чтобы я мог извлечь информацию и измерить интересующие меня показатели.
Я не рассматривал возможность сделать каждый узел классом (свойства одинаковы для всех узлов), но похоже, что это добавит дополнительный уровень накладных расходов? Я надеялся, что у кого-то будет какой-то непосредственный опыт с подобным случаем, которым они могли бы поделиться. В конце концов, графики-это одна из самых распространенных абстракций в CS.
Как вы выражаете двоичные литералы в Python?
Как выразить целое число в виде двоичного числа с Python литералами?
Я с легкостью нашел ответ на вопрос hex:
>>> 0x12AF
4783
>>> 0x100
256
и восьмеричный:
>>> 01267
695
>>> 0100
64
Как вы используете литералы для выражения двоичного кода в Python?
Резюме ответов
- Python 2.5 и ранее: может выражать двоичный код с помощью
int('01010101111',2), но не с помощью литерала. - Python 2.5 и ранее: нет никакого способа выразить двоичные литералы.
- Python 2.6 бета: вы можете сделать так:
0b1100111или0B1100111. - Python 2.6 beta: также позволит
0o27или0O27(второй символ-буква O) представлять восьмеричное число. - Python 3.0 beta: то же самое, что и 2.6, но больше не позволяет использовать старый синтаксис
027для окталов.
Есть ли опыт работы с буферами протокола?
Я просто просматривал некоторую информацию о формате обмена данными буферов протокола Google. Кто-нибудь играл с кодом или даже создал проект вокруг него?
В настоящее время я использую XML в проекте Python для структурированного контента, созданного вручную в текстовом редакторе, и мне было интересно, каково общее мнение о буферах протокола в качестве пользовательского формата ввода. Преимущества скорости и краткости определенно кажутся там, но есть так много факторов, когда речь заходит о фактическом создании и обработке данных.
Как сделать меню, которое не требует от пользователя нажатия клавиши [enter]для выбора?
У меня есть меню в Python. Эта часть была легкой. Я использую raw_input() , чтобы получить выбор от пользователя.
Проблема заключается в том, что raw_input (и input) требуют, чтобы пользователь нажал Enter после того, как они сделают выбор. Есть ли способ заставить программу действовать сразу же после нажатия клавиши? Вот что у меня есть на данный момент:
import sys
print """Menu
1) Say Foo
2) Say Bar"""
answer = raw_input("Make a selection> ")
if "1" in answer: print "foo"
elif "2" in answer: print "bar"
Было бы здорово иметь что-то вроде
print menu
while lastKey = "":
lastKey = check_for_recent_keystrokes()
if "1" in lastKey: #do stuff...
Python: на чем OS я бегу?
Что мне нужно посмотреть, чтобы понять, нахожусь ли я на Windows или Unix и т. д.?
Python: в чем разница между (1,2,3) и [1,2,3], и когда я должен использовать каждый?
Во многих местах (1,2,3) (кортеж) и [1,2,3] (список) могут использоваться взаимозаменяемо.
Когда я должен использовать тот или другой, и почему?
Как продать Python в client/boss/person
Когда вас просят создать систему XYZ и вы просите сделать это в Python над PHP или Ruby, какие основные функции вы можете упомянуть, когда они требуют от вас объяснения?
Как настроить Python скриптов для работы в Apache 2.0?
Я пытался следить за парой гугловых учебников по настройке mod_python, но каждый раз терпел неудачу. Есть ли у вас хороший, пошаговый, твердый как камень howto?
Моя коробка работает на ОС Х, производство - Centos.
Как настроить Python скриптов для работы в Apache 2.0?
Я пытался следить за парой гугловых учебников по настройке mod_python, но каждый раз терпел неудачу. Есть ли у вас хороший, пошаговый, твердый как камень howto?
Моя коробка работает на ОС Х, производство - Centos.
У кого-нибудь есть опыт создания общей библиотеки в MATLAB?
Исследователь создал небольшую симуляцию в MATLAB, и мы хотим сделать ее доступной для других. Мой план состоит в том, чтобы взять симуляцию, очистить несколько вещей и превратить ее в набор функций. Затем я планирую скомпилировать его в библиотеку C и использовать SWIG для создания оболочки Python. В этот момент я должен быть в состоянии вызвать симуляцию из небольшого приложения Django. По крайней мере, я на это надеюсь.
У меня есть правильный план? Кто-нибудь еще делал что-то подобное? Можете ли вы дать мне знать, есть ли какие-либо серьезные подводные камни, о которых я не знаю в данный момент?
Кросс-платформенный, язык Agnostic GUI Markup Language?
Я узнал Swing еще в тот день, но теперь я переехал в Python и хочу сделать некоторые приложения с GUIs. У меня не было времени изучить новый GUI API, поэтому я использовал Jython, но я предпочел бы использовать CPython.
Было бы здорово, если бы у меня был один простой markup, который позволяет мне переключать GUI библиотек. Было бы еще лучше, если бы я мог использовать один и тот же язык markup для разных языков, чтобы я мог быстро сделать GUIs для любого языка, который я использую. Кто-нибудь знает о таком markup/library?
Я видел такие накладки, как Glade и wxWidget's markup (я забыл название). Они отчасти то, что я ищу (создание GUI без кодирования его на языке), но они переплетены с определенной библиотекой. И ни один из них не очень хорошо выглядит и не дружелюбен к человеческому редактированию.
Преобразование байтов в числа с плавающей запятой в Python
У меня есть двоичный файл, который я должен разобрать, и я использую Python. Есть ли способ взять 4 байта и преобразовать их в одно точное число с плавающей запятой?
Python, Unicode и консоль Windows
Когда я пытаюсь напечатать строку Unicode в консоли Windows, я получаю ошибку UnicodeEncodeError: 'charmap' codec can't encode character .... . Я предполагаю, что это связано с тем, что консоль Windows не принимает символы только Unicode. Как лучше всего это обойти? Есть ли какой-нибудь способ заставить Python автоматически печатать ? вместо сбоя в этой ситуации?
Редактировать: я использую Python 2.5.
Примечание: @LasseV.Karlsen ответ с галочкой вроде как устарел (с 2008 года). Пожалуйста, используйте solutions/answers/suggestions ниже с осторожностью!!
@JFSebastian ответ более актуален на сегодняшний день (6 января 2016 года).
Как я могу рассматривать целое число как массив байтов в Python?
Я пытаюсь расшифровать результат функции Python os.wait(). Это возвращает, согласно Python docs:
кортеж, содержащий его pid и индикацию состояния выхода: 16-разрядное число, младший байт которого является номером сигнала, который убил процесс, и старший байт которого является состоянием выхода (если номер сигнала равен нулю); старший бит младшего байта устанавливается, если был создан файл ядра.
Как декодировать индикацию состояния выхода (которая является целым числом), чтобы получить верхний и Нижний байт? Чтобы быть конкретным, как реализовать функцию декодирования, используемую в следующем фрагменте кода:
(pid,status) = os.wait()
(exitstatus, signum) = decode(status)
Как я должен тестировать модульный генератор кода?
Это сложный и открытый вопрос, я знаю, но я решил бросить его на пол и посмотреть, есть ли у кого-нибудь интересные предложения.
Я разработал генератор кода, который принимает наш интерфейс python к нашему коду C++ (сгенерированному через SWIG) и генерирует код, необходимый для того, чтобы представить его как WebServices. Когда я разрабатывал этот код, я делал это с помощью TDD, но мои тесты оказались чертовски хрупкими. Поскольку каждый тест по существу хотел проверить, что для заданного бита входного кода (который оказывается заголовком C++) я получу заданный бит выходного кода, я написал небольшой движок, который читает определения тестов из входных файлов XML и генерирует тестовые случаи из этих ожиданий.
Проблема в том, что я вообще боюсь идти на изменение кода. Это и тот факт, что сами юнит-тесты а: сложны, а б: хрупки.
Поэтому я пытаюсь придумать альтернативные подходы к этой проблеме, и мне кажется, что я, возможно, решаю ее неправильно. Возможно, мне нужно больше сосредоточиться на результате, IE: действительно ли код, который я генерирую, работает и делает то, что я хочу, а не выглядит так, как я хочу.
Есть ли у кого-нибудь опыт чего-то подобного, которым они хотели бы поделиться?
Как я должен тестировать модульный генератор кода?
Это сложный и открытый вопрос, я знаю, но я решил бросить его на пол и посмотреть, есть ли у кого-нибудь интересные предложения.
Я разработал генератор кода, который принимает наш интерфейс python к нашему коду C++ (сгенерированному через SWIG) и генерирует код, необходимый для того, чтобы представить его как WebServices. Когда я разрабатывал этот код, я делал это с помощью TDD, но мои тесты оказались чертовски хрупкими. Поскольку каждый тест по существу хотел проверить, что для заданного бита входного кода (который оказывается заголовком C++) я получу заданный бит выходного кода, я написал небольшой движок, который читает определения тестов из входных файлов XML и генерирует тестовые случаи из этих ожиданий.
Проблема в том, что я вообще боюсь идти на изменение кода. Это и тот факт, что сами юнит-тесты а: сложны, а б: хрупки.
Поэтому я пытаюсь придумать альтернативные подходы к этой проблеме, и мне кажется, что я, возможно, решаю ее неправильно. Возможно, мне нужно больше сосредоточиться на результате, IE: действительно ли код, который я генерирую, работает и делает то, что я хочу, а не выглядит так, как я хочу.
Есть ли у кого-нибудь опыт чего-то подобного, которым они хотели бы поделиться?
Используя каталог XML с Python lxml?
Есть ли способ, когда я анализирую документ XML с помощью lxml, чтобы проверить этот документ против его DTD с помощью внешнего файла каталога? Мне нужно уметь работать с фиксированными атрибутами, определенными в документе DTD.
Можете ли вы проверить, что исключение выбрасывается с doctest в Python?
Можно ли написать модульный тест doctest, который проверит, что возникло исключение?
Например, если у меня есть функция foo(x) , которая должна вызывать исключение if x<0, как бы я написал doctest для этого?
IronPython и ASP.NET
Кто-нибудь построил сайт с IronPython и ASP.NET. Каковы были ваши впечатления и готова ли комбинация к прайм-тайму?
Замена для for... при итерации массива
Я люблю понимание списка в Python, потому что они лаконично представляют собой преобразование списка.
Однако на других языках я часто ловлю себя на том, что пишу что-то вроде::
foreach (int x in intArray)
if (x > 3) //generic condition on x
x++
//do other processing
Этот пример находится в C#,, где я под впечатлением LINQ может помочь с этим, но есть ли какая-то общая программная конструкция, которая может заменить это слегка less-than-elegant решение? Возможно, структура данных, которую я не рассматриваю?
Python версия полосатых слешей PHP
Я написал кусок кода для преобразования полосок PHP в допустимые эскейпы Python [обратная косая черта] :
cleaned = stringwithslashes
cleaned = cleaned.replace('\\n', '\n')
cleaned = cleaned.replace('\\r', '\n')
cleaned = cleaned.replace('\\', '')
Как я могу его сгущать?
Python регулярных выражений для выполнения строки невыход
Я пытаюсь реализовать строку unescaping с Python regex и обратными ссылками, и это, кажется, не хочет работать очень хорошо. Я уверен, что это то, что я делаю неправильно, но я не могу понять, что именно...
>>> import re
>>> mystring = r"This is \n a test \r"
>>> p = re.compile( "\\\\(\\S)" )
>>> p.sub( "\\1", mystring )
'This is n a test r'
>>> p.sub( "\\\\\\1", mystring )
'This is \\n a test \\r'
>>> p.sub( "\\\\1", mystring )
'This is \\1 a test \\1'
Я хотел бы заменить \\[char] на \[char], но обратные ссылки в Python, похоже, не следуют тем же правилам, что и в любой другой реализации, которую я когда-либо использовал. Может кто-нибудь пролить свет?
Можете ли вы объяснить closures (как они соотносятся с Python)?
Я много читал о closures и думаю, что понимаю их, но, не затуманивая картину для себя и других, я надеюсь, что кто-то сможет объяснить closures настолько кратко и ясно, насколько это возможно. Я ищу простое объяснение, которое могло бы помочь мне понять, где и почему я хотел бы их использовать.
Python звук ("Bell")
Я бы хотел, чтобы программа python предупредила меня, когда она завершит свою задачу, издав звуковой сигнал. В настоящее время я использую import os , а затем использую речевую программу командной строки, чтобы сказать "Process complete." я бы предпочел, чтобы это было простое "bell."
Я знаю, что есть функция , которая может быть использована в Cocoa приложениях, NSBeep, но я не думаю, что это имеет какое-то отношение к этому.
Я тоже пробовал
print('\a')
но это не сработало.
Я использую Mac, Если вы не можете сказать по моему комментарию Cocoa , так что это может помочь.
Есть ли модуль python для сопоставления regex в файлах zip
У меня есть более миллиона текстовых файлов, сжатых в 40 zip файлов. У меня также есть список из около 500 наименований моделей телефонов. Я хочу узнать, сколько раз конкретная модель была упомянута в текстовых файлах.
Есть ли какой-либо модуль python, который может выполнить сопоставление regex с файлами, не распаковывая его. Есть ли простой способ решить эту проблему без распаковки?
Почему документация PyObjC так плоха?
Например, http://developer.apple.com/cocoa/pyobjc.html еще на ОС Х Тигр 10.4, 10.5 не Леопард.. И это официальная документация Apple для него..
Официальная страница PyObjC одинаково плоха, http://pyobjc.sourceforge.net/
Это так плохо, что сбивает с толку.. Я рассматриваю возможность изучения Ruby в первую очередь потому, что материал RubyCocoa намного лучше документирован, и есть много достойных учебников ( например, http://www.rubycocoa.com/ ), а также из-за набора инструментов Shoes GUI..
Даже этот японский учебник badly-auto-translated более полезен, чем rest документации, которую я мог бы найти..
Все, что я хочу сделать, это создать довольно простые приложения Python с Cocoa GUI..
Может ли кто - нибудь пролить свет на ужасную документацию или указать мне на некоторые учебники, которые не просто дают вам огромные блоки кода и предполагают, что вы знаете, что делает NSThread.detachNewThreadSelector_toTarget_withObject_("queryController", self, None) ..?
Как я могу проверить xml против файла DTD в Python
Мне нужно проверить строку XML (а не файл) против файла описания DTD.
Как это можно сделать в python году ?
Полезный код, который использует reduce()?
Есть ли у кого-нибудь здесь полезный код, который использует функцию reduce() в python? Существует ли какой-либо код, отличный от обычных + и*, которые мы видим в примерах?
Обратитесь к судьбе reduce() в Python 3000 по GvR
Прототипирование с помощью кода Python перед компиляцией
Я уже некоторое время обдумываю написание библиотеки peak fitting. Я знаю Python довольно хорошо и планирую реализовать все в Python для начала, но предполагаю, что мне, возможно, придется повторно реализовать некоторые основные подпрограммы на скомпилированном языке в конечном итоге.
IIRC, один из первоначальных ремитов Python был как язык прототипирования, однако Python довольно либеральен в разрешении функций, функторов, объектов для передачи в функции и методы, тогда как я подозреваю, что то же самое не верно для say C или Fortran.
Что я должен знать о проектировании функций / классов, которые я предполагаю, должны будут взаимодействовать с компилируемым языком? И сколько из этих потенциальных проблем решается такими библиотеками, как cTypes, bgen , SWIG , Boost.Python, Cython или Python SIP ?
Для этого конкретного случая использования (подходящая библиотека) я предполагаю, что пользователи могут определять математические функции (Guassian, Lorentzian и т. д.) как функции Python, которые затем могут быть переданы интерпретируемой библиотекой скомпилированного кода. Передача и возврат массивов также имеет важное значение.
Очистка пользовательского ввода с помощью Python
Как лучше всего очистить пользовательский ввод для веб-приложения на базе Python? Существует ли одна функция для удаления HTML символов и любых других необходимых комбинаций символов, чтобы предотвратить атаку XSS или SQL инъекций?
Создайте зашифрованный файл ZIP в Python
Я создаю файл ZIP с ZipFile в Python 2.5, он работает нормально до сих пор:
import zipfile, os
locfile = "test.txt"
loczip = os.path.splitext (locfile)[0] + ".zip"
zip = zipfile.ZipFile (loczip, "w")
zip.write (locfile)
zip.close()
но я не мог найти, как зашифровать файлы в файле ZIP. Я мог бы использовать system и вызвать PKZIP-s, но я полагаю, что должен быть более "Pythonic" способ. Я ищу решение с открытым исходным кодом.
Как лучше всего распределить инструменты командной строки python?
Мой текущий скрипт setup.py работает нормально, но он устанавливает tvnamer.py (инструмент) как tvnamer.py в пакеты сайта или что-то подобное..
Можно ли сделать setup.py install tvnamer.py как tvnamer и / или есть ли лучший способ установки приложений командной строки?
Элегантный способ удаления элементов из последовательности в Python?
Когда я пишу код в Python, мне часто нужно удалить элементы из списка или другого типа последовательности на основе некоторых критериев. Я не нашел решения, которое было бы элегантным и эффективным, так как удаление элементов из списка, который вы сейчас просматриваете, плохо. Например, вы не можете этого сделать:
for name in names:
if name[-5:] == 'Smith':
names.remove(name)
Я обычно заканчиваю тем, что делаю что-то вроде этого:
toremove = []
for name in names:
if name[-5:] == 'Smith':
toremove.append(name)
for name in toremove:
names.remove(name)
del toremove
Это неэффективно, довольно уродливо и, возможно, глючно (как он обрабатывает несколько записей 'John Smith'?). Есть ли у кого-нибудь более элегантное решение или, по крайней мере, более эффективное?
Как насчет того, что работает со словарями?
Как проверить соответствие набора файлов схеме именования
У меня есть куча файлов (TV эпизодов, хотя это довольно произвольно), которые я хочу проверить, соответствуют определенной схеме именования/организации..
В настоящее время: у меня есть три массива regex, один для допустимых имен файлов, один для файлов, в которых отсутствует имя эпизода, и один для допустимых путей.
Тогда я петли хоть каждый действительный-именем regex, если они совпадают, то добавить его "valid" дикт, если не, сделать тоже самое с missing-ep-name regexs, если он соответствует этому нужно присоединить к "invalid" дикт с кодом ошибки (2:'отсутствует epsiode имя'), если он не соответствует, он будет добавлен к недействительным с 'malformed name' код ошибки.
Текущий код можно найти здесь
Я хочу добавить правило, которое проверяет наличие файла folder.jpg в каждом каталоге, но добавление этого сделает код значительно более беспорядочным в его текущем состоянии..
Как я могу написать эту систему более расширяемым способом?
Правила, которые он должен проверить, были бы..
- Файл имеет формат
Show Name - [01x23] - Episode Name.aviилиShow Name - [01xSpecial02] - Special Name.aviилиShow Name - [01xExtra01] - Extra Name.avi - Если имя файла имеет формат
Show Name - [01x23].avi, отобразите его в разделе вывода " отсутствующее имя эпизода - Путь должен быть в формате
Show Name/season 2/the_file.avi(где сезон 2 должен быть правильным номером сезона в имени файла) - каждая папка
Show Name/season 1/должна содержать "folder.jpg"
есть идеи? Пока я пытаюсь проверить эпизоды TV, эта концепция / код должен быть применим ко многим вещам..
Единственной мыслью у меня был список диктов в формате:
checker = [
{
'name':'valid files',
'type':'file',
'function':check_valid(), # runs check_valid() on all files
'status':0 # if it returns True, this is the status the file gets
}
Построить базовый итератор Python
Как можно было бы создать итеративную функцию (или объект итератора) в python?
Транспонировать/распаковать функцию (обратная zip)?
У меня есть список кортежей из 2 элементов, и я хотел бы преобразовать их в 2 списка, где первый содержит первый элемент в каждом кортеже, а второй список содержит второй элемент.
Например:
original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
# and I want to become...
result = (['a', 'b', 'c', 'd'], [1, 2, 3, 4])
Есть ли встроенная функция, которая делает это?
Представляем Python
Компания, с которой я работал, имеет двух разработчиков, работающих полный рабочий день, и несколько фрилансеров. Они находятся в процессе найма нового ведущего разработчика, чтобы попытаться навести порядок и управление в разработке.
Но в настоящее время один из разработчиков увидел свет Django (на сегодняшний день компания разработала только PHP), в то время как другой разработчик обеспокоен тем, что введение нового языка (Python) является плохой идеей прямо сейчас.
Как они должны подходить к внедрению этой новой технологии? Очевидно, что только один из разработчиков действительно знает Python, не будет никакой избыточности, когда этот разработчик уйдет или покинет компанию.
Должны ли они беспокоиться о том, чтобы ввести Python, или они должны искать решения только для PHP до тех пор, пока у команды на самом деле не будет более одного Pythonion? Без лидера команды, решения должны падать на них.
Как лучше всего распределить инструменты командной строки python?
Мой текущий скрипт setup.py работает нормально, но он устанавливает tvnamer.py (инструмент) как tvnamer.py в пакеты сайта или что-то подобное..
Можно ли сделать setup.py install tvnamer.py как tvnamer и / или есть ли лучший способ установки приложений командной строки?
Как лучше всего анализировать аргументы командной строки?
Какой самый простой , лаконичный и гибкий метод или библиотека для разбора аргументов командной строки Python?
Найти символические ссылки с Python
Если я вызываю os.stat() на сломанном symlink, python создает исключение OSError . Это делает его полезным для поиска их. Однако есть несколько других причин, по которым os.stat() может вызвать подобное исключение. Есть ли более точный способ обнаружения сломанной symlinks с Python под Linux?
обновление auto_now DateTimeField в родительской модели w/ Django
У меня есть две модели: сообщение и вложение. Каждое вложение прикрепляется к определенному сообщению, используя ForeignKey в модели вложения. Обе модели имеют auto_now DateTimeField под названием updated. Я пытаюсь сделать так, чтобы при сохранении любого вложения оно также устанавливало обновленное поле в связанном сообщении на now. Вот мой код:
def save(self):
super(Attachment, self).save()
self.message.updated = self.updated
Будет ли это работать, и если вы можете объяснить мне, почему? Если нет, то как я должен это сделать?
Почему Java и Python методы сбора мусора отличаются?
Python использует метод подсчета ссылок для обработки времени жизни объекта. Таким образом, объект, который больше не имеет смысла, будет немедленно уничтожен.
Но в Java GC (сборщик мусора) уничтожает объекты, которые больше не используются в определенное время.
Почему Java выбирает именно эту стратегию и в чем ее польза?
Это лучше, чем подход Python?
Преобразование даты / времени с помощью time.mktime кажется неправильным
>>> import time
>>> time.strptime("01-31-2009", "%m-%d-%Y")
(2009, 1, 31, 0, 0, 0, 5, 31, -1)
>>> time.mktime((2009, 1, 31, 0, 0, 0, 5, 31, -1))
1233378000.0
>>> 60*60*24 # seconds in a day
86400
>>> 1233378000.0 / 86400
14275.208333333334
>>> import time
>>> time.strptime("01-31-2009", "%m-%d-%Y")
(2009, 1, 31, 0, 0, 0, 5, 31, -1)
>>> time.mktime((2009, 1, 31, 0, 0, 0, 5, 31, -1))
1233378000.0
>>> 60*60*24 # seconds in a day
86400
>>> 1233378000.0 / 86400
14275.208333333334
time.mktime должно возвращать количество секунд с момента начала эпохи. Поскольку я даю ему время в полночь, а эпоха-в полночь, разве результат не должен быть равномерно делим на количество секунд в день?
Как работают механизмы обнаружения контента, такие как Zemanta и Open Calais?
Мне было интересно, как семантический сервис, такой как Open Calais, вычисляет названия компаний или людей, технологические концепции, ключевые слова и т. д. из отрывка текста. Это потому, что у них есть большая база данных, с которой они сопоставляют текст?
Как такая служба, как Zemanta, может знать, какие изображения предложить, например, фрагменту текста?
Unicode против UTF-8 путаница в Python / Django?
Я наткнулся на этот отрывок в учебнике Django :
Модели Django есть ул. по умолчанию () метод, который вызывает unicode () и преобразует результат в UTF-8 bytestring. Это означает, что unicode(p) вернет строку Unicode, а str (p) вернет обычную строку с символами, закодированными как UTF-8.
Теперь я в замешательстве, потому что, насколько мне известно, Unicode-это не какая-то конкретная представленность, так что "Unicode string" в Python? Означает ли это UCS-2? В гугле появился этот "Python Unicode Tutorial" , который смело заявляет:
Unicode-это двухбайтовая кодировка, которая охватывает все распространенные в мире системы письма.
что же здесь явно не так, или это так? Меня много раз смущали проблемы с набором символов и кодировкой, но здесь я совершенно уверен, что документация, которую я читаю, запутана. Кто-нибудь знает, что происходит в Python, когда он дает мне "строку Unicode"?
Форматирование чисел в строки в формате Python
Мне нужно выяснить, как форматировать числа в виде строк. Мой код здесь:
return str(hours)+":"+str(minutes)+":"+str(seconds)+" "+ampm
Часы и минуты являются целыми числами, а секунды-плавающей точкой. функция str() преобразует все эти числа в десятые (0.1) места. Поэтому вместо того, чтобы моя строка выводила "5:30:59.07 pm", она будет отображать что-то вроде"5.0:30.0:59.1 pm".
В итоге, какая библиотека / функция мне нужна, чтобы сделать это за меня?
Как загрузить файл через HTTP с помощью Python?
У меня есть небольшая утилита, которую я использую, чтобы загрузить MP3 с веб-сайта по расписанию, а затем построить/обновить файл подкаста XML, который я, очевидно, добавил в iTunes.
Обработка текста, которая создает / обновляет файл XML, записывается в Python. Однако я использую wget внутри файла Windows .bat , чтобы загрузить фактический MP3. Хотя я бы предпочел, чтобы вся утилита была написана в Python.
Я изо всех сил пытался найти способ на самом деле вниз загрузить файл в Python, поэтому я прибегнул к wget .
Итак, как мне загрузить файл с помощью Python?
Что это лучший способ, чтобы дублировать fork() в windows?
Как мне реализовать некоторую логику, которая позволит мне воспроизвести на Windows функциональность, которую я имею на Linux с системным вызовом fork() , используя Python?
Я специально пытаюсь выполнить метод на компоненте SAPI Com, продолжая другую логику в главном потоке без блокировки или ожидания.
Как я могу построить график строк истории кода для git РЕПО?
В принципе, я хочу получить номер lines-of-code в репозитории после каждого коммита.
Единственный (действительно дерьмовый) способ, который я нашел, - это использовать git filter-branch для запуска wc -l * , а сценарий, который запускает git reset --hard на каждом коммите, затем запускает wc -l
Чтобы было немного понятнее, когда инструмент запускается, он выводит строки кода самого первого коммита, затем второго и так далее. Это то, что я хочу, чтобы инструмент вывел (в качестве примера):
me@something:~/$ gitsloc --branch master
10
48
153
450
1734
1542
Я поиграл с библиотекой ruby 'git', но ближе всего я нашел метод .lines() на diff, который, похоже, должен давать добавленные строки (но не дает: он возвращает 0, когда вы удаляете строки, например)
require 'rubygems'
require 'git'
total = 0
g = Git.open(working_dir = '/Users/dbr/Desktop/code_projects/tvdb_api')
last = nil
g.log.each do |cur|
diff = g.diff(last, cur)
total = total + diff.lines
puts total
last = cur
end
Python генератор кода для Visual Studio?
У меня была идея, если я добавлю файл python .py в свой проект C# и помечу файл пользовательским генератором, который выполнит файл python, и обработает вывод как результат генерации кода, т. е. поместите его в файл C#, что позволит мне сделать довольно много генерации кода в рамках процесса сборки.
Кто-нибудь знает, существует ли такой пользовательский генератор для Visual Studio 2008?
Как захватить выходные данные интерпретатора Python и/или CMD.EXE's из сценария Python?
- Можно ли захватить выходные данные интерпретатора Python из скрипта Python?
- Можно ли захватить выходные данные Windows CMD из сценария Python?
Если да, то в какую библиотеку(y|ies) мне следует заглянуть?
Двоичный буфер в Python
В Python вы можете использовать StringIO как файловый буфер для символьных данных. Сопоставленный с памятью файл в основном делает то же самое для двоичных данных, но для этого требуется файл, который используется в качестве основы. Есть ли у Python файловый объект, предназначенный для двоичных данных и являющийся только памятью, эквивалентной Java ByteArrayOutputStream ?
У меня есть вариант использования: я хочу создать файл ZIP в памяти, а ZipFile требует файлоподобного объекта.
pyGame в приложении pyGTK
Как лучше всего использовать PyGame (SDL) в приложении PyGTK?
Я ищу метод, который позволяет мне иметь область рисования в окне GTK и в то же время иметь возможность управлять событиями GTK и SDL.
Python модуль для преобразования PDF в текст
Какие модули Python лучше всего подходят для преобразования PDF файлов в текст?
Python отражение супер класса
Если у меня есть код Python
class A():
pass
class B():
pass
class C(A, B):
pass
и у меня есть класс C , есть ли способ перебрать его супер-класс (A и B)? Что-то вроде псевдокода:
>>> magicGetSuperClasses(C)
(<type 'A'>, <type 'B'>)
Одним из решений, по-видимому, является модуль inspect и функция getclasstree .
def magicGetSuperClasses(cls):
return [o[0] for o in inspect.getclasstree([cls]) if type(o[0]) == type]
но является ли это "Pythonian" способом достижения цели?
Самая чистая и быстрая настройка сервера для Django
Я собираюсь развернуть сайт среднего размера на базе Django. У меня есть выделенный сервер Ubuntu.
Я действительно запутался в том, какой серверный софт использовать. Поэтому я подумал про себя: почему бы не спросить stackoverflow?
То, что я ищу, это:
- Легко настраивается
- Быстрый и легкий доступ к ресурсам
- Могут служить медиафайлы
- Возможность обслуживать несколько djangosites на одном сервере
- Я бы предпочел не устанавливать PHP или что-то еще, что высасывает ресурсы, и для чего я не имею никакой пользы.
Я слышал о mod_wsgi и mod_python на Apache, nginx и lighty. Какие из них плюсы и минусы, и не упустил ли я кого-нибудь?
@Barry: почему-то мне кажется, что Apache-это слишком много для меня. А как насчет альтернатив?
@BrianLy: хорошо, я проверю mod_wsgi еще немного. Но зачем мне нужен Apache, если я обслуживаю статические файлы с помощью lighty? Мне также удалось обслуживать само приложение django с помощью lighty. Разве это плохо в любом случае? Прости за то, что вел себя так глупо :-)
UPDATE : а как насчет lighty и nginx - какие варианты использования являются идеальным выбором?
Есть ли разница между "foo is None" и "foo = = None"?
Есть ли какая-то разница между ними:
if foo is None: pass
и
if foo == None: pass
Соглашение, которое я видел в большинстве Python кода (и кода, который я сам пишу) является первым, но я недавно наткнулся на код, который использует последнее. Никто не является экземпляром (и единственным экземпляром, IIRC) из NoneType, так что это не должно иметь значения, верно? Есть ли какие-то обстоятельства, при которых это могло бы произойти?
wxpython: как я могу проверить данные перетаскивания в OnDragOver?
Я немного озадачен перетаскиванием в wxPython (но, возможно, эти вопросы относятся и к перетаскиванию в других фреймворках GUI). Фреймворки предоставляют несколько обратных вызовов (OnEnter и OnDragOver), которые предположительно позволяют мне сообщить системе, является ли текущая позиция мыши допустимым местом для удаления того, что перетаскивается. Из этих методов я могу вернуть wx.DragNone, wx.DragCopy и т. д. Что меня озадачивает, так это то, что из этих методов мне не разрешено вызывать GetData, что означает, что мне не разрешено проверять данные, которые пользователь перетаскивает. Если я не могу видеть данные, как я должен знать, является ли это OK для пользователя, чтобы упасть здесь?
Где я могу узнать больше о функции перевода PyPy?
У меня возникли трудное время, пытаясь понять перевод PyPy по. Это выглядит как что-то абсолютно революционное от простого чтения описания, однако мне трудно найти хорошую документацию по фактическому переводу реального фрагмента кода на что-то вроде LLVM. Существует ли такая вещь? Официальная документация PyPy на нем просто скользит по функциональности, а не предоставляет что-либо, что я могу попробовать сам.
Имеет ли PHP эквивалент этому типу подстановки строк Python?
Python имеет этот замечательный способ обработки подстановок строк с помощью словарей:
>>> 'The %(site)s site %(adj)s because it %(adj)s' % {'site':'Stackoverflow', 'adj':'rocks'}
'The Stackoverflow site rocks because it rocks'
Мне это нравится, потому что вы можете указать значение один раз в словаре, а затем заменить его по всему месту в строке.
Я пытался добиться чего-то подобного в PHP, используя различные функции замены строк, но все, что я придумал, кажется неудобным.
У кого-нибудь есть хороший чистый способ сделать такую замену строки в PHP?
Редактировать
Вот код со страницы sprintf, который мне больше всего понравился.
<?php
function sprintf3($str, $vars, $char = '%')
{
$tmp = array();
foreach($vars as $k => $v)
{
$tmp[$char . $k . $char] = $v;
}
return str_replace(array_keys($tmp), array_values($tmp), $str);
}
echo sprintf3( 'The %site% site %adj% because it %adj%', array('site'=>'Stackoverflow', 'adj'=>'rocks'));
?>
Действительно ли "safe_eval" безопасен?
Я ищу функцию "safe" eval, чтобы реализовать вычисления, подобные электронным таблицам (используя numpy/scipy).
Функциональность для этого ( модуль rexec) была удалена из Python с 2.3 из-за явно нефиксируемых проблем безопасности. Есть несколько сторонних хаков, которые претендуют на это - самое продуманное решение, которое я нашел, это это Python рецепт Кукбока, "safe_eval".
Достаточно ли я безопасен, если я использую это (или что-то подобное), чтобы защитить от вредоносного кода, или я застрял с написанием собственного парсера? Кто-нибудь знает лучшие альтернативы?
EDIT: я только что открыл RestrictedPython, который является частью Zope. Любые мнения по этому поводу приветствуются.
Наиболее подходящие для Python способ эквивалентны: а ((х = next()) != КОНЕЦ)
Какая лучшая идиома Python для этой конструкции C?
while ((x = next()) != END) {
....
}
У меня нет возможности перекодировать next().
обновление: и ответ от, кажется, будет:
for x in iter(next, END):
....
Лучший способ извлечь данные из базы данных FileMaker Pro в скрипте?
Моя работа была бы проще или, по крайней мере, менее утомительной, если бы я мог придумать автоматизированный способ (предпочтительно в сценарии Python) извлечения полезной информации из базы данных FileMaker Pro. Я работаю на машине Linux, и база данных FileMaker находится на том же самом LAN, работающем на машине OS X. Я могу войти в веб-интерфейс с моей машины.
Я очень хорошо справляюсь с SQL, и если бы кто-нибудь мог указать мне на какой-нибудь плагин FileMaker, который мог бы дать мне доступ к данным SQL в пределах FileMaker, я был бы рад, как панч. Все, что я нашел, идет только в другую сторону: имея FileMaker получить данные из SQL источников. Не полезный.
Это не мой первый выбор,но я бы использовал Perl вместо Python, если бы под рукой было решение Perl-Y.
Примечание: сервисы XML/XSLT (как предлагают некоторые люди) доступны только на FM-сервере, а не на FM Pro. В противном случае, это, вероятно, было бы лучшим решением. ODBC оказывается чрезвычайно трудно даже заставить работать. Существует абсолютно нулевая обратная связь от FM, когда вы настраиваете его, так что вам придется копаться в /var/log/system.log и анализировать неясные сообщения об ошибках.
Вывод : я получил его работу, запустив сценарий python локально на машине, которая запрашивает базу данных FM через соединения ODBC. Скрипт на самом деле является TCPServer, который принимает сокетные соединения от других систем на LAN, выполняет запросы и возвращает данные через сокетное соединение. Мне пришлось сделать это, чтобы обойти тот факт, что FM Pro принимает только ODBC соединений локально (FM сервер требуется для внешних подключений).
Какие инструменты рефакторинга вы используете для Python?
У меня есть куча классов, которые я хочу переименовать. Некоторые из них имеют небольшие имена, и это имя повторно используется в других именах классов, где я не хочу, чтобы это имя было изменено. Большая часть этого живет в коде Python, но у нас также есть некоторый код XML, который ссылается на имена классов.
Простой поиск и замена только помогает мне до сих пор. В моем случае, я хочу переименовать AdminAction в AdminActionPlug и AdminActionLogger в AdminActionLoggerPlug, так что первый из них search-and-replace также попадет во второй, ошибочно.
Есть ли у кого-нибудь опыт работы с инструментами рефакторинга Python ? Бонусные очки, если они могут исправить имена классов в документах XML тоже.
Как лучше всего использовать веб-сервисы в python?
У меня есть приложение среднего размера, которое работает как веб-сервис .net, который я не контролирую, и я хочу создать свободный pythonic API над ним, чтобы обеспечить легкий сценарий.
Я хотел узнать, что является лучшим / наиболее практичным решением для использования веб-сервисов в python.
Редактировать: Мне нужно потреблять комплекс soap WS и у меня нет никакого контроля над этим.
Как создать документ xml в python
Вот мой пример кода:
from xml.dom.minidom import *
def make_xml():
doc = Document()
node = doc.createElement('foo')
node.innerText = 'bar'
doc.appendChild(node)
return doc
if __name__ == '__main__':
make_xml().writexml(sys.stdout)
когда я запускаю приведенный выше код я получаю это:
<?xml version="1.0" ?>
<foo/>
Я хотел бы получить:
<?xml version="1.0" ?>
<foo>bar</foo>
Я просто догадался, что есть свойство innerText, оно не дает ошибки компилятора, но, похоже, не работает... как мне создать текстовый узел?
Как использовать Python distutils?
Я написал небольшой программы в python добавить gtk GUI программы командной строки. Мне было интересно, как я могу создать установщик с помощью distutils. Поскольку это всего лишь интерфейс GUI для приложения командной строки, он все равно работает только в *nix, поэтому я не беспокоюсь о том, что он кросс-платформенный.
моя главная цель-создать пакет .deb для пользователей debian/ubuntu, но я не понимаю make/configure файлов. До сих пор я в основном был веб-разработчиком.
edit: кто-нибудь знает о проекте, который использует distutils, чтобы я мог увидеть его в действии и, вы знаете, на самом деле попробовать построить его?
Вот несколько полезных ссылок
Ubuntu Python Руководство По Упаковке
Это руководство очень полезно. Я не знаю, как я пропустил это во время моей первой волны гулинга. Он даже проведет вас через упаковку существующего приложения python
-
Это официальный пакет поддержки проекта на ubuntu. Любой желающий может присоединиться, и есть много учебных пособий и информации о создании пакетов всех типов, которые включают в себя вышеупомянутое "руководство по упаковке python".
"Python distutils to deb?"-обсуждение на форуме Ars Technica
Согласно этому разговору, вы не можете просто использовать дистутилы. Он не соответствует формату упаковки debian (или что-то в этом роде). Я думаю, именно поэтому вам нужен dh_make, как показано в руководстве по упаковке Ubuntu
"Команда bdist_deb для distutils
Здесь есть несколько интересных обсуждений (это также то, как я нашел руководство ubuntu) о соединении zip-файла и shell-скрипта для создания какого-то универсального исполняемого файла (все, что имеет python и bash). странный. Дайте мне знать, если кто-нибудь найдет больше информации об этой практике, потому что я никогда о ней не слышал.
Описание формата deb и как distutils вписываются в список рассылки - python
Установите Python, чтобы соответствовать макету каталога в OS X 10.5
Установка по умолчанию Python на OS X 10.5 - это 2.5.1 с 32-разрядным клиентом FAT (Intel и PPC). Я хочу настроить apache и mysql для запуска django. В прошлом я запускал Apache и MySQL, чтобы соответствовать этой установке в 32-битном режиме (даже удаляя 64-битный материал из Apache, чтобы заставить его работать).
Я хочу обновить Python до 64 бит. Я полностью доволен компиляцией его из источника с одной оговоркой. Как я могу соответствовать способу установки по умолчанию? Особенно, что касается пакетов сайтов, находящихся в /Library/Python/2.5/ , а не в похороненном в верхней части фреймворка, как только я его скомпилирую.
Есть у кого решение этой задачки на питоне?
Помогите пожалуйста, есть у кого решение этой задачи (желательно на питоне)? Всё никак не могу с ней разобраться.
https://codeforces.com/contest/731/problem/B
Python: посоветуйте форум, конференцию или похожее
Здравствуйте!
Я начинающий программист на python, но имею опыт разработки на других языках программирования. Посоветуйте мне, пожалуйста, форум, конференцию, может быть jabber-комнату, где общаются люди, занимающиеся разработкой на python. Часто возникают какие-нибудь вопросы, а самому не получается найти ответ. Такие места общения позволяют оперативно решить вопрос с минимумом затрат времени.
С уважением, Михаил
Как задать свой autoincrement primary key в AppEngine/Python?
Есть, допустим, класс статьи, экземпляры которых хранятся в гугловском дата сторадже. И хочется дать на неё ссылку:
[ a href="/article/{{ article.uid }}" ]
Чтобы получилось типа такого:
[ a href="/article/55" ]
У гугла есть свои UUID'ы, но уж больно они страшны для для того чтобы быть частью урла: ahBzb3ZpZXRncm9vdmVibG9ncg0LEgdBcnRpY2xlGAgM.
Python. Ограничение вводимых данных
Не программист, вожусь с питоном just4fun. Возник вопрос по raw_input — можно ли как-то принудительно ограничить объем вводимых данных? Пытался нагуглить ответ — то ли неправильно гуглил, то ли распространенного решения нет, то ли это никому не нужно, т.к. в питоне есть встроенные автоматические средства защиты от дурака и можно не заморачиваться.
С чего начать изучение python?
Может плохо искал, но мне не попадались адекватные книги или сайты (желательно русскоязычные) на тему изучения данного языка с нуля. Буду рад ссылкам или названиям.
Создание .pyc и .pyo файлов?
Собственно вопрос такой: «Как при наличии файла .py сделать из него .pyc и .pyo? (Знаю что можно импортировать модуль, но хотелось бы как-нибудь по другому. типо ключика перед запуском)»
Python для научного программирования?
Слышал про библиотеки NumPy, SciPy и Matplotlib, ну как слышал, на википедии прочитал :-) Кто ими пользовался, какие преимущества перед МатЛабом или МатКадом, можно ли обрабатывать большие объемы данных с помощью сложных мат преобразований, и красиво выводить результаты.
Посоветуйте хорошие книги по Python'у ориентированные на веб-разработку
Пхп надоел, хочется новенького. Решил взяться за изучение питона. Посоветуйте хорошие книженции (только не для чайников :). Английский или русский — все равно.
Вооружившись питоном хочу перейти к изучению Google App Engine — по нему тоже хотелось бы чего-нить интересного почитать.
Экспорт документов из google-docs через python-api
простой код экспорта из google docs
# -*- coding: utf-8 -*-
import gdata.docs
import gdata.docs.service
gd_client = gdata.docs.service.DocsService()
gd_client.ClientLogin('login@gmail.com', 'superpassword')
#загружаем файл print.html в google docs
ms = gdata.MediaSource(file_path='print.html', content_type="text/html")
entry = gd_client.Upload(ms, 'NewDocument')
#экспортируем файл в doc
file_path = 'print.doc'
gd_client.Export(entry, file_path)
на выходе формат файла pdf, а не doc.
# -*- coding: utf-8 -*-
import gdata.docs
import gdata.docs.service
gd_client = gdata.docs.service.DocsService()
gd_client.ClientLogin('login@gmail.com', 'superpassword')
#загружаем файл print.html в google docs
ms = gdata.MediaSource(file_path='print.html', content_type="text/html")
entry = gd_client.Upload(ms, 'NewDocument')
#экспортируем файл в doc
file_path = 'print.doc'
gd_client.Export(entry, file_path)
Python Remote Objects — написанный код?
Вот здесь находится сайт их проекта — библиотека, позволяющая легко организовать распределенную архитектуру программы.
Сабж следующий.
Был ли у Вас опыт написания распределенных, приложений, на питоне — можете поделиться опытом?
Любое упоминание про актуальную информацию: статьи, названия учебников, тематические порталы, опен-сурс проекты, интересные исходники, краткое резюме существующих архитектур проектов(если такие бывают) — будут встречены с радостью и одобрением.
Спасибо.
Как заматчить в питоне многострочный текст регэкспом?
Как заматчить в питоне текст из файла регэкспом? не ограничиваясь \r\n.
Python Remote Objects — написанный код?
Вот здесь находится сайт их проекта — библиотека, позволяющая легко организовать распределенную архитектуру программы.
Сабж следующий.
Был ли у Вас опыт написания распределенных, приложений, на питоне — можете поделиться опытом?
Любое упоминание про актуальную информацию: статьи, названия учебников, тематические порталы, опен-сурс проекты, интересные исходники, краткое резюме существующих архитектур проектов(если такие бывают) — будут встречены с радостью и одобрением.
Спасибо.
Как заматчить в питоне многострочный текст регэкспом?
Как заматчить в питоне текст из файла регэкспом? не ограничиваясь \r\n.
Среда разработки многоанетных систем на Python (аналог JADE для Java)?
Собственно, сабж. Знает ли кто-нибудь аналог JADE? Хотелось бы, чтобы она была совместима с FIPA. Если кто сталкивался с этим, с удовольствием бы услышал опыт проектирования таких систем.
Спасибо!
Python + paramiko + shell script?
Добрый день!
Передо мной стоит следующая задача — создать SSH соединение с сервером, залить по SFTP файлы (конкретно — сорцы) и запустить там скрипт сборки.
Делаю это на Python с помощью paramiko. Все ок кроме собственно запуска скрипта. Запускаю его через exec_command и вижу только пару первых сообщений и далее скрипт прекращается (именно питоновский, значит exec_command отработал). Подскажите — как правильно подождать завершение работы скрипта и вывести все его сообщения?
Вот вырезки из кода:
paramiko.util.log_to_file('ssh_session.log')
ssh = SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
ssh.connect(ssh_conf.server_address, ssh_conf.server_port, ssh_conf.login, None, my_pkey, 60)
except:
print 'Error connect'
sys.exit(1)
_sftp = ssh.open_sftp()
SyncFolders(_sftp, ssh_conf.source_folder, ssh_conf.dest_folder)
print ssh.exec_command('chmod +x' + ssh_conf.dest_folder + '/build.sh')[1].read()
# iOrange - performing build
print ssh.exec_command('sh ' + ssh_conf.dest_folder + '/build.sh')[1].read()
paramiko.util.log_to_file('ssh_session.log')
ssh = SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
ssh.connect(ssh_conf.server_address, ssh_conf.server_port, ssh_conf.login, None, my_pkey, 60)
except:
print 'Error connect'
sys.exit(1)
_sftp = ssh.open_sftp()
SyncFolders(_sftp, ssh_conf.source_folder, ssh_conf.dest_folder)
print ssh.exec_command('chmod +x' + ssh_conf.dest_folder + '/build.sh')[1].read()
# iOrange - performing build
print ssh.exec_command('sh ' + ssh_conf.dest_folder + '/build.sh')[1].read()
Куда идти после php? Ruby или Python?
Собственно вопрос в заголовке :) Хочется услышать принципиальные различия между языками. Для каких задач что лучше подходит?
Подскажите книгу по Python'у
Профессионально пишу на PHP, хочу попробовать и возможно в дальнейшем перейти на Python.
Посоветуйте наиболее полную и подробную книгу, желательно на русском и желательно доступную в электронном варианте.
python, применение locale.setlocale
Есть два хоста, один с серверной Ubuntu 10.04, второй — с Linux Mint Rosinka 8.
Есть python-скрипт, парсящий html, передающий GETом данные в форму и проч.
На хосте с Ubuntu скрипт работает, на хосте с Mint — нет, т.к. махинации с кириллическими символами почему-то уже не срабатывают.
Единственная важная (имхо) разница между хостами — локаль:
LANG=ru_RU.UTF-8 — на Mint
LANG=en_US.UTF-8 — на Ubuntu
Пробовал добавить в скрипт на минте
import locale
locale.setlocale(locale.LC_ALL, "en_US.UTF-8"),
но никакого толку.
В питоне не эксперт, выбрал его для того скрипта просто интереса ради. Еле победил кириллицу на убунтовском серваке, а тут дальше такой факап…
Может, кто сталкивался с подобным?
locale.setlocale(locale.LC_ALL, "en_US.UTF-8")
Разъясните нюанс в наследовании класов в Python?
Есть такой код:
<font color="black"><a href="http://s-c.me/9339/s">Copy Source</a> | <a href="http://s-c.me/9339/h">Copy HTML</a><ol>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Базовый класс</font><br/>
<font color="#008000">'''</font></li>
<li><font color="#0000ff">class</font> <font color="#cc6633">Component</font>():</li>
<li> </li>
<li> connects = []</li>
<li> </li>
<li> <font color="#008000">'''</font><br/>
<font color="#008000"> Метод добавляе объект в коллекцию</font><br/>
<font color="#008000"> '''</font></li>
<li> <font color="#0000ff">def</font> <font color="#cc6633">connect</font>(self, object):</li>
<li> <b>self</b>.connects.append(object)</li>
<li> </li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Подкласс 1</font><br/>
<font color="#008000">'''</font></li>
<li><font color="#0000ff">class</font> <font color="#cc6633">Component1</font>(<font color="#cc6633">Component</font>):</li>
<li> </li>
<li> <font color="#0000ff">def</font> <font color="#cc6633">getData</font>(self):</li>
<li> <font color="#0000ff">print</font> <font color="#008000">123</font></li>
<li> </li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Подкласс 2</font><br/>
<font color="#008000">'''</font></li>
<li><font color="#0000ff">class</font> <font color="#cc6633">Component2</font>(<font color="#cc6633">Component</font>):</li>
<li> </li>
<li> <font color="#0000ff">def</font> <font color="#cc6633">getData</font>(self):</li>
<li> <font color="#0000ff">print</font> <font color="#008000">123</font></li>
<li> </li>
<li> </li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Инстанцируем</font><br/>
<font color="#008000">'''</font></li>
<li>c1 = <font color="#cc6633">Component1</font>()</li>
<li>c2 = <font color="#cc6633">Component2</font>()</li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Проверяем кол-во элементов в подклассе 2</font><br/>
<font color="#008000">'''</font></li>
<li><font color="#0000ff">print</font> <b>len</b>(<font color="#cc6633">Component2</font>.connects) <font color="#696969"># 0</font></li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Добавляем первому подклассу в объект коллекцию</font><br/>
<font color="#008000">'''</font></li>
<li>c1.<font color="#cc6633">connect</font>(c2)</li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Проверяем кол-во элементов в подклассе 2</font><br/>
<font color="#008000">'''</font></li>
<li><font color="#0000ff">print</font> <b>len</b>(<font color="#cc6633">Component2</font>.connects) <font color="#696969"># 1 </font></li>
</ol></font>
Почему меняется кол-во элементов в коллекции второго объекта, если я добавляю элемент к коллекции первого объекта?
<font color="black"><a href="http://s-c.me/9339/s">Copy Source</a> | <a href="http://s-c.me/9339/h">Copy HTML</a><ol>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Базовый класс</font><br/>
<font color="#008000">'''</font></li>
<li><font color="#0000ff">class</font> <font color="#cc6633">Component</font>():</li>
<li> </li>
<li> connects = []</li>
<li> </li>
<li> <font color="#008000">'''</font><br/>
<font color="#008000"> Метод добавляе объект в коллекцию</font><br/>
<font color="#008000"> '''</font></li>
<li> <font color="#0000ff">def</font> <font color="#cc6633">connect</font>(self, object):</li>
<li> <b>self</b>.connects.append(object)</li>
<li> </li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Подкласс 1</font><br/>
<font color="#008000">'''</font></li>
<li><font color="#0000ff">class</font> <font color="#cc6633">Component1</font>(<font color="#cc6633">Component</font>):</li>
<li> </li>
<li> <font color="#0000ff">def</font> <font color="#cc6633">getData</font>(self):</li>
<li> <font color="#0000ff">print</font> <font color="#008000">123</font></li>
<li> </li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Подкласс 2</font><br/>
<font color="#008000">'''</font></li>
<li><font color="#0000ff">class</font> <font color="#cc6633">Component2</font>(<font color="#cc6633">Component</font>):</li>
<li> </li>
<li> <font color="#0000ff">def</font> <font color="#cc6633">getData</font>(self):</li>
<li> <font color="#0000ff">print</font> <font color="#008000">123</font></li>
<li> </li>
<li> </li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Инстанцируем</font><br/>
<font color="#008000">'''</font></li>
<li>c1 = <font color="#cc6633">Component1</font>()</li>
<li>c2 = <font color="#cc6633">Component2</font>()</li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Проверяем кол-во элементов в подклассе 2</font><br/>
<font color="#008000">'''</font></li>
<li><font color="#0000ff">print</font> <b>len</b>(<font color="#cc6633">Component2</font>.connects) <font color="#696969"># 0</font></li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Добавляем первому подклассу в объект коллекцию</font><br/>
<font color="#008000">'''</font></li>
<li>c1.<font color="#cc6633">connect</font>(c2)</li>
<li> </li>
<li><font color="#008000">'''</font><br/>
<font color="#008000">Проверяем кол-во элементов в подклассе 2</font><br/>
<font color="#008000">'''</font></li>
<li><font color="#0000ff">print</font> <b>len</b>(<font color="#cc6633">Component2</font>.connects) <font color="#696969"># 1 </font></li>
</ol></font>
Многопоточное программирование?
Где бы почитать про эту вещь в хорошем теоретическом аспекте, где были бы освещены паттерны, примеры, проблемы, хитрости и тому подобное?
Желательно в применении к Python, но это не столь важно, куда важнее получить базис.
А то пытаюсь реализовать некоторые вещи, а понимаю, что не знаю основ проектирования многопоточных приложений и создается ощущение, что клею обои через замочную скважину.
Python. С чего начать учить?
Хочу кодить под Убунту, ну и просто выучить Python.
С чего начать? Что читать, где взять, что и как?
Проблема связи php и python через memcached?
если совершается set из php в memcache то при попытке сделать get по такому ключу из python получаю:
>>> import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))<br/>
/usr/bin/python2.6 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) <br/>
[GCC 4.4.5]<br/>
>>> import memcache<br/>
>>> import binascii<br/>
>>> m=memcache.Client(['127.0.0.1:11211'], debug=0)<br/>
>>> def php_hash(key):<br/>
... return (binascii.crc32(key) >> 16) & 0x7fff<br/>
... <br/>
>>> m.get((php_hash(mfd.php_nexttime), mfd.php_nexttime))<br/>
Traceback (most recent call last):<br/>
File "", line 1, in NameError: name 'mfd' is not defined<br/>
>>> m.get((php_hash('mfd.php_nexttime'), 'mfd.php_nexttime'))<br/>
Traceback (most recent call last):<br/>
File "", line 1, in File "/usr/lib/pymodules/python2.6/memcache.py", line 779, in get<br/>
return self._get('get', key)<br/>
File "/usr/lib/pymodules/python2.6/memcache.py", line 766, in _get<br/>
value = self._recv_value(server, flags, rlen)<br/>
File "/usr/lib/pymodules/python2.6/memcache.py", line 915, in _recv_value<br/>
return val<br/>
UnboundLocalError: local variable 'val' referenced before assignment<br/>
<br/>
Устал гуглить может кто ни будь сталкивался?
>>> import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))<br/>
/usr/bin/python2.6 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) <br/>
[GCC 4.4.5]<br/>
>>> import memcache<br/>
>>> import binascii<br/>
>>> m=memcache.Client(['127.0.0.1:11211'], debug=0)<br/>
>>> def php_hash(key):<br/>
... return (binascii.crc32(key) >> 16) & 0x7fff<br/>
... <br/>
>>> m.get((php_hash(mfd.php_nexttime), mfd.php_nexttime))<br/>
Traceback (most recent call last):<br/>
File "", line 1, in NameError: name 'mfd' is not defined<br/>
>>> m.get((php_hash('mfd.php_nexttime'), 'mfd.php_nexttime'))<br/>
Traceback (most recent call last):<br/>
File "", line 1, in File "/usr/lib/pymodules/python2.6/memcache.py", line 779, in get<br/>
return self._get('get', key)<br/>
File "/usr/lib/pymodules/python2.6/memcache.py", line 766, in _get<br/>
value = self._recv_value(server, flags, rlen)<br/>
File "/usr/lib/pymodules/python2.6/memcache.py", line 915, in _recv_value<br/>
return val<br/>
UnboundLocalError: local variable 'val' referenced before assignment<br/>
<br/>
Устал гуглить может кто ни будь сталкивался?
Модули для Python2.7 в mint 10
Я поставил минт 10-й. Там по умолчанию установлен интерпритатор 2.6.6, но через менеджер пакетов можно установить 2.7, что я и сделал.
Проблема в том, что при установке модулей из менеджера(майэскьюэльдэбэ, джанго и так далее) они ставятся на 2.6.6, в 2.7 же их можно ставить только через скачивание пакетов и командную строку.
Можно ли както заставить менеджер пакетов выбирать, на какой пайтон ставить модули, или чтобы он всегда ставил их на 2.7?
Вызов python3 скрипта из java?
Пользуюсь на домашнем сервачке для скачки торрентов uTorrent for Linux.
Он имеет один большой (для меня) недостаток — в нем нет возможности определить, в какую папку загружать данный конкретный торрент.
Есть скрипт на python3, который помогает решить эту задачу.
Здесь находится ветка его обсуждения.
Хотел написать к нему небольшую десктопную морду, в которой можно будет ввести абсолютный путь на сервере, куда сохранять, выбрать торрент, который скачивать и вводить логин-пароль для сервера.
Столкнулся с тем, что не знаю, как вызывать питонский скрипт из джавы.
Прошу помощи.
Стоит ли сейчас python-щику изучать Java или C++?
Заранеее извиняюсь, если вопрос покажется холиварным.
Поэтому прошу без эмоций.
Собственно ситуация следующая:
знаю python и django 2 года,
но хочется выучить статически-компилируемый язык, да и в целом чего-то более серьезного.
Область: web server-side.
В общем-то все бы ничего, python очень хорош, но вакансий мало.
В будущем планирую зарубеж, поэтому по вакансиям ориентируюсь на:
www.monster.com/
www.dice.com/
по java/c++ в десятки раз вакансий больше.
Начал изучать java, но в свете последних непонятных событий с java желание слегка убавляется.
Прошу помощи у сообщества, хотелось бы услышать советы в какую сторону стоит копать,
нужно что-либо кроссплатформенное (поэтому .NET отпадает).
c++ не знаю, и по алгоритмам в общем-то тоже не особо силен.
пока видятся следующие претенденты на ближайшее изучение:
— java (собственное стоит ли бояться за ее будущее?)
— c++
— c
— go
— erlang
— c#
Спасибо за любую информацию.
Библиотеки Python, для научных расчетов?
Есть какие-нибудь библиотеки, которые по известным формулам и значениям эксперимента, определяют его коэффициенты?
Пример:
-2.84 = k3*82.19 + k4*15.42 + k9*0.73
0.08 = -k1*15.12 + k2*11.08 + k6*7.43 — k9*…
1.58…
0.001…
Нужно найти все k в этом.
UPD:
В некоторых уравнениях неизвестно по 3 по 4 k — их можно только или подобрать, или я не знаю, что…
Получить все реплаи к твиту
Мне нужно получить все реплаи к определенному твиту, как это делает веб-клиент на twitter.com
Я пишу на python, но все готовые решения я уже просмотрел и там нет нужного функционала. Пример.
Connect python gtk application and facebook?
Захотел я попробовать создать небольшое приложение на gtk с возможностью отправки сообщений на аккаунт в facebook. Возникла проблема с авторизацией.
Facebook хочет чтоб пользователю показывалсь страница на которой бы он разрешал доступ приложения к его профилю. После гуглению пришле к выводу, что нужно использовать webkit gtk. К сожалению в интернете документацию по нем практически отсутствует. Как не бился над этой проблемой так ничего и не получилось:(
Может кто-то то уже сталкивался с подобной проблемой и подскажет как мне авторизовать пользователя на фейсбуке из десктопного приложения.
Знаю что это реализовано в gwibber, но там все очень сложно. Хотелось бы простых примеров, чтоб понять как нужно делать.
Python vs Java
Добрый день.
Стою перед нелегким выбором. Если максимально упростить задачу, у меня есть 2 вакансии: соответственно Python/Django и JavaEE.
Будем считать, что условия работы одинаковые, зарплаты одинаковые (хотя, до офиса питоноводов мне гораздо ближе) и знаю я обе платформы одинаково средне.
Вопрос к знатокам: что перспективней? В какой области специалисты больше ценятся и легче находят работу? Помогите определиться:)
Другие языки мне не интересны, да и о достоиствах что джавы что питона я прекрасно знаю. То что любой опыт полезен и настоящему профи не важно на чем писать понимаю. Вопрос исключительно корыстный — в каком случае я буду больше зарабатывать через 5 лет при прочих равных.
PHP tokenizer на Python?
Существует ли аналог tokenizer'a из PHP на Python, либо же подобные лексеры для разбора PHP-кода?
С какой версии начать изучение python?
Закончились наконец-то мои внутренние муки выбора той технологии, которую хочу начать изучать.
На основе прочтения многих постов, вопросов и ответов, блогов и т.д. пришел к выводу, что это будет Python. И django в перспективе.
И, соответственно, озадачился выбором литературы. На хабре большинство по моим наблюдением советует книгу «Изучаем Python» Марка Лутца. Но есть одно но: только 3-е издание книги переведено на русский(а хочется читать на родном всё-таки), в ней рассматривается второй Python. Есть более свежая книга, «Программирование на Python 3. Подробное руководство»(озон), в ней рассматривается как раз 3-я версия Python'а. Так же, видел мнения что стоит начать изучение со второй версии, так как третья пока сыровата(но может быть это мнение уже устарело, не знаю).
Вот и встала передо мной диллема: изучать по более новой, но не проверенной книге, и сразу впитывать все новшества и плюсы новой версии. Либо читать зарекомендовавшую себя книгу, пусть и по более старой, но проверенной версии python'a? Тем более, посмотрев на официальном сайте, понял что поддерживаются обе ветки(и написано: если не знаете, что выбрать, выбирайте 2ую версию).
Вопросы по sqlalchemy
1. Можно ли с помощью sqlalchemy получить названия столбцов БД и как-нибудь динамически ими оперировать (не задавая их непосредственно в классе, который мапится)
2. Как, собственно, создавать/удалять/редактировать столбцы
3. Есть у меня записи и тэги со связью многие-ко-многим через третью таблицу, например, как здесь. Как правильно написать класс для таблицы связей с учётом того, что там нет первичного ключа?
Как заставить PyQt работать с русскими доменами?
Столкнулся с проблемой при работе с QUrl на питоне. В общих чертах имеем такой тестовый код:
from PyQt4.QtCore import QUrl<br/>
<br/>
print QUrl('http://xn--d1abbgf6aiiy.xn--p1ai/').toString()<br/>
Под windows он возвращает ожидаемый результат:
<a href="http://xn--d1abbgf6aiiy.xn--p1ai/">xn--d1abbgf6aiiy.xn--p1ai/</a>
А под FreeBSD такой:
<a href="http://xn--d1abbgf6aiiy.xn--d1abbgf6aiiyxn--p1ai/">xn--d1abbgf6aiiy.xn--d1abbgf6aiiyxn--p1ai/</a>
PyQt отсюда www.riverbankcomputing.co.uk/software/pyqt/download версии 4.8.1
from PyQt4.QtCore import QUrl<br/>
<br/>
print QUrl('http://xn--d1abbgf6aiiy.xn--p1ai/').toString()<br/><a href="http://xn--d1abbgf6aiiy.xn--p1ai/">xn--d1abbgf6aiiy.xn--p1ai/</a><a href="http://xn--d1abbgf6aiiy.xn--d1abbgf6aiiyxn--p1ai/">xn--d1abbgf6aiiy.xn--d1abbgf6aiiyxn--p1ai/</a>
Установка QT для Python?
На мой предыдущий вопрос к сожалению ответа не нашлось ни здесь ни на stackoverflow. Поэтому задумался о том как убедится что на сервере стоит последняя версия QT. Если я правильно понимаю PyQt это лишь набор привязок, и собственно самих библиотек там нет — только интерфейсы. В связи с чем вопрос — как правильно устанавливать QT и откуда, что бы все было последних версий? Для windows я просто скачал набор бинарников отсюда. Собственно я даже не знаю как узнать версию установленных библиотек :(
P. S. И да на сервере стоит FreeBSD 8.0. Администратор говорит что установил PyQt-x11-gpl-4.8.1 но я не сильно ему верю.
Посоветуйте книжку по Python
День добрый.
Заглянул на ozon и amazon с целью найти книжку по Python. Предложений много. Книги дорогие.
Не знаю, что и покупать. Посоветуйте, пожалуйста. Желательно, чтобы книга была заточена под программирование на питоне под веб.
Спасибо.
Установка библиотеки PIL с поддержкой JPEG под Snow Leopard?
Проблема в следующем: не ставится PIL с поддержкой JPEG. Библиотеку libjpeg установил через macport:
sudo python setup.py build
running build
running build_py
running build_ext
— using frameworks at /System/Library/Frameworks
— PIL 1.1.7 SETUP SUMMARY
— version 1.1.7
platform darwin 2.7 (r27:82508, Jul 3 2010, 21:12:11)
[GCC 4.0.1 (Apple Inc. build 5493)]
— — TKINTER support available
— JPEG support available
— ZLIB (PNG/ZIP) support available
— FREETYPE2 support available
— LITTLECMS support available
— To check the build, run the selftest.py script.
running build_scripts
— JPEG support available — типа все ОК, библиотека стоит
Устанавливаю, делаю
python selftest.py
— PIL 1.1.7 TEST SUMMARY
— Python modules loaded from ./PIL
Binary modules loaded from ./PIL
— — PIL CORE support ok
— TKINTER support ok
*** JPEG support not installed
— ZLIB (PNG/ZIP) support ok
— FREETYPE2 support ok
— LITTLECMS support ok
— Running selftest:
*****************************************************************
Failure in example:
try:
_info(Image.open(os.path.join(ROOT, «Images/lena.jpg»)))
except IOError, v:
print v
from line #24 of selftest.testimage
Expected: ('JPEG', 'RGB', (128, 128))
Got: decoder jpeg not available
1 items had failures:
1 of 57 in selftest.testimage
***Test Failed*** 1 failures.
*** 1 tests of 57 failed.
Говорит что JPEG support not installed и естественно не работает.
Предварительно PIL удалял и ставил по-новой, результат тот же.
Кто-нибудь сталкивался с такой проблемой?
python, json
Вопрос такой, получаю json от google translate а он не хочет парситься.
Что делаю не так?
res = urllib2.urlopen(request).read()
data = json.loads(res)
выдает следующее
Traceback (most recent call last):
File "./translate.py", line 27, in data = json.loads(res)
File "/usr/lib/python2.6/json/__init__.py", line 307, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.6/json/decoder.py", line 319, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.6/json/decoder.py", line 336, in raw_decode
obj, end = self._scanner.iterscan(s, **kw).next()
File "/usr/lib/python2.6/json/scanner.py", line 55, in iterscan
rval, next_pos = action(m, context)
File "/usr/lib/python2.6/json/decoder.py", line 219, in JSONArray
raise ValueError(errmsg("Expecting object", s, end))
ValueError: Expecting object: line 1 column 158 (char 158)
если сделать print(res) то выводит:
[[["привет","hi","privet",""]],[["abbreviation",["Гавайи"]],["interjection",["привет","эй","ну","салют","здор `ово"]]],"en",,[["привет",[5],1,,1000,0,1,0]],[["hi",4,,,""],["hi",5,[["привет",1000,1,]],[[0,2]],"hi"]],,,,21]
data = json.loads(res)
File "./translate.py", line 27, in data = json.loads(res)
File "/usr/lib/python2.6/json/__init__.py", line 307, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.6/json/decoder.py", line 319, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.6/json/decoder.py", line 336, in raw_decode
obj, end = self._scanner.iterscan(s, **kw).next()
File "/usr/lib/python2.6/json/scanner.py", line 55, in iterscan
rval, next_pos = action(m, context)
File "/usr/lib/python2.6/json/decoder.py", line 219, in JSONArray
raise ValueError(errmsg("Expecting object", s, end))
ValueError: Expecting object: line 1 column 158 (char 158)
если сделать print(res) то выводит:
[[["привет","hi","privet",""]],[["abbreviation",["Гавайи"]],["interjection",["привет","эй","ну","салют","здор `ово"]]],"en",,[["привет",[5],1,,1000,0,1,0]],[["hi",4,,,""],["hi",5,[["привет",1000,1,]],[[0,2]],"hi"]],,,,21]
Общение с http-прокси через сокеты на Python?
Проблема проста — хочу передать POST-запрос через http-прокси в Python на сокетах, но или возникают различные ошибки SocketError, или код просто зависает на передаче (send/sendall) или приёме (recv/recvall) данных.
Скажите, в чём причина такого поведения (или, даже лучше, посоветуйте рабочий вариант)?
Библиотека для построения time series графиков по большому объему данных?
Порекомендуйте C/C++/Python библиотеку для построения time series графиков так же просто, как это позволяет делать dygraphs, но значительно быстрее. Объем данных большой — миллионы записей, время по оси X — с точностью до миллисекунды.
Книга "Python в системном администрировании UNIX и Linux"

www.ozon.ru/context/detail/id/4220809/
Кто-то читал?
Сейчас ищу хорошую литературу по Python. Интересует разработка несложных приложений для автоматизации рутинных админских задач (мониторилки, бекапы, парсинг логов). Грубо говоря, как использовать python в качестве более продвинутой альтернативы bash-скриптов.
Желательно побольше примеров.
По названию книга подходит идеально, но отзывы о ней какие-то печальные.
Может кто-то подбодрит хорошими отзывами, или посоветует что-то более толковое.
Scrapy — Python
При парсинге одного сайта на битрикс через некоторое время происходит возврат «400» ошибки от сервера. Кто-нибудь занимался им и может подсказать как более хитро маскироваться под пользователя?
Интервал между запросами поставил в 2 секунды, а результат всегда один и тот же — 200 элементов и 400 ошибка
Как лаконично получить строку из списка int'ов
Есть список int'ов, нужно получить строку вида «1,3,5,12», но так чтобы код был лаконичен (в одну строку).
a = [1, 3, 5, 12]
str_ =…
Книги по PyQt
Здравствуйте, Хабровчане!
Не подскажите ли Вы мне, существуют ли в продаже (допустим, в Москве) книги по PyQt?
Если же такового нет, то может быть есть достойные альтернативы Rapid GUI Programming with Python and Qt?
Многопользовательский сервер python
Доброе время суток, в ВУЗе дали задание сделать отказоустойчивую систему. Я предпочел написать ее на питоне.
Но так как язык для меня новый, второй день на нем пишу возникают вопросы:
Как создать приложение-сервер, которое будет работать одновременно с двумя или более клиентами, плюс альтернативный (для отказоустойчивости) второй сервер.
Т.е. примерно так:
Альтернативный <----------> Основной
сервер сервер
/ | \
Клиент Клиент Клиент
Что-то читал про twisted, что-то про select, но в конце концов так и не понял как и что.
Вот мой быдлокод сервера:
# -*- coding: cp1251 -*-
import socket, string, threading, sys
def sync(sock):
sock.send('sync ok!')
def alt(num):
print """
====================
AltServer thread ok
====================
"""
def listen(port, first = False, num = 0):
srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
srv.bind(("localhost", port))
while 1:
print "Listen...", port
print "Thread: ", threading.currentThread(), " Num: ", num, "\n"
srv.listen(1)
global sock
sock, addr = srv.accept()
while 1:
rec = sock.recv(1)
if not rec:
break
else:
if (first):
while 1:
num = sock.recv(16)
if not num:
break
else:
print "Number rcvd success! (", num ,")"
sock.send("ok")
proc2 = threading.Thread(target=listen, name="cli2", args=[30001, False, num])
proc3 = threading.Thread(target=listen, name="cli3", args=[30002, False, num])
proc4 = threading.Thread(target=alt, name="altserver", args=[num])
proc2.start()
proc3.start()
proc4.start()
else:
sock.send(num)
status = sock.recv(16)
while 1:
if not status:
break
else:
if (status == "ok"):
sync(sock)
else:
sync(sock)
print "error, pack:", status
break
print "From %s:%s:" % addr, rec
sock.close()
def main():
proc1 = threading.Thread(target=listen, name="cli1", args=[30000, True])
proc1.start()
main()
sys.exit(0)
Сама суть программы — расчет числа Фибоначчи.
Клиент, который подключается первым отправляет введенное пользователем число (номер по порядку числа Фибоначчи), затем сервер отправляет это число на остальные подключенные клиенты, затем каждый клиент считает последующую итерацию, и отправляет ее на сервер, сервер сравнивает результаты, и использует принцип голосования (если какой-то клиент отправил неожиданные данные, то его ответ считается неверным, это записывается в лог и клиент принудительно отключается). Стоит учесть отказ основного сервера, если это произошло, то клиенты должны автоматически подключится к альтерантивному серверу и продолжать вычисление.
# -*- coding: cp1251 -*-
import socket, string, threading, sys
def sync(sock):
sock.send('sync ok!')
def alt(num):
print """
====================
AltServer thread ok
====================
"""
def listen(port, first = False, num = 0):
srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
srv.bind(("localhost", port))
while 1:
print "Listen...", port
print "Thread: ", threading.currentThread(), " Num: ", num, "\n"
srv.listen(1)
global sock
sock, addr = srv.accept()
while 1:
rec = sock.recv(1)
if not rec:
break
else:
if (first):
while 1:
num = sock.recv(16)
if not num:
break
else:
print "Number rcvd success! (", num ,")"
sock.send("ok")
proc2 = threading.Thread(target=listen, name="cli2", args=[30001, False, num])
proc3 = threading.Thread(target=listen, name="cli3", args=[30002, False, num])
proc4 = threading.Thread(target=alt, name="altserver", args=[num])
proc2.start()
proc3.start()
proc4.start()
else:
sock.send(num)
status = sock.recv(16)
while 1:
if not status:
break
else:
if (status == "ok"):
sync(sock)
else:
sync(sock)
print "error, pack:", status
break
print "From %s:%s:" % addr, rec
sock.close()
def main():
proc1 = threading.Thread(target=listen, name="cli1", args=[30000, True])
proc1.start()
main()
sys.exit(0)
Вопросы на собеседовании программисту Python
Какие вопросы задавать программисту Python, что бы оценить его знания?
Библиотека Python для работы с PDF
Посоветуйте библиотеку Python для создания PDF. Поддержка русского. Какие плюсы/минусы.
Нашел парочку, но хотел бы услышать ваши предложения.
Также интересна библиотека для парсинга PDF. (умеющая создавать или нет — без разницы, так как для другого проекта)
как запустить pyquery с python 3.1?
скачал pyquery, пробую установить:
python3 setup.py install
получаю:
ImportError: No module named setuptools
а сам setuptools — pypi.python.org/pypi/setuptools#files — вроде есть только для 2.7
может я что-то делаю не так?
Как облегчить жизнь конечным пользователям python-программ?
Здравствуйте, Хабровчане!
Представим такую ситуацию: Мы имеем программу написанную на python с использованием кучи библиотек (к примеру трёх) и хочется дать эту программку другу попользоваться. А у друга на компьютере, допустим, ни Python'а, ни библиотек и в помине нет. Можно ли как-нибудь скомпоновать всё это дело так, что бы облегчить ему установку всех компонентов и запуска программы?
Какой Python-фреймворк вы используете под Google App Engine?
Поделитесь, пожалуйста, опытом в использовании Python-фреймворков под Google App Engine. Больше склонен к микро-фреймворкам, но выслушаю все мнения, все «за» и «против».
Так же было бы интересно узнать выбор шаблонизатора, с которым вы используете фреймворк.
Предлагаю давать ответы в формате:
1) Фреймворк
2) Шаблонизатор
3) Все «за» (что нравится, чем лучше остальных?)
4) Все «против» (что не нравится, чем хуже остальных?)
Subprocess не хочет ждать wget?
Пишу скрипт на python, для загрузки приличного списка файлов. Скрипт хитрый, поэтому просто список файлов скормить wget'у не получается.
Запускаю через:
p = subprocess.Popen(cmd.split(),shell=True)
p.wait()
это соответственно происходит в цикле, но не хочет wait ждать пока wget скачает файл, соответственно появляется много параллельных загрузок. Как быть?
p = subprocess.Popen(cmd.split(),shell=True)
p.wait()
Получение почты скриптом с сохранением вложений
Существуют ли готовые решения для Perl (либо Python, Ruby) для чтения почты с возможностью извлечения и сохранением вложений?
Решение Без двух нулей подряд
Требуется посчитать количество последовательностей длины nn, состоящих из цифр от 00 до k−1k−1 таких, что никакие два соседних элемента последовательности не равны нулю одновременно.
Входные данные
Заданы два натуральных числа NN и KK (2≤K≤102≤K≤10; 2≤N2≤N; 4≤N+K≤184≤N+K≤18).
Выходные данные
Необходимо вывести целое число — ответ на задачу.
Примеры
Ввод 2 2
Вывод 3
Ввод 3 9
Вывод 712
1352   0   00:51, 26th June, 2021
Импортирование xls файлов в базу данных psql на python
Добрый день! Как можно через python импортировать эксель таблицу в PostgreSQL? Изначально нам дан url по которому находится эксель таблица, и нужно чтобы это таблица была в бд postgreSQL, т.е. по url коду данные импортируются в базу данных PostgreSQL, как это можно сделать?
Программа для вычисления периметра треугольника по трём сторонам на Python
Программа для вычисления периметра треугольника по трём сторонам на Python. Написать исключение для генерации сообщения о невозможности выполнения такой операции (сумма двух любых сторон должна быть больше 3-й).
p.s - 1)контролируя состояние потоков ввода/вывода, 2)при возникновении ошибок, связанных с корректностью выполнения математических операций, генерировать и обрабатывать исключительные ситуации, 3) использовать raise.
Если знаете, как это должно выглядеть, подскажите пожалуйста.
TreeView печать в PDF
Почему список созданный руками data, преобразуется в PDF, а список созданный при помощи append нет?
data = [[4, '', 5, 6, 7], [8, 9, '', 10, 11]] # Преобразуется в PDF
t = [] # Выдает ошибку, см. ниже
def pdf(spacing=1):
for line in tree.get_children():
for value in tree.item(line)['values']:
t.append(value)
print(f't={t}')
# Разделяет список таблицы на списки по строкам
chunk_size = 5 # кол-во элементов в одной строке
new_list = [t[x:x + chunk_size] for x in range(0, len(t), chunk_size)]
print(f'new_list={new_list}')
pdf = FPDF()
pdf.set_font("Arial", size=12)
pdf.add_page()
col_width = pdf.w / 4.5
row_height = pdf.font_size
for row in new_list:
for item in row:
print(f'item={item}')
pdf.cell(col_width, row_height * spacing,
txt=str(item), border=1)
pdf.ln(row_height * spacing)
file_name = en1.get()
print(f'file_name={file_name}')
pdf.output(f'{file_name}.pdf') # Наименование файла
Ошибка:
t=['Скамейка 1', '', '', '', '', 'Труба d20х2000', '2.0', 'шт', '3.0', '6.0', 'Уголок 40х40х3х2000', '4.0', 'шт', '5.0', '20.0']
total=26.0
Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
File "/Users/ulia/Documents/Курс Python/Мои программы/Скамейка/1 таблица 3 без базы.py", line 151, in pdf
pdf.output(f'{file_name}.pdf') # Наименование файла
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/fpdf/fpdf.py", line 1065, in output
self.close()
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/fpdf/fpdf.py", line 246, in close
self._enddoc()
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/fpdf/fpdf.py", line 1636, in _enddoc
self._putpages()
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/fpdf/fpdf.py", line 1170, in _putpages
p = self.pages[n].encode("latin1") if PY3K else self.pages[n]
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 82-89: ordinal not in range(256)
new_list=[['Скамейка 1', '', '', '', ''], ['Труба d20х2000', '2.0', 'шт', '3.0', '6.0'], ['Уголок 40х40х3х2000', '4.0', 'шт', '5.0', '20.0']]
item=Скамейка 1
item=
item=
item=
item=
item=Труба d20х2000
item=2.0
item=шт
item=3.0
item=6.0
item=Уголок 40х40х3х2000
item=4.0
item=шт
item=5.0
item=20.0
file_name=Скамейка 1
Process finished with exit code 0
609   0   14:06, 7th December, 2021
Почему не запускается программа? Python + TKINTER
import os
from tkinter import *
import subprocess
from tkinter import ttk
path = "C:/Program Files/Organaizer"
m1 = "C:/Program Files/Organaizer/Monday/Registration"
m2 = "C:/Program Files/Organaizer/Monday/Literature"
m3 = "C:/Program Files/Organaizer/Monday/ITGS"
m4 = "C:/Program Files/Organaizer/Monday/Maths"
t1 = "C:/Program Files/Organaizer/Tuesday/Registration"
t2 = "C:/Program Files/Organaizer/Tuesday/English"
t3 = "C:/Program Files/Organaizer/Tuesday/Literature"
t4 = "C:/Program Files/Organaizer/Tuesday/CS"
t5 = "C:/Program Files/Organaizer/Tuesday/PE"
w1 = "C:/Program Files/Organaizer/Wednesday/Registration"
w2 = "C:/Program Files/Organaizer/Wednesday/CS"
w3 = "C:/Program Files/Organaizer/Wednesday/Psychology"
w4 = "C:/Program Files/Organaizer/Wednesday/English"
h1 = "C:/Program Files/Organaizer/Thursday/Registration"
h2 = "C:/Program Files/Organaizer/Thursday/English"
h3 = "C:/Program Files/Organaizer/Thursday/Maths"
h4 = "C:/Program Files/Organaizer/Thursday/Literature"
h5 = "C:/Program Files/Organaizer/Thursday/ITGS"
f1 = "C:/Program Files/Organaizer/Friday/Registration"
f2 = "C:/Program Files/Organaizer/Friday/CS"
f3 = "C:/Program Files/Organaizer/Friday/Psychology"
f4 = "C:/Program Files/Organaizer/Friday/Grorootg Minds"
try:
os.makedirs(path)
except OSError:
print ("The %s directory could not be created" % path)
else:
print ("The %s directory was successfully created" % path)
try:
os.makedirs(m1)
except OSError:
print ("The %s directory could not be created" % m1)
else:
print ("The %s directory was successfully created" % m1)
try:
os.makedirs(m2)
except OSError:
print ("The %s directory could not be created" % m2)
else:
print ("The %s directory was successfully created" % m2)
try:
os.makedirs(m3)
except OSError:
print ("The %s directory could not be created" % m3)
else:
print ("The %s directory was successfully created" % m3)
try:
os.makedirs(m4)
except OSError:
print ("The %s directory could not be created" % m4)
else:
print ("The %s directory was successfully created" % m4)
try:
os.makedirs(t1)
except OSError:
print ("The %s directory could not be created" % t1)
else:
print ("The %s directory was successfully created" % t1)
try:
os.makedirs(t2)
except OSError:
print ("The %s directory could not be created" % t2)
else:
print ("The %s directory was successfully created" % t2)
try:
os.makedirs(t3)
except OSError:
print ("The %s directory could not be created" % t3)
else:
print ("The %s directory was successfully created" % t3)
try:
os.makedirs(t4)
except OSError:
print ("The %s directory could not be created" % t4)
else:
print ("The %s directory was successfully created" % t4)
try:
os.makedirs(t5)
except OSError:
print ("The %s directory could not be created" % t5)
else:
print ("The %s directory was successfully created" % t5)
try:
os.makedirs(w1)
except OSError:
print ("The %s directory could not be created" % w1)
else:
print ("The %s directory was successfully created" % w1)
try:
os.makedirs(w2)
except OSError:
print ("The %s directory could not be created" % w2)
else:
print ("The %s directory was successfully created" % w2)
try:
os.makedirs(w3)
except OSError:
print ("The %s directory could not be created" % w3)
else:
print ("The %s directory was successfully created" % w3)
try:
os.makedirs(w4)
except OSError:
print ("The %s directory could not be created" % w4)
else:
print ("The %s directory was successfully created" % w4)
try:
os.makedirs(h1)
except OSError:
print ("The %s directory could not be created" % h1)
else:
print ("The %s directory was successfully created" % h1)
try:
os.makedirs(h2)
except OSError:
print ("The %s directory could not be created" % h2)
else:
print ("The %s directory was successfully created" % h2)
try:
os.makedirs(h3)
except OSError:
print ("The %s directory could not be created" % h3)
else:
print ("The %s directory was successfully created" % h3)
try:
os.makedirs(h4)
except OSError:
print ("The %s directory could not be created" % h4)
else:
print ("The %s directory was successfully created" % h4)
try:
os.makedirs(h5)
except OSError:
print ("The %s directory could not be created" % h5)
else:
print ("The %s directory was successfully created" % h5)
try:
os.makedirs(f1)
except OSError:
print ("The %s directory could not be created" % f1)
else:
print ("The %s directory was successfully created" % f1)
try:
os.makedirs(f2)
except OSError:
print ("The %s directory could not be created" % f2)
else:
print ("The %s directory was successfully created" % f2)
try:
os.makedirs(f3)
except OSError:
print ("The %s directory could not be created" % f3)
else:
print ("The %s directory was successfully created" % f3)
try:
os.makedirs(f4)
except OSError:
print ("The %s directory could not be created" % f4)
else:
print ("The %s directory was successfully created" % f4)
root = Tk()
root.title("Login")
root.resizable(0, 0)
root.configure(bg='black')
root.geometry("910x740")
attempts=0
correctpassword="1234"
entrypass = Entry(root, width=25, textvariable=password, show="*")
entrypass.pack()
def start():
while attempts<3:
if entrypass==correctpassword:
print('Correct.')
altroot = Toplevel(root)
altroot.title("Organaizer")
altroot.resizable(0, 0)
altroot.configure(bg='black')
altroot.geometry('910x740')
def monviewcom():
subprocess.Popen(r'explorer /select,"C:\Program Files\Organaizer\Monday\Registration"')
def tuviewcom():
subprocess.Popen(r'explorer /select,"C:\Program Files\Organaizer\Tuesday\Registration"')
def wedviewcom():
subprocess.Popen(r'explorer /select,"C:\Program Files\Organaizer\Wednesday\Registration"')
def huviewcom():
subprocess.Popen(r'explorer /select,"C:\Program Files\Organaizer\Thursday\Registration"')
def frviewcom():
subprocess.Popen(r'explorer /select,"C:\Program Files\Organaizer\Friday\Registration"')
def mondays():
monles = Toplevel(root)
monles.title("MONDAY")
monles.resizable(0, 0)
monles.configure(bg='black')
monles.geometry('910x740')
monlesson = Frame(monles, width=750, height=600, bg='black')
monlesson.grid(row=0, column=0, padx=1, pady=1)
monregistration = Label(monlesson, text="Registration || 8:20 - 8:40", fg='white', bg='black', font=200, width=85, height=6)
monregistration.grid(row=0, column=0, sticky=S, padx=1, pady=1)
monliterature = Label(monlesson, text="Russian Literature || 10:20 - 11:40", fg='white', bg='black', font=200, width=85, height=6)
monliterature.grid(row=1, column=0, sticky=S, padx=1, pady=1)
monitgs = Label(monlesson, text="ITGS || 11:40 - 12:20 / 13:20 - 14:00", fg='white', bg='black', font=200, width=85, height=6)
monitgs.grid(row=2, column=0, sticky=S, padx=1, pady=1)
monmaths = Label(monlesson, text="Maths || 14:00 - 15:20", fg='white', bg='black', font=200, width=85, height=6)
monmaths.grid(row=3, column=0, sticky=S, padx=1, pady=1)
monview = Button(monlesson, text="View", fg='black', bg='white', font=300, width=85, height=6, command=monviewcom)
monview.grid(row=4, column=0, sticky=S, padx=1, pady=1)
def tuesdays():
tules = Toplevel(root)
tules.title("TUESDAY")
tules.resizable(0, 0)
tules.configure(bg='black')
tules.geometry('910x740')
tulesson = Frame(tules, width=750, height=600, bg='black')
tulesson.grid(row=0, column=0, padx=1, pady=1)
turegistration = Label(tulesson, text="Registration || 8:20 - 8:40", fg='white', bg='black', font=200, width=85, height=5)
turegistration.grid(row=0, column=0, sticky=S, padx=1, pady=1)
tuenglish = Label(tulesson, text="English || 8:40 - 10:00", fg='white', bg='black', font=200, width=85, height=5)
tuenglish.grid(row=1, column=0, sticky=S, padx=1, pady=1)
tuliterature = Label(tulesson, text="Literature || 10:20 - 11:40", fg='white', bg='black', font=200, width=85, height=5)
tuliterature.grid(row=2, column=0, sticky=S, padx=1, pady=1)
tucs = Label(tulesson, text="CS || 11:40 - 12:20 / 13:20 - 14:00", fg='white', bg='black', font=200, width=85, height=5)
tucs.grid(row=3, column=0, sticky=S, padx=1, pady=1)
tupe = Label(tulesson, text="PE || 14:00 - 15:20", fg='white', bg='black', font=200, width=85, height=5)
tupe.grid(row=4, column=0, sticky=S, padx=1, pady=1)
tuview = Button(tulesson, text="View", fg='black', bg='white', font=300, width=85, height=5, command=tuviewcom)
tuview.grid(row=5, column=0, sticky=S, padx=1, pady=1)
def wednesdays():
wedles = Toplevel(root)
wedles.title("WEDNESDAY")
wedles.resizable(0, 0)
wedles.configure(bg='black')
wedles.geometry('910x740')
wedlesson = Frame(wedles, width=750, height=600, bg='black')
wedlesson.grid(row=0, column=0, padx=1, pady=1)
wedregistration = Label(wedlesson, text="Registration || 8:20 - 8:40", fg='white', bg='black', font=200, width=85, height=6)
wedregistration.grid(row=0, column=0, sticky=S, padx=1, pady=1)
wedliterature = Label(wedlesson, text="CS || 8:40 - 10:00", fg='white', bg='black', font=200, width=85, height=6)
wedliterature.grid(row=1, column=0, sticky=S, padx=1, pady=1)
weditgs = Label(wedlesson, text="Psychology || 11:40 - 12:20 / 13:20 - 14:00", fg='white', bg='black', font=200, width=85, height=6)
weditgs.grid(row=2, column=0, sticky=S, padx=1, pady=1)
wedmaths = Label(wedlesson, text="English || 14:00 - 15:20", fg='white', bg='black', font=200, width=85, height=6)
wedmaths.grid(row=3, column=0, sticky=S, padx=1, pady=1)
wedview = Button(wedlesson, text="View", fg='black', bg='white', font=300, width=85, height=6, command=wedviewcom)
wedview.grid(row=4, column=0, sticky=S, padx=1, pady=1)
def thursdays():
hules = Toplevel(root)
hules.title("THURSDAY")
hules.resizable(0, 0)
hules.configure(bg='black')
hules.geometry('910x740')
hulesson = Frame(hules, width=750, height=600, bg='black')
hulesson.grid(row=0, column=0, padx=1, pady=1)
huregistration = Label(hulesson, text="Registration || 8:20 - 8:40", fg='white', bg='black', font=200, width=85, height=5)
huregistration.grid(row=0, column=0, sticky=S, padx=1, pady=1)
huenglish = Label(hulesson, text="English || 8:40 - 10:00", fg='white', bg='black', font=200, width=85, height=5)
huenglish.grid(row=1, column=0, sticky=S, padx=1, pady=1)
humaths = Label(hulesson, text="Maths || 10:20 - 11:40", fg='white', bg='black', font=200, width=85, height=5)
humaths.grid(row=2, column=0, sticky=S, padx=1, pady=1)
huliterature = Label(hulesson, text="Literature || 11:40 - 12:20 / 13:20 - 14:00", fg='white', bg='black', font=200, width=85, height=5)
huliterature.grid(row=3, column=0, sticky=S, padx=1, pady=1)
huitgs = Label(hulesson, text="ITGS || 14:00 - 15:20", fg='white', bg='black', font=200, width=85, height=5)
huitgs.grid(row=4, column=0, sticky=S, padx=1, pady=1)
huview = Button(hulesson, text="View", fg='black', bg='white', font=300, width=85, height=5, command=huviewcom)
huview.grid(row=5, column=0, sticky=S, padx=1, pady=1)
def fridays():
frles = Toplevel(root)
frles.title("FRIDAY")
frles.resizable(0, 0)
frles.configure(bg='black')
frles.geometry('910x740')
frlesson = Frame(frles, width=750, height=600, bg='black')
frlesson.grid(row=0, column=0, padx=1, pady=1)
frregistration = Label(frlesson, text="Registration || 8:20 - 8:40", fg='white', bg='black', font=200, width=85, height=6)
frregistration.grid(row=0, column=0, sticky=S, padx=1, pady=1)
frcs = Label(frlesson, text="CS|| 8:40 - 10:00", fg='white', bg='black', font=200, width=85, height=6)
frcs.grid(row=1, column=0, sticky=S, padx=1, pady=1)
frpsychology = Label(frlesson, text="Psychology || 10:20 - 11:40", fg='white', bg='black', font=200, width=85, height=6)
frpsychology.grid(row=2, column=0, sticky=S, padx=1, pady=1)
frgm = Label(frlesson, text="GM || 14:00 - 15:20", fg='white', bg='black', font=200, width=85, height=6)
frgm.grid(row=3, column=0, sticky=S, padx=1, pady=1)
frview = Button(frlesson, text="View", fg='black', bg='white', font=300, width=85, height=6, command=frviewcom)
frview.grid(row=4, column=0, sticky=S, padx=1, pady=1)
lu = Frame(altroot, width=250, height=200, bg='white')
lu.grid(row=0, column=0, padx=1, pady=1, sticky=N)
tp = Frame(altroot, width=250, height=200, bg='white')
tp.grid(row=0, column=1, padx=1, pady=1, sticky=N)
ru = Frame(altroot, width=250, height=200, bg='white')
ru.grid(row=0, column=2, padx=1, pady=1, sticky=N)
lt = Frame(altroot, width=250, height=200, bg='white')
lt.grid(row=1, column=0, padx=1, pady=1, sticky=N)
md = Frame(altroot, width=250, height=200, bg='white')
md.grid(row=1, column=1, padx=1, pady=1, sticky=N)
rt = Frame(altroot, width=250, height=200, bg='white')
rt.grid(row=1, column=2, padx=1, pady=1, sticky=N)
bt = Frame(altroot, width=250, height=200, bg='white')
bt.grid(row=2, column=1, padx=1, pady=1, sticky=N)
mday = Button(lu, text="MONDAY", fg='black', bg='white', font=150, width=27, height=10, command=mondays)
mday.pack()
tday = Button(tp, text="TUESDAY", fg='black', bg='white', font=150, width=27, height=10, command=tuesdays)
tday.pack()
wday = Button(ru, text="WEDNESDAY", fg='black', bg='white', font=150, width=27, height=10, command=wednesdays)
wday.pack()
thday = Button(lt, text="THURSDAY", fg='black', bg='white', font=150, width=27, height=10, command=thursdays)
thday.pack()
fday = Button(md, text="FRIDAY", fg='black', bg='white', font=150, width=27, height=10, command=fridays)
fday.pack()
saday = Label(rt, text="SATURDAY", fg='black', bg='white', font=150, width=27, height=10)
saday.pack()
sday = Label(bt, text="SUNDAY", fg='black', bg='white', font=150, width=27, height=10)
sday.pack()
altroot.mainloop()
else:
attempts+=1
print('incorrect!')
if attempts==3:
print('too many attempts')
ttt = Button(root, text="Enter", command=start).pack()
root.mainloop()
middleware которое будет возвращать ошибку если за последние n секунд было больше k запросов c одного ip адреса
Здравствуйте! Начал изучать Django, здесь встала задачка как реализовать миддлвер, что бы возвращал исключение если за последние n секунд было больше k запросов c одного ip адреса.
На сколько смог додуматься, код ниже:
Python с нуля: полное руководство для начинающих
Оглавление
1. [Введение в Python] 2. [Установка Python] 3. [Первая программа на Python] 4. [Основы синтаксиса Python] 5. [Типы данных в Python] 6. [Переменные и операторы] 7. [Условные конструкции] 8. [Циклы в Python] 9. [Функции] 10. [Работа со
списками и словарями] 11. [Работа с файлами] 12. [Обработка исключений] 13. [Модули и библиотеки] 14. [Объектно-ориентированное программирование в Python] 15. [Практические проекты для начинающих] 16. [Ресурсы для дальнейшего изучения] 17.
[Заключение]
Введение в Python
Python – это мощный, гибкий и легкий для изучения язык программирования, который стал одним из самых популярных в мире. Созданный Гвидо ван Россумом и впервые выпущенный в 1991 году, Python продолжает расти и развиваться, оставаясь при этом
верным своей философии простоты и читаемости кода.
Почему стоит изучать Python?
1. Простота и читаемость: Синтаксис Python интуитивно понятен и близок к естественному языку, что делает его идеальным для начинающих. 2. Универсальность: Python применяется в веб-разработке, анализе данных, искусственном интеллекте,
научных вычислениях и многих других областях. 3. Большое сообщество: Огромное количество разработчиков по всему миру создают библиотеки и инструменты, расширяющие возможности языка. 4. Высокий спрос на рынке труда: Специалисты по Python
высоко ценятся работодателями во многих отраслях. В этом руководстве мы пройдем путь от установки Python до создания ваших первых программ и понимания ключевых концепций языка.
Установка Python
Прежде чем начать программировать на Python, необходимо установить его на ваш компьютер. Python доступен для всех основных операционных систем: Windows, macOS и Linux.
Для Windows:
1. Посетите официальный сайт Python (python.org). 2. Скачайте последнюю версию Python для Windows. 3. Запустите установщик и следуйте инструкциям. Убедитесь, что отмечен пункт "Add Python to PATH". 4. После установки откройте командную
строку и введите `python --version`, чтобы проверить успешность установки.
Для macOS:
1. На современных версиях macOS Python может быть уже установлен. Проверьте это, открыв Terminal и введя `python --version`. 2. Если Python не установлен или вы хотите обновить его, скачайте последнюю версию с официального сайта. 3.
Запустите установщик и следуйте инструкциям.
Для Linux:
На большинстве дистрибутивов Linux Python уже предустановлен. Если нет, вы можете установить его через менеджер пакетов: - Для Ubuntu или Debian: `sudo apt-get install python3` - Для Fedora: `sudo dnf install python3` После установки вы
готовы начать свое путешествие в мир Python!
Первая программа на Python
Традиционно, первой программой на любом языке программирования является "Hello, World!". Давайте создадим эту программу на Python. 1. Откройте любой текстовый редактор (например, Notepad++ для Windows или TextEdit для macOS). 2. Введите
следующий код:
python
print("Hello, World!")
3. Сохраните файл с расширением `.py`, например, `hello_world.py`. 4. Откройте командную строку или терминал, перейдите в директорию с вашим файлом и выполните команду:
python hello_world.py
Вы должны увидеть вывод: `Hello, World!` Поздравляем! Вы только что написали и запустили свою первую программу на Python.
Основы синтаксиса Python
Python известен своим чистым и читаемым синтаксисом. Вот несколько ключевых особенностей: 1. Отступы: Python использует отступы для определения блоков кода. Обычно используется 4 пробела. 2. Комментарии: Однострочные комментарии начинаются
с `#`, многострочные заключаются в `'''` или `"""`. 3. Переменные: В Python не нужно объявлять тип переменной.
python
x = 5 # это целое число
y = "Hello" # это строка
4. Операторы присваивания: Используйте `=` для присваивания значений. 5. Операторы сравнения: `==`, `!=`, `<`, `>`, `<=`, `>=`
6. Логические операторы: `and`, `or`, `not` Понимание этих основ поможет вам начать писать простые программы и
подготовит к изучению более сложных концепций.
Типы данных в Python
Python имеет несколько встроенных типов данных. Вот основные из них: 1. Числа: - Целые числа (int): `x = 5` - Числа с плавающей точкой (float): `y = 3.14` - Комплексные числа: `z = 1 + 2j` 2. Строки (str):
python
name = "Python"
multiline = """Это
многострочная
строка"""
3. Списки (list):
python
fruits = ["яблоко", "банан", "апельсин"]
4. Кортежи (tuple):
python
coordinates = (10, 20)
5. Словари (dict):
python
person = {"name": "Иван", "age": 30}
6. Множества (set):
python
unique_numbers = {1, 2, 3, 4, 5}
7. Логический тип (bool):
python
is_python_fun = True
Понимание типов данных критически важно для эффективного программирования на Python.
Переменные и операторы
Переменные
В Python переменные создаются при первом присваивании:
python
x = 5
name = "Alice"
is_student = True
Python динамически типизирован, что означает, что вам не нужно явно указывать тип переменной.
Операторы
Python поддерживает различные типы операторов: 1. Арифметические операторы: `+`, `-`, `*`, `/`, `//` (целочисленное деление), `%` (остаток), `` (возведение в степень)
python
x = 10
y = 3
print(x + y) # 13
print(x / y) # 3.3333...
print(x // y) # 3
print(x % y) # 1
print(x y) # 1000
2. Операторы сравнения: `==`, `!=`, `<`, `>`, `<=`, `>=`
python
x = 5
y = 10
print(x == y) # False
print(x < y) # True
3. Логические операторы: `and`, `or`, `not`
python
x = 5
y = 10
z = 15
print(x < y and y < z) # True
print(x > y or y > z) # False
print(not x == y) # True
4. Операторы присваивания: `=`, `+=`, `-=`, `*=`, `/=`, `%=`, `=`, `//=`
python
x = 5
x += 3 # эквивалентно x = x + 3
print(x) # 8
Понимание этих операторов позволит вам выполнять различные операции с данными в ваших программах.
Условные конструкции
Условные конструкции позволяют программе принимать решения на основе определенных условий. В Python основной условной конструкцией является `if-elif-else`.
Оператор if
python
age = 18
if age >= 18:
print("Вы совершеннолетний")
Оператор if-else
python
age = 16
if age >= 18:
print("Вы совершеннолетний")
else:
print("Вы несовершеннолетний")
Оператор if-elif-else
python
score = 75
if score >= 90:
print("Отлично")
elif score >= 80:
print("Хорошо")
elif score >= 70:
print("Удовлетворительно")
else:
print("Нужно улучшить результат")
Тернарный оператор
Python также поддерживает тернарный оператор для краткой записи простых условий:
python
age = 20
status = "совершеннолетний" if age >= 18 else "несовершеннолетний"
print(status) # совершеннолетний
Условные конструкции - это мощный инструмент, позволяющий создавать более сложную логику в ваших программах.
Циклы в Python
Циклы позволяют выполнять код многократно. В Python есть два основных типа циклов: `for` и `while`.
Цикл for
Цикл `for` используется для итерации по последовательности (например, списку, кортежу, строке) или другому итерируемому объекту.
python
# Итерация по списку
fruits = ["яблоко", "банан", "апельсин"]
for fruit in fruits:
print(fruit)
# Использование range()
for i in range(5):
print(i) # Выведет числа от 0 до 4
Цикл while
Цикл `while` выполняется, пока условие истинно.
python
count = 0
while count < 5:
print(count)
count += 1
Операторы break и continue
- `break` используется для выхода из цикла досрочно. - `continue` используется для перехода к следующей итерации цикла.
python
for i in range(10):
if i == 3:
continue # Пропустить 3
if i == 7:
break # Выйти из цикла при достижении 7
print(i)
Цикл for с else
Python позволяет использовать `else` с циклом `for`. Блок `else` выполняется, если цикл завершился нормально (без `break`).
python
for i in range(5):
print(i)
else:
print("Цикл завершен нормально")
Циклы - это фундаментальная концепция в программировании, позволяющая эффективно обрабатывать данные и автоматизировать повторяющиеся задачи.
Функции
Функции в Python - это блоки кода, которые выполняют определенную задачу. Они позволяют структурировать код, делая его более читаемым и повторно используемым.
Определение функции
python
def greet(name):
return f"Привет, {name}!"
# Вызов функции
message = greet("Алиса")
print(message) # Выведет: Привет, Алиса!
Параметры функции
Функции могут принимать параметры, которые позволяют передавать в них данные.
python
def add(a, b):
return a + b
result = add(5, 3)
print(result) # Выведет: 8
Параметры по умолчанию
Вы можете задать значения параметров по умолчанию:
python
def greet(name, greeting="Привет"):
return f"{greeting}, {name}!"
print(greet("Боб")) # Выведет: Привет, Боб!
print(greet("Алиса", "Здравствуй")) # Выведет: Здравствуй, Алиса!
Произвольное количество аргументов
Python позволяет функциям принимать произвольное количество аргументов:
python
def sum_all(*args):
return sum(args)
print(sum_all(1, 2, 3, 4)) # Выведет: 10
Лямбда-функции
Лямбда-функции - это небольшие анонимные функции, которые могут иметь любое количество аргументов, но только одно выражение.
python
square = lambda x: x 2
print(square(5)) # Выведет: 25
# Использование лямбда-функции с встроенными функциями
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x 2, numbers))
print(squared_numbers) # Выведет: [1, 4, 9, 16, 25]
Области видимости и глобальные переменные
Python использует области видимости для определения доступности переменных.
python
x = 10 # Глобальная переменная
def function():
global x # Объявляем, что хотим использовать глобальную переменную
x = 20 # Изменяем глобальную переменную
print(x)
function()
print(x) # Выведет: 20
Функции - это основа модульного программирования. Они позволяют разбивать сложные задачи на более мелкие, управляемые части, что делает код более организованным и легким для понимания.
Работа со списками и словарями
Списки и словари - это мощные структуры данных в Python, которые позволяют эффективно хранить и обрабатывать коллекции элементов.
Списки
Списки - это упорядоченные коллекции элементов, которые могут быть разных типов.
python
# Создание списка
fruits = ["яблоко", "банан", "апельсин"]
# Добавление элемента
fruits.append("груша")
# Доступ к элементам
print(fruits[0]) # Выведет: яблоко
# Срезы
print(fruits[1:3]) # Выведет: ['банан', 'апельсин']
# Перебор элементов
for fruit in fruits:
print(fruit)
# Списковое включение
squares = [x2 for x in range(5)]
print(squares) # Выведет: [0, 1, 4, 9, 16]
Словари
Словари - это неупорядоченные коллекции пар ключ-значение.
python
# Создание словаря
person = {"name": "Иван", "age": 30, "city": "Москва"}
# Доступ к значениям
print(person["name"]) # Выведет: Иван
# Добавление новой пары ключ-значение
person["job"] = "программист"
# Перебор словаря
for key, value in person.items():
print(f"{key}: {value}")
# Проверка наличия ключа
if "age" in person:
print("Возраст указан")
Работа с файлами
Работа с файлами - важная часть многих программ. Python предоставляет простые и эффективные способы чтения и записи файлов.
Чтение файла
python
# Чтение всего файла
with open("example.txt", "r") as file:
content = file.read()
print(content)
# Чтение файла построчно
with open("example.txt", "r") as file:
for line in file:
print(line.strip())
Запись в файл
python
# Запись в файл
with open("output.txt", "w") as file:
file.write("Привет, мир!")
# Добавление в конец файла
with open("output.txt", "a") as file:
file.write("\nЭто новая строка.")
Использование конструкции `with` гарантирует, что файл будет правильно закрыт после завершения работы с ним.
Обработка исключений
Обработка исключений позволяет вашей программе элегантно справляться с ошибками и непредвиденными ситуациями.
python
try:
number = int(input("Введите число: "))
result = 10 / number
print(f"Результат: {result}")
except ValueError:
print("Вы ввели не число.")
except ZeroDivisionError:
print("Деление на ноль недопустимо.")
except Exception as e:
print(f"Произошла ошибка: {e}")
else:
print("Операция выполнена успешно.")
finally:
print("Этот блок выполняется всегда.")
Модули и библиотеки
Модули позволяют организовывать код и повторно использовать функциональность. Python имеет богатую стандартную библиотеку и тысячи сторонних пакетов.
Импорт модулей
python
# Импорт всего модуля
import math
print(math.pi)
# Импорт конкретной функции
from random import randint
print(randint(1, 10))
# Импорт с псевдонимом
import datetime as dt
print(dt.datetime.now())
Создание собственных модулей
Вы можете создавать собственные модули, просто сохраняя функции в отдельных файлах .py.
python
# В файле mymodule.py
def greet(name):
return f"Привет, {name}!"
# В основном файле
import mymodule
print(mymodule.greet("Алиса"))
Объектно-ориентированное программирование в Python
ООП - это парадигма программирования, которая использует "объекты" для моделирования реальных или абстрактных понятий.
Определение класса
python
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
return f"{self.name} говорит Гав!"
# Создание объекта
my_dog = Dog("Бобик")
print(my_dog.bark()) # Выведет: Бобик говорит Гав!
Наследование
python
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Cat(Animal):
def speak(self):
return f"{self.name} говорит Мяу!"
my_cat = Cat("Мурка")
print(my_cat.speak()) # Выведет: Мурка говорит Мяу!
Практические проекты для начинающих
Лучший способ изучить программирование - это практика. Вот несколько идей для проектов: 1. Консольный калькулятор 2. Игра "Угадай число" 3. Программа для ведения списка дел (To-Do List) 4. Простой веб-скрапер с использованием библиотеки
requests 5. Анализатор текста (подсчет слов, букв и т.д.)
Ресурсы для дальнейшего изучения
1. Официальная документация Python (python.org) 2. Книга "Python Crash Course" by Eric Matthes 3. Онлайн-курсы на платформах Coursera, edX, Udemy 4. Сайт PyPI для изучения доступных пакетов 5. GitHub для изучения открытых проектов на Python
Заключение
Python - это мощный и гибкий язык программирования, который отлично подходит как для новичков, так и для опытных разработчиков. Начав с основ, вы можете постепенно углубляться в более сложные темы, такие как обработка данных, машинное
обучение или веб-разработка. Помните, что ключ к успеху в программировании на Питон - это постоянная практика и непрерывное обучение. Не бойтесь экспериментировать, задавать вопросы и работать над реальными проектами.
2599   0   13:58, 18th June, 2022
Помогите решить задачу на python с codeforces
Назовем два числа xx и yy похожими, если они имеют одинаковую четность (одинаковый остаток при делении на 22), или если |x−y|=1|x−y|=1. Например, в каждой из пар (2,6)(2,6), (4,3)(4,3), (11,7)(11,7) числа похожи между собой, а в парах (1,4)(1,4), (3,12)(3,12) — нет.
Вам дан массив aa из nn (число nn четно) целых положительных чисел. Проверьте, существует ли такое разбиение массива на пары, что каждый элемент массива принадлежит ровно одной паре, и в каждой паре числа похожи между собой.
Например для массива a=[11,14,16,12]a=[11,14,16,12] существует разбиение на пары (11,12)(11,12) и (14,16)(14,16). Числа в первой паре похожи, потому что модуль их разности равен единице, а во второй паре — потому что они оба четные.
Входные данные
В первой строке записано одно целое число tt (1≤t≤10001≤t≤1000) — количество наборов тестовых данных в тесте. Далее следуют tt наборов тестовых данных.
Каждый набор задается двумя строками. В первой строке записано четное целое число nn (2≤n≤502≤n≤50) — длина массива aa.
Во второй строке записано nn целых чисел a1,a2,…,ana1,a2,…,an (1≤ai≤1001≤ai≤100).
Выходные данные
Для каждого набора тестовых данных выведите:
- YES, если разбиение существует;
- NO, если разбиения не существует.
Буквы в словах YES и NO можно выводить в любом регистре.
Пример
входные данные
7 4 11 14 16 12 2 1 8 4 1 1 1 1 4 1 2 5 6 2 12 13 6 1 6 3 10 5 8 6 1 12 3 10 5 8
выходные данные
YES NO YES YES YES YES NO