Этого треда уже нет.
Это копия, сохраненная 14 июля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
633 Кб, 577x660
Python Thread #770407 В конец треда | Веб
Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Код вбрасывать в тред через https://ideone.com/
Прошлый: >>763449 (OP)
#2 #770412
>>770407 (OP)
Кто сколько kk в наносекунду зарабатывает?
#3 #770414
Вкатился, захейтил Джангу и ебучую книгу Django by Example.
>>770418>>772963
#4 #770418
>>770414
НИАСИЛИЛ
>>770503
#5 #770430
Опорожнил мочевой пузырь на джангомакак. Фласкогосподин неторопливо входит в тред.
>>770506
#6 #770436
text = open('file.txt').read()

Такое выражение оставит файл открытым?
Алсо если нет. то получается, то gcведь в питоне есть gc, да? удалит объект, и при его удалении вызавится метод закрытия, я правильно понял?
>>770438
#7 #770438
>>770436
Да, файл останется открыт, но gc удалит объект и закроет его.
#8 #770453
Анон, в Tornado, когда использовать?
#9 #770458
Анон, в Tornado, когда использовать декоратор ген.корутин а когда асихронос? Первый, как говорят, доки, когда есть коллбэки в методе и надо дополнительно вызывать self.finish(), а второй, когда есть yield возвращающий Future, так? Т.е. можно и так и так, как удобнее, или надо смотреть, что делает сам метод?

Ещё пара вопросов по Торнадо от новичка:
1) Асинхронный метод выполняется в основном потоке программы, там как раз и действуют лёгкие потоки и epoll/kqueue, так?
2) Если операция блокирующая она таки заблокирует весь IOloop?
3) Какие операции блокирующие, какие нет? Торнадо, я так понимаю, предоставляет набор неблокирующих операций, в т.ч. драйвера к бд и т.д., а чтобы самому написать таковую надо спускаться на уровень Си?
>>770510
#10 #770459
ген.корутин или асихронос на ангельском в спам-листе ололо, моча охуевшая
121 Кб, 1023x575
#11 #770463
Посоны, поясните, как этот суп реализовать на lxml?

target = soup("tag", {"name_class": "value_class"})
target[0].get('href'))
target[0].text
>>770529
66 Кб, 588x600
#12 #770503
>>770418
А я дропнул.
>>770504
#13 #770504
30 Кб, 577x333
9 Кб, 104x109
#14 #770505
Почитал Лутца и Бизли. Если явно указывать, то работает. Возникает другой вопрос, а почему счетчик на срабатывает в лупе? Вот посмотрите на скрин.
>>770570
#15 #770506
>>770430
Подставил свой рот и всё выпил чтобы не досталось джангомакакам.

другой фласкогосподин
#16 #770510
>>770458
1) Да
2) Да
3) Блокирующие все, кроме тех, что вызываются с await (в торнадо не знаю как это выглядит в данный момент)
#17 #770529
>>770463
doc.xpath('//tag[@name_class="value_class"]/@href/text()')
>>770679
#18 #770570
>>770505
Ошибка оказалось простой

>row = curs.fetchone()


Я помещал внутрь цикла, а надо было над циклом.
>>770632
#19 #770632
>>770570
Короче row = curs.fetchone() должен быть все же внутри цикла, если вынести за пределы, то случится бесконечный цикл. Но счетчики внутри цикла работают. Сама парадигма - неверная. Я от неё ушёл. Анон в предыдущем тренде сказал мне умную фразу и это привело к созданию рабочего кода. Первый шаг узнает сколько рядов в таблице, второй шаг считывает линки из базы для проверки, третий шаг ряды из первого этапа используются в лупе до окончания списка, в этом лупе происходит обновление базы. Как-то так, но работает исправно.
#20 #770679
>>770529
Спасибо.
#21 #770759
В чем цимес scrapy? Типа бигдата, обходить дохуя адресов искаропки? А как там с тредами и одновременными хуйнями, там вообще многопоточность по умолчанию включена?
Мне вот заказчик говориn спарсить дохуя хуйни за мало времени, мне же не надо будет ебаться с какими-то там настройками, просто пишу че откуда парсить и всё?
>>770769
#22 #770769
>>770759

>В чем цимес scrapy?



1) асинхронщина
2) единообразие
3) всякие пайплайны
>>770775
#23 #770775
>>770769
Так асинхронщина эта работает сразу, без дополнительных настроек? Или по умолчанию всё медленно проходит через очередь?
>>770810
#24 #770810
>>770775
да, сразу, там вроде есть параметр, сколько запрососв конкуррентно обрабатывать
>>770819
#25 #770819
>>770810
Бля, вот это охуенчик.
#26 #770833
Где можно найти хорошо закомментированные куски кода?
>>770848
#28 #770886
>>770412
эт те в раби тред
#29 #770887
>>770412
у нас тут счет на мм
#30 #770941
Антон, можно ставить Джанго 1.10 уже? Какие там плюхи появились? Я в английский не очень могу играть, разобрал только "Official support for Unicode usernames". Можно делать русские имена без траблов))
#31 #770951
Как в Джанге получить записи из таблицы, если есть массив id? Делать через for и каждый раз что-ли обращаться к модели: model.object.get(id=переменная)?
>>770956
#32 #770956
>>770951
filter(id__in=id_tuple)
>>770959
#33 #770959
>>770956
спс
#34 #771220
Питонач, а что делать если я получаю .css и <canvas> как их хранить в бд? Объясни на пальцах. Джанго 1.8.
>>771221
#35 #771221
>>771220
mysql 5
#36 #771377
Народ, а как делать exe? cxfreeze рулит? Поделитесь опытом.
#37 #771391
>>771377

>py2exe

#38 #771392
>>771377

>py2exe

#39 #771395
>>771377
Я pyinstaller'ом делаю, больше ничего не запустилось. Win10.
>>771405
#40 #771405
>>771395
Спасибо. У меня тоже win10
#41 #771501
Анон, где можно попробовать себя в швабодном opensourse проекте? Тикеты-хуикеты вот это все.
>>771569
#42 #771569
>>771501
На гитхабе. Или просто коммить в то, чем пользуешься. На линуксах оче нмого тулз так или иначе завязаны на питон. Мой первый коммит был в wicd, например.
56 Кб, 400x527
#43 #771584
Пацаны, тут возникла необходимость захуячить простенькую вебинар-платформу.
С чего бы начать? Так то я вообще не в теме, вебинаров ни единого даже не посмотрел.
>>771586
#44 #771586
>>771584
Знаю немного джанго. В целом это всё.
>>772640
118 Кб, 872x637
#45 #771636
Вот почему в одном случае всё норм а в другом методе это:

>UnboundLocalError: local variable 'cd' referenced before assignment

>>771642
#46 #771642
>>771636
Очевидно же, сиди связывается в блоках с иф, но они не выполняются.
>>771660>>771663
#47 #771660
>>771642
Это блять пиздец.
49 Кб, 816x272
#48 #771663
>>771642
Нихуя не понятно.
>>771739
#49 #771731
>>771377
Берёшь компилируемый язык и делаешь, а не натягиваешь сову на глобус пистоном.
>>771733>>773136
#50 #771733
>>771731
ХУли делать если кроме пистона никуда не может
>>771735
#51 #771735
>>771733
Учить, очевидно же.
#52 #771739
>>771663
если a — falsey, то переменная cd не создастся. В return'е, однако, cd запрашивается всегда.
>>772149
#53 #771794
Народ кто может пояснить за курсы http://tceh.com/edu/python/, вроде программа обучения нормально расписана, говорят даже про помощь в трудоустройстве после курса. Из минусов стоимость (90к!). Может кто занимался у них? Какие подводные камни?
#55 #771844
>>771794
Чтобы освоить питон не нужны курсы. А если нужны, то тебе не стоит программировать.
#56 #771865
Есть ли какая прога которая проанализирует код моего проекта и построит блоксхему того как модули взаимосвязаны?
Половину года в проект не заглядывал, а теперь понять нихуя не могу, как оно работает.
>>771903
#57 #771883
>>771794
Google: full stack python
Все тоже самое и многое сверх того бесплатно без смс
#58 #771903
>>771865
пичарм так умеет вроде
#59 #772123
Такой вопрос. Не могу определится как сделать максимум удобно. Нужен список куда я буду добавлять элементы типа строка, все что мне нужно от этого списка это возможность добавлять/удалять и узнавать есть ли элемент в списке. Можно ли искать элемент в массиве без цикла, или проще забабахать словарь?
>>772158
107 Кб, 642x660
#60 #772149
>>771739
Самое интересное что эта функция из книги.
>>772193>>772507
#61 #772158
>>772123

>все что мне нужно от этого списка это возможность добавлять/удалять и узнавать есть ли элемент в списке



используй set же
#62 #772193
>>772149
Я кстати Джанго бай экзампл добил недавно, хочу поделиться небольшим наблюдением: книга годная, но преимущественно рассказывает как пользоваться батарейками Джанго и сопутствующих технологий, хоть и вполне подробно, а не просто "для вката". Короче годнота, если даже просто перепишешь все дерьмо что в ней есть по-любому научишься основам, но остальное будет отвлекать только.
Из того что я для себя нашел по обучению джанге - годнота просто брать чужой код на гитхабе, простой насколько возможно и удобно текущем уровне, и переписывать вдумчиво читая документацию и дописыаая свои велосипеды по мере поступления идей.
>>772249
89 Кб, 787x711
13 Кб, 414x109
9 Кб, 414x109
14 Кб, 414x109
#63 #772219
Столкнулся с такой проблемой :
прописываю я значит методы для класса пик 1. Проверяю как работают пик 2. Выдает результат пик 3 . Затем меняю местами операции - сначала вычитание, затем сложение. пик 4
И на выходе меня ждут совсем другие результаты пик 5 прикреплю к следующему посту, спасибо Абу. Почему?
7 Кб, 414x109
#64 #772221
>>772219

>пик 5

>>772236
#65 #772236
>>772219
>>772221
короче как сделать так, чтобы эти математические операции не меняли сам изначальный экземпляр класса?
>>772245
#66 #772245
>>772219
>>772236
Везде, где ты делаешь "self.ch = " ты меняешь этот экземпляр класса(или другой если other.ch = ). Храни новые значения во временных переменных "new_ch =". Ну и возвращай результатом не этот экземпляр (return self), а новый "return Fraction(new_ch, new_zn)"
>>772248
#67 #772248
>>772245
Только что об это задумался. Теперь придется переделывать 200+ строк кода =_=
#68 #772249
>>772193
Да я тоже пытаюсь менять кое-что по своему усмотрению. В формах там, в страницах. Но вот взял сейчас код, вписал как в книге а он тупо не работает. Хоть пропускай этот Search Engine. Сука.
>>772336
#69 #772336
>>772249
У меня косяки были дальше, с букмарклетом для парсинга картиночек. Код в книге просто не работал, отсутствовала буквально пара строк, которые я нашел на гитхабе какого-то хохла и которые он видимо сам и дописал.
Поисковик этот явовский прикрутился без проблем.
>>772373
#70 #772373
>>772336
У меня с комментариями были проблемы. После отправления формы оставались заполненными и при перезагрузки страницы коммент постился снова. Сам изобретал. Может он спецом, лол. Так люди лучше разберутся.
>>772376>>772380
#71 #772376
>>772373
После успешного post запроса нужно делать редирект - это общее правило для веба.
#72 #772380
>>772373
Я очень страдаю что ничего типа Синк Пайтон по Джанго нету
Имхо самое оно если есть приложение, листинги к нему полноценные, объяснения чуть избыточные и двадцать заданий что можно сделать еще из которых половина и так на в учебнике рассказано, а для другой половины ты уже знаешь что конкретно искать и остается только придумать как это оптимальнее впихнуть.
Но увы и ах, Синк Джанго что-то никто не берется написать.
17 Кб, 324x499
#73 #772416
А вот эту читал кто?
https://www.amazon.com/Hello-Web-App-Tracy-Osborn/dp/0986365912?ie=UTF8&tag=tsp0c2-20

>Hello Web App is written for non-programmers by a designer, and will walk you through every step you need before launching your web app live to real customers. No jargon, using simple and friendly language.


>This book doesn't walk you through a specific tutorial, but instead uses a generic example (a collection of things) to allow you to create something using Python and Django that interests you. A blog is a collection of posts, a store is a collection of products, a directory is a collection of people. The possibilities are endless!

#74 #772437
Бесплатные хотя кого это ебёт книженции
http://pythonbooks.revolunet.com/
#75 #772458
Посоны, а ru_python в телеграме это наш чатег или не наш?
#76 #772482
По поводу Книги Django by Example:
Вся эта веб херня постоянно развивается и не все пацаны успевают свои костыли крутить чтобы совместимости сохранить. Вот я два ебался пока не нашел что Haystack 2.4 не тащит Django 1.9 , только 1.8. Как же печет от подобного.
>>772496>>772504
#77 #772496
>>772482
Рассказываю лай фак:
Любая книга и руководство нужны что бы научить тебя каким-то идеям и подходам. С большой долей вероятности зависимость от версий будет небольшой и в случае реального проекта ты спокойно сможешь сориентироваться и сделать как нужно.
Потому в книге сказано накатывай 1.8 - ставь 1.8
Свои поделки без книги пиши уже на актуальной версии.
34 Кб, 1235x505
#78 #772502
В чём причина и что делать? Пример из "Укуса питона"
#79 #772504
>>772482
Я вообще никогда книги не применял, лол. Размусоливают коней в вакууме, только зря время тратил. Все что нужно - читнуть основные концепции, ООП, остальное по мере задач читаешь в доках. Что там
>>772506
#80 #772506
>>772504
Крассава, братуха!
Жаль не все такие талантливые и сообразительные
>>772509
#81 #772507
>>772149
Все переменные в None инициализируй в начале функции, это в целом хороший тон. И твой блок должен отработать верно, я не помню точно, но это известная старая фича/баг.
>>772517
#82 #772509
>>772506
Так я тоже тупой и бросал чтение книг потому что не мог понять, нахуя мне это всё.
Делать с нуля попутно изучая рили намного легче, чем выполнять какие-то скучные примерчики.
Алсо, насчет говнокода - да, он поначалу будет, но потом ты сам начнешь понимать, что тут перебор и будешь пытаться переписывать лаконично и правильно.
#83 #772517
>>772507
Да я уже разобрался, добавил возврат render и return результатов переместил в тело 2 цикла.
>>772520
#84 #772520
>>772517
Кстати, а ведь первая идея такой и была

>Все переменные в None инициализируй в начале функции


И да, спасибо.
120 Кб, 644x400
#85 #772523
Вот кто что скажет за комодо едит? Интерфейс писечный да и написан вроде на тех костылях что Atom, быстрее должен быть.
>>772527>>772528
#86 #772527
>>772523
Хотя

> Written in JS, Python, C++ and based on the Mozilla platform.


Говно.
#87 #772528
>>772523
Ставь идею/саблайм/вим и не выебуйся.
>>772532
#88 #772532
>>772528
Сижу на Idea но хотеть чего-то легковесного и функционального. Придется ждать когда Атом напилят...
#89 #772534
>>772532

> чего-то легковесного и функционального


Vim однозначно.
>>772539>>772542
#90 #772539
>>772534
Пока его настроишь можно на пенсию выйти. Разве что только в полевых условиях через ssh что-то подправить.
#91 #772542
>>772534
Я как-то пердолился в конфиги вим-а. Показалось что не стоит того. Лучше уж атом. Там всё из коробки.
>>772544
#92 #772544
>>772542
Зощем это подвисающее электроноподелие, когда есть божественный саблайм?
>>772547>>772868
#93 #772547
>>772544
Да как-то не коширно использовать в 2076 не опеносрс редакторы. Это же не ИДЕ-шка.
>>772548>>772553
#94 #772548
#95 #772553
>>772547
Ну всё ясно с тобой.
>>772560
#96 #772556
>>772502
Откуда у тебя -i берётся?
#97 #772559
И еще у Мелкософта есть опенсорс обрезок студии.
Вот оно:
https://github.com/Microsoft/vscode
>>772564
#98 #772560
>>772553
Да, я еблан.
#99 #772564
>>772559
Это не обрезок студии, а обрезанный атом на таком же электроне. И без вкладок, лол.
>>772567
#100 #772567
>>772564
Ага, уже посмотрел. Что-то мода на подобное пошла ппц.
#101 #772579
>>772556
А, всё понял. Я просто пьян, не обращайте внимание.
#102 #772630
Анончик, помоги по Джанге.

Я передаю из DetailView, в шаблон , объект из модели, полученный через get_object_or_404(). В объекте сохранен html и в шаблоне, я пишу {{model.htmltext}}. Но он не рендерится! Текст появляется с тегами: <h1>w4gwg</h1>. Что делать-то?

Через rendor_to_response посылать переменную с текстом? C DetailView можно это сделать?
>>772682>>772711
#103 #772640
>>771586
Тебе за это заплатят?
>>772643
#104 #772643
>>772640
И да, и нет. Это типа часть моей работы писать всякое говно, хоть и не основная
>>783380
#105 #772682
>>772630
{{ model.htmltext|safe }}
>>772683
#106 #772683
>>772682
Ничего не изменилось.
#107 #772711
>>772630
Погуглил за тебя:
{% autoescape off %}{{model.htmltext}}{% endautoescape %}
>>772713>>772716
#108 #772713
>>772711
Да нихуя не получается,второй час сижу.
#109 #772716
>>772711
Опробывал вот эти format_html(), safe_text() и т.п. Формат переменной <class 'django.utils.safestring.SafeText'>, но все равно не рендерится. Моожет быть в поле модели дело? Храню в TextField()
>>772740
#110 #772740
>>772716
http://stackoverflow.com/questions/18216207/django-passing-html-objects-into-template-as-plain-text Всё делаю как здесь, блять. Ненавижу Джанго, как вы на ней пишите блять. Простое действие вывести из базы хтмлтекст в шаблон, сука!
>>772741
#111 #772741
>>772740
Короче, я спать. Завтра продолжу.
>>772758
#112 #772758
>>772741
Да всем похуй, можешь вообще дома сидеть.
>>772772
#113 #772772
>>772758
Блять! Я вчера не тот шаблон редактировал. Всё заработало, спасибо.
#114 #772780
>>772556
Хз. Убрать его?
>>772781
#115 #772781
>>772780
>>772556
А, его нет в коде. Так что сделать? Я пробовал сделать так, как написано в выводе, только выходит пустой архив без имени
>>772937
#116 #772868
>>772544
Саблаймоопущенцам завезли нормальный пакетный менеджер или так же говно жрут? Впрочем, им не привыкать.
#117 #772875
>>772532
Гвидо рекомендует emacs
#118 #772937
>>772781
Проверь, существует ли у тебя директория по указанному пути, а то zip жалуется, что ему архивировать нечего.
#119 #772941
>>770407 (OP)
Аноны, год назад изучал питон, сейчас, хочу все вспомнить.
Можете подсказать, как это сделать? Перечитать Dive into Python?
Также, после изучения хочу вкатиться в библиотеку numpy.
Есть по ней годные мануалы на русском? Документация не переведена?
#120 #772948
>>772502
Название директории с пробелом. Заверни в кавычи.
>>772964>>773091
#121 #772963
>>770414
Джанго бай экзамл нельзя первой читать. Она годная когда ты прочитал пару книг но не знаешь как самому что то делать, зачем нужны всякие целери, солры, сигналы, редисы, куки и т.д.
Я просто листаю книгу пока не натыкаюсь на что нибудь интересное
#122 #772964
>>772948
А у него разве по-другому?
#123 #773091
>>772948
Так ведь уже. А когда указал другую папку в названии которой нет пробела то заработало
#124 #773136
>>771731
Мне exe нужно создавать только для передачи проги друзьям. Помнится первые версии Blender требовали, чтобы пользователь у себя поставил змею. Помню еще ругался про себя, нихрена не знал об этом питоне ничего. А сейчас у них уже нормальный exe и dmg. Есть еще игра Ace of spades, мне лично она нравится, по сути майнкрафт с перестрелками. Так вот в файлах почти везде стоит расширение pyc, egg. Успешно продается в сттме
#125 #773164
За полтора часа создал бота для инстаграмма. Ходит, лайкает и оставляет невинные комментарии, которые я стырил у других ботов. В инстаграмме их там море, точнее океан. Наблюдая за его работой я обратил внимание, что он лайкает голых мужиков и бородатых тетенек. Пришлось усовершенствовать. Заморочился sqlite (да это я выше про базу данных спрашивал). Ботяра перестал лайкать посты всяких lgbt. Пришлось переписать механизм считывания тегов. Оказалось, что у бородатых тетенек есть мода теги в комментариях писать. Научил ботяру видеть комменты. Потом обратил внимание, что ботяра лайкает каких-то арабов. Заморчился определением арабского языка. Это оказалось легко. Если фотка подписана арабской вязью, то ботяра не лайкнет. Далее научил ботяру не лайкать популярные посты. Так как после 100 лайков автор уже не видит лайки, следовательно не пойдет к вам в профайл. Сейчас работаю над черным списком, там будут все бородатые бабы. Делаю на случай если эта бородатая не станет писать в тегах lgbt.
>>773174
#126 #773174
>>773164
И какова цель?
>>773197
#127 #773197
>>773174
Прирост подписчиков, комментаторов. Запустил бота и ушёл по своим делам.
>>773985
#128 #773206
Аноны, помогите накидать функцию упрощения дроби. Например, есть дробь, ее параметры - числитель и знаминатель.
>>773281>>773322
#129 #773281
>>773206
from fractions import Fraction
print(Fraction(numerator, denominator))
>>773322
#131 #773389
Анон, расскажи за моды к WoT, есть где нибудь доки по BigWorld?
#132 #773440
Нужен скрипт который сгенерирует список из 10к проксей с не очень большим пингом. Где скачать?
>>773536>>773541
#133 #773533
А где еще питонопрограммеры тусуются? Кроме реддита, конечно.

Русские, не русские, любые короче.
>>773825
61 Кб, 594x585
#134 #773536
>>773440
На основании чего сгенерит?
Если просто табличку с проксями отсортировать по пингу я бы хуйнул через asyncio через pandas циклом прогнал проверку пинга через os.system('ping .......') или subprocess.Popen('ping ...') и затем пандасом бы и отсоритровал.
>>773557
#135 #773541
>>773440
Много хочешь. Так-то сидеть и набивать надо, делая парсеры всех встретившихся агрегаторов.
>>773557
#136 #773557
>>773536
С сайтов скачает.

>>773541
Так какой-нибудь индус или китаец наверняка такое сделал и выложил на гитхаб. Никто не встречал?
>>773564
#137 #773564
>>773557
Ну что-то есть вроде:
https://github.com/search?q=proxy+list
Удачи в поисках
>>773565
#138 #773565
>>773564
Но я думал кто-то из вас уже нашёл и поделится.
>>773569
#139 #773569
>>773565
Не твоя личная фриланс биржа же.
#140 #773786
сори за тупой вопрос, но не могу понять формулировку задачи из укуса питона:

Реализуйте команду replace. Эта команда заменяет одну строку другой в списке переданных ей файлов.

1) как можна реализовать команду? типа сделать бесонечный ввод как в консоли через while True и вводить replace и параметры заставляя программу работать?
2) > заменяет одну строку другой в списке файлов
строку в списке файлов? что? мб в файлах переданных в списке? Даже если так то что это значит, что если я например имею в файле текст "Сап двач, есть одна тян" и я напишу в программе
replace тян кун
то должно в итоге в файле быть написанно "Сап двач, есть одна кун"?
>>773802
#141 #773802
>>773786
Implement the replace command. This command will replace one string with another in the list of files provided.
Смею предположить, что имеется в виду команда вида
replace string repl_string file1.txt file2.txt file3.txt
выполняемая в командной строке.
>>773803
#142 #773803
>>773802
в какой командной строке, в консоле чтол? как это вообще сделать там же баш импользуется, разви что запустить программу и пока она работает написать replace chlen hui vidy_zalup.txt
>>773805
#143 #773805
>>773803

>replace.py


Так лучше?
В скрипт можно передавать аргументы.
>>773808
#144 #773808
>>773805
тобто запускать шкрипт, писать во время его работы
replace bla-bla alb-alb fuck.txt suck.txt
и радоваться замене строк в обеих файлах? или можно поочередно типа для каждого значения делать отдельный импут, если все же первый вариант, то делать через split?
>>773812
#145 #773812
>>773808
Нет, передавать все эти аргументы во время запуска скрипта, и потом разбирать их с помощью sys.argv или ещё чего-нибудь. Без инпутов. Для наглядности:
python replace.py bla-bla alb-alb fuck.txt suck.txt
>>773813
#146 #773813
>>773812
аа, спс
>>773818
#147 #773818
>>773813
Самое тупое решение, которая я смог придумать. Не уверен, что работает:
import sys
import os
os.system("sed -i 's/{}/{}/g' {}".format(sys.argv[1], sys.argv[2], ' '.join(sys.argv[3:])))
>>773819
#148 #773819
>>773818

>которое


Пойду, просплюсь.
#149 #773825
>>773533
Очень большая тусовка на LinkedIn, там есть группы. Перед тем в группе активность проявлять, заполни свой профайл хорошенько. Там много работодателей, они будут в твой профиль и внимательно его смотреть. Мне с LinkedIn периодически приходит предложения о работе.
>>773892
12 Кб, 200x200
#150 #773846
Перекатился я, значится, давеча на ваш этот джанго. Опробовать после уринотерапии опыта написания недосайтов на пыхыпе. Пока всё очень ново, непонятно и сложно. Модели какие-то странные, туда сюда по *.py файлам заебался бегать. Ну да ладно, надеюсь понимание необходимости этого со временем придёт.

А я не пойму как на сервере то оно запускается? В пыхыпе просто было - в корень веб-сервера файлы кладёшь - в браузере наблюдаешь.
sage #151 #773878
>>773846
В голосину
#152 #773892
>>773825
Можно ссылочку на конкретные группы?
>>774619
#153 #773949
Через pip устанавливаю библиотеку, а он говорит нужен питон выше 3. Что делать?
>>773951
#155 #773953
Всавать за два часа до работы это пиздец. Я встаю за 15 до выхода из дома, туалетные дела сделал и на галеру. Как вы вообще утром можете что-то есть?! Мне даже печень в рот не лезет. Жру лишь в обед.
>>773954
#156 #773954
>>773953
Бля, не туда.
#157 #773967
>>773951
У меня стоит новый питон. Я pip не хочет новые библиотеки устанавливать.
>>773971>>773972
#158 #773971
>>773967
попробуй pip3
>>773979
#159 #773972
>>773967
или python3.5 -m pip install libname
#160 #773979
>>773971
Спасибо.
#161 #773984
Перед объявлением функции стоит async в библиотеке и она не хочет запускаться. Что делать?
>>773986
#162 #773985
>>773197
Типо бот лайкает, если лайком не много, юзер идет к тому кто лайкнул и подписывается на него? Значит на аке должен быть контент же.
>>774441
#163 #773986
>>773984
Какая версия питона?
>>773987
#164 #773987
>>773988
#165 #773988
>>773987
async/await появились только в 3.5
>>773989
#166 #773989
>>773988
А как обновить?
>>773991>>773992
#167 #773991
>>773989
хз я просто скомпилял его из исходников и поставил в /opt/
#168 #773992
>>773989
Вообще если у тебя убунту то есть https://launchpad.net/~fkrull/+archive/ubuntu/deadsnakes
В 16.04 python3.5 идет по дефолту уже вроде
>>773995
#169 #773995
>>773992
И как этим пользоваться?
>>773996
#170 #773996
>>773995
sudo apt-add-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python3.5
>>773999
#171 #773999
>>773996
Теперь он не видит библиотеку которая в 3ем питоне
>>774000
#172 #774000
>>773999
python3.5 -m pip install libraryname
или сделай virtualenv в котором python3.5 интерпретатор по-умолчанию
>>774005
#173 #774005
>>774000
Теперь код на си не компилируется т.к. не нашёл файл Python.h
>>774007
#174 #774007
>>774005
sudo apt-get install python3.5-dev
>>774013
#175 #774011
>>770412
0
Если отвлечься от всего, это хорошая цифра.
>>777890
#176 #774013
>>774007
Спасибо.
#177 #774033
Как по мне, проще pyenv использовать, чем все эти репо от васянов.
#178 #774061
>>773846

> А я не пойму как на сервере то оно запускается?


Вот здесь очень годно - https://habrahabr.ru/post/272811/
#179 #774067
Поставил Pycharm, говно какое-то. Даже подлагивает. Сижу опять на Notepad
>>774085>>774110
#180 #774084
чому может не загружаться сайт fullstckpython? все говорят годнота, а меня не пускают. Как в детстве оказался опять
#181 #774085
>>774067

> Даже подлагивает


Купи компьютер, зачем на тостере то сидеть?
#182 #774108
Поясните
n = x #это списки
sorted (n)
print (n,x)
Почему если я не укажу ссылку для сортед, то никакого сортед не происходит и n и х являются одним объектом?
>>774109>>774120
#183 #774109
>>774108
/t - это какая-та шляпа от вакабы
#184 #774110
>>774067
Лишние плагины выключи.
#185 #774120
>>774108
делай n.sort()
sorted возвращает итератор
n и x и будут одним объектом если ты не скопируешь список например n=list(x) или n=copy(x) из модуля copy или n=x[:]
>>774188
#186 #774165
>>772502
Подскажите, что за шрифты используются?
#187 #774188
>>774120
То есть функция sorted ничего не меняет в списке, а просто создает другой список, используя первый как аргумент?
>>774192
#188 #774192
>>774188

> sorted ничего не меняет в списке


Да

> просто создает другой список


Нет, она возвращает итератор. Чтобы получить список можно сделать new_list = list(sorted(old_list))
>>774197>>774201
#189 #774197
>>774192

>итератор


1 итератор на отсортированный список? Хуйню сказал
>>774204
#190 #774201
>>774192

>Нет, она возвращает итератор


Нет, она возвращает список.
>>774204
#191 #774202
Насколько важно писать 2.0 вместо 2?
На кодАкадемии разница есть, если делить например, то во втором случае возвращает только целую часть, а когда у себя запускаю (у меня пайтон 3), то вовращает дробь.
>>774206
#192 #774204
>>774201
>>774197
хм действительно, перепутал значит.
#193 #774206
>>774202
Во втором питоне целочисленное деление по-умолчанию. В третьем // для него есть
#194 #774441
>>773985
У меня на акке фотки города. Там нет рекламы услуг и прочего спама. У меня от силы 80 фоловеров, а у моего друга их тысячи. У него тысячи, потому что он очень активен. Часами сидит в инстаграмме и лайкает.
>>775195
#195 #774535
Как мне указать параметры, которые определены в __init__ суперкласса, в дочернем классе?
#197 #774622
>>773846
Изучать змею с джанго - очень плохая традиция.
>>774643
#198 #774633
>>772502
Забыл поставит слеш в source
#199 #774635
а помощь тут оказывают? захотелось себе прасер ссылок на тв каналы а дальше в плейлист, корочи этакий свой велосипед под ACE Stream Media. Хочу брать контент ид например отсюда http://tuchkatv.ru/5-discovery-channel.html. вроде получать ссылки на все каналы по всем категориям получилось, а как получить контент ид на странице канала? там нужно сначала жмакнуть add to playlist кнопку и лишь затеп открывается окошко с контент ид, до этого контент ид в коде страницы нет.
как проделывать в питоне? прост сам не программер ниразу в вебах тоже не особо шарю так что прошу как двачеру.
готовый плейлист не скачивается т.к. хуй завторизуешся там
>>774652
#200 #774643
>>774622

>Изучать джанго - очень плохая традиция.


Пофиксил.
>>774649>>774657
#201 #774649
>>774643
Я в вебе не силен, что посоветуете? Пирамидку или пороховницу? Или стать еретиком в вебтупае?
#202 #774652
>>774635
Я честно не понял суть вопроса. Когда делаю парсер, я нажимаю правую клавишу мыши в лисе и выбирают inspect element, дальше смотрю что вылезло. В змие добираюсь до элемента чаще по xpath.
>>774659
#203 #774657
>>774643
Почему? Джанга же самая популярная из пистоно веб параши?
#204 #774659
>>774652
ну если пройти по ссылочке http://tuchkatv.ru/5-discovery-channel.html то там в меню плеера можно увидеть кнопку 'add to playlist' при её нажатии выводиться окошечко с контент ид канала, как раз то что мне и надо, затем получив все контент ид я просто составлю плейлист в своем плеере и смогу смотреть это не на сайте. Загвоздка в том что пока не будет нажата эта кнопка контент ид в коде страницы нет. Как симулировать нажатие этой кнопки для того чтобы затем спарсить контент ид канала?
#205 #774660
>>774659
selenium

или смотри что там js делает
#206 #774663
>>774659
https://github.com/lorien/awesome-web-scraping/blob/master/python.md

здесь посмотри, наверняка найдешь нужный инструмент
#207 #774665
>>774659
http://tuchkatv.ru/playlist.html
А этого недостаточно? Вроде бы специально для плееров список.
>>774674
#208 #774669
>>774659
Ок, я тебе скажу как, но меня тут зачмырят. Есть такая хрень, которую гугл поддерживает http://www.seleniumhq.org/docs/03_webdriver.jsp
Далее логика такая. add to playlist находишь по xpath, нажимаешь на него при помощи команды .click() Если можно нажать клавишей enter то посылаешь > inputElement.send_keys(Keys.RETURN)
#209 #774674
>>774665
не скачать т.к. не авторизовывает, уже и новый акк делал и все равно не авторизовывает

ну и интересно получить новый опыт написания парсеров, авось пригодиться
>>774691
#210 #774691
>>774674
Твое дело. Там, случайно, плеер не на флеше? И как id выглядит, может он так на странице где-нибудь присутствует?
#211 #774707
Парни сильно не пинайте, я от нехуй делать ковыряю питон (сам я ноль в программировании). Cуть такова: как создать скрипт (мини игру), в которой будут вопросы и в ответ на каждый вопрос игроку нужно будет отвечать yes/y/no/n, и после каждого ответа игрока будет отсылать к следующему вопросу, или же будет выводиться информация, в зависимости от ответа?
>>774709>>774938
#212 #774709
>>774707
2 дня уйдёт на это с нуля.
#213 #774718
>>774659
Пробовал смотреть что отправляется при нажатии на кнопку? сам ебал проверять, там еще нужно ставить какой то ботнет и регатся.
#214 #774726
Аноны, не бейте, лучше помогите. Уебываю из ХД, искал ЯП и удивился, что ваш пайтон-топ в США. ПОшел в ХД, т.к. это тоже довольно распространено зарубежом, но корежит пиздец.
Короче, удалось ли кому-то реально съебать, зная пайтон?
В России, как почитал, все же джава и шарп опережают.
>>774942
#215 #774732
Порекомендуйте, пожалуйста, какой-нибудь дешёвый хостинг для джанги.
#216 #774741
>>774750
#217 #774748
Опытные питонисты, а есть ты смысл начать изучение с курсов степика?
#218 #774750
>>774741
Ещё один повод изучать пыхыпе.
>>774758
#219 #774758
>>774750
САЙТ МАКСИМАЛЬНЫЙ ССД за 15ть рупий в месяц?
15 Кб, 547x300
#220 #774829
>>770407 (OP)

>driver = webdriver.Firefox()


>driver.get("http://www.google.com")


Делаю нечто подобное, и в результате запускается лиса, потом закрывается, открывается вновь и пик, а pycharm выдаёт:

>ConnectionResetError: [WinError 10054] Удаленный хост принудительно разорвал существующее подключение


С фаерволом всё ок.
В чём может быть проблема? Что я делаю не так?
Python 3.5.1+Selenium 2
>>774842>>774943
#221 #774842
>>774829
Гуглить свою ошибку пробовал?
>>774851
#223 #774851
>>774842
Пробовал естественно, решения однотипные и сводятся к фаерволу\time.sleep(3)\откату к старой версии и т.д.
Ничего из этого не помогло.
Через хром всё работает отлично, но нужна именно лиса.
34 Кб, 806x450
#224 #774938
>>774707
Это пипец как легко. Смотри на картинку
#225 #774942
>>774726
Python в последние два года вырвался в лидеры в США. Раньше там джавистов искали. Но на джавистов большие издержки, а змий экономит деньги компании.
>>775049
#226 #774943
>>774829
Сорян юный падаван, я забыл тебе сказать. У меня тоже на днях отвалилось. Лиса обновилась до очередной беты. И кажется, через каждые 5 билдов нужно обновлять вебдрайвер, чтобы он мог запустить лису. Вебдрайвер до сих пор не обновили. Поэтому ставь стабильную версию лисы. Удали 48 (или 49) версию беты и ставь стабильную 45-ую версия. Она называется сокращенно ESR. Вот тут https://ftp.mozilla.org/pub/firefox/releases/45.2.0esr/
>>775102
#227 #775029
>>774938

> 2016


> 2.7

>>775045>>775064
#228 #775045
>>775029
Ещё на кодировку глянь.
>>775048
195 Кб, 480x480
#229 #775048
sage #230 #775049
>>774942
Чему радуешься? Ты владелец компании в сшп?
Жабка и оденет и накормит тебя, а с пистоном ты еще в переходе подрабатывать будешь.
>>775051>>775287
#231 #775051
>>775049

>Ты владелец компании в сшп?


Если у тебя есть свой минимально интересный проект, то ее достаточно легко зарегистрировать, и даже не очень дорого.
Это часто бывает более выгодным чем джава-макакировать в лухософте.
sage #232 #775064
>>775029

> 2016


> 2014

>>775070
#233 #775070
>>775064
Чё бля?!
>>775095
#234 #775095
>>775070
У тебя виндоувс сломалося.
>>775125
762 Кб, 1024x768
#235 #775102
>>774943
Спасибо огромное, анон, сегодня вечером попробую.
#236 #775117
>>774938
красавец
#237 #775123
>>774732
vps за 90руб/мес.
#238 #775125
>>775095
Это дата компиляции, дибил.
>>775132
#239 #775130
>>774938
А можно такую же игру про два стула?
#240 #775132
>>775125

>Python 3.4.3 (default, Jun 18 2016, 01:42:06)


А я гентушник и люблю пересобирать мир. Rate.
>>775162>>775334
#241 #775162
>>775132

> 3.4.3


> Jun 18 2016

>>775171
#242 #775171
>>775162
У меня ещё такие есть

>Python 3.5.1 (default, Jun 18 2016, 13:15:45)


>Python 2.7.10 (default, Jun 18 2016, 01:27:00)

>>775176
#243 #775176
>>775171
Я имею ввиду, что 3.4.4 уже давно вышел.
>>775177
#244 #775177
>>775176
А, ну у меня ШТАБИЛЬНОСТЬ в питонах. Проблем ещё не было. Можно конечно побилдить и самый свежак.
49 Кб, 615x405
#245 #775179
Они конечно запаздывают чёт с доставкой 3.6, но думаю в оверлеях/багтрекере где-нибудь уже есть. Вряд ли там ебилд будет как-то отличаться.
>>775316
#246 #775195
>>774441
Пиздец какой-то.
>>775335
#247 #775213
Поясните за self. Зачем, как и когда его писать?
#248 #775231
>>775213
Обращение к инстансу класса из его методов.
>>775302
#249 #775254
>>775213
Это как this в других яп
>>775283>>775302
#250 #775283
>>775254
Другие ЯП не знаю
#251 #775287
>>775049
А змий не оденет? Недавно одна компания в Нью-Йорке, которая занимается банковской деятельностью, наняла питониста, предложили ему 150 тыс долларов в год. Долго искали, но нашли.
#252 #775302
>>775254
Дропнул Паскаль на азах. Питон - иой первый язык
>>775231
Не понял
>>775330
#253 #775316
>>775179
Так кроме форматирования в 3.6 ничего особенно интересного и нет, 3.4 хватает.
Просто так ждать новую версию - идиотизм.
>>775318
#254 #775318
>>775316

> 3.4 хватает


async/await в 3.5, например.
#255 #775330
>>775302
Ну хз здесь прочти
http://python.swaroopch.com/oop.html
>>775333
#256 #775333
>>775330
Я и так читаю "Укус"
#257 #775334
>>775132

Ты и мамку бы пересобрал.
#258 #775335
>>775195
Странный вы человек. Пока другие программеры на этом бабло рубят, вы удивляетесь новому миру.
>>775357
#259 #775357
>>775335
И сколько ты уже "нарубил"?
>>775419
#260 #775375
>>775213
Бамп. self пишем для того, чтобы 'x' привязать к блоку кода. Я правильно понял?
class MyClass(object):
def __init__(self, x, y):
self.x = x
self.y = y
>>775409
#261 #775409
>>775375
Нихуя ты не понял.

my_class_instance = MyClass() # экземпляр класса

Когда вызывается метод, то ему первым параметром передаётся экземпляр класса, т.е. в нашем случае self = my_class_instance. Когда в методе у тебя написано self.x = x, то ты делаешь my_class_instance.x = x

И использование слова self это просто договоренность, никто тебе не мешает написать так:
def __init__(class_instance, x, y):
class_instance.x = x
#262 #775419
>>775357
Ты не настоящий программист.
>>775421
#263 #775421
>>775419
Примерно такую сумму я и предполагал.
>>775432
#264 #775432
>>775421
Тогда не поделюсь, больно многа хочешь
#265 #775455
Посоны, есть задача написать гуй на питоне. Жив ли pyqt? И есть ли ещё альтернативы ему и ткинтеру?
>>775482>>775595
#266 #775471
Я уже почти смирился, что звуков в моей игрухе на pyjsdl (транслятор pygame в javascript) не будет, но все-таки спрошу.
В доках есть вот что: http://gatc.ca/projects/pyjsdl/doc/pyjsdl.mixer.Sound-class.html
__init__ здесь - это загрузка файла? Если нет, то где его грузить?
Если я пишу просто pyjsdl.mixer.Sound.__init__(self, 'путькфайлу/файл.wav', None), выдает ошибку.
(Я, если что, идиот, который знает базовый функционал питона, но вообще не представляет, как музыка закидывается на веб-страницы в жаваскрипте.)
>>775485>>776465
#267 #775482
>>775455
Живо и то и другое. У ткинтера есть еще ttk у ткинтера, он лучше с темами дружит разных ос и его впринципе хватит для не йобы.
>>775595
#268 #775485
>>775471
__init__ - это конструктор
Тебе нужно вызывать что-то вроде этого:
sound = pyjsdl.mixer.Sound('путькфайлу/файл.wav')
>>775487
#269 #775487
>>775485
Спасибо, заработало (пока только в Microsoft Edge, но до настройки совместимости с разными браузерами я еще не дошел).
>>775489
#270 #775489
>>775487
Большинство браузеров не поддерживает wav, попробуй ogg или mp3.
>>775503
30 Кб, 270x325
22 Кб, 808x597
#271 #775498
Почему у меня вот этот вот код пик 1 ничего не записывает в файл?
>>775500>>775510
#272 #775500
>>775498
Нужно полный путь к файлу прописывать? Они у меня в одной директории лежат.
#273 #775503
>>775489
Еее, спасибо!
#274 #775507
Какая команда создает файл для записи в него?
>>777709
#275 #775510
>>775498
(ответ от нуба)
Код выглядит как правильный. Проверь, может, у тебя строки пустые& (скажем, print(c1) ее выводит?)
>>775519
#276 #775519
>>775510
Там походу дело было в том, что папка с файлами была кириллицей написана. Переименовал - все заработало. Теперь возник другой вопрос - как мне считывать с файла построчно? Типа одна переменная - одна строка.
>>775521>>775522
#277 #775521
>>775519
for line in file:
...
>>775523
#278 #775522
>>775519
Если ты не хочешь придумать свою сериализацию, то используй модуль pickle или json.
И с файлами лучше работать так:
with open('char.txt', 'w') as f:
for line in f:
print('fuck')

Так у тебя файл будет закрываться автоматически при выходе из блока with, да и лишние переменные не будут создаваться.
>>775542
#279 #775523
>>775521
Индексирование линий в такой вот конструкции :
with open(fname) as f:
content = f.readlines()
идет с нуля или единицы?

Мне проще в txt делать, вот честно
>>775529
#280 #775529
>>775523
Списки индексируются с 0. Иди читай доки, в них все есть.
#281 #775542
>>775522
В json есть функция, которая создает json файл с заданным именем?
>>775546
#282 #775546
>>775542
json - это только метод сериализации.

>>> test = {'q': 1, 'w': 2, 'e': 'qweqwe'}


>>> import json


>>> with open('test.json', 'w') as f:


... json.dump(test, f)
...

>>> with open('test.json', 'r') as f:


... data = json.load(f)
...

>>> data


{u'q': 1, u'e': u'qweqwe', u'w': 2}
>>775556
#283 #775556
>>775546
Хорошо, мне нужно замутить меод для класса, который будет сохранять параметры обьекта в файл / загружать эти параметры из него. Как мне это реализовать?
>>775568
#284 #775568
>>775556
Ну для начала можно примерно так:

>>> class Test:


... def __init__(self):
... self.hp, self.mp, self.lvl = [0]*3
... self.params = {'hp', 'mp', 'lvl'}
...

>>> t = Test()


>>> d = t.__dict__.fromkeys(t.params, 0)


>>> import json


>>> with open('char.txt', 'w') as f:


... json.dump(d, f)

А вообще, покури паттерны какие-нибудь, тут алгоритмам тебя никто учить не будет.
#285 #775595
>>775455
Не слушай >>775482, tkinter из-под коня взят. Токо pyqt5 или pygobject (вроде так для gtk).
#286 #775724
Анон, помогай. Вообщем есть 5к irc каналов. На каждые 100 каналов могу создать только 1 сокет. Как думаю делать сейчас. Сделать пул потоков (по количеству аппаратных потоков) и очередь задач. Забивать в очередь update для каждого сокета. Это норм решение?
>>775758
#288 #775803
На дайджесте вылез coconut (http://coconut-lang.org), что думаете, посоны?
#289 #775804
>>772219
знамЕнатель
#290 #775806
>>775803

> def __abs__(self):


> .... """Return the magnitude of the vector."""


> .... return self.pts |> map$((x) -> x2) |> sum |> ((s) -> s0.5)



Революция нахуй
>>775814
#291 #775807
>>775803
Зачем оно нужно, если есть скала.
>>775814
#292 #775814
>>775806
>>775807
Бонус в том, что пишешь на 3-м пифоне и можно скомпилировать в почти любую версию от 2.6 до 3.6. Можно писать как будто просто третий пифон, без заморочек. Я сам пока в сомнениях нужно ли это, но то, что это надстройка уже хорошо.
#293 #775818
>>775803
Студенческая поделка, даже раскапывать не стоит, но годный питонокомпелятор это был бы вин.
#294 #775831
>>775803
Васян видимо не осилил различия между 2 и 3 или захотел еще больше сахара в одной строке, что само по себе уже не python-way.
#295 #775919
Я не понимат.
random - это же не зарезервированное слово?
Какого хуя в третьем питона mygovnomodule.random() выдает TypeError: 'module' object is not callable?
В 2.7 с этим все норма. Почему? Нахуя тогда все эти названия модулей через точку прописывать? Тут же нет неопределенности, какой именно random я хочу.
>>775928
#296 #775928
>>775919

> Какого хуя в третьем питона mygovnomodule.random() выдает TypeError: 'module' object is not callable?


Потому что ты нагавнокодил какой-то ебалы в своем govnomodule.
>>775933
#297 #775933
>>775928
И это действительтельно так. Там случайно затесалась строка import random. Причем, именно после определения функции random. Ее удаление решает проблему. А если ее поставить перед функцией - проблема не возникает, но зато нельзя вызвать ничего из модуля random.
Видимо, не стоит называть объекты с именами модулей из стандартной библиотеки.
>>777866
#298 #776042
>>770407 (OP)
почаны, вы скидывали мне как-то сайт с переложением СИКП на пистон, скиньте еще раз! суки
78 Кб, 1308x770
69 Кб, 1303x767
74 Кб, 689x446
54 Кб, 721x458
#299 #776043
Подскажите как перенести Searchform на sidebar. Всё что смог так это создать simpleTag и пустую форму туда налепить но результат никакой т.к. форма отображается а поиска нет. И только если перейти именно на страницу search то форма ищет и отображается без smpletag а тупой переброской кода.
>>776106
#300 #776106
>>776043

Тебе надо вьюху переписать, чтобы она через шаблон сайдбара представление выводила.
>>776172
#301 #776148
Можно ли получить url страницы, возвращаемой по запросу, не загружая при этом самой страницы?
>>776150
#302 #776150
>>776148
Не совсем понятно, о чем ты говоришь. Если про редиректы, то там тела страницы нет.
В любом случае, можно использовать HEAD вместо GET.
>>776160
#303 #776160
>>776150
Грубо говоря,
r = requests.get('https://somesite.com/random')
возвращает каждый раз разные страницы. Нужно выдирать из их URL кое-что.

Разве r не будет содержать тело страницы? r.text же выдает все содержимое. Которое вообще не уперлось.
r.head то что надо, спасибо.
>>776174
#304 #776172
>>776106
Ох, как же я не допёр, ппц. Спасибо тебе.
#305 #776174
>>776160
Хотя, я поторопился радоваться. requests.head('https://somesite.com/random') возвращает url 'https://somesite.com/random', а вовсе не то, на что должно было перекинуть.
>>776177
#306 #776177
>>776174
Так а как возвращается url новой страницы - просто перенаправляет куда-то или в теле страницы адрес?
>>776180
#307 #776180
>>776177
Перенаправляет. И нужно получить url того места, куда перенаправило, не загружая ничего лишнего.
>>776181>>776182
#308 #776181
>>776180
Попробуй headers["Location"]
>>776184
#309 #776182
>>776180
Ты просто не туда смотришь:

>>> import requests


>>> r = requests.head('http://2ch.hk/pr/res/770407.html') (М)


>>> r.headers['location']


'https://2ch.hk/pr/res/770407.html' (М)
>>776184
#310 #776184
>>776181
>>776182
О, прекрасно. Просто то, что доктор прописал! Спасибо огромное!
>>776189
#311 #776189
>>776184
Ты только учитывай, то, что тебе тут насоветовали не обязательно возвращает конечный урл, т.к. дальше может быть еще один редирект.
>>776194
#312 #776194
>>776189
Да не, там его не может быть. К тому же, функция у меня залуплена, чтобы проверять до тех пор, пока не выдаст нечто конечное.
>>776217
#313 #776217
>>776194
Может тогда так?

r = requests.head('http://github.com', allow_redirects=True)
r.url
r.history
>>776222
74 Кб, 743x535
45 Кб, 503x328
16 Кб, 389x378
#314 #776218
Э-э-э блэт.
Не вышло.
>>776253
#315 #776222
>>776217
Да, тоже вариант. Я наверное очень пиздоглазый, если не увидел всего этого в документации. Так даже лучше.
#316 #776253
>>776218

>action="."


Может поэтому? Тебе ведь нужно передавать данные во вьюху с поиском, а ты передаешь, как понимаю, на простую страницу.
Если не так, то опиши подробнее, что ты вообще делаешь, что за форма, когда работает и не работает.
>>776282
50 Кб, 550x316
74 Кб, 667x449
58 Кб, 730x393
14 Кб, 419x180
#317 #776281
Есть въюха(пик1) и страница(пик2)
Хочу поместить форму поиска на сайдбар(пик3) но выходит пик4

Я менял во въюхе второй return на страницу с сайдбаром.

>action="."


Убрал, результат тот же.
>>776282>>776290
#318 #776282
#319 #776290
>>776281
Надо не убрать, а указать в action адрес страницы, которая у тебя поиск производит. Что-то вроде
action="{% url "blog:post_search" %}"
>>776304
#320 #776304
>>776290
Видишь ли в чем прикол, сама форма

>form


не отображается вообще нет поля ввода

>query


всё остальное фигня.
#321 #776375
Поясните чайнику, что такое "класс"
Это типо список из функций, методов и т.д.?
4 Кб, 184x156
#322 #776377
Анон, с помощью чего можно строить графики математических функций?
#323 #776393
В 3 версии петона dict.keys() больше не возвращает список. А dict_keys не индексируется.
Что тогда происходит внутри
for x in dict:
...print(x)
?
>>776399
#324 #776397
>>776377
gnuplot
#325 #776399
>>776393
И вообще, учитывая вот это вот

>dict_keys не индексируется


Можно ли извлечь из БОЛЬШОГО словаря случайный элемент, не преобразовывая в список?
Типа как

next(iter(dict))

быстрее, чем

list(dict)[0]
?
#326 #776465
>>775471
pygame последняя версия вышла 7 лет назад, на вин10 знатно глючит, как-то бесперспективно изучать pygame
#327 #776482
Анон, как в джанге кошерно распределить логику приложения между моделями и вьюхами? Вот если я хочу отфильтровать данные где мне это лучше делать?
>>776485>>776759
#328 #776485
>>776482
В декораторе.
#329 #776504
У словарей есть какой - нибудь метод для добавления пар ключ-значение? Чтоб при этом все, что было в словаре жо этого, не изменялось.
>>776576
#330 #776576
>>776504
Ключи в любом случае должны быть уникальными.
Если тебе нужно, чтобы сохранялось старое значение - проверяй перед вставкой ключ на наличие.
>>776685
#331 #776628
>>770407 (OP)
Ещё учусь и проходил задачу: надо было циклом for запилить комбинирование слво из двух списков в один
Оригинальное задание было здесь:
https://youtu.be/9nmpW8rWqJc
Я его сделал.
Решил попробовать с тремя списками и у меня получается какая-то хуйня.
https://ideone.com/3SiVem

Я понимаю, что могу бежать впереди паравоза, но хотел бы спросить: что я делаю не так и почему получается неработающая хуйня, вместо 27 комбинации?
>>776631
#332 #776631
>>776628
Упс, не та ссылка.
https://ideone.com/alOyIR
Вот здесь "последняя" версия.
>>776639
#333 #776639
>>776631
Во-первых, никогда не используй зарезервированные слова/классы в качестве имён переменных (list, tuple, dict и т.д.)
Во-вторых, там хер знаёт чего у тебя понаписано, особенно elif len(list)>8: Откуда цифра 8 взялась? Никогда не суй подобные константы, опирайся на имеющиеся данные (сумму длин списков или что ты там хотел).
В-третьих, зачем ты insert используешь, если есть человечкий append, просто добавляющий в конец? Тебе ведь именно это и нужно.
В-четвёртых, посчитай, сколько раз у тебя вызывается твой самый вложенный код. 27
В-пятых, ты перемудрил, очень перемудрил. Всё, что тебе нужно, это пройтись по индексам [0, n], где n - длина любого из твоих списков (предполагается, что все они одинаковой длины, иначе всё сломается и нужны дополнительные условия).
В-шестых, брось этот урок. Итерироватсья по элементам, зачем вручную инкрементировать индексы, да ещё и зачем-то два разных, когда они всегда равны друг другу, при этом сам 'item' так и не используюя. Пиздец полнейший.

https://ideone.com/3VrpHt
Вот тут "красивое и элегантное" через zip, а также очевидное через луп.
Третий вариант с разными длинами, где списки зацикливаются.

Промотал видео и, если честно, не понял, что он вообще сделать-то хотел, хуйня какая в конце. Каждый элемент с каждым связать, что ли? Тогда там 4-ый вариант, делающий как раз это.
#334 #776640
>>776639
В четвёртом и пятом пунктах могу ошибаться, так как не совсем верно понял условие задачи изначально. А также с "равными друг другу индексами" поспешил.
Решение на видео, однако, всё равно считаю идиотским.
>>776652
#335 #776644
>>776639
Ну и, собственно, его задачу в три строки я переписал (там же, в конце). С двумя разными порядками, для наглядности.
>>776652
#336 #776650
>>776639
Позволь разобрать тобой написанное:

Во-первых, а почему тогда ideone никогда не ругался на список list?
Во-вторых, это я решил упростить условие для elif, т.к. заведомо знал, что по окончанию "комбинирования", "длинна" списка будет составлять 9 элементов. Так-то я бы потом убрал, если бы разобрался с проблемой.
В-третьих, я ещё не обучен этому, лол. В уроках был только insert. К тому же, у него же получается большее количество возможных применений.
В-четвертых,

>посчитай, сколько раз у тебя вызывается твой самый вложенный код


я_кот_а_не_архитектор.жпг
Я не знаю, как это считать. Ты имеешь ввиду, когда тело for a in first проверяется?
В-пятых, не, они разной длинны в примере на видео.
В-шестых, я не совсем понял тебя. Там суть урока была в том, чтобы сделать комбинацию из всех имен и фамилий (то, что написано у меня в списках - так. хулиганю немного), используя два уже имеющихся списка.

>Каждый элемент с каждым связать, что ли? Тогда там 4-ый вариант, делающий как раз это.


Ага.

И я правильно понимаю, что тут https://ideone.com/blSBa4 только эти два решения я могу пока понять, лул ты спользуешь свойство for, т.к. этот цикл перебирает все элементы, поднимаясь "снизу" вверх%% я смог реализовать свою "задачу".
https://ideone.com/6sw24m
>>776659
#337 #776652
>>776640
>>776644
Ну и эти два поста я тоже видел.
#338 #776659
>>776650

>Во-первых, а почему тогда ideone никогда не ругался на список list?


Потому что это не запрещено. Но это может сильно подпортить жизнь, а смысла в этом никакого, так как есть миллион других синонимов.

>Так-то я бы потом убрал, если бы разобрался с проблемой.


Ну хорошо. Хотя лучше изначально это не делать.

>В уроках был только insert


Ну хуёвые уроки, чо тут скажешь. Что там в предыдущих 23-то, блин, было?

>Ты имеешь ввиду, когда тело for a in first проверяется?


Да (только выполняется, а не проверяется). Но на этот пункт забей, я не так понял задачу сначала.

>ты спользуешь свойство for, т.к. этот цикл перебирает все элементы


А что, в уроках не было рассказано, что цилк for делает, но он его использует?

>поднимаясь "снизу" вверх


Што? Ничего никуда не поднимается. Просто при каждой итерации внешнего цикла внутренний выполняется снова n раз.
https://ideone.com/OFcRsz
>>777749
#339 #776685
>>776576
Так а вставить то как?
>>776690
#340 #776686
Можно как - нибудь в pycharm проверить код на PEP8?
>>776754
#341 #776690
>>776685
d[key] = value?
#342 #776692
>>776377
plotly
sage #343 #776727
Ковыряю Think python.
[CODE]
world = TurtleWorld()
def square(t):
t = Turtle()
for t in range(4):
fd(t, 100)
lt(t)
square(bob)
wait_for_user()
[/CODE]

Питон ругаеться, говорит, NameError: name 'bob' is not defined. Это почему же так?
#344 #776729
>>776727
Покажи пальчиком, где у тебя тут определяется bob.
#345 #776732
>>776727

>def square(t):


>t = Turtle()



Нафига просить аргумент, которые всё равно тут же на помойку выбрасываешь и переназначаешь? А если for луп внутри функции, то и это, новое значение, тоже не используется.

Хренота какая-то понаписана.
>>776741
#346 #776735
>>776727
Там как-то типа bob = Turtleword.turtle инициализируется, а ты это где-то посеял
>>776741
#347 #776736
>>776727
Удали python.
sage #348 #776741
>>776732
>>776735
Я все понял, спасибо. Думал что можно в функцию запихнуть чтобы каждый раз не писать боб - это черепашка.
>>776748
#349 #776748
>>776741
"Каждый раз" - это когда?

Эта хрень с неиспользованием аргумента в фукнции, кстати, в каких-то ответах даже присутствует https://en.wikibooks.org/wiki/Think_Python/Answers#Chapter_4
Может кто объяснить, в чём смысл?
#350 #776754
>>776686
Там в настройках можно включить степень глубины проверки.
#352 #776890
Посоны, киньте годный мануал по асинхронному (future, async, await, etc) программированию, везде какая-то дичь
>>776958
#353 #776958
>>776890
На ютубе найди видос бизли, где он с нуля всё рассказывает. Ещё захочешь.
#354 #777046
Как записать в файл целую строку?
>>777075
#355 #777075
>>777046
f.write(line)
22 Кб, 423x197
#356 #777088
Какой смысл в асинках и торнадо, если GIL?
>>777089
#357 #777089
>>777088
Толстячок.
За что я люблю пайтон #358 #777160
Вчера друг попросил написать ему скрипт. У него есть сайт визитница. Адрес на всяких визитках. На сайт заходят только клиенты. Он попросил меня написать скрипт обновления новостей. Скрипт заходит на чужие сайты, тащит оттуда новости с картинками и размещает эти новости на его сайте. У друга нет доступа к корню сайта, нет даже доступа по ftp. Все новости через админку делаются. Скрипт сделал, 45 строк занял. Работает исправно.
>>777174
#359 #777174
>>777160
Ты сделал бы все то же самое на любом другом из сотни динамических языков. И еще сотне статических - кроме, может быть, ассемблера и С++.
>>777200
#360 #777200
>>777174
Из песка можно дом построить хорошенько потрахавшись с ним. Кирпичами можно гвозди забивать.
>>777214
#361 #777214
>>777200
Расскажи мне как изменился бы твой код если бы вместо Пистона ты взял Ruby, Perl, Lua, Lisp, JavaScript, Bash?
>>777222
#362 #777222
>>777214
Код стал бы длиннее в два раза на другом языке.
>>777224
#363 #777224
>>777222
Почему не 5?

На Ruby он был бы точно такой же, на Perl - вдвое короче
>>777235
#364 #777231
Питон - идеальный язык для решения текущих проблем. Что тут спорить? Нужна была бы скорость - писали бы на плюсах, нужна была бы паркетная обработка файлов - на R каком-нибудь, а питон это чисто надо тебе склепать за 20 минут рабочую программку - склепал и пусть себе трудится медленно там или быстро похуй вообще. И нет, это не означает что для другого он не годится, но именно в этом аспекте он хорош безо всяких альтернатив.
Олигофрены вечно набигающие в тред перднуть о том, что якобы по их мнению лучше было бы на их любимом языке писать - знайте - нам очень важно ваше мнение, оставайтесь на линии
>>777236
#365 #777235
>>777224
45 строк у меня случилось из-за дополнительных требований. Вы вообще плохо понимаете суть задачи. При прямом доступе к его сайту, я мог бы сократить код до 20 строк. У Ruby синтаксис не позволит сделать короче. Ruby хорош тем, кто спрыгивает с пэхапэ. Для них этот синтаксис как бы роднее. Perl, вы бы еще кресты вспомнили, турбопаскаль, вижуал бейсик :) Короче, кончай меня троллить. Я уже достаточно навоевался в священных войнах Ruby vs Python.
>>777238>>777391
#366 #777236
>>777231

>Питон - идеальный язык для решения текущих проблем. Что тут спорить?


>Perl - идеальный язык для решения текущих проблем. Что тут спорить?


>Bash - идеальный язык для решения текущих проблем. Что тут спорить?


>Lisp - идеальный язык для решения текущих проблем. Что тут спорить?


>Lua - идеальный язык для решения текущих проблем. Что тут спорить?


>JavaScript - идеальный язык для решения текущих проблем. Что тут спорить?

#367 #777238
>>777235

>Вы вообще плохо понимаете суть задачи.


Наверное потому что она плохо описана?

>>На Ruby он был бы точно такой же


>У Ruby синтаксис не позволит сделать короче.


С чем спорим?

>Perl


Чем же конкретно он не подходит для этой задачи? CPAN слишком велик, глаза с непривычки разбегаются?
>>777239
#368 #777239
>>777238
Иди гуляй
>>777243
#369 #777243
>>777239
Утверждение о том что питон - идеальный язык, несравнимый ни с чем, остается в силе?
>>777248
#370 #777248
>>777243
сказали же ГУЛЯЙ
>>777254
#371 #777254
>>777248
Но я хотел проникнуться всеми преимуществами идеального языка, несравнимого ни с чем. Почему ты отказываешься их показать?
>>777255
#372 #777255
>>777254
Перестань. Спор бесполезен как и о несравнимости языка, так и о "45 строках". Нет ни задачи ни решения, хотя было бы интересно попытаться решить какую-нибудь небольшую задачку на разных языках и сравнить.
Кстати, при подсчёте строк принимаются в расчёт сторонние библиотеки или нет? А то так можно и в одну строку всё уместить.
>>777269
#373 #777258
А правда, что на питоне нет работы совсем?
>>777285
#374 #777269
>>777255
Если вести спор конструктивно, а не в тональности "ойвсё!", в которой ты пытался это делать, то он может быть очень полезен.
Небольших задачек и решений их на разных языках полон Интернет.
Количество, качество и легкость использование библиотек всегда считались положительными показателями языков программирования, а не наоборот. Если твою задачу можно уместить в однострочник на bash, что же в этом будет плохого (для тебя, не для несравнимости Питона)?
>>777289>>777291
13 Кб, 499x174
#375 #777285
>>777258
Вот вчера мне предложили очередную работу. Зарплата over $120K в год. Предложение пришло в linkedin
>>777299
#376 #777289
>>777269
Я не он, очевидно же.
#377 #777291
>>777269
bash может управлять браузером, проходить капчу авторизации? А?
>>777303>>777306
#378 #777299
>>777285
Они всегда такие эссе выписывают? Анивэй ты-то помимо пистона еще миллиард хуйни всякой знаешь.
>>777321>>777873
#379 #777303
>>777291
Конвертнуть капчу в грейскейл и отправить в tesseract может и bash, конечно.
Может и сам ее сделать, выдать и проверить результат https://github.com/TomConlin/recaptcha-in-bash/blob/master/cgi-bin/captcha.sh
>>777311
#380 #777306
>>777291

>управлять браузером


Что ты под этим подразумеваешь?
>>777313
#381 #777311
>>777303
Ок, вот тебе конкретная задача. Давай сравним. Залогинься в https://steamcommunity.com Пройди двойную авторизацию. Вторая авторизация на телефоне, нужно ввести капчу на телефоне. На питоне - это занимает 7 строк.
>>777325>>777332
#382 #777313
>>777306
В прямом смысле этого слова. Ты наблюдаешь как браузер сам нажимает на кнопки, скролает, пишет комменты, лайкает, набивается в друзья.
>>777325>>777326
#383 #777321
>>777299
У меня в профиле написано, что я только питон знаю. Другие языки я пока не указывал. Так как я сейчас занят, а хедхантеры постоянно пишут, ищут питонистов усердно.
#384 #777325
>>777313
И о каком конкретном механизме управления браузером идет речь? Какую именно питоновскую библиотеку ты имеешь в виду? Браузером можно управлять различными способами.

>>777311
На Нокии 3310?
>>777329
#385 #777326
>>777313
Ты сейчас имеешь в виду под "пайтон умеет" selenium или что-то подобное? Только не говори, что ты именно таким образом постил новости.
#386 #777329
>>777325
Один раз авторизовываешься, проходишь все капчи вручную и сохраняешь кукизы. В следующие разы авторизоваться уже не нужно.
>>777331>>777352
#387 #777331
>>777329
Это умеет самый примитивный curl, который ты дергаешь из bash. Можно и руками отправлять, заголовок дописать несложно в реквест, но некрасиво.
>>777334
#388 #777332
>>777311
Разве у steam нет API?

>На питоне - это занимает 7 строк.


Какие библиотеки используются?
>>777335
#389 #777334
>>777331
Bash must have to know and use. But Python is my favorite language. That's it.
#390 #777335
>>777332
API есть двух типов. Для утвержденных ботов от больших сайтов - получаешь доступ ко многим вещам. И ограниченный API со множественными ограничениями. Борятся с ботами.
>>777352
#391 #777352
>>777335
Страшные вещи там творятся.
Я думал, ты и капчу разгадываешь и с телефона как-то код забираешь, а оно вот как >>777329 Тоже вариант.
Так всё-таки, как ты новости постил на сайтик?
>>777367
#392 #777367
>>777352
Через selenium Не знаю почему здесь столько хейтеров selenium. Настоящий браузер, благодаря этому прекрасно обходит антибот защиты. Хотя paypal каким-то образом меня детектает, требовал капчу вводить пару раз, потом перестали требовать, они видят, что я делаю только законные действия через них. Есть плюс в оформлении новости на вебсайте. Бот вводит всю инфу, прикрепляет фотографии. На последнею кнопку поста не нажимает, дает убедится, что все правильно оформлено.
>>777368>>777395
#393 #777368
>>777367
Дело все опять в волшебном селениуме, а совсем не в волшебном Питоне.
И почему я не удивлен?

https://github.com/jfriesse/selenium-bash
>>777378
#394 #777376
PYTHON 4
@
2to3
@
3to4
#395 #777378
>>777368
Ну так пиши в баш-треде. Чего тут забыл? Я на питоне практики набираюсь. Вдобавок на винде сижу.
>>777384
#396 #777384
>>777378
Зачем же ты рассказываешь что Питон обладает волшебными пузырьками, несравнимыми ни с чем?
>>777393
#397 #777391
>>777235

Все забыли про божественный Хачкель.
>>777394
#398 #777393
>>777384
Я это делаю в питон-треде. Всё по правилам.
>>777455
#399 #777394
>>777391
Божественнее брейнфака уже ничто не может быть божественным.
#400 #777395
>>777367
Я думаю, что хейтят не сам selenium, а его использование не по делу. Вот, например, в твоем случае, как мне кажется, раз есть доступ к админке, и постишь ты новости через неё, то нужен всего лишь post-запрос. А по поводу "в три строки на питоне", все-таки на стоит так, ведь мы можем быстренько набросать скрипты благодаря людям, которые пишут и поддерживают библиотеки. Потому к тебе и вопросов столько было от анонов.
>>777403
#401 #777403
>>777395
Эти аноны пайтон знают слабо и не могут оценить всю красоту языка.
>>777453
#402 #777453
>>777403
Надеюсь что это сарказм.
#403 #777455
>>777393
По правилам полагается рассказывать про Питон удивительные волшебные сказки?
>>777478
#404 #777478
>>777455
Самый волшебный язык - это брейнфак. Язык будущего.
#405 #777498
Аноны, как мне сделать так, чтоб в файл записывалось все, а не только последнее? Мне нужен лог действий, а в итоге в файл пишется лишь последнее действие.
>>777501
#406 #777501
>>777498
Видимо тебе нужен режим 'a', то есть добавление в конец файла.
>>777502
#407 #777502
>>777501
Ох, анончик, спасибо тебе огромное, я думал весь код по пизде пошел
#408 #777508
Какая функция позволяет узнать, сколько элементов в списке?
>>777511
#409 #777511
>>777508
Она совпадает с тем чувством, которое не позволило тебе погуглить - len.
>>777512
#410 #777512
>>777511
Меня PyCharm послал нахуй, когда я пытался через лен длину списка вывести. Но все, я разобрался
Perl #411 #777523
Перлбоги, делаю задачу из книги: надо вывести имя файла в папке, созданного раньше всех. Я использовал -C для получения времени изменения узла файловой системы если правильно понял, что такое -C. Можно ли сделать программу еще короче?

https://ideone.com/8ZQAVa
#412 #777536
Привет двощ! Расскажи мне про расценки на раб силу на пистоне. Хочу найти студентоту в качестве помощника и спихивать на него джанго-говны. Какой бюджет закладывать?
#413 #777551
>>777560
45 Кб, 894x656
#414 #777560
>>777551
Пистушку неприятно.
>>777656
#417 #777649
>>777523
ls -tr | head -n 1
>>777667
#418 #777656
>>777560
После того как поиграешь в Rising World, играть в Minecraft после этого невозможно.
#419 #777663
>>777523
Get-ChildItem -File | Sort LastWriteTime | Select -First 1 name
#420 #777667
>>777649
ls -t|tail -n1
10 Кб, 494x334
#421 #777678
Сделал как пишут в:
http://stackoverflow.com/questions/6420311/how-to-make-save-load-game-functions-in-pygame
А в итоге получил:

> TypeError: can't pickle instancemethod objects


Что я делаю не так?
#422 #777695
>>777678
Глобальные переменные вызывают страшные глюки. Никогда их не используй.
>>777699
#423 #777699
>>777695
Поясни подробнее. Ты про переменную g?
>>777702
#425 #777702
>>777699
Не изучай пайтон с pygame. Я когда начал изучать пайтон, тоже начал с pygame - это оказалось болью и печалью. Там надо уметь работать с классами и кое-где более высокий уровень полета требуется и будешь спотыкаться об элементарные вещи. Вот лучше начни с них.
>>777892
#426 #777709
>>775507
open(path, 'w')
#427 #777718
>>777700
Бесполезная бредятина какая-то.
>>777729
#428 #777729
>>777718
Почему люди предпочитают написать эту фразу когда им встречается текст который они не смогли прочитать и понять?
>>777734
#429 #777734
>>777729
Потому что они высказывают своё мнение. В чём такое охуенное преимущество написать вложенную конструкцию без отступов или обозначения блока? Толь проблемы создаст.
Нет, ну правда, зачем? Вот чем то, что он в конце представил, полезно? Тем, что сбивает с толку людей, проглядывающих код?

>Once delimiters are added and indentation is used, that should signify that that type of linked relationship is not true, and the code requires more careful reading.


Как раз-таки его код требует более тщательного чтения, потому что изначально не ясно, входит внутренняя структура куда-то или нет.
В тех же шарпах постоянно просят не пропускать скобочки даже в однострочных ифах, потому что обязательно потом обосруться, изменяя код, а ведь тут, по-сути, то же самое.

Да, в качестве теории это хорошо, оно действительно "calls out the simplicity of how the two control statements are 100% linked.", вот только практической пользы никакой, ящитаю.
>>777735
#430 #777735
>>777734

>только


>обосрутся


fix
#431 #777749
>>776659

>Потому что это не запрещено. Но это может сильно подпортить жизнь, а смысла в этом никакого, так как есть миллион других синонимов.


Понятно, учту.

>Что там в предыдущих 23-то, блин, было?


Научили, как пользоваться циклом if, циклом for, объявлять переменные, создавать листы и прочее.

>А что, в уроках не было рассказано, что цилк for делает, но он его использует?


Ну вполне возможно, что я не так понял, что при вложении for в for, цикл перебирает элементы из каждого множества, по отношению к другому множеству.

>Просто при каждой итерации внешнего цикла внутренний выполняется снова n раз.


Внешний цикл - это самый "старший", в который вложены остальные?

Так-то уроки не плохи. Получше, чем было в книге Доусена, где для решения задач нужно из конца главы, надо было читать другие книги.
И да, прошу прощения, что так заслоупочил. Горы дел были.
>>777752>>777779
#432 #777752
>>777749

>Научили, как пользоваться циклом if, циклом for, объявлять переменные, создавать листы и прочее.


Пиздос, и сколько ты на это времени потратил?
Все это просекается за два чтения первых пяти глав любой книги. Метода такая: в первый день читаешь книжку в толчке, чтобы иметь представление втф, во второй день делаешь задания из конца глав пречитывая все непонятные места.
>>777778>>778608
#433 #777778
>>777752
Ну я медленно, но прохожу материал.
Быстро добью этот курс и потом второй прогляжу.
#434 #777779
>>777749

>Внешний цикл - это самый "старший", в который вложены остальные?


Да.

>Ну вполне возможно, что я не так понял, что при вложении for в for, цикл перебирает элементы из каждого множества, по отношению к другому множеству.


>по отношению к другому множеству.


Они независимы. Внутреннему абсолютно всё равно, вложен он куда-то или нет, он и не в курсе даже, есть там что-то или нет. Если оче грубо так, без нюансов, конечно.
>>778608
#435 #777866
>>775933

>Видимо, не стоит называть объекты с именами модулей из стандартной библиотеки.



все есть объект жи
#436 #777868
>>776377
канонично и Ъ использовать matplotlib
#437 #777873
>>777299
на пасту для спамменка похоже

никакой конкретики
#438 #777890
>>774011
kkk поди
#439 #777892
>>777702
Ты так и не пояснил где там у меня глобальные переменные увидел.
>>777945
#440 #777945
>>777892
У тебя весь кусок кода в глобальной области видимости.
>>777975
#441 #777974
Кто-то использует pyinvoke для деплоя? Хочу заменить fabric но не понятно как настроить роли и в нем есть аналог env.roledefs? как вообще подконектиться к серверу?
>>778043
#442 #777975
>>777945
Но там кода на 3 стоки, лол. Хоть что-то же обязано в глобале быть, иначе никак.
>>777977
#443 #777977
>>777975

> Хоть что-то же обязано в глобале быть,


Объявление функци обязано в глобале быть.
>>777982
#444 #777982
>>777977
Лепить
def main():
app = App()
app.run()
main()

что ли? Нахуя?
>>777993
#445 #777993
>>777982
Нет конечно:
def main():
__app = App()
__app.run()

if __name__ == '__main__':
__main()

или на худой конец:
if __name__ == '__main__':
__app = App()
__app.run()

> Нахуя?


Чтобы структурировать код, чтобы не обявлять переменные в глобальной области видимости, чтобы твой App() не стартовал при импорте модуля.
>>777997>>778012
#446 #777997
>>777993

>Нет конечно:


>И пишешь то же самое __main__ к вопросу глобала отношения не имеет.



>или на худой конец:


Так тут тот же глобал же, лил.

>Чтобы структурировать код


>чтобы не обявлять переменные в глобальной области видимости


Так вот это точка входа/старта в глобале жи, вполне всё "структурировано". Какая разница, функция там будет или одна единственная переменная.

>чтобы твой App() не стартовал при импорте модуля.


Уже выше в спойлере написал, зачем это сюда тащить-то, к глобалам отношения не имеет.
>>778002
#447 #777998
Парни, вопрос уровня червя-пидора, но раз уж уважаемым девелоперам иногда приходится пересекаться с этим сбродом - может сможете уточнить или подсказать чего.
И так, хочу отдать свою даму на курсы сео, что бы уже работающие сайты раскручивала и бабло в адсенс/директ пихала.
Какие курсы где брать?
#448 #778002
>>777997
Впрочем, при импорте модуля, конечно, да, с мэйном app туда не попадёт, но это другое.
>>778012
#449 #778008
>>777678
Решил проблему простым перекатом с pickle на dill. Но внезапно выяснилось, что все сохранённые экземпляры класса Surface pygame после загрузки читать не хочет.
И если раньше простой прожектайл хранил ссылку на картинку в себе, то теперь он должен хранить и вызывать его через анальное отверстие, например, хранить в себе только ключ для словаря и вызывать картинку по этому ключу из внешнего словаря.
#450 #778012
>>777993
>>778002
Но зачем адекватному человеку импортировать модуль предназначенный для старта программы?
>>778045
#451 #778043
>>777974

>для деплоя


ansible
>>778053
#452 #778045
>>778012
с проектами на flask сейчас так и работают примерно
#453 #778053
>>778043
Слишком комбайн, мне всего то нужно сходить по ssh дернуть pull и докер запустить.
>>778054>>778055
#454 #778054
>>778053
Анус себе дёрни, пёс.
#455 #778055
>>778053
Если проект разрастется, то пользоваться ansible придется научиться, хотя бы знать минусы чтобы не наступать на грабли и не тратить время напрасно.
Ну либо взять capistrano, оно такое же удобное, только на ruby.
#456 #778198
а я быдлоолимбеаднег
#457 #778329
Анончеки, помогити.
Можно ли, проходя циклом по списку(состоит из кучи строк), если какая-то строка равна определённому тексту, вывести Следующий элемент в списке?
>>778330
#458 #778330
>>778329
АА блядь, нашёл, волшебная ф-ция zip
#459 #778370
Анончики, выручайте, вы моя последняя надежда :c
Вобщем, такая тема - мне нужно скачать вот эту страничку http://www.biblio-globus.ru/service/catalog/details/10284233, потом написать программу, которая соберет всю инфу о книге - автора, цену, etc. Соответственно, запишет все это в файл. Как мне это реализовать?
>>778383>>778411
#460 #778383
>>778370
1. Скачиваешь страницу, например, с помощью requests
2. Парсишь скачанную страницу, например, с помощью Beautiful Soup
3. Сохраняешь в файл необходимые данные
Что именно ты не можешь реализовать?
>>778384>>778387
#461 #778384
>>778383
Он хочет, чтобы ты за него это реализовал.
>>778385>>778387
#462 #778385
>>778384
Мне вот тоже так показалось, но я хочу убедиться.
#463 #778387
>>778384
Нет, вовсе не хочу.

>>778383
Мне походу надо сделать это через регулярные выражения.
>>778404
#464 #778391
всем привет у меня очень ньюфажный вопрос
изучаю питон по доусону, стоит задача, переделать строку наоборот
вот мой код
https://ideone.com/4V6ouz
как я мыслю:
вводим слово, так?
заносим его в b
изменяем b от минимального отрицательного до 0
или не так я думаю?
>>778402>>778405
#465 #778402
>>778391
А ты пробовал запускать это код?
Нет смысла заносить слово в b, если оно уже в a.
Тебе стоит прочитать про срезы, тогда у тебя всё получится.
#466 #778404
>>778387

> Как мне это реализовать?


> Мне походу надо сделать это через регулярные выражения.


Зачем спрашивал, если лучше нас знаешь?
#467 #778405
>>778391
1. Зачем нужно b?
2. len — это функция. -len — это ошибка.
3. Реверс делается через [::-1] (прочитай про слайсы).
4. пиздец ты дибил
#468 #778411
>>778370
from bs4 import BeautifulSoup
from urllib.request import urlopen

html = urlopen('http://www.biblio-globus.ru/service/catalog/details/10284233').read().strip().decode('utf-8')
soup = BeautifulSoup(html, 'html.parser')
details_name = soup.find("div", { "class": "details_name"}).contents[0]
with open('data.txt', 'w') as f: f.write(details_name)
#469 #778419
Зачем в питоне нужны аргументы командной строки?
sys.argv
>>778420
#470 #778420
>>778419
А зачем они нужны в любом другом ЯП?
>>778421
#471 #778421
>>778420
Так я ньюфаг, и поэтому не знаю. Чтоб эти программы через обычную командную строку выполнять, например?
>>778423
#472 #778423
>>778421
Ну вот, ты уже близок к истине. Чтобы передавать программе аргументы, типа
./load_page.py https://2ch.hk/
#473 #778426
Почему при записи в файл кириллица отображается хуй пойми как?
Гвидо там совсем охуел? Как фиксить?
>>778429
#474 #778429
>>778426
Потому что ты сраной виндой пользуешься.
#475 #778510
>>770407 (OP)
Устал от Asp.Net Mvc C#. Куда лучше вкатывать: Python Django или Java Spring?
>>778590
939 Кб, 1920x1080
#476 #778558
Привет, антуан. Я поставил перед собой небольшую цель: начать получать этим вашим фрилансом копеечку, дабы оплачивать интернеты. Более всего интересует работа на зарубежных фриланс биржах (upwork), а именно django dev.
Очень буду рад, если тут найдутся люди, кто зарабатывает/зарабатывал денежку на джанге. Профили на этих ваших биржах давно заведены, но приступать к отправке заявок считаю себя ещё недостаточно готовым. Как определить тот момент когда я буду готов, чтобы не обосраться и выполнить всё perfect по ТЗ заказчика? Что стоит подтянуть или выучить?

На джанге на данный момент написал всего два проекта (блог и небольшой интернет-магазин), оба из которых, правда говоря, так и остались в пределах локального сервера (одолевает перфекционизм: из первого уже сделал свой вордпресс (маняфантазия)).

Работал только с SQLite и MySQL (понимаю что надо ещё в PostgreSQL въезжать). Могу склепать на коленке адаптивный дизайн (без бутстрапа, но с очень неказистым дизайном - фронтэндер из меня никакой), на jQuery разные красивые штуки могу прикрутить.

Посоветуйте что ещё поизучать и что поделать, чтобы прокачать скиллы и со спокойной душой пытаться что-то словить на апворке.
>>778597>>778612
#477 #778590
>>778510

Haskell Yesod.
#478 #778597
>>778558
Сколько вас таких тут было, кто просто услышал о зп программера и решил чем он хуже. Оно и не плохо, с одной стороны, только такой трюк при такой мотивации удается провернуть хорошо если одному из пяти-десяти. Потому что программинг это блин хобби, а не ремесло. Ремесло это вон фронтенд, хотя тоже бывают исключения, и всегда работы по фронту валом.
Ну, твое дело конечно. Я бы рекомендовал сперва попробовать себя в торговле, ибо она точно больше приносит и не является пыткой, которую через силу мозги шевелить заставляет. Купил рекламу в адсенс - взял предоплату - купил васяну его дверь/ворота/сигарету электронную - отдал, деньги забрал и гуляй себе.

Ну, а так что:
Python: codecademy - a byte - Dowson / Lutz - think Python - tutorials - standard library by example - algorithms and data structures with Python
Django: polls tutorial - django girls tutorial - django by example - obey the testing goat - 2 scoops of django - tutorials
Удачи
#479 #778608
>>777779
>>777752
А так, аноны, какие есть годные видеокурсы по третьему питону?
Мой курс "Ленивый питон" оказался не очень, как получается.
>>778614
#480 #778612
>>778558

>денежку


Съеби.
#482 #778617
>>778614
Бобра.
#483 #778628
Как проще всего засунуть output в хтмл страницу? Обязательно надо какой то фреймворк ставить? И например, если у меня есть код который парсит сайт и это занимает время допустим секунд 10, то я засуну этот код в контроллер в джанге, и когда зайду на эту вьюшку она 10 секунд будет грузиться? Как это решается правильным способом?
>>778636>>778638
#484 #778636
>>778628
Очереди, воркеры, веб-сокеты.
#485 #778638
>>778628
ставишь celery, он каждые n времени парсит сайт и ложит данные в redis, когда нужно достаешь с redis и ложишь у вьюшку
#486 #778674
Есть что-то типо самоучителя - пилим простой сайт с обменом данных с сервером.
>>778819
#487 #778686
В цикле for i .... итератором может быть любая буква? Например t?
for t in range.....
>>778688>>778822
#488 #778688
>>778686
Это обычная переменная и правила ее именования как для обычной переменной.
#489 #778692
Кому-нибудь удавалось собрать с помощью pyqtdeploy?
Это пиздец, мало того, что это говно валится в процессе без отчета об ошибках, так еще и nmake не ест высранные им pro файлы с ошибкой
hz.pro(3) : fatal error U1036: синтаксическая ошибка : слишком много имен с
лева от "="
Stop.
>>778695
#490 #778695
>>778692
Все дело в +=, которые это мразь щедро разбрасывает по всему .pro файлу. А ведь написано, что на виндоусе можно работать.
#491 #778721
Можео где-нибудь почитать про csv в python?
>>778733>>778820
#492 #778733
>>778721
Можео.
#493 #778743
Что эта строка значит?
("\n".join(textwrap.wrap(row[1], 40)))
>>778748
#494 #778748
>>778743
Форматирует текст столбиком по 40 символов в строке.
176 Кб, 728x974
#495 #778755
Господа, а как сделать несколько версий одного и того же модуля, но "в одном модуле"?

Скажем есть публичное API, и я хочу, чтобы новые версии не ламали старых клиентов, по этому все запросы будут идти вида http://pisechka.hk/v0.1/hahaha или http://pisechka.hk/v0.2/hahaha и каждую версию обрабатывает раздельный код.

Сейчас есть файл handlers.py, который хэндлит все запросы, но хотелось бы сделать типа handlers_0_1 и handlers_0_2, но чтобы было цивильно.

Есть ли готовая либа для таких вещей?
>>778784>>778811
sage #496 #778784
>>778755
Все зависит от того, как в твоём приложении организован роутинг запросов.
>>778789
#497 #778789
>>778784
Это не важно, важно как сам код отдельно от запросов организовать. Но выглядит сейчас так:

handlers = [
...

(r"/attach", h.AttachAccountHandler),
(r"/auth", h.AuthorizeHandler),
(r"/resolve", h.ResolveConflictHandler),
(r"/validate", h.ValidateHandler),
(r"/extend", h.ExtendTokenHandler),

...
]
#498 #778811
>>778755
пакет api_v01, api_v02, в каждом из них своих вьюхи и урлы, которые инклюдятся в глобальном urls.py (джанга)

(r"/v0.1", include('api_v.01.urls'))
>>778816>>778835
#499 #778816
>>778811
Как ты определил, что у него django?
>>778835
#500 #778819
>>778674
Да валом
Вбивай Джанго шоп/блог/твиттер/что угодно туториал и смотри
Начать можешь с Джанго гёрлз туториал
#501 #778820
>>778721
Пандас чем тебе не CSV?
#502 #778822
>>778686
фор орешек ин корзинке
фор элемент ин лист
И тд
Главное что бы быстро врубиться можно было что это и зачем
#503 #778835
>>778816
>>778811
Нет, у меня tornado. Хотелось бы чтобы структура осталась как есть, чтобы как-то посмотреть список версий пакета, и для каждой зарегистрировать хэндлер.
84 Кб, 717x560
25 Кб, 800x600
#504 #778843
Аноны, почему у меня рисуется гистограма с подписями 1.0 2.0 и т.д, если мне нужно 10, 20, 30 и тд?
>>778852
15 Кб, 717x79
18 Кб, 717x121
#505 #778852
>>778843
Я понял, что функция float преобразовывает мои значения. Как мне перевести строковое '69.65' в обычное 69.65?
>>778854
#506 #778854
>>778852

>>> float(' 69.95')


69.95
>>778855
#507 #778855
>>778854
Так ты посмотри второй пик, почему они преобразовываются в 6.0
>>778857
#508 #778857
>>778855
Потому что для чего ты делаешь i[1] и x[1]? Оставь просто i и x.
>>778860
#509 #778860
>>778857
Спасибо, сейчас попробую.
#510 #778902
Решил спрыгнуть с Selenium. Альтернатив мало beautifulsoup может выполнять js? Что надо прописывать в профиле, чтобы прикидываться полноценным браузером?
#511 #778952
Есть какой - нибудь сайтик, который сам тебе прописывает регулярное выражения для заданной строки? Сколько не ебался, никак строку Оруэлл Дж. не находит.
>>778958>>779621
#512 #778958
>>778952
Зачем тебе регулярки? Используй HTML-парсер и бери просто текст из тега с определенным классом.
>>778961
#513 #778961
>>778958
Преподаватель сказал.
#514 #779112
Как сделать так, чтоб кириллица работала? Ищу через регулярные выражения, которые на сайте находят в строках это слово, а в програаме выводится как пустота.
>>779124
#515 #779124
>>779112
Какая версия питона? Где код? Вы заебали уже.

P.S. Скорее всего ты не любишь читать доки
>>779141
#516 #779141
>>779124
нахуй ты ему отвечаешь?!
>>779156
#517 #779156
>>779141
Сорь. Мне было скучно. Больше не буду.
#518 #779348
Что за неведомую херню возвращает super? https://ideone.com/7xXHhb
51 Кб, 700x400
#519 #779350
Пацаны, нид хелп
Нахожусь в командировке
Имею вин-10 ноут с ебанутым UEFY на который ещё и ставить толком ничего нельзя из альтернативных систем
Внезапно нужно до пнд запилить простенький сайтец-одностраничник
Хочу сгенерировать его на https://github.com/eudicots/Cactus или http://blog.getpelican.com/ и потом доводить до ума, ведь шеф тот ещё эстет.

А теперь, внимание, вопрос знатокам:
Как мне всё это провернуть из-под блядской винды? И какой сайт-ген выбрать? Где брать джанго-шаблончики для Кактуса и тд
#520 #779370
Пилите перекат, тред не бампается.
#524 #783014
анон, помоги. в файле txt надо найти ВСЕ имена + фамилии и вывести их на экран. Я только понял, что надо через регулярные выражения это делать, но не знаю, как именно. Если ты напишешь кусочек кода, который делает эту магию, то с меня спасибы, а не как обычно
#525 #783344
Аноны пытаюсь решить такую задачу, но пока не получается :
дана последовательность чисел (например 112222555555444), нужно написать функцию которая выводит самую длинную подпоследовательность одинаковых чисел в этой последовательности, понятно что это
555555, но как вывести её и индексы начала и конца этой подпоследовательности.
>>783353
#526 #783353
>>783344
решай в перекатаченном треде, для начала
#527 #783380
>>772643
Это часть твоей жизни. Да и сам ты, если внимательнее присмотреться....
#528 #784191
Анон, как можно реализовать скачивание музыки с sc(soundcloud.com), если она там не хранится где-то, а передается по частям, ну тобишь подгружается?
#529 #785120
https://ideone.com/NN1z2L
Вот этот код должен пройти по списку и проверить, является ли хоть один из членов списка нулём. Если да - то он должен сказать False, если нет - True. Но он работает только на первом члене списка, дальше затыкается. Почему?
#530 #785215
>>785120
А первый елемент в списке ноль или не ноль?
>>785217
#531 #785216
>>785120
коль выполняется return из цикла ты выходишь вон
могу ошибаться, на слово не верь
#532 #785217
>>785215
Не ноль.
#533 #785221
через пайтонтутор прогони код, погляди что он выполняет.
>>785260
#534 #785224
>>785216
Да, полагаю именно в этом дело - сейчас, когда учусь разные циклы писать, то с return приходится долго ебаться.
#535 #785234
>>785260
164 Кб, 682x1024
88 Кб, 885x1145
54 Кб, 600x900
66 Кб, 1200x675
#536 #785260
>>785234
>>785221
Всё, как надо решил и посмотрел, сэнкс. Держите няшек.
73 Кб, 186x306
#537 #787815
Может у кого-то имеется Modern Python Development with PyCharm в mobi/epub/pdf?
#538 #789941
Как разрывать соединение в модуле urllib2 после отправки запроса? Мне нужно только отправлять данные. Ответ на запрос меня не интересует.
#539 #792092
Сорян за тупой вопрос, но чем конкретно отличаются два вида задания переменных?
https://ideone.com/qSTuSZ
>>792317
#540 #792317
>>792092
Питон тред перекатился
#541 #792839
А можно как-то не ждать ввода input и дальше запустить программу? или может есть другие похожие команды
хочу сделать программу с вводом и параллельным отсчетом времени, пробовал threading.Timer, но его дважды не запустишь и к тому же сложна
#542 #793540
>>785216
если быть точнее, то return возвращает определенное значение из функции, а вот инструкция break прерывает цикл
>>793544
#543 #793544
>>793540
и вообще можно еще так
https://ideone.com/4Wv1kR
#544 #793558
>>785216
можно еще так
https://ideone.com/CCgMm7
83 Кб, 811x521
#545 #794756
Уважаемые, скинули задание в котором три файла: .json, .csv
необходимо на питоне их хотя бы открыть для начала, помогите незнайке:)
#546 #795084
Нужно работать с PostgreSql, а я хз что это и как с ним работать. Поскидывайте гайдики по этой штуке.
С питоном вроде через Psycopg2 работать с этой бд?
#547 #795422
Привет. Писал давным-давно, еще в студенчетве, на питоне 2.7 программки мелкие, решил вспомнить и написать бота для телеграмма (раньше писал что-то подообное для xmpp). Дано: win 7.
Скинул в папку pyTelegramBotAPI-master с гитхаба, пишу:

>import sys


>sys.path.insert(1, 'pyTelegramBotAPI-master')


>import telebot



На выходе имеем:

>Traceback (most recent call last):


.....

>import telebot


>File "pyTelegramBotAPI-master\telebot\__init__.py", line 8, in <module>


>import six


>ImportError: No module named six



В __init__ телебота:
from __future__ import print_function

>import threading


>import time


>import re


>import sys


>import six


В чем причина? Проблема в библиотеке?
Инб4 во мне, и так знаю

Помогите битте, года четыре не пейсал ничего.
Тред утонул или удален.
Это копия, сохраненная 14 июля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски