Вчера в питон треде спрашивали, как записать звук с микро для распознавания речи в дальнейшем. Сегодня на хабре это habrahabr.ru/post/263423/. Совпадение?
Есть задача найти в тексте комбинацию символов, вернуться на несколько строк вверх и обработать ее по заданной функции. Т.е., существует текст вида:
123456 7890 123456 7890 3456 234
Положим, что 234 - искомый ключ, 3456 - строка, которую надо обработать. Сейчас реализую эту задачу через list = file.read() list.split("\n") Дальше нахожу строку n "234" и возвращаюсь по списку на строку list[n-1] и после этого ее обрабатываю. Очевидно, что помещать весь файл в list неразумно. Как можно обойтись без списка?
>>520036 >>520033 С .readlines() не вижу разницы - все равно весь файл в списке, а .readline() не догоняю как предыдущую строку посмотреть. Благодарю за наводку, буду читать про эти методы.
Вопрос не столько по питону, сколько, наверное, по ООП и архитектуре в целом. Допустим, мне нужно создать некое древо элементов, где у родителя есть пара детей, а у них потом ещё. Как правильно сделать возможность добраться от ребёнка к родителю? В голову приходит два способа: 1. Хранить ссылку на объект родителя 2. Хранить идентификатор этого родителя, и иметь в самом-самом высшем элементе-боге методы для получения нужного объекта по его идентификатору?
Т.е. class Parent <…>
class Child(object): def __init__(self, parent): self.parent = parent
print(child.parent)
или class SuperParent(object): def __init__(self): self.first_generation = {}
def find_parent(self, search_id): for id in self.first_generation: if id == search_id: return self.first_generation[id]
class Parent <…>
class Child(object): def __init__(self, parent_id) self.parent_id
print(super_parent.find_parent(child.parent_id))
Я понимаю, что перебор каждый раз это довольно затратно, если часто делается, но меня смущают эти замкнутые (цикличые, круговые?) референсы родителя к ребёнку, как вообще к этому относятся?
>>520076 Лол, я тут немного обосрался. В общем, функцию find_parent заменить на что-то вроде: def find_second_generation(self, id): for child in self.first_generation.values(): if id in child.children: return child.children[id]
>>520092 Так это вызов суперкласса, а объекты друг от друга ничего не наследуют, просто связаны друг с другом должны быть, как граф — древесная топология, в общем. Откуда ж ему там знать, что этот объект в каком-то там словаре другого объекта находится.
Возможно, родитель и ребёнок не лучший выбор слов был.
В учебниках даже обобщенных примеров похожих на это задание не нашел. Целиком пролистал. Задание вступительное на Codewars: The code does not execute properly. Try to figure out why. def multiply(a, b): a * b Что тут делать надо?
>>520231 Максимально доступно - ты даже не представляешь как наебешься пытаясь запустить все на венде. И не только питон и его фреймворки. Возьми копеечный впс с линуксами и будь белым человеком.
При этом питон, кстати, еще более-менее юзабелен на венде. В отличи от всяких.
Прочел «Программирование на Python 3» М. Саммерфилда, что читать дальше? Когда можно будет приступать к практике? Умею выводить на экран "Hello World" посредством print.
>>520289 Впс дальновидней и удобней, и не только для хостинга велосипедов. Универсальность жи. Но если мамка не дает можно и виртуалочку на локалхосте.
>>520301 Ну какбы бля, обычно читают и сразу практикуют. Переписывают на свой лад код из учебников, решают задачи если есть, чешут что-то свое, изобретают ненужные велосипеды. А ты что делал?
Решил тут изучить парсинг на lxml.html, на примере хабра вытаскиваю ссылки статей: page=parse('http://habrahabr.ru/').getroot() hrefs=page.cssselect("a.post_title") for row in hrefs: print(row.get("href"))
Как по такому же алгоритму вытащить названия статей? Они вроде не привязаны к ксс-селкторам, поэтому не совсем понимаю, как к ним обращаться.
>>520430 > И что значит "гуй руками"? В gtk можно нарисовать формочки в glade, сохранить их в xml и потом подгружать в коде, впесто того чтобы генерить все контролы из кода. В qt вроде тоже так.
>>520440 Аргументируй плюсы использования хмлки вместо кода, или иди нахуй. Алсо, его тоже можно отдельным модулем подгрузить, но так редактировать проще, чем шариться в ебучей хмлке.
>>520442 Что будет когда ты захочешь изменить этот гуй? В случае xmlки ты просто её изменишь. А если ты используешь генерацию кода придется генерировать код заново и как-то мерджить с уже написанным тобой. Это гемор, особенно на более сложных проектах.
>>520430 Отступы в 4 пробела, есть qtdesigner и модуль uic. Рисуешь в дизайнере считываешь ui файл в проге. >>520442 Всё редактирование надо делать в дизайнере. Что можно такого отредактировать в хмл, чего нельзя в дизайнере
>>520445 Вынесу все в модули и импортирую где нужно. Так же как ты будешь грузить свои хмлки.
>>520446 >Что будет когда ты захочешь изменить этот гуй? Изменю этот гуй. Я могу вообще без дизайнера все это ручками собрать, нихуя там сложного нет. В общем, никаких проблем не вижу. И если бы это был не одноформочный дампер, я бы сделал по-другому, но конкретно в этом случае не имеет смысла.
>>520454 Т.е. тру именно использовать .ui файлы? Это же мышкодрочерство, разве для учебы не стоит разобраться как все это изнутри работает? Как генерируется код, как к чему обращаться?
>>520457 Да, тру. Но и как генерируются код ты знать должен конечно. Часто в реальных проектах совмещаются оба подхода. Например часть элементов однотипная и её удобно генерировать в коде, в цикле. Но это всё внутри окошка, менюшек и прочего которые в ui файле сохранены.
>>520493 Я ж мамкин корзинка, а тут столько внимания сразу. Если серьезно, то на говнокоде я пролистал первые 3 страницы и не нашел питона. Да и хотел в общем то небольшие проекты, но что бы понимать суть работы (их) и при этом не перенять чужих ошибок
>>519548 Пишу проект для работы, нужна мелкая помощь. Есть 3 вида активного сетевого оборудования, подключаюсь по телнету к ним и сохраняю ответ в файл(10.x.x.x.txt, ~20-400кб), получается около 1000 таких файлов, а их еще парсить надо. Может быть кто-то подскажет как сделать более проще?
>>520547 Подключайся по телнету из питона https://docs.python.org/2/library/telnetlib.html и парсь по ходу чтения по сети. Но вообще я не думаю что на современном компьютере проблема это всё распарсить, ты преждевременной оптимизацией занимаешься.
>>520552 Во первых почему вместо for id in self.first_generation: if id == search_id: return self.first_generation[id] не просто return self.first_generation.get(search_id,None)
>>520554 Я там в следующем посте (>>520087) подправил. Имелся в виду поиск внуков
>>520556 >2 Спасибо, гляну. Ну проблема просто может возникнуть, если там удалять чего нужно будет, наверняка где-то что-то не так пойдёт, если родителя удалю, а ребёнок ссылку на него до сих пор держит, но ни до ребёнка, ни до родителя я ведь добраться уже не смогу. Это же только во всяких там с и жавах gc нормально с этим борется, насколько я знаю.
Посоны, посоветуйте как лучше получить полные пути к файлам в каталоге. Чет давно не писал на питоне, сижу втыкаю. Есть каталог ~/Pictures/2ch/, в нем gif, webm например. Надо получить полные пути ко всем файлам в 2ch/
>>520590 Чтобы файлы в одном каталоге перебрать os.listdir есть Чтобы во всех подкаталогах тоже - os.walk да Или map(os.path.abspath,map(str.strip,os.popen('find Pictures/frog/').readlines()))
>>520604 getcwd() возвращает путь к текущей рабочей папке. Это если бы ты просто из "/home/vasya/python/" запускал скрипт, то этой командой получил бы этот самый путь. А так как ты уже в аргументах абсолютный передаёшь, то getcwd() тебе не нужно.
Поцаны, как в третьем питоне получить значение текстового поля? http://pastebin.com/uG0h7xwx (функция do_POST)На данный момент лучший вывод данных который смог получит это "message" test text ------WebKitFormBoundarynPFqHgcyr9jwvgAl-- при введенном "test text" в поле, хуй знает как выделить из этого само сообщение. При вводе кириллицы выдает ошибку. Во втором питоне есть cgi.parse_multipart(), а в третьем она не работает, при этом появилась ебля с байтами, постоянно нужно декодировать и кодировать данные. Или я копаю совсем не в ту сторону и есть изящные способы в третьем питоне?
SQLALCHEMY_DATABASE_URI и SQLALCHEMY_MIGRATE_REPO - это путь к файлу с базой данных и папка, где будут храниться файлы SQLAlchemy-migrate. В оригинале речь идёт о втором питоне и более ранних версиях фласка и алхимии ( http://habrahabr.ru/post/196810/ ), я по ходу действия адаптирую к третьему питону и современным версиям всего остального.
Конкретно в этом примере проблема с [code]tmp_module.meta[/code], Консолька говорит, что у модуля такого атрибута не бывает. Подскажите, пожалуйста, как получить эти данные [code]tmp_module.meta[/code] и [code]db.metadata[/code], которая идёт следующим аргументом. Подозреваю, с ней будет такая же проблема. Или как создать аналогичный скрипт миграции кроме метода api.make_update_script_for_model. Вечер гугления результатов не дал.
>>520709 А тут я не в курсе, сорри. Никогда cgi не изпользовал в py. Попробуй гуглить. Спроси в development на linux.org.ru там шарят лучше чем в этом чате
>>520742 Я нашел точно такую же проблему на stackoverflow, но никто ничего не ответил. В общем не советую проходить курс fullstack foundations на udacity, если вы используете python 3. Там еще зачем то перед фреймворком flask идет BaseHTTPRequestHandler. Пойду лучше сразу flask изучать.
>>520805 Благословенны пути твои, о мужик! Я, правда, сравнивал ранее, но не находил необъяснимых отличий, несмотря на всю внимательность. Оказалось, что метод тупого копипаста помог запустить скрипт. Чудеса.
Для этого проекта - Спайдер. Проблема скрывалась в функции exec() для второго было exec old_model in tmp_module.__dict__ в то время как для третьего - exec(old_model, tmp_module.__dict__) Казалось бы очевидно, но я почему-то себя убедил, что проблему нужно искать либо в методе api.create_model, либо в api.make_update_script_for_model, вот и проглядел. Зато теперь примерно понимаю, как они работают.
>>520660 Так а почему именно ты не можешь получить текст? self.rfile.read(length) что возвращает? Зачем там urllib.parse_qs (что за cgi и чего там эта форма твоя возвращает я не в курсе, поэтому просто спрашиваю)? >При вводе кириллицы выдает ошибку Чинится легко — сделай глобальную переменную ВКЛЮЧИТЬ_РУССКИЙ = True. Пиши что за ошибка, черт возьми. Если про юникод, значит нужно u'русский текст'.encode('utf-8')
>Если про юникод, значит нужно u'русский текст'.encode('utf-8') А если вот так блеять? 7 англ спермерочка если что. ньюфаг который уже ныл про это ранее
>>520826 Там ошибка не столько с юникодом, сколько с ебанутостью всей системы, поэтому то что работало в второй не работает/отсутствует в третьей. >>520829 Правой кнопкой клацни и поменяй кодировку файла на юникод. Асло какие стоит попробывать IDE, кроме пичарма.
>>520868 У меня винда 8 и пичарм, если я просто напишу что нибудь на русском, то у меня это отобразится. Странно что у тебя байты даже не отображаются. Не старый амд случаем?
Вообще, проблема в UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-2: character maps to <undefined> в интернетах чтото про нее кукарекают, а как решить не говорят
>>521136 >F.A.Q. >В: Хочу стать программистом, какой язык учить? >О: Английский + Ruby/Python
От английского ты никуда не денешься. Чем раньше начнешь свободно читать документацию тем лучше. А без практики ты никогда не начнешь. Иди читай, блять.
>>521136 О каких терминах всегда все говорят, когда заходит речь о документации на английском? Почти всё то, что там упоминается, ты так или иначе уже всё равно английскими словами называл, а если чего и нет, то это самые обычные слова, просто в другом контексте применяются. Не философию какую-нибудь читаешь же.
С синтаксисом и багамифичами питона нужно ознакомиться, а так был опыт кое-какой с пхп, из нормальных фреймворков заметил только Laravel, уровень организации разработки почти как у джанги/фласка, но нахуй этот весь пхп. После беглого ознакомления с фласком, предел мечтаний пхпшника - ларавел, показался зашкваром. Понравилось как просто можно на питон фреймворках намордник нацепить, хуяк-хуяк и готово. Ладно, пойду изучать глубже.
>>521136 Всё равно придется всё на англельском читать. Если ты по самому питону книжку ещё допустим найдешь, то ко всяким библиотекам и прочему доки только на ангельском.
>>521401 >перевести в unixepoch если точкой отсчёта брать вчера в 15:15? Чего несешь? Unixtime/unixepoch - количество секунд прошедших с 1 января 1970. Вся суть в этой точке отсчета, а ты ее заменить хочешь.
>>521561 Да, заметил такую тенденцию на рынке с джанго. Планирую использовать в личных целях. Какие недостатки имеет фласк, по сравнению с джанго, которые нельзя исправить модулями? Раньше писали то что у фласка небыло админки, но сейчас есть https://flask-admin.readthedocs.org/en/latest/
>>521575 > низким порогом вхождения. Я так понимаю flask использует sqlalchemy, это очень сложная и навороченная библиотека, мощная конечно, но. ORM django намного проще в освоении и умеет делать то, что достаточно для большинства проектов.
Хочу похвастаться перед одноклассниками написанным хеловордом, но они слишком тупые, чтобы поставить у себя питон и все необходимые библиотеки. Если ли способ собрать всё в 1 ехе файл для домохозяек?
Есть одна проблема. Суть такова: 1) Есть модуль globals.py там я храню целочисленную переменную-счётчик foo. 2) Модуль bar.py туда считает. 3) Модуль baz.py должен в свою очередь от туда брать значение счётчика и предпринимать определённые действия. НО) Когда я в baz.py импортирую globals.py получаю в качестве значения foo то, что в globals.py записано по дефолту, а не то что я выставлял в bar.py для foo. Почему так получается и как белые люди делают глобальные переменные, которые можно менять из любого модуля?
>>521611 При каждом новом импорте будет браться дефолтное значение, промежуточные результаты работы скриптов сами собой никуда не сохраняются. Тебе нужно их куда-то записывать, в зависимости от масштабности задачи это могут быть либо текстовые файлы, либо базы данных, либо в оперативку (мемкеш). Есть модули для экспорта переменных в файлы, но не помню как называются, можешь погуглить, или тут кто напомнит.
Я тред открывал на тему, что у меня не парсится текст через Selenium. Было пять ответов и модератор тред несправедливо закрыл. Несправедливо, потому что все ответы оказались неверными. Было высказано предположение, что текст генерируется у меня на js. И нужно смотреть в net обращение через к ajax. Это оказалось неправильным. Нету там аджакса. Модератор предложил использовать официальный api и даже привел пример как у него замечательно работает. Однако модератор не обратил внимание, что через api ему приходит неправильное описание. Короче, негласно меня назвали лохом и тред закрыли. Оказалось. Что если разметка в верстке не имеет атрибут text к тексту, то текст нужно искать не через атрибут. То есть обычно делают так, когда работают с циклом print i.get_attribute('"text") но если атрибута в разметке нет, то надо так print i.text
>>521695 Я про парсер beatiful soap. В рунете много с ним туторилов и русские кодеры начинают с него. В то время, как парсеры давно уже используют вместо него scrapy или похожий инструмент от русского разработчика grab:spider
>>521696 Пишу на 2.7 Со всеми задачами справляется прекрасно. Знаю третий, но практически его не использую, пока не нужно. Язык начал изучать сравнительно недавно и сознательно выбрал изучение второй версии. И не прогадал.
>>521701 >Язык начал изучать сравнительно недавно и сознательно выбрал изучение второй версии. И не прогадал. Проиграл. Ты в курсе что через 4 года вторая ветка - все?
>>521717 Не похуй ли, кто там чего использует? Или вы в погоне за модой только модули и выбираете? Справляется с задачей быстро, правильно и удобно — норм. Вот чего такого в спайдере или скрапи нет, что есть в аиохттп или беаутифул супе, что прям нужно говном поливать пользователей первых двух?
Решаю задачу про поиск квадратиков в матрице, но не суть Есть вот такая корявая конструкция, не по петоновски совсем. Да и работает она не так как мне хочется, не понимаю я петоновского and if (([start, start + 1] and [start + 1, start + 2] and [start + 2, start + 6] and [start + 6, start + 10] and [start + 9, start + 10] and [start + 8, start + 9] and [start + 4, start + 8] and [start, start + 4]) in table):
Проще говоря, нужно проверить есть ли конкретные графы в матрице, причем есть ли они все
>>521821 Проще говоря нужен питоновский спобоб проверки наличия нескольких елементов списка. Как впринципе реализовать я знаю, хочу узнать как это сделать по питоновски
>>515922 http://pastebin.com/uXGWQgCT Решил не переписывать имеющееся говно, ибо и так работает, зато когда начал писать новый парсер -- сделал по новой технологии. Чекните, стало ли лучше.
Сап, ананасы. Я делаю карточную игру на tornado (клиент-серверное взаимодействие через вебсокет). Сейчас текущее положение дел на игральном столе хранится в монге. Т.е. каждое действие игрока сопровождается вытаскиванием документа, его изменением и последующим апдейтом. Так вот я подумал, не проще ли все данные об игре хранить в питоновском классе? Много памяти это жрать не должно, т.к. данных немного, а прирост в производительности за счет отброса монги должен быть значительный, да и обработка данных станет много проще ("Simple is better than complex."). Поделись своими мыслями на этот счет, анон.
>>521953 Я делал когда-то игру карточную и все данные хранил прямо в коде. Нафига тут бд вообще? На случай перезапуска сервера можешь сохранять их через pickle Правда я использовал twisted вместо tornado но это одна фигня.
>>521953 Тем более как ты к монге обращаешся? Асинхронно? Тогда это пиздец усложняет код. Синхронно? Тогда твоя игра будет поддерживать очень мало игроков и всё будет тормозить.
>>521954 БД чтобы можно было запустить несколько инстансов приложения, но необходимости в этом я пока не вижу. А так спасибо за ответ, думаю таки бд выбросить.
>>521962 Асинхронный код сможет и в одном потоке держать дофига игроков, если ты туда не напихаешь синхнонных обращений к файлам/сети конечно или каких-то адских вычислений(которых в просто игре нет). Если у тебя будет очень-очень много игроков ты можешь иметь несколько изолированных истансов друг от друга и играков по ним разбрасывать. Тебе же по сути главное чтобы игроки которые "за одним столом" висели на одном сервере вот и всё.
Решил сделать небольшое веб-приложение на джанге. Хотел спросить совета. Вот такая схема бд пойдёт? В приложении будут фотографии текстуры в реальном мире, её описание и фото её рендера. Смущает что для каждого просмотра текстуры придётся джойны делать. В общем прошу совета.
>>521974 Я так понимаю для одной текстуры может быть много рендеров и фото? Тогда всё правильно. В моделяъ Render и Photo прописываешь texture = models.ForeignKey(blabla
>>521974 В джоинах ничего плохого нет, это реляционная модель данных, тут они и должны быть. Если хочешь это немного оптимизировать то глянь на http://django-cachalot.readthedocs.org/en/latest/ правда на уровне БД запросы тоже по-идее кэшируются.
https://github.com/rchubarkin/super-dummy-blog Этого достаточно, чтобы показать на собеседовании, что я не совсем ноль? При условии, что клиент будет дописан до адекватного состояни. Опыта нету, на собеседования не ходил.
Я вот заметил что многие пхп-поделки распространяются с внешними библиотеками/фреймворками в каталоге собственно проекта. Т.е. сразу в зипе качается все, что нужно. Ничего не доустанавливается.
С джангой так можно? Какие подводные камни? Решето через пару лет?
>>522232 А зачем таскать все либы туда сюда? Можно написать скрипт в 2 строчки, который будет создавать тебе виртуальное окружение и устанавливать нужные либы в него. Ну или докер, например.
>>522232 Можно всё сложить прямо в папку с проектом.(или любую другую и прописать её в pythonpath) Но лучше использовать 1)virtualenv 2)pip с requirments.txt Или какой-нить docker
>>522232 А насчет решета - надо привязываться к конкретным версиям библиотек всё равно потому что более новые могут быть несовместимы с твоим проектом. И переходить на новые версии ручками следя чтобы ничего не сломалось.
>>521739 скрапи — пифон 2.7 граб — multicurl В 2015 в пифоне уже есть свой луп и своя асинхронность, которые нативны. Нет причины ковырять это древнее говно с пачкой архаичных зависимостей.
Ананимасы, рассказывайте, как вы организуете разработку для своих пет-прожектов на Пифоне. Я хочу чтобы мне линтило и гонялись какие-нибудь тесты. До написания тестов я пока еще не дошел, а вот линтинг нужен. В емаксе у меня линтер стоит, но хотелось бы еще чтобы был какой-нибудь общий запуск (думаю, на пре-коммит хук повесить), только не придумал пока удобного способа показа. Хотел бы какой-нибудь чарт и удобные нотификации.
Да и вообще линтеры какая-то хуйня, там проверки уровня детского сада. Мне б хотя бы как в Pycharm там тоже хуйня, но лучше нет.
>>522378 А если у тебя ебнется в рантайме с каким-нибудь not iterable или not defined? Банальные проверки же лучше иметь, особенно когда разные куски пишешь.
>>522381 Ну ебнется так ебнется, поправим. Когда проект не очень большой я больше времени проебываю обмазывая его всякими юнит-тестами, чем собственно за проектом. Нахуй так надо?
>>522377 Если ты так любишь линт, то сделай его проверку on save с подсветкой проблемных строк. Тоже самое с pep8. Для тестов используй травис + nose + coveralls и прочие приблуды по желанию. Документацию можно на sphinx, ибо readthedocs. Но можно и ручками её писать, а не генерировать из кода.
>>522436 >проверку on save в редакторе или каким-нибудь грантом? Я вот не очень прямо горю желанием, чтобы он постоянно строки подсвечивал, а то глаз замыливается. Поэтому хотелось бы чтобы он просто показывал новые или что-нибудь в таком духе.
>>522383 Ну это такие вещи, которые один раз стоит, наверное, настроить. Я уже напоролся разок на том, что хуярил код без оглядки. Через два месяца я уже боялся вносить фиксы, так как все падало и крешилось от любого чиха. Такой-то я быдлокодер. Но там было без фреймворков, я сам все писал (в том числе и врапперы для апиев всяких), особенно не обдумывая код.
>>522501 Удваиваю этого оратора. Легаси должно отмирать.
>>522500 А ты ищи альтернативы. Оригинальную либу на 3 может и не портнули потому что говно, на которое все забили, но альтернатива может быть. Скорее она даже лучше и современней.
>>521841 > проверки наличия нескольких елементов списка. l = ['a', 'b', 'c', 'd'] tocheck = ['a', 'c'] if all(el in l for el in tocheck): print 'both are in list'
>>522559 Тролли. Это мемчик типа "install gentoo". irl никто третий конечно не использует, так что нуб придя на собеседование со своим третьим будет в неловком положении.
Есть ли способ сделать так чтобы переменная ссылалась на поле класса, а не на конкретное значение? Чтобы в примере с пика переменная b ссылалась бы не на 1 как экземпляр класса int, а на само поле класса a.a и при изменении b менялось бы и значение поля а.а?
>>519548 Начал изучать питон, вроде язык нормальный, но у него между версиями какой-то неистовый пиздец с кодировками. В 2.7 одно в 3.4 уже не запускается. В windows и linux версиях ладно страдают, но на одной ОС, не понятно. Попытался запустить на Linux x64 и Linux x86, Mac x64 разных версиях питона все по-разному работает. Может у меня руки из жопы или тут действительно разница большая? Есть ли какие рекомендации? Попробовал в строках прибавлять всегда __str__() чтобы наверняка, открылись проблемы с либами, некоторые либы могут иметь разные параметры. Вокруг одно сплошное наебалово.
Причем похоже такие проблемы возникают только при написании терминального приложения. С gtk такого говна нет. Там метод input в случае с utf-8 при нажатии backspace убирает только один символ, но русская кодировка кодируется двумя. Пришлось свой input писать с блекджеком и ...
>>522652 >>522666 Если бы я хотел перечитать документацию ещё раз или прочитать ветку форума с рассуждениями про то, что неизменяемы и изменяемые типы данных ведут себя по разному я бы это и сделал изначально. Может перестанете отбирать хлеб у поисковых ботов и опишете конкретное решение конкретной задачи вместо выдачи относительно релевантных ссылок? Если вы разумные люди, конечно.
>>522714 Тоесть ты сюда заходишь, чтобы поработать ботам гугла, тупо выдавая ссылки по похожим словам, и нахамить кому-то когда тот попросит вменяемого ответа на вопрос?
>>522745 Тоесть я прав, да? Вот смотри: Взять и написать ответ на простой, как ты говоришь, вопрос - ты не хочешь. Можешь только в функционал поискового бота. Но зато уже в 2 поста чистого кидания какашек. >>522746 Мне и с другим подходом тут не помогли.
Сейчас читаю LPTHW, сам главный принцип (перепечатывать с экрана 1:1) мне не очень нравится, но подход к обучению правильный, а то в универских методичках обычно "вот отвертка, вот гайка, задание 1 собери синхрофазотрон до среды".
Хелловорлды всякие умею и сейчас вкуриваю в основы ооп, так что не за горами интермедиат, но против азов в учебнике не возражаю, будет быстрая справка по синтаксису.
Алсо хотелось бы зайти в книжный магазин в ДС и купить, а не заказывать из-за моря на португальском и ждать месяцами.
>>522854 Зачем такая нумерация версий? Стандартный подход X.YY.ZZZ же лучше всего описывает ситуацию. X — меняется только в случае кардинальных изменений. YY — добавление фич. ZZZ — номер билда,может быть хоть 99999. Меняется при исправлении багов.
Я бы в ствоем случае просто сделал весию 0.0.0 и менял бы вторую и третью, пока не дошел бы до релиза. На практике бывали случаи когда номер версии составлял 0.15.182, согласись — так проще понять что происходит с продуктом.
>>522854 Ну в принципе уже более-менее, прикручивай запуск скриптов по хоткею и те кто ноет по поводу тяжелизны ide могут спокойно юзать твой блокнотик для мелкоскриптов на питоне
>>523084 Запомни - из немейнстримных остался только flask и кое-что еще (см. ниже), web2py cherrypy и прочую хуйню даже не трогай там все стухло, то что эти фреймворки крутятся где-то на сервере амстердамской городской газеты ни о чем не говорит, это не серьезные мейнтейнеры.
Кое-что еще - это всякое там tornado, pylons, twisted и прочий немейнстрим для серьезных хайлоад-ребят, которые живут yield() и хардкором.
Если ты хайлоадер - начни с третьего абзаца пасты dive into python и не забудь про twisted. Ну или рой в сторону C#/Java если есть деньги на сервера. Либо Go/Erlang если нет денег на сервера кек.
>>523084 И да, если ты собираешься использовать mysql/postgresql/oracle - у тебя есть три стула:
1) Django - для задач уровня говносайтов. Как только пойдут сложные запросы, инвалидация и прочее - либо превратишь свои приложения в говнокод, либо начнешь перепиливать жанку под себя. И то, и то - уныло. 2) SQLAlchemy для достаточно широкого спектра задач. 3) Своя ORM, если есть команда питонистов, которые не превратят ее в говно и умеют в архитектуру.
>>522923 Спасибо схоронил! Сразу вопрос, нужна ли строка состояния и что в ней отображать кроме "Ln: 1, Col: 2"? >>522856 >Теперь запили нормальный vim-mode и плагины и твоя параша будет лучше обоссанного сублайма. Это просто блокнот и никогда не будет ничем больше блокнота.
>>523185 > mysql/postgresql/oracle > 2015 Все использую nosql базы - mongodb, redis, zopedb, couchdb. sql-прошлый век, его никто не использует, только в легаси продуктах.
>>523184 Twisted не про скорость, это инструментарий для эвент-дривн нетворкинга. Он гораздо удобнее, чем велонетворкинг на мудацких нодавелосипедах. На отклик там хватит, остальное решит сетка компов.
>>523237 Пиздос ну и говнокод у тебя, скачай опенсорц либу на гите для этого и адаптируй под себя. Заодно посмотришь как это можно короче сделать. У тебя код как на турбопаскале, а не как на питоне.
>>523246 С asyncio посложнее будет разобраться без коммьюнити и наработанного опыта как у twisted. А так конечно годно, почитаю поплотнее док (и заодно перекачусь на тройку кек).
>>523257 Это хорошая вещь, когда тебе подсветка нужна в бложик код запостить, или презентацию подготовить. Легче IDLE расковырять и посмотреть как работает, чем пигменты под себя переписывать.
Начинаю обмазываться, посоветуй IDE. чтоб с отладчиком и фаршем. PyScripter при запуске не может найти python23.dll если подсунуть скачанную отдельно просто выдаёт кучу ошибок. пистон 3.4 шин7х64/шин8.1х64
>>523394 Не, в очко десяточку. Посоветуй тогда годноту под прыщи. И сразу ещё один вопрос: программа работающая с ком портом под прыщами, будет нормально чувствовать себя под спермой?
>ком портом Программа собранная из дефолтных батареек обычно без проблем переносится под спермы. Но ты наверняка pyserial юзаешь, там все уже на их совести. Вангую что должна.
>>523411 Еще не начал юзать. Когда-то давно писал под прыщи костыль который мигал светодиодом на лпт-порте при непрочитанных сообщениях в жабере нет слов чтоб описать как я тогда натрахался а теперь возникла задача токать данные в/из кома, но вместо того чтоб ебать мозги гугля каждую строку решил изучить яп. И пока не ясно какая конечная ось будет всем этим заниматься.
>>523425 >Шапка на пастебине или прямо тут нахуй не нужна. Я не говорил что тут хочу шапку, я говорил что содержание шапки на гитхабе не информативное и хуевое.
Пацаны подскажите за виртуальное окружение. Создал его в проекте, залил в гит, потом с другого компа сделал git clone активировал окружение и соснул. Код тупо не исполняется, говорит The SDK seems invalid.
>>523383 Что-то у меня тоже руки зачесались блокнотик накатать. Уровня atom, но быстрое. Но боюсь обосрусь, ибо хтмл отлично подходит для разметки, анимаций, стилей. Само мясо редактора сделать бы не на жс, но там хуй знает с расширяемостью и "хакаемостью". Сука. И куда тут денешься с подводной лодки. Вим с емаксом не предлагать, опыт есть, достаточно долгий и если честно не самый лучший.
>скачал пупу >запустил на ХР >либрари патх нот фоунд >но модуле намед ос >еррор еррор еррор >запустил на спермёрке >получил "ускорение" с четырёхсот фпс до одного >через полторы-две секунды скрипт молча падает без каких-либо сообщений или стектрейса Чем дальше я погружаюсь в питон, тем веселее становится.
Ознакомился с синтаксисом питона, стоит ли начинать изучать фласк(уже немного пробежался по примерам, понравилось), если лутца не читал? кое-какой опыт пхп имею. не сложен ли будет фласк при позновании его если с питоном ознакомился не досканально, а может даже поверхностно? вот, жду ваших ответов.
Посоны, пилю прохладную былину: решил вкатиться в айти, начал с изучения хтмл, ксс, потом пыху начал изучать + мускуль + жабаскрипт + жикверя, в итоге попал на курсы по пыхе, там писал проект в команде и... понял, что мне не нравится изучать вебдев, мне не нравится писать сайты, это говно ебаное, все эти фремворки, цмс, каждый раз как начинаю изучать эту парашу меня тут же начинает тошнить и начинается депрессия. Я подумал и понял, что ебись оно конем, буду двигать в сторону администрирования, и вот на глаза мне попалась книгу доусона по пайтону и на хабре статья об админстве, где утверждалось, что умения писать скрипты на том же пайтоне может очень пригодится. То есть, можно изучить ЯП с не высоким уровнем вхождения и применять его предметно, а не блядь для сраных вебсайтов, визиток и прочих говнопорталов. Вопрос - так ли это? Или на пайтоне тоже сраные сайты пишут и никаких скриптов для работы под линухом и прочего фана в виде игорей?
>>524543 Как питоновский файл запускать как исполняемый в бубунте? Чтобы как в винде - даблклик и вуаля, а то пока едитор открывается, вот как идле запускать я уже нашел, а вот как исполнять даблкликом - хуй. Установка галочке в чекбокс - сделать исполняемым нихуя не изменило.
>>524551 В общем, добавил щибанг(#!/usr/bin/env python3) в файл скрипта(просто принт(тест) + инпут(нажми интор сука, чтобы выйти)), сделал chmod +x path/to/test.py - дабл клик и снова открывается эдитор. ЧЯДНТ? Тут на стаке вообще предлагают сделать файл .десктоп и там описать как и чем запускать скрипт, а скрипт переименовать в тест.десктоп. Подскажи, что к чему, а то я ньфаг в юниксе, особенно по части пайтона.
>>524554 про юзр/бин/енв пайтон3 - уже понял свою ошибку и написал правильно - #1/usr/bin/python3, на всякий случай снова сделал chmod +x path/to/test.py, все ще не работает.
>>524557 >>524554 >>524551 В общем, сделал файл - закинул туда [Desktop Entry] Name=Test Exec=/home/blabla/test.py Terminal=true Type=Application сделал chmod +x /home/blabla/test.desktop Теперь могу запускать скрипт как экзешник по даблклику на файл Тест. Но разве это единственный способ? Есть еще какие? Или мне всегда придется созщдавать вот такой отдельный экзешник?
>>524564 Ну хуй знает, поковыряйся в контекстых менюхах по ПКМ на .py, там ассоциации какие-то как в винде, "запустить с", дефолтные действия, вот это все.
Ознакомился с синтаксисом питона, стоит ли начинать изучать фласк(уже немного пробежался по примерам, понравилось), если лутца не читал? кое-какой опыт пхп имею. не сложен ли будет фласк при позновании его если с питоном ознакомился не досканально, а может даже поверхностно? вот, жду ваших ответов. И еще, какую обвязку использовать для rest api, видел только backbone.js & knockout.js
Можете ткнуть меня в доки, полностью описывающие процесс создания и распространения через PyPI пакета? Я что-то запутался - слишком много всего: куча инструментов, куча пакетов, половина из них подписана как "легаси", и так далее. Какой официальный способ создания пакета в 2015 году?
>>524659 Подожди немного, я сегодня назад начал изучение пайтона. С книги Доусона. Еще немного позанимаюсь и подскажу тебе. lol, спроси у кого-нибудь другого
>>524609 Пиздец ты тупой. Ты вообще понимаешь что такое ./source (это одно и то же, просто "." это более краткая форма) и почему люди не пишут вместо него "bash/sh/zsh"? Погугли сначала, потом пройдет просветление. виртуальное окружение активируется, но в child-шелл-окружение, долбоеб.
>>524730 Хит продаж, считается лучшей книгой для новиса в пайтоне, да и всего 387 страниц из которых я сегодня за пару часов 92 разобрал. На очереди Лутц лежит, та которая Учим Пайтон, программируем на пайтон не нашел пока, да особо и не искал. В общем, все по порядку. Решил вкатиться с того, что попроще, хотя знание пыхи(в смысле хоть какого-нибудь ЯП), конечно, все облегчило. Еще вот из вкусненького лежит - Пайтон в системном администрировании Юникс и Линупс, не терпится до не добраться, я как неофит линупса очень полюбил эту систему.
Туплю следующим образом: не могу вернуть значение из крайней в стаке рекурсивной функции Вот например def main(x): x+=1 if x>7: return x else: main(x)
print(main(5))
как мне протащить наверх и распечатать х когда он станет больше 7? И почему эта пизда кормит мен я None? скорее логичнее было бы получить 5 на выходе, не?
Почему все игнорируют дайв инто? Я вот по ней осваивал. Даже до конца не дочитал, годнота же. Как надоест так можно сразу уже к делу и документации переходить. А для более-менее опытных — кукбук.
>>524756 >>524760 То, что она не переведена слава аллаху не значит, что книжка плохая. Как уже три миллиона раз говорилось: надо читать на английском, всё равно придётся, так зачем откладывать это в долгий ящик? Я осваивал так: читаешь, ага, не понял слово или оборот, загуглил, понял, читаем дальше. Чем дальше, тем меньше будет гуглений и баттхурта.
>>524774 Да я могу читать документацию, и читаю давненько, но скорость меня вгоняет в депрессию, потому я обычно технологию в общем осваиваю, а потом начинаю углубленно учить по нормальным книгам без перевода, так легче понимать о чем читаешь. А вообще, да, нужно учить инглиш обязательно, это понятно.
>>524900 lxml.html это не долото, а вполне себе годный топор. В конце концов не зря же туда слово html приписали. Зачем мне пересаживаться на экскаваторы с буром и кофеваркой, когда можно и топором.
Здравствуй, товарищ. Хочу на питоне качать файлы из интернета. Много. Естественно, не в один поток. Что выбрать? Мультипроцессинг, asyncio? И как понять сколько параллельных задач можно выполнять с максимальной производительностью?Здравствуй, товарищ. Хочу на питоне качать файлы из интернета. Много. Естественно, не в один поток. Что выбрать? Мультипроцессинг, asyncio? И как понять сколько параллельных задач можно выполнять с максимальной производительностью?
>>525135 Я думаю нет, если кодер за джва года практики не тянет на мидла(учитывая ебанутые требования к джунам при приеме), то он еблан какой-то. В общем, классика - хуесосы хотят выполненную мидлом работу за деньги как для джуна.
>>525156 Есть namedtuple если хочешь "через точечку обращаться". Но вообще зачем? Чтобы запутать пользователя? Когда ['foo'] используешь сразу понятно что это dict.
Кто нибудь мне пояснит зачем нужен модуль threading, если от него нет никакого ускорения? Или это именно из-за операции записи на жесткий диск? Если раскомментировать мультипроцессинг, то там все четко. Выполняется параллельно.
>>525198 Ускорение есть. На некоторых операциях просто локинг, но это в любых многопоточных приложениях у тебя локинг тоже будет и ускорение нелинейное. Это раз. Второе если ты дергаешь функции написанные на си или работаешь с сетью/диском то ускорение огромное.
>>525202 До того как появился асинкио были twisted, greenlet, gevent и прочее. >>525201 В мультипроцессинге тебе придется использовать всякое ipc немерянно что даст тебе замедление. И вообще что за задача? Числодробилка какая-то? На питоне?
Нужен список задач на питоне по всем областям и всем структурам, алгоритмам и прочему. Чтобы завершить и быть готовым если что повторить в продакшене. Кто подсобит?
>>525389 Надо делать thread.start() thread.run() просто выполняет функцию которую ты указал в target. threat.start выполнеят её в отдельном треде. http://pymotw.com/2/threading/
>>525437 Намного быстрее, может держать тысячи соединений легко. Даже десятки тысяч. Альтернатива этому этому плодить огромное количество потоков или процессов.
Поделюсь годной либой https://github.com/madisonmay/Tomorrow Случайно нашел, теперь мои велосипеды не нужны, только зря они в примере не используют keep-alive, это же халявный если сервер нормальный прирост скорости когда нужно качать овер дохуя файлов хотя там разные сервера в примере.
Ребята, писал на PHP/Laravel, появилась возможность перелезть на Python/Django (в том числе и потому, что работы нет, везде на серверной стороне Битрикс через Битрикс Битриксом погоняет), но я немного испугался того, о чём совсем не знаю. Можете просто как-то прокомментировать экосистему разработки программ для браузера на Питоне/Джанго и осмысленность такого перехода? Кроме Джанго есть что-то популярное, насколько оно хорошее? Вопрос, наверное, риторический, но удобные инструменты для электронной коммерции и платёжных шлюзов, разумеется, тоже в наличии? И менеджер пакетов? На Виндовс желательно с Питоном через виртуализацию работать, правильно? Vagrant-бокс с Питоном и Hyper-V существует популярный?
Извиняюсь за вопросы, которые мог нагуглить, просто попробуйте ответить сходу на что-то, пожалуйста, а чего не увижу, потом просто загуглю. Спасибо!
>>525488 > прокомментировать экосистему разработки программ для браузера на Питоне/Джанго Эм, это MVC фрейморк, в php тоже есть подобные, то есть ты пишешь шаблоны, модели вьюшки и т.п. Потом запускаешь uwsgi или fastcgi сервер и наводишь на него nginx. По типу php-fpm или как его. Есть и девсервер для тестирования который одной командой запускается >Кроме Джанго есть что-то популярное, насколько оно хорошее? Есть. Хорошее. Но работы больше всего с django >но удобные инструменты для электронной коммерции и платёжных шлюзов Есть полно. > И менеджер пакетов? Есть смотри https://www.djangopackages.com/ https://pypi.python.org/pypi?%3Aaction=search&term=django&submit=search Можешь там поискать сразу модули для твоих плалежных шлюзов > На Виндовс желательно с Питоном через виртуализацию работать, правильно? Да, но не обязательно. Некоторые на винде сидят.
Прошлый: