Двач.hk не отвечает.
Вы видите копию треда, сохраненную 6 июня 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
#2 #738712
Поясните нуфагу как канонично делать ограничения на значения переменной? Вот есть у меня в объекте поле которое не может быть меньше 0 и больше 100, есть метод который изменяет его путем прибавления, там же сразу обычным IF делается проверка и если значение вышло за диапазон то оно приравнивается к крайнему значению. Все правильно делаю или есть более разумный путь?
#3 #738716
>>738712
Да полностью пиши если что-то мутное
checked_your_mom_ebal_status и тд, легче понять что делает - быстрее переписывать
#4 #738719
>>738712
Сорри, перепутал с парнем который в прошлом треде переменные называть не умел.

Понятнее тебе структура - лучше. Этого и придерживайся.
#5 #738720
>>738712
Да, только лучше использовать properties https://docs.python.org/3/library/functions.html#property и делать проверку в "геттерах/сеттерах".
>>738734>>738737
#6 #738734
>>738720
Ок, спасибо, как раз это и искал. А в чем фишка иметь гетеры в языке который не котирует приватные поля?
>>738762
#7 #738737
>>738720
Так вот что за мразь всем property советует. Худшее, что есть в питоне, имхо. Дергаешь его, думаешь что обычное поле класса, а эта мразь тебе то исключение выкинет, то SQL-запрос отошлет, то еще какое-нибудь неожиданное поведение устроит. Хуже только создание полей у объекта извне.
>>738754>>738762
#8 #738738
На работу со знаниями пайтона по-прежнему не устроиться?
>>739037
#9 #738741
Аноны, не знаю, по адресу ли обращаюсь. Давно мечтаю втиснуться в open source, но нет ни знаний, ни опыта в этом. Хотел бы покодить на питоне, просто потому что на работе на нем пишу. Может посоветуете какие-нибудь open source проекты, в которые можно покоммитить, но не очень востребованные, чтобы меня оттуда ссаными тряпками не погнали? Читать маны не проблема, но у меня не очень большой опыт разработки "не для себя" и я ссыкло.
>>738743
#10 #738743
>>738741
помониторь "дейли топ" репозиториев гитхаба, как правило там как раз мелкое уютное новьё, найди чего по душе и фигачь
#11 #738754
>>738737
Неосилятор в треде. поведение документировано должно быть
#12 #738762
>>738734
Для контроля доступа, можно в зависимости от состояния объекта корректировать значения(округлять до какой-то переменной величины, например) или считать количество обращений.

>>738737

> Так вот что за мразь всем property советует.


Я впервые.

> Худшее, что есть в питоне, имхо


> имхо


Хорошо что ты это понимаешь.

> Дергаешь его, думаешь что обычное поле класса, а эта мразь тебе то исключение выкинет, то SQL-запрос отошлет, то еще какое-нибудь неожиданное поведение устроит.


Это проблема гавнокодеров sqlalchemy, а задача описанная выше - идеальное приминение фичи.
>>738777
#13 #738777
>>738762
Почему сразу не использовать set_govno вместо проперти? За ним же все равно будет спрятан какой-то атрибут класса.
>>738783>>738804
#14 #738783
>>738777
Потому что проперти -- это сахарок. Он нужен. Если ты считаешь, что не нужен, то пиши на жс.
#15 #738804
>>738777
Не знаю истинных причин изобретения фичи но вижу две:
1. Унификация обращения к переменной, в жабке какой-нибудь, например, принято делать гетеры и сеттеры для асболютно всех переменных, а сами переменные делать приватными, в питончике же приватности как таковой нет и обращение к переменной обычно идет напрямую, properties же позволяет добавлять дополнительный контроль для переменных и при этом не выбиваться из стиля, ведь странно будет выглядеть если в классе десяток переменных но до одных нужно обращаться вот так, а до других вот эдак, не по дзену это.
2. Всегда можно добавить/убрать properties к переменной без переписывания кода который её использует.
#16 #739037
>>738738
научись долго говорить о питоне, употребляя много умных и непонятных терминов. за это платят деньги. для самой работы достаточно уметь гуглить.
#17 #739084
Активность в питонистов в треде заметно упала по сравнению с другими тредами, сразу видно кто деньги зарабатывает.
>>739088
#18 #739088
>>739084
Я только планирую, но мне страшно, там какие-то джанги-хуянги, сайты, сложные базы, даже не знаю, через сколько лет смогу взяться за первый реальный заказ.
>>739093>>739117
#19 #739092
Посоны, есть ли какая-нибудь нативная питонячая обертка над ssh? Шоб можно было прямо из питончика подключаться к серверам и набирать команды?
>>739116
#20 #739093
>>739088
Джанга-то проста.
>>739100
#21 #739100
>>739093
Ну, заказы все равно сложные. Я бы пошел и в веб-макаки за еду, но как этому натренироваться, натягивать сайты, вот это все, ума не приложу, где примеры брать.
А если чистый кодинг на питоне - то так-то я клепаю проекты для себя. Но людям обычно нужен универсальный боец, чтобы всё сразу умел и много всяких фреймворков. А еще если лажану или застопорюсь - то и некому помочь, на двощах и стеке только на легкие вопросы отвечают.
Ох, страшно то как.
#22 #739116
>>739092
paramiko
fabric
#23 #739117
>>739088
От "нуля" в программировании вообще до вполне осмысленного использования питона и джанги у меня ушло 5 месяцев и ~ 17 книжек, при чем 3 месяца я пинал хуй, ленился и занимался очень мало что бы совсем не бросить.
Сейчас себе свои сайты для оффлайнового бизнеса сам переписываю.
>>739141
#24 #739141
>>739117
Давай свою стори.

>~ 17 книжек


Что ты там читал столько?
>>739153
#25 #739153
>>739141
Стори писал уже, когда-то. В юности чуть быдлокодил, потом забросил, потом появилось ~ 4 независимых источника дохода, которые можно расширять онлайн. Вот и взялся учить питон для этого.

> >~ 17 книжек


> Что ты там читал столько?


Это разве много? Чем экспериментировать полуосмысленно дешевле сразу какую-то базу по предмету прочитать и уже по ней ориентироваться
Вспоминать список как-то лень, много по начальному уровню что бы окончательно все понять, чуть по Джанго, ML/big data/CV, алгоритмам
>>739183
#26 #739183
>>739153
Кстати, как "понять" фреймворк? Ту же джангу, фласк например? Какие материалы по фреймворку изучал до того как впервые сам написал какое-нибудь норм приложение?
#27 #739186
>>739183
Тащем-то все просто, берешь и пишешь сайты.
По Django для начинающих есть хороший учебник на русском - djbook.ru
>>739353
#28 #739202
>>739183
Мне понравились: django girls tutorial, официальная хуета вместо туториала, django by example, tango with django и 2 scoops of django
Фласк проще, если хочешь вообще голову фреймворкоподробностями не заморачивать - web2py и bottle, в целом мне бы и их без джанго хватило бы, но как я говорил я обленился до того, что чуть не бросил вовсе кодить, а джанго всё ж для пипец каких ленивых парней, даже не смотря на то, что вкатиться в неё сложнее.
>>739358
#29 #739205
Привет, ребята. Меня заебала текущая унылая работа, хочу вкатиться в айти. Хоть не ради денег, а для фана. Из навыков у меня есть Flask и страшненький прон сайт на нём. CSS я владею хуёво, на javascript и jquery пишу с помощью стаковерфлоу. До этого давно занимался написанием всяких скриптов для своих спаммерских дел. Из прочих скиллов у меня 9 лет админства Linux локалхоста. Кроме прочего я еще и ту олд (29). Если шанс вкатиться с таким раскладом? Дело происходит в ДС-2.
>>739218>>746683
#30 #739208
>>739183
Что по методике рекомендую просто брать и проходить все эти туториалы-книги и сам вникнешь что к чему
#31 #739218
>>739205
Да можно и в 40 вкатиться, только не слушай местных долбоёбов и делай что хочешь.
#32 #739222
Посоны, что делать, везде пишут что import для пидоров но как тогда тянуть данные из других файлов?
>>739232>>739378
#33 #739232
>>739222
Импортируй то, что тебе нужно.

> from ass import shit


Если есть мысль что совпадет по пространству имен дописывай

> as shitfrommyass

#34 #739353
>>739186

>есть хороший учебник на русском - djbook.ru


какой-то пидор первел старую книжку а сам даже на вопрос про кодировки не знает что сказать.

все эти книжки про джанго стротся по одному сценарию - вот я автор великий програмист, я делаю это так-то и так-то, и ты так делай. в результате предлагается просто заучить рецепт.
>>739360
#35 #739358
>>739202

>django girls tutorial, официальная хуета вместо туториала, django by example, tango with django и 2 scoops of django


лолируешь штоле? само по себе джанго очень просто, просто дураки не понимают, что прежде чем учить джанго, надо выучить, что такое сервер, как там все устроено и что как делается. а потом реализовать это на джанго.
>>739507
#36 #739360
>>739353
Весь опыт человечества это заучивание рецептов до ты степени, что сможешь их осмысленного миксовать
>>739388
#37 #739378
>>739222
не импортируй ничего, копируй код в свой скрипт, будь мужиком блеат
>>739393
#38 #739388
>>739360
тогда бы прогресса не было, была бы только линейная эволюция. значит, это не так.
72 Кб, 889x526
#39 #739389
Аноны, а какие задания вам дают на работе? Хочу знать, что меня ждет.
#40 #739393
>>739378
всегда так делаю
#41 #739419
logging пишет в файл только вручную, т.е. надо вручную отлавливать все ошибки и писать? Запускаю flask на встроенном сервере, выводит в консоль все возникающие ошибки, как сделать то же самое только с выводом в файл? Или это сервер gunicorn/uwsgi должен делать?
>>739442>>739457
#42 #739421
Анончики, будьте няшами, поделитесь Job Title и Overview для апворка.
Сам джуниор, знаю только базовый набор - основные библиотеки, супопарсинг, джанга, немного веба.
И еще вопрос - там обязательно прикреплять своё настоящее фото или можно всякое говно, как на отечественных сайтах?
>>739489
50 Кб, 600x600
#43 #739438
Есть словарь с списками: http://pastebin.com/KvBzfHHt

Как получить все заголовки из внутренних списков: "
CAT 1.1: Program name
CAT 1.2: Program name
...
CAT 3.3: Program name"?
>>739451>>739457
#44 #739442
>>739419
import sys
sys.stdout = open('говно из консоли.txt', 'w')
>>739467
#45 #739451
>>739438
А ты сам пробовал это сделать?
>>739456
#46 #739456
>>739451
Да, но как-то не вышло. Пробовал обращаться в цикле:

for i in range(len([i[0] for i in root])):
print(i,root[3][0])

Но выводятся только первые категории всех списков:
CAT 1.1, CAT 2.1, CAT 3.1, CAT 4.1
#47 #739457
>>739419
Почему сразу не покурить доки?
https://docs.python.org/2/howto/logging.html

>import logging


>logging.basicConfig(filename='example.log',level=logging.DEBUG)



>>739438
Так что ли?

>>> print('\n'.join([item[0] for sublist in settings['settings'] for item in sublist if type(item) is list]))


CAT 1.1: Program Name Title
CAT 1.2: Program Name For Root
CAT 1.3: Program Name For Root
CAT 2.1: Program Name Title
CAT 2.2: Program Name For Root
CAT 3.1: Program Name Title
CAT 3.2: Program Name For Root
CAT 3.3: Program Name For Root
CAT 4.1: Program Name Title
CAT 4.2: Program Name For Root
CAT 4.3: Program Name For Root
#48 #739467
>>739442
Почему-то только через переопределение sys.stderr получилось то, что хотел. Всё равно спасибо.
#49 #739474
>>739457
Да, именно так. :3
#50 #739480
Господа, есть ли в питоне вменяемый рэндер html в pdf? Смотрел в сторону xhtml2pdf, пустил слезу, вспоминая великолепный (на фоне xhtml2pdf) MPdf. Есть ли годная альтернатива? Уже два часа испытываю дичайшие боли, и мой пукан скоро будет на луне
#51 #739481
>>739457

>Почему сразу не покурить доки?


Курил, в файл не пишет, но проблему решил по совету другого анона через sys.stderr.
50 Кб, 441x523
#52 #739489
>>739421
Ладно, сам уже худо-бедно наклепал. Но поясните таки за фото и скажите, какую почасовую оплату брать для совсем начального уровня.
>>739570
#53 #739503
Ку, аноны, собрал на sx_freeze тестовую прогу, если взброс сделаю, кто-нибудь тестанет ?
>>739526
#54 #739505
Она на x64, интересуют все начиная с win7 до win10, удачность прохода -> запуск на вашем ведре
#55 #739507
>>739358
Рекомендуй ты тогда, хули. Где выучить сервер + аналоги/как это реализовано с джангой.
#56 #739526
>>739503
Накати виртуалки, болезный.
#57 #739570
>>739489
Ладно, поставил минимальные три бакса и хипсторскую аватару с аватаромейкера.
#58 #739575
Посоветуйте хостинг, на котором я могу оставить крутиться свой скрипт.
>>739585
#59 #739585
>>739575
DO, OpenShift, Heroku, любое другое говно.
334 Кб, 2048x2048
#60 #739652
сейчас нашел в файлах со старого компа скрипт, посылающий пост-запрос, с датой 12 июля 2011 года! господи, не думал, что это было так давно.
171 Кб, 1920x1034
#61 #739753
Помогите плиз, не могу разобраться уже пол дня мучаюсь.

Иду по книге Think Python RU_v.1.06

Дошел до задания где внутри функции вызываются её параметры, и я такой WTF MAN?????

def do_twice(f):
f()
f()

Поясните плиз зачем внутри функции вызывать ПАРАМЕТРЫ?

До этого только было что вызов функции происходил по её имени, и уже вне её. А тут на тебе кинули в лицо новую форму. Непонимать. Вот пикрелейтед, я там 2е задание не могу сделать. Так запутано ппц.
>>739795>>739801
#62 #739795
>>739753
def do_twice(f, param):
f(param)
f(param)
>>739815
#63 #739801
>>739753
Потому что параметр f это функция
>>739815
#64 #739815
>>739795
Спасибо! Буду думать.
>>739801
И тут у меня щас такой mindblow, с какой стати просто буква f, которая записана в качестве параметра функции стала самой функцией? Я думал что функция это её do_twice(f) а буква в скобках это её параметр а также переменная для аргумента. Я ошибался?
#65 #739823
>>739815
Функцию же можно использовать как переменную, тип вычисляет что-то и тут же подставляет в параметры другой функции.
23 Кб, 390x219
#66 #739836
>>739815

>Я думал что функция это её do_twice(f) а буква в скобках это её параметр а также переменная для аргумента. Я ошибался?


Что?
>>739869
#68 #739869
>>739836
Похоже, он решил, что функция do_twice должна выполнять саму себя два раза

>>739815
Нет, функция do_twice выполняет два раза любую функцию, переданную ей параметром f.
то есть можно написать
def lolka():
\tprint('lolka')

do_twice(lolka)

и она два раза выведет 'lolka'.
>>740215
3 Кб, 405x141
#69 #739881
>>737219
Запоздало, но нашел ещё одно решение.
4 Кб, 170x144
#70 #739901
>>739457

>if type(item) is list

3 Кб, 243x230
#71 #739903
Анон, есть такой вопрос: как переместить 'scrolledwindow' выше коробки ('box') в категории виджета 'notebook'?

Код: http://pastebin.com/9CRGJcQa
>>739905
#72 #739905
>>739903
как на пикче
#73 #740031
Есть еще что-нибудь по типу Codeacademy чтобы было бесплатно, а то я охуел от цифры в 20к на Курсере за изучения питона.
#74 #740037
>>740031
udacity
>>740253
#75 #740038
>>740031
Дальше книги. Зазубрил основы языка на кодекадеми и можешь уже к чему подробнее переходить, так и должно быть же.
>>740253
#76 #740180
Аноны, а как узнать, что я скрипт запускаю именно в pycharm? Ну например:
if in_editor:
num = 1
else:
num = 0
>>740250
#77 #740215
>>739869
Нет, он решил что функцию нельзя передавать как параметр в другую функцию
#78 #740247
>>740253
#79 #740250
>>740180
ну ты можешь запустить консоль, добавить там переменную окружения типа PYCHARMUSED=true
и запускать pycharm из этой консоли, а в скриптах дергать os.getenv и смотреть есть ли такая переменная или нет
#80 #740253
>>740037
>>740038
>>740247
Cпасибо котоны. А вообще кто-нибудь покупал PRO уровень код-академии ? Как он, cтоит того ?
>>740254
#81 #740254
>>740253
Проходил курс когда ещё не было PRO. Обычный вводный курс. Сейчас, судя по всему, он мало чем отличается. Не нужен.
#82 #740270
Ньюфаг в треде. Как в этом вашем пайтоне графический интерфейс для программ делать? Нагуглил tkinter, но я же охуею в уме прикидывать расположение тех же кнопок по координатам, во всяких Дельфях и Бейсиках, которые мы в школе изучали, для этого дела свой гуй был.
#83 #740273
>>740270
pyqt5 + qtdesigner
>>740276
#84 #740276
>>740273
Да, ксати, gtk-фанатики. У pyqt5 появились колёса под все популярные ОС.
>>740284
#85 #740284
>>740276
При чем здесь gtk?
>>740285
#86 #740285
>>740284
Ну, тут часто пробегают любители gtk. А это аргумент в пользу qt. Всё же просто.
>>740555
#87 #740296
>>740270

>охуею в уме прикидывать расположение тех же кнопок


менеджеры размещения же есть
#88 #740343
>>740270
Ничего, как-то раньше народ верстал целые сайты без превью и лайврелоадов. Напишешь строк 200 CSS и потом молишься чтобы это кривое говно не съехало. А какой там был дебаг с помощью бекраунд колоров на все блочные элементы.
#89 #740345
>>740270
тогда тебе в бинды на QT
#90 #740404
Несколько вопросов.
Погроммирование это пара тройка логических операторов, переменных, немного массивов, тульп и хэш таблиц, сверху горстка итераторов и условных циклов? Серьезно чтоли бля, на таком говне все огромные проги построены?

Поясните за суть фреймворков. Фреймворк это кучка библиотек? Не пойму тонкой сути слова и его значения
>>740444
#91 #740444
>>740404
Погроммирование это пара тройка арифметических и побитовых операций, запись/чтение в ячейку памяти, все остальное Абстракция.

Фреймворк это скелет твоей программы, кто-то уже сделал за тебя часто использующиеся вещи.
#92 #740450
Как выводить без проблем с кодировкой в виндовую сосноль?
>>740451
#93 #740451
>>740450
использовать питон 3
>>740452
#94 #740452
>>740451
Его и использую
>>740459
43 Кб, 954x659
#95 #740459
>>740463
#96 #740463
>>740459
мне похоже utf-16 нужна. Я просто собираю статистику с твича. В чате кинули свастику. Скрипт упал.
>>740473
4 Кб, 448x168
#97 #740473
>>740463
Попробуй поменять все кодировки в питоне на UTF-16.
https://habrahabr.ru/post/117236/

поменять шрифт на TrueType в консоли
http://stackoverflow.com/questions/10764920/utf-16-on-cmd-exe
>>740478
#98 #740478
>>740473
Спасибо. Мне, похоже, проще линукс поставить.
>>740480
#99 #740480
>>740478
mingw попробуй ещё
#100 #740555
>>740285
Теперь понял, это обращение было, я сразу твою пунктуацию не распарсил.

> А это аргумент в пользу qt.


Кроссплатформенность? в Gtk другая ниша, как и в Cocoa или WPF - легкие, нативные и качественные GUI-приложения использующие всё фишки и особенности платформы по полной.
>>740674
#101 #740594
>>738709 (OP)
Привет анон. Как подбирать методы?
Например, в джава-еклипсе есть подсказки или можно открыть сайт джавы и там есть методы каждого класса и подсказки как их использовать. В питоне тоже есть документация но что-то нихуя не понятно, как ею пользоваться.
12 Кб, 756x274
#102 #740602
>>740594
ipython
import <Tab> - покажет все доступные для импорта модули
Class.<Tab> - все методы
Class.method()<Shift+Tab> - входные оргументы, докстринг

var? - описание переменной
module.function?? - исходный код

pycharm это тоже все умеет.
>>740610
#103 #740610
>>740602
видимо придется pycharm ставить. Вкатывающимся в питон на sublime text не рекомендуется писать?
>>740612
#104 #740612
>>740610
sublime это текстовый редактор, лучше уж сразу поставить среду разработки как pycharm, или LiClipse (легковесная Eclipse заточенная под питон), если в эклипс раньше работал не думаю что возникнут проблемы по настройке.
>>740615
#105 #740615
>>740612
cпасибо!
>>740618
#106 #740618
>>740615
ещё spyder есть. Написан на питоне, открыт для всего. (но pycharm всё равно лучше, если тебе насрать на ограничения community edition)
>>740623>>740631
#107 #740623
>>740618
spyder кстати мне исходники попортил, все строки написанные не ascii в кракозябры перевел и автоматом сохранил на диск.
#108 #740631
>>740618
Прошку бесплатно можно получить.
#109 #740673
>>738709 (OP)
зачем пилить перекат если ничего не обновляется?
>>740685
#110 #740674
>>740555
gtk только для гнома стало быть?
>>740685>>741052
#111 #740685
>>740673
Затем что тред тонет, очевидно.

>>740674
Да, вне gnu/linux я не стал бы его использовать.
>>741052
#112 #740745
>>740594
Давай поебемся) я буду нежно и страстно целовать тебя, делать массаж, гладить твою нежную попку и теребить языком соски. Потом войду в тебя, мы сольемся в единый организм, состоящий из оргазма, наслаждения, похоти, чувств, тишины, тоски по детству, низости первородного греха, голубого неба, ветра в поле, ночного костра..затем я поцелую тебя в лоб, прижму к себе и ты укутаешься в мои объятия, предавшись миру Морфия. Я же включу недосмотренный тайтл и добью оставшиеся 5 серий. Выключив ноутбук, я, ощутив тепло твоего тела и услышав размеренное спокойной дыхание, постараюсь уснуть.
>>741600
#113 #740837
>>740594
Лол, я тупо набираю имя объекта в оболочке, ставлю точку и жду всплывающий список с методами и полями. Так и живу.
#114 #740847
>>738709 (OP)
Помогите с примером из Dive into Python
Есть: модуль apihelper.py с функцией info
http://ru.diveintopython.net/apihelper_divein.html
и скрипт, его использующий :

для консоли

>>> from apihelper import help


>>>info.__doc__


>>> li = []


>>> info(li)



или, как программа
from apihelper import info
print info.__doc__
li=[]
info(li)

Traceback (most recent call last):
File "<input>", line 4, in <module>
File "C:\py.work\apihelper.py", line 7, in info
__author__ = "Mark Pilgrim (mark@diveintopython.org)"
NameError: global name 'collapse' is not defined

команда info.__doc__ выводит результат нормально, т.е. модуль импортируется нормально
>>740852>>740856
#115 #740852
>>740847
Есть предположение, что у тебя табуляция сбилась в файле apihelper.py. Проверь или скинь в ideone.
>>740874
#116 #740856
>>740847
откуда у тебя info появилось, называй имена файлов и функции как по книжке
#117 #740874
>>740852
Я apihelper скачал, а не набивал. Вот в идее
http://ideone.com/K4R0jF

>>740856
info это функция в apihelper. Если ты про info.__doc__ то это просто проверка, загружаетс я ли этот модуль.
>>740932
#118 #740877
>>740856
fix наверное это разные версии книжки, то есть версия перевода тут более старая. У меня функция называется info.
67 Кб, 540x540
#119 #740908
Анончик, как в GTK 3 заблокировать закрытие окна через connect("delete-event",...)?
>>741046
#120 #740932
>>740874
А на ideone сразу вывести результат не хватило мозгов? Все работает.
http://ideone.com/Fn3uJn
>>740975>>741001
#121 #740975
>>740932
твой код, вставленный в новый файл, заработал, а с файлом apihelper из архива примеров - нет. Отличия - после print выражение в скобках, а там нет.
#122 #741001
>>740932
>>740856
Всем спасибо, заработало, когда я убрал переносы в длинной строке с print.
Вопрос - в Питоне есть фича с дроблением длинных строк команд (не тройными кавычками для текста) ?
>>741022
#123 #741022
>>741001
на ideone уже пример с дроблением list exсeption. Если с такими переносами у тебя не запускалось выкинь нахуй IDLE и поставь нормальный редактор. По пепу все что внутри скобок должно идти с отступом в один пробел от скобки, последняя и первая скобка не переносится.
>>741173
#125 #741052
>>740674
нет
>>740685

> вне gnu/linux я не стал бы его использовать.


Почему это?
>>741171
sage #126 #741062
Как правильнее будет оформить такой цикл? Интересуют выделенные части

while x != list[0] or list[1] or list[2]:
print ("TEXT.")
test_1 = input ("TEXT")
fun(test_1)
>>741073>>741110
#127 #741073
>>741062

while True:
if x != list[0] or x != list[1] or x != list[2]:
print ("TEXT.")
test_1 = input ("TEXT")
fun(test_1)
да, я дурачок
>>741090>>741111
#128 #741090
>>741073
from .SomeModule import Foo
Что делает точка ?
Чому не робит если ее убрать? Импортирующий файл находится в одном каталоге с каталогом модуля.
>>741096
#129 #741091
СТоит бля один день себе поблажку дать и провалятся на диване, пиная хуи типа мам смотри я ПРИБОЛЕЛ, так на следующий день снова взяться за учебу и работу так же сложно, как героинщику слезть с иглы. Вот чтоб еще хоть раз!
#131 #741110
>>741062
while x not in list[:3]:
>>741121
#132 #741111
>>741073
if x not in list[:3]
>>741121
#133 #741121
>>741110
>>741111
ну вообще :3
>>741148
#134 #741148
>>741121
Как в ElementTree рекурсивно получить все ноды с нужным тегом?
findall - ищет только на одном уровне вниз.
>>741150
#135 #741150
>>741148
Запускать вниз по дереву эту функцию с фандалл рекурсивно?
>>741154
#136 #741154
>>741150
Да я так и сделал, но думал есть что-нибудь готовое.
Все доки обмазаны какими-то .iter() .iterfind() .findall() .find() и нихуя не ищет рекурсивно, и еще это все говнище не всегда принимает неймспейсы в параметры.

Нет слов - Пистон.
>>741160>>741171
172 Кб, 1023x771
#137 #741157

>когда понял питон

#138 #741160
>>741154
iter должен рекурсивно проходить
или xpath используй.
#139 #741171
>>741052

> нет


Ну, тогда… а у pyqt5 уже колёса :P
>>741154
Не зря же зделали всякие lxml. Нет слов — ДОЛБОЁБ
#140 #741173
>>741022
У меня PyCharm. Чтотакое list exception ? В поиске ничего не нашел про это применительно к Питону.
>>741200
#141 #741193
Посоны вот вы говорите что питон всесилен, как мне тогда с его помощью найти тян?
>>741215
#142 #741200
>>741173
list comprehension
я подобосрался маленько
>>741323
#143 #741215
>>741193
from ulitsa import tyan
>>741216>>741391
#144 #741216
>>741215
name `tyan` is not defended
>>741220
#145 #741220
>>741216
from ulitsa import Natasha
>>741222
#146 #741222
>>741220
git clone git@ulitsa.ru:tyan/natasha.git /home
#147 #741254
Почему нигде нет инфы про перформанс джанго? Сколько rps тянет?
#148 #741261
>>741254

>Сколько rps тянет?


По сравнению с чем?

Тут всё зависит от многих факторов - как используешь кеширование, правильно ли организована БД, построены индексы/кеш и нет ли лишних запросов к ней. и т.п. В целом джанго можно использовать для высоконагруженных сайтов
>>741279
#149 #741279
>>741261
Обычный хелло ворлд из экшена. Интересен оверхед самого фреймворка.
А то сейчас сижу на одном микрофреймворке php, и хоть он тянет 1.5к рпс, там нет нужной мне фичи.
>>741293>>741298
#150 #741293
>>741279
хуйней страдаешь кароч, хеловодчик
#151 #741294
>>741254
А почему ты гуглить не умеешь? Первый результат по запросу web frameworks performance: https://www.techempower.com/benchmarks/
21 Кб, 405x282
#152 #741298
>>741279
Попробовал https://github.com/django-ve/helloworld на ноуте получилось 2700 rps. Но это на голом gunicorn без nginx(с ним должно быть лучше).
Но это всё очень оторвано от реальности - например рендеринг шаблонов много времени занимает в реальных приложениях. И смысла в таком тесте нет. Да и если нужно именно helloworld какой-нить микрофрейморк, асинхронный может даже будет быстрее.
>>741304>>741313
#153 #741304
>>741298
Асинхронные быстрее, если ты долго ждешь данные, так-то они намного медленнее.
>>741309>>741384
#155 #741309
>>741304
Нет
>>741314
#156 #741313
>>741298
>>741306
Ну все, перекатываюсь, посоны. Встречайте конкурента, лел.
#157 #741314
>>741309
Да. Посмотри любой бэнч на хэллоу ворлд. Или сам проверь.
>>741316
#158 #741316
>>741314
Ну допустим на локалхосте. А если сервер удаленный находится и куча одновременных медленных соединений?
>>741319
#159 #741319
>>741316
Эту проблему уже давно решили - nginx. Без него да, все плохо будет.
>>741320
#160 #741320
>>741319
А nginx разве не асинхронный?
>>741328
#161 #741323
>>741200
Заполнение списка, что то вроде генератора, ток не он.
Мимо три задачки на чекио
#162 #741325
Что могут попросить написать на тестовом задании в офисе чисто на пайтоне? Есть какие-нибудь платины?
>>741327>>741329
#163 #741327
>>741325
Что угодно.
#164 #741328
>>741320
Асинхронный. Его ставят перед синхронным веб-сервером как раз из-за медленных клиентов. Ну и еще статику раздавать.
>>741330
#165 #741329
>>741325

>тестовом


Пиши прям щас на выбор, либо аалькулятор либо реализуй конечные автоматы
>>741331
#166 #741330
>>741328
То есть синхронные фреймворки быстрее асинхронных за счёт асинхронного веб-сервера? Ну ок.
>>741372
#167 #741331
>>741329

>конечные автоматы


Что это?

>Калькулятор


Tkinter?
>>741332>>741334
#168 #741332
>>741331
Мы вам перезвоним.
>>741333
#169 #741333
#170 #741334
>>741331
Да хоть в терминале.
Что такое конечные автоматы- сам не знаю, просто слово нравится. Пиздецки серьезное такое, не находите?
>>741335
#171 #741335
>>741334
Ясно.
#172 #741353
поясните за psycopg2.
Если у меня 2 потока, то мне по курсору на каждый поток хватит? Или нужно подключение делать для каждого?
>>741361
#174 #741372
>>741330
nginx на си написан и крайне задрочен. Так-то там такой же селект/полл, как и в asyncio/uvloop.
>>741377>>741378
#175 #741376
>>741361
Спасибо. Подожду, пока скрипт упадет и сделаю.
А что будет, если просто несколько курсоров использовать?
>>741380
#176 #741377
>>741372
То есть синхронные фреймворки быстрее асинхронных за счёт асинхронного веб-сервера написанного на си и крайне задроченного? Ну ок.
>>741379
#177 #741378
>>741372

> селект/полл


селектом никто не пользуется нигде. и обычным поллом тоже.
под прыщами epoll под фряхой kqueue и т.п.
>>741381
#178 #741379
>>741377
Кто сказал-то, что синхронные быстрее асинхронных?
>>741384
#179 #741380
>>741382
#180 #741381
>>741378
Да суть одна.
#181 #741382
>>741380
Ну ладно. Спасибо.
#182 #741384
>>741379

>>741304

>Асинхронные быстрее, если ты долго ждешь данные, так-то они намного медленнее.


>так-то они намного медленнее

>>741418
#183 #741391
>>741215
Can't import tyan because ti pidor
#184 #741410
>>738709 (OP)
Подскажите по PyCharm
Создал проект, в нем два скрипта, оба в одной директории. Первый - рабочий, второй - модуль с функциями, который я импортирую и использую в рабочем. Но если я меняю что-то в модуле, например, имя функции, она перестает импортироваться.

Пробовал через контекстное меню очищать компилированные файлы, не помогает. Помогает только перезапуск PyCharn. Это как-то можно исправить ?
>>741415
#185 #741412
2.7.11 - говно мамонта или можно учить?
>>741415>>741417
#186 #741415
>>741410
import imp
imp.reload("my_yoba")
попробуй, но это не решает проблему с пайчармом
>>741412
нет
>>741421>>741826
#187 #741417
>>741412
Говно без задач
#188 #741418
>>741384
Ну, это пёс какой-то сказал. Так-то разницы нет.
#189 #741421
>>741415
Не говно или не учить?
#190 #741425
>>741421
И то и то.
#191 #741428
>>741421
не учить говно.
>>741435
#192 #741435
>>741428
Но везде в требованиях 2.7.
>>741441
#193 #741436
>>741421
Учи. На нём хотя бы работа есть, в отличии от тройки.
>>741441
#194 #741441
>>741436>>741435

>работа на питоне


>с чего начинать


Я смотрю тут такие мамкины гении одни собрались, пока ты выучишь питон все эти быдлоконторые которые не осознали прелесть трешки уже обанкротятся.
#195 #741461
GTK 3

Анон, есть две кнопки и "scrolledwindow" с заданным значением "adjustment" через переменную "value". Кнопки (plus, minus) добавляют и прибавляют значение "value".

По сути, должно добавлять это значение и прокручивать текст дальше. Но нихера не работает.

Нужно ли добавить обновление виджета через "GObject"? Или же как можно это реализовать?

http://pastebin.com/iL14Rgxg
>>741474
#196 #741474
>>741461
Тебе надо в plus и minus делать
self.position.set_value(self.value)
вместо

>self.scroll.set_vadjustment(self.position)

>>741485
39 Кб, 604x423
#197 #741485
>>741474
Thanks, mate.
4 Кб, 383x122
#198 #741553
Какого хуя так нелогично?
Одни долбоебы начинают нумерацию месяцев с нуля, другие - пикрилейтед.
>>741559
#199 #741559
>>741553
Вроде все логично. С днем недели запутанная история, одни используют 0-6, другие 1-7, а вообще принято 0-7, где и 0, и 7 - это воскресение.
>>741562
#200 #741560
Возникла странная проблема. После использования python увожу комп в спящий режим. Просыпаюсь, комп горячий как печка. Смотрю диспетчер задач, вижу активный процесс от python, 20% мощностей проца сжигает. Что думаете, хакер биткоины считает? Стараюсь теперь после использования python убивать процессы. Но иногда забываю, как сегодня забыл.
>>741575
#201 #741562
>>741559
В JS месяцы с нуля, дни с единицы. Здесь наоборот, лол. Как будто специально пердольку подкладывают.
#202 #741575
>>741560
процесс может остаться висеть если программа явно не завешилась через os.exit
у меня на убунточке такая хуйня была с питоном.
скрипт вылетает по ошибке, смотришь top а он там висит.
>>741581>>741588
#203 #741581
>>741575
многопоточный скрипт наверное? или форкался?
#204 #741588
>>741575
Да, выход из проги не всегда по плану происходит.
#205 #741593
Господа, поясните, что такое "can do NLP" в питоно-тусовке?
>>741596
sage #207 #741600
>>740745
ты доской ошиблась, мань.
#208 #741644
Чому еще не завезли присваивание в стейтментах:

if var = doSomething(): pass
print var

?
#209 #741646
>>741644
А зачем?
>>741647
#210 #741647
>>741644
Присоединяюсь к вопросу >>741646
#211 #741648
>>741644
Что это за содомия?, лол, чему будет равно var?
>>741650>>741652
#212 #741650
>>741648
Результату выпалнения doSomething()
Но это нужно в сишечке, потому что там нет исключений и функции типа open возвращают -1 в случае ошибки, так что там пишут
if( (f=open('foo')) != -1) { }
в питоне есть исключения и with для этого.
Или там пишут
while(x = get_next_value()){ }
в питоне есть for .. in

Так зачем в питоне это? Чтобы нубы путали == и =(как часто случается в си у нубов)
#213 #741652
>>741648
Тому, что вернет doSomething().

Юзкейс:
if (!res = deletePython()) {return false;}

...

return true;
0 Кб, 87x49
#214 #741659
Че за нах, вроде же в питоне было точное деление и деление нацело.
>>741660>>741745
#215 #741660
>>741659
На пике второй питон, в тем надо писать 5.0/2 либо сделать
from __future__ import division
>>741661>>741663
#216 #741661
>>741660
Да уж, спс.
#217 #741663
>>741660
Только нахрена тогда два оператора?
>>741665>>741668
#218 #741665
>>741663
Чтобы если ты сделаешь from __future__ import division можно было целочисленное деление использовать всё равно
#219 #741668
>>741663
чтоб делить float на float без остатка?
#221 #741756
>>741745
тхред читай
221 Кб, 1406x938
#222 #741785
Друзья, есть тут кто-нибудь, кто работает на апворке или хотя бы делал хоть раз один проект там?
Там для новичков - это entry level же? Как-то у меня от всего этого глаза разбегаются и все как-то сложно вроде. Можете подобрать пример вакансии, где можно справиться и на уровне любительского скриптописательства?
Или может есть какие-нибудь еще годные биржи, где есть работа по питону? На русских сайтах какие-то уж слишком специфичные заказы уровня сениор-уровня.
>>741788>>742410
#223 #741788
>>741785
дай ка примеров с русик сайтов.
>>741797>>741819
508 Кб, 1920x1200
146 Кб, 985x1023
#224 #741791
>>738709 (OP)
Не ту змею на ОП-пик поставили.
>>741793
#225 #741793
>>741791
Ту, у тебя не питон.
#226 #741797
>>741788
В нормальных странах джун - это как минимум 2 года работы.
0-2 - трейни
2-5 - джун
5-8 - миддл
8+ - сеньор
>>741806>>741823
#227 #741806
>>741797
классно ты на мой вопрос ответил
>>741810
#228 #741810
>>741806
Промахнулся.
#229 #741819
>>741788
Ну вот, например:
https://www.weblancer.net/projects/759113.html
https://www.weblancer.net/projects/754010.html
Причем на русских сайтах заметил тенденцию, что пишут очень расплывчатое ТЗ, то есть приняв тебя, могут взвалить кучу непонятной фигни, а ты не будешь знать, что с этим делать. На иностранных обычно всё по полочкам расписано, но тоже сложновато.
Так вот, неужели нет каких-то простых заданий? Откуда же студенты опыт нарабатывают, не с самописных имиджборд же, крутятся среди реальных задач небось. А стажером за еду сейчас никто не берет.
#230 #741823
>>741797

> года работы


Что подразумевается под годами работы? Работа над своими проектами или с коммерческими штуковинами на реальной работе? Так а кто их берет то на реальную работу без опыта? Как в интернете получить этот опыт, если не знаешь, как правильно все делать, за что браться? Книги и туториалы учат однобоко, на практике застопоришься на чем-то и все, понизят рейтинг и конец.
Не понимаю я, как устроен этот мир - вроде в начале все одинаковые, я порой знал всякие штуки даже лучше своих ровесников, а потом бац - и все находят работу без особых знаний в голове, а я нищебродствую со своими проектами.
>>741838
#231 #741826
>>741415

>imp.reload("my_yoba")


у меня питон 2.7, там просто reload(module_name). Это работает, только если подключать как
import mymodule
reload(mymodule)

если прописывать функции наппример
from mymodule import myfunction
reload(mymodule)
то изменения в module не появляются
>>741830
#232 #741830
>>741826
так мой пример у тебя работает? изменения появляются? по второму вопросу, ты не понимаешь как инструкция from работает.
>>742019
#233 #741838
>>741823
В подсобке пет-проекты, потом трейни за еду. Ну а джуны уже 60к$ в год получают.
>>741844
#234 #741844
>>741838

>В подсобке пет-проекты


Что еще за подсобка? Я бы вообще рад работать за сто баксов всю жизнь, только не нужен никому "трейни".
>>741848
#235 #741848
>>741844
У мамке на шее, в общаге.
#236 #741883
Как в django заюзать собственный view или колл в другом app'e?
>>741886
#237 #741886
>>741883
reverse('some_app:other_view')
8 Кб, 442x138
#238 #741915
>>738709 (OP)
Че т подзаебался, помогите кто чем может.
#239 #741920
>>741915
Я так понимаю в цикле код выше одной ступени не имеет доступ
Мимо-нуфаг
>>741921>>742017
#240 #741921
>>741920
Хуйню скозал
У тебя ворд и там и там, а это уже разное
#241 #741923
>>741915
по-идее оно должно выводить на каждой итерации:
hui
hui, hui, hui, hui
потом
pizda - по первому принту
pizda pizda pizda pizda - по количеству элементов dict
при условии что lemma in dict это опечатка и вместо dict должно быть slovar
>>742021
#242 #741993
>>741915
Убить бы тебя за эти переменные
#243 #742014
>>741915
Так у тебя slovar і mycorpus, а ты цикл по dict написал, который как бы пуст.
>>742072
#244 #742017
Да вы заебали не постить перекат. Полтреда из-за вас пропустил, смотря на всплывающее "Нет новых сообщений".

>>741915
У тебя там вообще хуита какая-то, set принимает лишь один аргумент.
Нахуй отсуп у первого for'а? Зачем ты по классу dict проходить пытаешься?
>>741920
всё имеет - http://ideone.com/Og6teK
>>742072>>742144
#245 #742019
>>741830
да. работает и imp.reload и просто reload.
Проблема была в том, что я не делал Save All. С ним работает и при import ZZZ from module. Без imp.reload или reload ничего не обновляетсся даже после Save All.

>не понимаешь как инструкция from работает.


а как она работает ?
>>742022
#246 #742021
>>741923

>hui, hui, hui, hui


print будет перевод строки делать каждый раз

>>741915
в чем прикол ? в начале и цикле разные переменные же ?
>>742072
#247 #742022
>>742019

>Проблема была в том, что я не делал Save All.


>ничего не обновляетсся даже после Save All.


так ты решил проблему с пайчармом? пиздец, ты понятно можешь мысли выражать?
>>742033>>742034
#248 #742033
>>742022
что такое пайчар ?
1) изменение, Save All, reload/imp.reload, вызов - обновляетсся
2) изменеие, Save All, вызов - не обновляется

без Save All не обновляется

в общем,вопрос решен с помощью Save All и reload
>>742034
#249 #742034
>>742022
>>742033
а, это pycharm
#250 #742072
>>742014
Короче, переменная была dict, потом чтобы не путать с типом dict когда код шотил исправил на slovar.

>>742017

> set принимает лишь один аргумент


Да хер его сколько он там принимает. Это демонстрационный вариант, чтобы было понтно, что тип set используется.

>>742021
Ну, ты понял

Спасибо, пацаны. С утра разобрался.
>>742138
#251 #742138
>>742072

>Это демонстрационный вариант


Так, блядь, запускать свои демонстрационные варианты и убеждаться, что проблема там присутствует нужно. А то принёс говно какое-то и помощи просит.

>переменная была dict


Ох, уебал бы тебе Гвидо хорошенько.
>>742161
#252 #742140
Господа, реально ли в джанге стандартными закостамайзить 404 для определенного контроллера? Грубо говоря везде один вариант 404, а в товарах - другой
>>742142
20 Кб, 621x163
#253 #742142
>>742145
#254 #742144
>>742017

>Да вы заебали не постить перекат.


>>738710
Пиздец ты тупой.
>>742146
#255 #742145
>>742142
Спасибо!
Нашел еще более простое решение

return HttpResponseNotFound(render_to_string('404.html'))
>>742148
#256 #742146
>>742144
Блин, и правда ведь. Тогда заебали постить двадцать постов после переката, скрывая его!
#257 #742148
>>742145
хм ну так наверное всякая хрень не передасться в шаблон типа request.user
оно может и не нужно, но мало ли
26 Кб, 444x260
11 Кб, 466x67
#258 #742153
Почему не попадаю в блок эксепт?
>>742156>>742157
#259 #742156
>>742153
В блоке try ты просто присваиваешь переменной значение. Что там может пойти не так?
>>742158
#260 #742157
>>742153
А с чего бы input'у выдавать FileNotFoundError?
>>742158
#261 #742158
>>742157
>>742156
Понял, в ахуе сам с себя.
#262 #742161
>>742138
Че ты доебался. Хуй пойми на этом ideone че вообще происходит и куда тыкать.

Я ебал что словарь это dict? Гвидо долбоеб раз сокращает так уебански названия типов.

У меня learning by doing -- пошел на хуй
>>742163>>742210
#263 #742163
>>742161

>Че ты доебался.


Хочу, чтобы в следующий раз ты при проблеме написал нормальный пост и тебе смогли сразу помочь.
>>742171
21 Кб, 530x191
#264 #742166
Кстати, break и while True - зашкварно с трай кэтчем или норм?
>>742178
#265 #742171
>>742163
Да помогли, я даже поблагодарил.

Сам знаю, что долбоеб. Просто заебался.
#266 #742178
>>742166
А почему бы просто os.path.isfile не использовать?
>>742186
#267 #742186
>>742178
Не понимаю как ты предлагаешь организовать цикл проверки доступа к фалу.
>>742196>>742219
#269 #742200
>>742196
Но input возвращает str.
>>742219
3 Кб, 332x46
#270 #742210
>>742161

> Я ебал что словарь это dict?


Нехуй в блокноте кодить.
>>742262
#271 #742219
>>742186
При чём тут цикл. Я просто предлагаю заменить проверку через ошибку от левой фукнции на человеческую функцию, сделанную специально для проверки на существование.
path = ''
while not os.path.exists(path):
path = input("Kuda edem, druzhok?")


>>742200
И?
>>742246
#272 #742246
>>742219
Да, выглядит короче. Да и работает небось быстрее если дрочить на миллисекунды.
>>742219
Хуи) Я тогда еще не понял.
#273 #742262
>>742210
Dict это зарезервированное название ? (лол, кодить только вчера начал, не знаю терминологии)
>>741915
Вот у меня вопрос, word/lemma же нигде не определенны и в каком-нибудь С подобном языке я бы сначала присудил к word/lemma соответствующие списки, а только потом писал цикл for ? Питон автоматически определяет что word/lemma связаны с элементами списка, тип во время исполнения он присуждает word каждый элемент mycorpus ? И вместо word могло быть какое угодно название ?
>>742276>>742283
#275 #742279
>>742276
Давай, покажи ему.
Возможно даже когда-то он научится гуглить.
#276 #742280
>>742276
Арихато
#277 #742283
>>742262

>Dict это зарезервированное название?


Как переиенная нет. Лучше избегать, чтобы не путаться.

> word/lemma же нигде не определенны


Инициируются и менят значения динамически в цикле.
>>742284
#278 #742284
>>742283
спс
#279 #742340
Джанго же на каждый запрос заново инициализирует приложение, как и везде?
>>742342>>742343
#280 #742342
>>742340
нет
>>742350
#281 #742343
>>742340
И что значит "везде"? Это не php и не cgi скрипт
>>742345
#282 #742345
>>742343
Пхпшку имел в виду.
#283 #742350
>>742342
А как же он тогда работает?
>>742361>>742368
#284 #742361
>>742350
Быстро
#285 #742368
>>742350
Запускается как сервер и в цикле обрабатывает входящие запросы.
>>742372>>742379
#286 #742372
>>742368
А как с утечками памяти?
>>742376
#287 #742376
>>742372
Какими утечками? После того как функция-вьюха отработала всё её переменные прибиваются сборщиком мусора.
В глобальных переменных вещи типа коннекта с базой данных только.
>>742381
#288 #742379
>>742368
Как называется процесс django, хочу найти его в top?
>>742382>>742384
#289 #742381
>>742376
Ну обычно в long-running аппликуках могут быть утечки, когда даже сборщик не поможет. В node.js с таким сталкивался.
25 Кб, 566x400
#290 #742382
>>742379
python.exe
#291 #742384
>>742379
Смотря как ты запускаешь джанго uwsgi? gunicorn? apache+mod_python?
>>742386
#292 #742386
>>742384
Gunicorn, и его процесс я вижу.
#293 #742407
Посоны, поясните за Scrapy. Почему все вдруг массово стали его юзать, чем оно отличается от супа, например?
Типа там встроенные запросы и не надо ревесты инклюдить? Посмотрел на доки - куча какой-то непонятной и неочевидной фигни над простыми задачами, не понимаю, как такое поделие взлетело у хипсторов.
>>742409
#294 #742409
>>742407
его толкает scraping hub

на самом деле в scrapy не только парсенк, но и асинхронщина, пайплайны (как и куда сохр. данные)

scrapy имеет смысл юзать если уже есть инфраструктура (где его запускать) или нужно парсить много-часто-быстро

requests+lxml (ну phantomjs для сложного жаваскрипта) для большинства сайтенгов пойдет
>>742413>>742422
#295 #742410
>>741785

>где можно справиться и на уровне любительского скриптописательства?



парсенк за ~50 баксов
>>742465
#296 #742413
>>742409
Мне вообще нравится selenium через все эти куки плюшки тот же хохловский авито - olx с кучей защит от парсинга им парсить можно просто в три строчки
>>742418>>742568
Intermediate python #297 #742415
Короче пацыки кто-то рекомендовал книжулю (есть онлаен) Intermediate Python за авторством какого-то Махмуда ибн Юсуфа аш-Шишани

Это пушка. Код местами нерабочий (пример - декоратор не возвращает функцию), местами рабочий, но неправильный (проверка четности: number %2 is 0)

Короче, читать новичкам ее смысла нет. Если есть какая-никакая база, то есть все ошибки вы возможно увидите и исправите, то читайте.
>>742423
#298 #742418
>>742413
ну phantomjs может использоваться вместе с Selenium, а еще он headless, можно на серваке без иксов его крутить.

Selenium да, стандарт у тестеров.
#299 #742422
>>742409
и в scrapy, по-моему, не решен уапрос обработки джаваскрипта
#300 #742423
>>742415

>проверка четности: number %2 is 0


Что не так?
>>742428
#301 #742428
>>742423
это работает только потому, что маленькие значения интов кэшируются

поменяли канпелятор-оптимизатор и привет

равенство надо проверять, внезапно, оператором равенства
>>742434>>742571
#302 #742434
>>742428
Так это ж примитивы
>>742437
#303 #742437
>>742434
В питоне нет примитивов, всё-объект. Тот анон прав, то что у x=0 и y=0 будет одинаковый id это оптимизация и особеность реализации, пологаться на это не стоит
>>742440
#304 #742440
>>742437
Прикольно будет это отлаживать.
#305 #742465
>>742410

>парсенк за ~50 баксов


Ссылочку не подкинете, любезнейший?
>>742489>>742495
#306 #742489
>>742465
а мне жалко свое искуство разменивать на чужую хуйню типа магазинов.
сколько б не заплатили, для чужих нихуя бы не делал
>>742500
#307 #742495
>>742465
фильтруй по стоимости и по слову "parse", "crawl"
>>742500
#308 #742500
>>742489
Да мне лишь бы на пожрать хватило, тут уже не до гордости.
>>742495
Фильтровал, там постоянно какие-то специфические задачи и дополнительные - типа распарсь скрапом и подключи к гуглу, или залей на постгрес и авс. Чисто парсинга для нуба там нет. Хотя парсить то я умею, а вот всякие побочные фреймворки не очень. И в каждом заказе они новые, заебешься все учить.
#309 #742568
>>742413
кстати в чем смысл парсить авито? копировать фото товаров на свой сайт? видел ещё продаются аккаунты на него, смысл это делать? чтобы продать 100 штук с каждого по одной чтоле? и засрать выдачу?
>>742707
#310 #742571
>>742428
я недавно узнал что большие числа тоже кешируются, попка немного пригорела.
>>742658
#311 #742658
>>742571
depends on implementation жи

>>> a=1020


>>> b=1020


>>> a is b


False

>>> id(a)


42847552

>>> id(b)


43988488
cpython 2.7.10 win32
#312 #742661
>>742658
a и b 10 в двадцатой степени везде
5 Кб, 460x234
#313 #742678
>>742686
#314 #742686
>>742678
через отдельные переменные посчитай

>>> a=pow(10,6)


>>> b=pow(10,6)


>>> id(a)


43777256

>>> id(b)


43777136

>>> a is b


False

>>> map(id, [pow(10,6) for _ in range(10)])


[43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760]

>>>

>>742693>>742694
#315 #742693
>>742686
зачем мне через отдельные переменные? суть этого примера показать что он их кеширует.
>>742696
#316 #742694
>>742686
ошибся

>>> map(id, [106 for _ in range(10)])


[43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760]

>>> map(id, [pow(10,6) for _ in range(10)])


[43773760, 43777340, 43773892, 43777184, 43777244, 43773880, 43773856, 43773844, 43777160, 43777292]

>>>

>>742845
#317 #742696
>>742693
попробуй, блять, и не тупи

у тебя кешировалось один раз 10^6 именно выражения генератора (generator comprehension)

попробуй заменить 10^6 на вызов pow(10,6) и посмотри на разницу

ты путаешь интернирование (кэширование значений) и особенности работы выражений
>>742732
#318 #742705
Посоны, а как вообще проходит принятие на фриланс-заказ? Как и на реальное работе, тех кто подал заявку интервьюируют и потом принимают? А вот если в ТЗ написано спарсить несколько сайтов, но не указано каких - вот я например не могу еще в жс и прочий эйджакс парснг - то так и сказать при собеседовании? А вдруг это потом вскроется такие детали? Что делать, если не смогу?
>>742848
#319 #742707
>>742568
Я квартиру в аренду искал, например. Когда-то еще мониторил конкурентов по соответствующему запросу, кто новый, что появилось, как объявки меняли и тд. В целом помогало - они скидку - я скидку, они вернули цену - я вернул
#320 #742730
>>742658
Python 2.7.10 win 32
-5≤ a, b ≤256 -> True

Что это значит применительно к написанию программ ?
>>742979>>743000
3 Кб, 398x133
#321 #742732
>>742696
вот тебе через переменные и без генераторов
>>742999
#322 #742778
Как это короче записать?
[code]
for d, dirs, files in os.walk('c:/djangay'):
print('Директория: ' + d, end="")
if not files:
pass
else:
print(' Файлы: ', end="")
for f in files:
print(f,end="")
print()
[/code]
#323 #742779
>>742778
Разметка не удалась
#325 #742784
>>742783
на идеоне забанили?
#326 #742787
>>742805
39 Кб, 590x511
#327 #742805
>>742787
Спасибо, красиво вышло.
Следующий вопрос. В сторону чего копать чтобы в итоге такое окно оформить как на пике? Больше всего интересует сам список файлов, чтобы потом сделать по щелчку по названию столбца сортировку по имени, размеру и прочему.
#328 #742809
>>742805
Получаешь атрибуты файла через os.stat, формируешь список из объектов или словарей, про сортировку можешь тут почитать:
https://wiki.python.org/moin/HowTo/Sorting
#329 #742815
#330 #742838
>>738709 (OP)
Почему в PyCharm 4.5.3 и Python 2.7 все нецелые результаты операций окгругляются до целого, даже с функцией float ?

>>> float(10/7)


1.0
>>742840>>742841
#331 #742840
>>742838
Потому что во втором питоне результат деления целого на целое - это целое, а float-ом ты просто превращаешь целое во float. Если хочешь нормальное деление, то кастуй либо делитель, либо делимое:
10.0/7
10/7.0
float(10)/7
10/float(7)

В Python 3 деление всегда float.
>>742858
#332 #742841
>>742838
потому что ты делишь целочисленным делением и ПОТОМ переводишь результат во флоат.
Попробуй наоборот
>>742858
#333 #742842
са
#334 #742843
Если в Fibonacci Heap убрать убрать два ребенка у элемента root уровня, то что с ним случится?
Он станет маркированным дважды и озалупится в отдельное дерево состоящее из него самого или маркировка просто "сгорит" и он останется на месте со своими чилдренами?
>>742847
#335 #742845
>>742694
Второпитонщик иди нахуй!
#336 #742847
>>742843
Проиграл
#337 #742848
>>742705
Просто пишешь, что можешь сделать в такой-то срок и всё. Никакого интервью и прочее.
#338 #742858
>>742841
>>742840
спасибо
#339 #742946
>>742805
Какой виджет использовать чтобы сделать такой список?
#340 #742969
Заебался с jedi для vim. Установил, запускаю, а он только подсветку синтаксиса и скобок запилил. И то кривую. Никаких автодополнений, нумерации строк, подсветки сторики с курсором. Запустить прогу не могу т.к. на отсутствие мэйк-файла жалуется и доки не установились. Где блять нормальная инструкция? Похоже для красивого вида нужно ещё плагины. Какие?
>>743275
#341 #742979
>>742730
Что лучше не использовать числа вне этого диапазона, иначе будет использоваться лишняя память. Если уж прям нужно большие, можешь выдумать своё представление чисел полином из этих маленьких.
10 Кб, 422x240
#342 #742980
>>742805
pygtk listview
>>742982
#343 #742981
>>742805
Вот можешь кстати исходники поизучать http://sunflower-fm.org/
Ещё есть консольные файловые менеджены lfm например
>>742982
#344 #742982
>>742981
Спасибо! Но думаю я слишком зеленый, чтобы в исходниках копаться. Пока что буду в сторону pygtk копать.
>>742980
Красота, спасибо, а на pyqt похожей фичи нет? Как то он удобнее помоему.
>>742984
#345 #742984
>>742982

> а на pyqt похожей фичи нет?


Есть

> Как то он удобнее помоему.


Глупости. Просто посмотри сколько реально популярного софта на pygtk/gobject. А на pyqt нет почти ничего.
>>742985>>743048
#346 #742985
>>742984
Значит буду на pygtk бахать, если разберусь, итоговая цель - простенький файловый менеджер. пока что сделал простое окно и пытаюсь разобраться с модулем os, думаю он пригодится
>>743058
#347 #742999
>>742732
ты тралишь?
или серьезно не понимаешь?
#348 #743000
>>742730
это значит, что проверка, например, н четность такая:
number % 2 is 0
будет работать. Но так делать не надо.
#349 #743048
>>742984

> Глупости. Просто посмотри сколько реально популярного софта на pygtk/gobject. А на pyqt нет почти ничего.


Иии? PyQt5 реально крутой, несколько тредов назад я уже писал почему.
#350 #743058
>>742985

> pygtk


Умер 5ть лет назад.
#351 #743146
>>738709 (OP)
Поясните про рекурсию. Насколько понимаю, он сначала x(x-1), потом результат на ((x-1)-1) ... ? Как из этой записи можно понять, где происходит очередной шаг и изменение аргумента на единицу и повторный вызов функции с новым аргументом ?

def fact(num):
if num == 0:
return 1 # факториал (0)=1
else:
return num fact(num - 1)
# возвращаем результат произведения num и результата возвращенного функцией fact(num - 1)
>>743151>>743179
#352 #743151
>>743146

>Как из этой записи можно понять, где происходит очередной шаг и изменение аргумента на единицу и повторный вызов функции с новым аргументом ?


Ну вот же:
return num*fact(num - 1)
#353 #743179
>>743146
Ну нарисуй диаграмму состояний, как в книге think python, там помоему отлично обьясняется, именно на примере факториала
>>743182
#355 #743183
>>743182
Можно и так. А можно и самому подумать
>>743236
#356 #743236
>>743183

>самому подумать


>2016

>>743325
#357 #743275
>>742969
Бамп блять. как мне этой хуйнёй пользоваться?
>>743286
19 Кб, 436x323
#358 #743286
>>743275
У меня всё работает. Инстукция там есть
>>743294
9 Кб, 547x66
2 Кб, 206x39
4 Кб, 407x32
#359 #743294
>>743286
Этот модуль у всех есть?
>>743296
#360 #743296
>>743294
1) Что ты делаешь на первом пике? Почему из вима прям?
2) Что ты нажимаешь чтобы появилось дополнение? supertab или типа того стоит?
>>743300
#361 #743300
>>743296

>Что ты делаешь на первом пике? Почему из вима прям?


:make это же ide из него нужно запускать. Иначе в нём смысла нет.

>2) Что ты нажимаешь чтобы появилось дополнение? supertab или типа того стоит?


ctrl-space и он не работает. А хочу чтобы ничего наживать не надо было. Как в обычных ide. И нет. Ничего кроме jedi не устанавливал.
>>743308>>743309
#362 #743308
>>743300
Судя по выхлопу make тебе надо сначала сделать :chdir /папкаспроектом

> ctrl-space


А ты его определял так? По-умолчанию автокомлит на ctrl+x ctrl+o вроде. С supertab будет по табу

> А хочу чтобы ничего наживать не надо было.


Это как-то можно сделать вроде let g:jedi#popup_on_dot = 0 вроде опция
>>743312
#363 #743309
>>743300
Вообще вот тут же инструкция есть
https://github.com/davidhalter/jedi-vim
Я по ней всё делал и всё зашибись.
Надо кстати в самом питоне модуль jedi поставить для начала.
>>743312
#364 #743312
>>743308

>ctrl+x


ничего не делает, а ctrl+o переключает буферы. Но на гитхабе в инструкции кажется ctrl-space было

>>743309

>Надо кстати в самом питоне модуль jedi поставить для начала.


Выполнял какую-то команду с pip для этого.
>>743317>>743324
#365 #743317
>>743312
Надо нажать ctrl+x и не опуская ctrl o
>>743339
#366 #743324
>>743312
А нафига тебе вообще vim? На любителя штука. Юзай pycharm.
Я много лет использую vim по привычке, но большой проект я бы в pycharm лучше делал и вообще хочу его освоить.
#367 #743325
>>743236

>2016


>wild greetexting

#368 #743339
>>743317
Другой файл открывает. Как эта штука называется? В доках про компиляцию ничего не могу найти.
>>743346
241 Кб, 1083x1024
#369 #743340
>>738709 (OP)
Гайз, оцените мой говнокод плз. Первая собственная прога на питоне. Буду очень рад если укажите на ошибки.
https://github.com/luckone/viselitsa-game-v.0.1
пикрандом
#370 #743343
>>743340
правильно писать "веселиться"
>>743384
#371 #743346
>>743339
omnicompletion
насчет конпеляции незнаю.
#372 #743348
>>743340
from methods import звездочка
from random import звездочка
так делоть харамновато, хотя так и продакшене многие делоют
#373 #743368
>>743340
А теперь напиши симулятор палача. Утром приходишь на работку-вешаешь, декапитируешь, вечером домой к коту и слезливым бульварным книжонкам.
#374 #743382
>>743340

> camelCase


> табы


Как будто в глаза насрали.

> https://github.com/luckone/viselitsa-game-v.0.1


Для каждой новой версии будет новый репозиторий?
>>743390
#375 #743384
>>743343
>>743343
виселица же :)
#376 #743390
>>743382
>>743382
гитхабом тоже только учусь пользоваться, чем плох таб и camelCase?
>>743393>>743407
#377 #743393
>>743390
Ничем, просто не по пепу:
https://www.python.org/dev/peps/pep-0008/
>>743397
#378 #743397
>>743393
В пепе сказано что можно использовать табы главное не мешать табы и пробелы в одном проекте.
>>743402>>744024
#379 #743402
>>743397
Да, но предпочтительней все-таки пробелы.
#380 #743407
>>743390
все pyc, pyo, pyd файлы из репоззитория должны быть убраты
#381 #743479
>>743340

>misstakes


mistakes же

>randomWords[randint(1, len(randomWords)]


Есть же random.choice()

>randomLetters = list(randomWord)


Зачем преобразовывать в список, если всё тоже самое можно делать со строкой?
>>743488
#382 #743488
>>743479
Зачем импортировать random в обоих файлах?

>randomWords[randint(1, len(randomWords)]


Здесь, кажется, скобочка потеряна и почему-то значение индекса от 1.
>>743493
#383 #743492
Sup, ребята.

Есть один скрипт, делающий бекап (архивирует) заданных директорй, которые хранятся в листе:

source = ['/home/user/media/Dropbox/Images/Wallpapers/', '/home/user/media/Dropbox/Images/Photos/']

Вопрос, как вытащить название последней директории из элемента листа, чтобы потом всунуть её в имя архива, учитывая, что делается архив каждой директории из листа отдельно?
>>743497
#384 #743493
>>743488

>if letters == goodLetters:


Если отгадывать буквы не по порядку, то списки не будут равны никогда. Победы не дождаться.
>>743513
#385 #743497
>>743492
os.path.basename(path)?
>>743501>>743503
#386 #743501
>>743497
возвращает пустую строку.
>>743503
#387 #743503
>>743497
>>743501
Есть, спасибо, няша. Надо было без '/' в конце пути.

/home/user/media/Dropbox/Images/Photos
#388 #743513
>>743493

>variant = input()


Никак не проверяется что в variant. А если пользователь введёт несколько букв?
>>744267
#389 #743546
komodo работает только если прогу поместить в /home/user/komodo/bin

dir pwd python3 в терминале внутри komodo работают, а cd нет.
>>743557>>743777
#390 #743557
>>743546
И почему приходиться постоянно писать в консоль и нет горячей клавиши для этого?
#391 #743729
>>738709 (OP)
https://ideone.com/BMmrVw
Поцоны, короче такая тема. Это примитивная адресная книжка с возможностью ввода имён и номеров в словарь, который записывается в файл. В дальнейшем можно(нельзя) найти номер по ключу. Но вот беда, прога находит только имена которые были введены в чистый файл в первый раз, остальные записи не видит, хотя они в файле сохраняются. Помогите решить проблему.
#392 #743735
>>743729
Тебе нужно переписывать файл по-новой каждый раз, а не просто добавлять в конец, смотри:

>>> f = open('addressbook.txt', 'rb')


>>> pickle.load(f)


{'test': '123', 'test2': '1234'}

>>> pickle.load(f)


{'test': 'test rabotaet', 'test4': '31231231', 'test3': '123123'}

>>> pickle.load(f)


{'test': 'test rabotaet', 'test4': '123123134124', 'test5': '234234124', 'qweasd': '1231231', 'test3': '12312312312'}
>>743741
#393 #743741
>>743735
Так теперь не находит имена/номера, которые ввел в первый раз, а мне нужно чтоб все введенные номера сохранялись.
>>743756
#394 #743744
>>743729
SQLITE
Q
L
I
T
E
#395 #743747
>>743744
Спасибо!
#396 #743748
>>743744
Ты ебанутый. Видно же что человек только учит питон, задание - скорее всего из "A Bite ..."/"Dive into .." и тут ты - пиздец-молодец такой с СЭКЮЭЛЬАЙТ
Да нахуй никому ещё одна адресная книга не сдалась даже в учебных целях с бд.
>>743754
#397 #743754
>>743748
Вот это ТРАЙСБЭК
>>743762>>743960
#398 #743756
>>743741
Так ты при старте программы загружай содержимое файла в словарь, потом добавляй/ищи по нему, а когда выход - записывай словарь в файл, затирая текущее содержимое.
>>743775>>743794
#399 #743762
>>743754
Меня просто бесит маразм.
#400 #743775
>>743756
а если программа упадет?
>>743778
#401 #743777
>>743546
ln -s?
>>743785
#402 #743778
>>743775
Ну тогда делай бэкапы каждые н минут, тут ничего не поделать. Ну или насилуй файл и переписывай его каждый раз, когда пользователь введет новую запись. Ну или при поиске делай в цикле пикл.лоад, пока не найдешь словарь с нужной записью.
#403 #743779
>>743729
Это из Лутца?
#404 #743784
Пилю вот примеры по Укусу Питона и первая задача по скрипту, который делает бэкап.

https://ideone.com/TkAgC6

всё работает, но, в архиве создаются поддиректории, а не конкретна та директория, которую я задал в source.

То есть, из примера, ожидаемо, что в архиве будет директория Wallpapers с файлами, но в архиве у меня несколько директорий: home/user/media/Images/Wallpapers и только потом файлы. В чем провтык?
>>743787>>743788
#405 #743785
>>743777
С каждыйм файлом так делать? Тут даже кнопки выполнить нету. Приходиться сохранять и запускать программу нажатиями 5 кнопок. Это же бред. Может плагин какой есть на этот случай?
#406 #743787
>>743784
zip по умолчанию создает полный список директорий, можно делать cd в нужный каталог и обратно (cd/pushd/popd)
>>743796
#407 #743788
>>743784
Попробуй добавить ключи -j к команде zip
>>743792
#408 #743792
>>743788
zip error: Invalid command arguments (cannot repeat names in zip file)
>>743796
#409 #743794
>>743756
Спасибо, помог. Не знал что если открывать файл через 'w', то всё содержимое сразу удаляется.
#410 #743796
>>743792
Видимо у тебя в директориях файлы с одинаковыми именами или ещё чего. Тогда вариант как анон выше написал >>743787
>>743801
#411 #743801
>>743796

> Видимо у тебя в директориях файлы с одинаковыми именами


Да. Но они в поддиректории (Wallpapers/001.jpg & Wallpapers/subdir/001.jpg). Странно, что на такое ругается. Как-то обойти можно?
#412 #743812
https://ideone.com/RSe42x

Чому в архив добавляется еще сам скрипт? То есть, помимо директорий, которые передаются из sys.argv, еще и добавляется скрипт, который выполняю прямо в корень архива.

Например, содержание архива:
-Wallpapers
-Photo
backup.py
>>743814
#413 #743814
>>743812

>source.extend(sys.argv)


Первый аргумент в argv - это название выполняемой команды.
>>743819
#414 #743816
Вопрос уровня дебила: вот есть фреймворк типа Джанго.
Он унифицирует все по полочкам до переносимости отдельных частей между проектами, унифицирует вид и способы взаимодействия.
Существует ли что-то подобное для не веб приложений? Где из коробки тебе хранение всякого говна, модели стандартные что с этим делать и тд. Если нет то почему?
#415 #743819
>>743814
А как можно его скипнуть?
>>743820
#416 #743820
>>743819
source.extend(sys.argv[1:]) же
>>743823
#417 #743823
>>743820
Уже читнул и вкурил. Спасиб.
#418 #743837
def make_tarfile(output_filename, source_dir):
----with tarfile.open(output_filename, "w:gz") as tar:
--------tar.add(source_dir, arcname=os.path.basename(source_dir))

Как быть, если source_dir формируется из нескольких аргументов?
>>743841
#419 #743841
>>743837
source_dir это лист.

AttributeError: 'list' object has no attribute 'rfind'

Ошибка, если в нём есть несколько элементов. С одним элементом всё работает.
>>743844
#420 #743844
>>743841
Сделать проход по списку и для каждого элемента выполнить tar.add?
>>743850
#421 #743850
>>743844
https://ideone.com/ZsLHf8

TypeError: list indices must be integers or slices, not str

В общем, задача была в том, чтобы создавать архивы с помощью tarfile модуля.
>>743855
#422 #743855
>>743850
Замени source_dir на i. i хранит элемент списка, а не его индекс.
#423 #743868
https://ideone.com/TOAQ5p

Короче, наваял как-то так. Теперь проблема в том, что, если один из аргументов - это несуществующая директория, то создаётся архив со всеми, кроме неё, и вывыодится ошибка, а надо, чтобы архив вообще не создавался. Как такое можно напедалить?
>>743871>>745344
#424 #743871
>>743868
О, я придумал. Можно впилить проверку на os.path.exist() перед выполнением функции для каждого элемента и, если false, то дропать.
>>743872
#425 #743872
>>743871
Иди спать, завтра сделаешь.
>>743877
30 Кб, 312x429
#426 #743877
>>743872
Не могу.

https://ideone.com/Ec7eE2 вот, сделал.

Осталось решить вопрос, почему архивируется конкретно содержание (файлы) директорий, переданных в аргументах, а не сами директории с файлами. Помогите, посоны.
>>743878
#427 #743878
>>743877
Возможно из-за наличия/отсутствия слеша в конце пути.
Почему бы не использовать .format вместо конкатенации плюсиками? Наглядней же, не?
>>743879
#428 #743879
>>743878

> Возможно из-за наличия/отсутствия слеша в конце пути.


Да, именно из-за него. Годно. Спасибо. А можно как-то их обрезать, если пользователь всё-таки ввёл?

> Почему бы не использовать .format вместо конкатенации плюсиками? Наглядней же, не?


Да, ты прав.
>>743880
#429 #743880
>>743879

> А можно как-то их обрезать, если пользователь всё-таки ввёл?


'/raz/dva/tri/'.rstrip('/')
Теперь иди спать.
>>743881
#430 #743881
>>743880
Заебок! Спасибо.

Пошел спать.
#431 #743918
Как парсить сайты с чертовым аяксом. Вот например http://allrecipes.com .
#432 #743960
>>743754
он просто НЕ ОБРАБОТАЛ ИСКЛЮЧЕНИЕ
#433 #743963
>>743918
1) selenium + браузер
2) смотришь, какие запросы шлет твой браузер, эмулируешь их при помощи requests, html разбираешь при помощи lxml
>>743985
#434 #743985
>>743963

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


там этих запросов дохуя, не разобраться
>>743992
#435 #743992
>>743985
ищи XHR запросы
>>744022
#436 #744014
>>743918
http://ideone.com/YcRQus Вот мои потуги, как сделать что б все сохранялось в csv-file?
#437 #744019
>>743744
СИКЯЛЯЙТ в питонотусовочке не любят штоле? По-моему, если нет нагруженности и многопоточности, типа серверсайда, то вполне можно замутить, тем более тут чувак вообще стандалон пишет. Фурифокся на SQLite работает, например, какая-то борда еще, может даже двощ, точно не помню.
>>744021
#438 #744021
>>744019
Никто не не любит, просто в этом случае он не к месту.
#439 #744022
>>743992
допустим я его нашел. что с ним делать? там что-то типа https://server_url/get?param=1&position=63451785421586487174681764781548
надо как-то ломать сам запрос, чтобы осмысленно отправлять?

например, есть куча сайтов, у которых когда долез до конца страницы, подгружается еще порция данных, этим самым ajax
как найти js-код, который управляет подгрузкой и формирует этот xhr-запрос?
>>744115
#440 #744024
>>743397
Вроде как суть в том, что для таба можно задать разную длину в пробелах. Лучше настрой в редакторе, чтобы у тебя таб был равен 4 пробелам и вместо \t он ставил именно их, разницы не почувствуешь, но проблем потом, если будешь где-то работать, меньше будет.
>>744046
#441 #744046
>>744024
Ну а как быть с выравниванием строки после переноса?
>>744332
#442 #744101
Сап, помогите ньюфагу.
Как сделать словарь, значением которого будет список?
>>744102>>744105
#443 #744102
>>744101
a = {'key': [1, 2, 3]}?
>>744106
#444 #744105
>>744101
ты еблан чтоле?

a['penis']=[1,2,3]
>>744106
#445 #744106
>>744102
>>744105
Блять, это было так просто.
Какой же я мудак.
>>744107
#446 #744107
>>744106
Спасибо.
#447 #744115
>>744022

>надо как-то ломать сам запрос, чтобы осмысленно отправлять?


смотреш, что запрос получает взад
думоеш, как это соотносится с тем, что тебе надо спарсить

заголовки, как правило, можно копировать втупую, в запросе id различные менять инкрементально
>>744282
#448 #744122
>>743918
тут крч есть фронтенд, который взаимодействует с json API.
URI имеют вид

https://assetservice.allrecipes.com/v1/asset/hub/81/3?
где 81 - категория, 3 - страница

фильтруй по хостнейму assetservice.allrecipes.com и познаешь дао-какао
>>744123
#449 #744123
>>744122
вот пример ответа json
http://pastebin.com/MTEPFm6F

тебе придется аутентификацию их изучить
#450 #744168
Господа, поясните за путь к джуниору. Чего достаточно, для того, чтоб идти на собеседование? Где найти работу, если нужны только мидлы и сеньёры-помидоры с опытом овер дохуя лет?
>>744189
#451 #744189
>>744168
Я думаю, надо для начала пиздовать в какой-то попен-сорц проект и фиксить там баги, смотреть че как устроено, вот это всё. Это тебе халявный экспириенс. Правда, за него деньги не платят, но опыта набраться можно. Это и пишешь в резюме + свои проекты.
>>744270
#452 #744267
>>743513
Эти проверки на ввод,как у меня печёт от них. В технаре препод на каждую строку кода требовал проверку делать. Заебал
#453 #744270
>>744189
>>744189

>Это и пишешь в резюме


и на это всем похуй
топкек
>>744281
#454 #744281
>>744270
Почему? Это уже опыт. Можешь еще свой github показать, где ты там чего коммитил.
#455 #744282
>>744115
даун ебаный
>>744311
#456 #744311
>>744282
ты давай не хами старшим
#457 #744332
>>744046
Смарт табы и еще что-то вроде есть. Если пишешь не в блокноте - есть куча плагинов, которые тебе и синтаксис проверят и выравнивание поправят.
>>744347
#458 #744347
>>744332
Охуенно, кодим в 79 символов чтобы в консольку/нищемонитор поместилось, а тут даже в рандомном ide код не открыть без костылей.
>>744350
#459 #744350
>>744347

> в консольку


енждой йор легаси
#460 #744381
Сап, питач! Написал на 3м питоне простенькую программу с библиотекой tkinter. Можно ли ее скомпилировать в один .exe-файл (рядом со скриптом лежат картинки и иконки), которые используются в скрипте - их нужно засунуть внутрь, чтобы юзеру было удобно принимать одним файлом, без инсталлятора и прочей ебани. Если это в принципе реально, то куда копать? Можно пошаговый гайд, что качать и в чем разбираться. Boson пробовал, выдает какие-то ебучие ошибки при запуске.
>>744387
#461 #744387
>>744381
py3exe и тому подобное.
>>744397
#462 #744397
>>744387

>py2exe


Fix
>>744403
#463 #744403
>>744397
Я писал на третьем питоне, но приложение небольшое и реально его поправить под вторую ветку. Но самое главное - реально ли это сделать как я описал, чтобы был exe-файл, один единственный, чтобы иконки и картинки приложения были внутри или типа того, короче дабы юзер скачал один файл и запустил? Анон, помоги!
>>744412>>744438
#464 #744412
>>744403
Нет, это просто называние, а не версия питона. Ещё можешь посмотреть Pyinstaller. Были ещё какие-то упаковщики.
И иконки, и картинки, всё в один .exe файл.
>>744426
#465 #744420
Мне понадобилось вызывать ключи словаря по значениям, делать обратный словарь совсем плохо?
Там всего 5 элементов с заданными заранее неповторяющимися значениями.
>>744668
#466 #744426
>>744412
PyInsaller самое то, py2exe не советую. (Last Update: 2013-05-29)
ключи:
-F - в один файл
-w - не открывать консоль при запуске. (еслу у тебя с гуи)
#467 #744427
Вкатываюсь в питон,решил запилить бота для телеграма(питон2+ фласк).поставил вебхук на %сайтнейм%.github.iо. Пишу боту,пост-запрос на %сайтнейм% не приходит. Как пофиксить проблему?
51 Кб, 779x620
#468 #744438
>>744403
Вот приложение собранное PyInstaller, тоже на tk.
$ pyinstaller -F -w <input> <output>
Все. остальное он сделает за тебя. Ресурсы, модули, интерпретатор - он все зависимости соберет.
Это >>744403 тоже тебе.
#469 #744444
>>744438
Спасибо! Но везде пишут, что он только для python2. Короче, мне переписывать код для второй ветки, и штурмовать PyInstaller?
>>744448
#470 #744448
>>744444
Быстрофикс, уже вижу что он есть и для моей 3 версии. Спасибо тебе огромное Анон, буду ебстись!
#471 #744668
>>744420
Делай обратные словарь, хуле.
>>744710
#472 #744710
>>744668
Кстати, если значения не пересекаются с ключами, то можно зделать в одном словаре.
#473 #744798
>>738709 (OP)
Питон можно скомпилять в экзешник, который будет работать без самого интерпретатора питона, весить не дохуя и в памяти занимать <500кб (если это хеллоуворлд)? Ну и не декомпилировать чтоб.
Питон можно транслировать в с++/с#, чтобы работало и было более-менее читаемо? В идеале, в исходном питоне используя функции и классы того, во что собираешься транслировать?
Можно ли (и если да, то как) написать скрипт автоматизации или макрос, группу таких скриптов-макросов (хоткеи, бинды кнопок и сочетаний, действия с системой), запускающиеся по событию мыши, клавиатуры, системному событию (изменилась раскладка, отключился интернет, етц)?
#474 #744812
>>744798

>Питон можно скомпилять в экзешник, который будет работать без самого интерпретатора питона, весить не дохуя и в памяти занимать <500кб (если это хеллоуворлд)? Ну и не декомпилировать чтоб.


net

>Питон можно транслировать в с++/с#, чтобы работало и было более-менее читаемо? В идеале, в исходном питоне используя функции и классы того, во что собираешься транслировать?


da

>Можно ли (и если да, то как) написать скрипт автоматизации или макрос, группу таких скриптов-макросов (хоткеи, бинды кнопок и сочетаний, действия с системой), запускающиеся по событию мыши, клавиатуры, системному событию (изменилась раскладка, отключился интернет, етц)?


dot net
>>745016>>745017
#475 #744835
>>744798

> Питон можно скомпилять в экзешник, который будет работать без самого интерпретатора питона, весить не дохуя и в памяти занимать <500кб (если это хеллоуворлд)?


Просто скомпилять как-то можно (хотя у меня ничего не вышло, как ни пытался), но вроде весить будет как раз дохуя, т.к. включаются все библиотеки.
...Шел 2016 год. Гвидо до сих пор не смог сделать динамические библиотеки и нормальный компилятор.
>>744837>>744841
#476 #744837
>>744835
динамические библиотеки есть, аутист.
>>744840
#477 #744839
>>744438
Ок, попробую. Через py2exe ничего не выходит.
#478 #744840
>>744837
Рантайм Питона не в динамических библиотеках.
#479 #744841
>>744835
При чём тут компилятор, там интерпретатор в экзешники вставляется, чтобы тебе не пришлось вместе со своим поделием писать "чтобы запустить, установите пидон плиз".

Библиотеки там и так только нужные вставляются, потому что все весят довольно-таки многи, если ты вдруг ни разу в /lib не заходил.
>>744843>>745016
#480 #744843
>>744841

> "чтобы запустить, установите пидон плиз".


Всегда проигрываю.
#481 #744965
>>741915

>for lemma in dict


Упорот чтоли? У тебя же slovar был.
>>744969>>744999
#482 #744969
>>744965
он уже ответил, что ошибся в названии.
#483 #744999
>>744965
А что такое лемма, и почему она должна была быть в словаре?
#484 #745016
>>744812

>dot net


Подробнее можно? И нахуя?

>net


А всякие сипитоны?
>>744841
Много - это сколько?
>>745021>>745198
#485 #745017
>>744812

>da


Чем/Как?
#486 #745021
>>745016

>Подробнее можно? И нахуя?


Перекатывайся на дотнет-парашу и не пытайся сделать из питона то, для чего он не предназначен.
>>745026
#487 #745026
>>745021
Ясно. Но это же шкрепты. Автоматизация, все дела. Мне в прикрепленном посоветовали перекатиться на питон, чтобы не ебаться с автохоткеем и его заклинаниями. А теперь говорите, что это невозможно.

> для чего он не предназначен


А для чего, напомни, предназначен язык общего назначения?
>>745034
#488 #745034
>>745026

>А для чего, напомни, предназначен интерпретируемый не микрософтовский язык?


Уж точно не для хелло-вордов в 500 кб, и запуска по хоткеям.
>>745039>>745041
#489 #745039
>>745034
А причем здесь микрософт? Ява, жс, авто ит, авто хоткей - это микрософтовские языки?

>хелло-вордов в 500 кб,


Ну да, 500 кб, это где-то в 50 раз больше, чем должен занимать в памяти хелло-ворд, это правда, но мы живём в 2016, поэтому пусть хотя бы так.
#490 #745041
>>745034

>Уж точно не для


>язык общего назначения


>Уж точно не для


И почему же?
>>745044
#491 #745044
>>745041
подгорело, хеловордщик?
>>745081
#492 #745081
>>745044
Разве что от непоследовательности зк.

>хеловордщик


Это оскорбление?
#493 #745153
К автоиту есть/можна зделать бинды, там просто длл. Плюс ещё какая-то либа была
#494 #745198
>>745016
Ну, это, гораздо больше тех <10Мб, в которые обычно превращается по максимуму ужатое и очищенное от всего лишнего приложение. Просто у тебя и однострочник, и небольшое гуи приложение будут столько весить (впрочем, сама библиотека в 6.6 ужимается, вроде как).
>>745377
#495 #745299
Что происходит с фласком? Он вообще развивается? Будут новые версии? Вот смотрю джанго постоянно новые версии выпускает, иногда к одной не успеваешь привыкнуть как что-то другое выходит. Смотришь на расписание новых релизов - оптимизЪм.
>>745300
#496 #745300
>>745299
Это же микрофреймворк, там особо нечего развивать. Вся суть в сторонних библиотеках. Что тебе в нем не хватает? Или что не нравится?
http://flask.pocoo.org/docs/dev/changelog/
>>745304
#497 #745304
>>745300
Да как что, меня все устраивает. Захотел сделать мини-сайтик - сделал. Правда есть некоторые маленькие неточности в разделе документация. Врд и есть изменения, но док. местами не обновили. В джанго такого нет, там выходит новая версия, сразу все переписывается, ну я так заметил. Хотя ладно.
#498 #745320
Господа, не знаю где спросить, поэтому спрошу в родном питонотреде. Как и на чем нынче принято интерфейсы для фронтенда пилить? Есть какие-нибудь библиотеки веб-гуя? Что лучше и проще к джанге присобачить? Ну и вообще направьте.
>>745622
#499 #745334
веб-гуй — remi. Для клиент-сайда пробовал реакт, нормалёк.
>>745438
#500 #745344
>>743868

>comment.replace(' ', '_')


можно заменять и другие символы
python remove non alphanumeric characters from string
>>745437
#501 #745356
Что делать с ебанутым кол-вом Button-ов?
Создать универсальные метод и вызывать в цикле? Но как...
https://ideone.com/3fdl4F
>>745371>>745653
#502 #745371
>>745381
#503 #745377
>>744798
Бамп
>>745198
Ну окей, можешь остальное пояснить?
>>745428
21 Кб, 434x143
#504 #745381
>>745371
Таки дела.
>>745385>>745386
#505 #745385
>>745381
UPD: К тому же этот вариант не работает а всего лишь заполняет последней кнопкой(9) все значения.
#506 #745386
>>745381
Ты серьезно? Ты зачем вообще это пишешь, если не понимаешь как это работает?
https://ideone.com/5r6etx
>>745393>>745395
41 Кб, 687x140
20 Кб, 439x141
#507 #745393
>>745386
НЕт, я не шучу. А ты?
#508 #745395
>>745386
Да в и зачем там +1?
#510 #745428
>>745377
Переспросил в перекате.
#511 #745437
>>745344

>remi


Неблохо, спасибо.
>>745438
#512 #745438
>>745437 -> >>745334

Хотя все равно утонули.
#513 #745622
#514 #745639
А с питоном реально трактор завести?
Смотрю в России вакансий не так уж много, не то что на всякий джава мобайл и фронтэнд. Но душа не лежит к этим направлениям.
#515 #745653
>>745356
Скажи пожалуйста, где там указывается внешний вид кнопок? Я делаю свой хеллоуворлд, у меня там кнопки как в win 98, а у тебя как в семерке.
>>745667
#516 #745656
нет ли смысла запилить питоноконфу?
#517 #745667
>>745653
все, понял, нужно было создавать ttk.
#518 #746054
На пайтоне можно игрового бота написать для архиэйдж?
#519 #746063
Через точку пишутся только методы строк, например
string.isalpha()?
>>746066
#520 #746066
>>746063
Вообщем, почему так пишут len(str), а не str.len?
>>746638
143 Кб, 1184x1209
#521 #746248
>>744438
Аутист с pyinstaller 3-проблемами снова просит помощи у тебя, добрый анон, и у других шарящих. Екзешник, собранный со сторонними файлами (картинками) не запускается. Собираю на Шindows, в консоли ввожу

pyinstaller -F -w 123.py

Удаляю из кода все обращения к сторонним файлам - все работает, как я и хотел, собирается в единый файл, весит правда, пидор, 7 метров, ну да это ж петон плес Что еще нужно дописать, чтобы сторонние файлы упаковывались в экзешник? Или нужно сначало ебстись с spec-файлом? В документации нихера не понятно. Всем добра.
>>750148
#522 #746638
>>746066
python data model гугли
>>746678
#523 #746678
>>746638
и книжку fluent python
#524 #746683
>>739205
ты не вкатишься, ты слишком старый

мимо местный долбоеб
#525 #749610
Шалом, неверные!
Скажите, посоны. Какие задания вам дают на работе? Чем конкретно вы занимаетесь на работе? Что именно кодите на пайтоне?
>>750651
sage #526 #750148
>>746248
Я таки разобрался. Нужен кому-нибудь мануал по тому, как пейтон-скрипт засунуть со сторонними файлами и библиотеками в один экзе-файл? Могу на досуге напилить, если спрос есть.
#527 #750651
>>749610
django-хуянга, скриптики и всяк devops
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 6 июня 2016 года.

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

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