Программирование

Ответить в тред Ответить в тред
Check this out!
Питон тред №97 /python/ Аноним 18/08/20 Втр 22:34:10 17809561
15970972047310.png 54Кб, 474x474
474x474
Тред, посвящённый языку программирования Питон, #97

Предыдущий: >>1752122 (OP)

Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться

#######################################

ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года

Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.

— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х

— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4

— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.

https://dumpz.org/bASGKD8cCFDf
Аноним 18/08/20 Втр 22:36:31 17809612
pycharm64Eo3JpH[...].png 8Кб, 380x145
380x145
pycharm64NXQPhI[...].png 20Кб, 531x305
531x305
Продублирую сюда, хули ему надо?
Аноним 18/08/20 Втр 22:37:48 17809673
>>1780961
Очень просто - если ты не видишь ошибки в ошибочной строчке, значит обосрался в предыдущей.
Аноним 18/08/20 Втр 22:42:15 17809704
>>1780967
Блядь, все, увидел скобочку, как-то нелогично, сделали бы лучше подчеркивание незакрытой скобки, чем принт просто подчеркивать как косяк
Аноним 18/08/20 Втр 22:43:55 17809715
>>1780970
>сделали бы лучше подчеркивание незакрытой скобки, чем принт просто подчеркивать как косяк
Ты не закрыл скобку = для интерпретатора это продолжается все то же выражение. Он ебет что ли, как у тебя должно быть все по задумке?
Аноним 18/08/20 Втр 22:45:45 17809736
>>1780970
Парсится как есть, а не построчно, конструкции могут быть и многострочными.
Аноним 18/08/20 Втр 22:46:00 17809747
Начал учить питон. Какой наиболее адекватный способ сделать retry?
17 строка
https://pastebin.com/eF2BqzQQ
Аноним 18/08/20 Втр 22:48:06 17809778
>>1780974
while not inpNumber:
и внутри твоя хуйня.
Аноним 18/08/20 Втр 22:52:56 17809819
>>1780977
Спасибо, анон! Шикарно вышло. А то наркоманы всякие советуют @retry из tenacity, который хуй пойми как вообще использовать новичку
Аноним 18/08/20 Втр 23:32:32 178099410
Пишу в ТыТрубе "чем плох питон". Вижу видосы с названиями:
Чем так крут Python
10 интересных фактов про Python
Топ-5 причин учить Python новичку прямо сейчас (фить, ха!)

Почему никто особо не говорит о том, что создавать реальный проект на питоне не разумно, ибо слишком много жрёт?
Аноним 18/08/20 Втр 23:33:59 178099511
>>1780994
Что за проект поясни
Аноним 18/08/20 Втр 23:36:17 178099812
>>1780995
Ну, например, питонисты кичатся нейросетями и какими-то НАСАми-хуясами. В линуксах, вон, чуть ли не каждая вторая программа на питоне. Зачем? Непонятно. Разве что разрабочики не ценят ресурсы твоего компьютера, оправдываясь отговоркой мол, на на питане просше.
Аноним 18/08/20 Втр 23:37:13 178099913
>>1780998
Так приведи пример реально проекта
Аноним 18/08/20 Втр 23:38:58 178100314
>>1780999
"pocketsphinx", который был сначала на C, а теперь, если я не ошибаюсь, в репазиториях только альфа версия на питоне. Делал студенческий проект, типа, голосовой помощник на базе Raspberry Poo, а там скорость отклика очень важна.
Аноним 18/08/20 Втр 23:41:48 178100615
>>1781003
репОзиториях
Самоисправил.
Аноним 18/08/20 Втр 23:45:00 178100916
Питон это ж когда придумал что-то, чтобы по-быстрому написать компилятору питона "сделай заебись", и компилятор хоть и не заебись как быстро, но заебись делает. Чисто проверить жизнеспособность идеи. Нет?
Аноним 18/08/20 Втр 23:46:00 178101017
>>1781009
Иди отсюда нахуй в ассемблеротред.
Аноним 18/08/20 Втр 23:46:29 178101118
>>1781010
Сам иди нахуй отсюда в ассемблеротред.
Аноним 19/08/20 Срд 00:20:48 178102719
Аноним 19/08/20 Срд 00:21:13 178102820
>>1780981
Орнул.
СОВЕТУЮТ НАДЕЖНЫЙ ИНСТРУМЕНТ
@
ВКАТЫШ НЕ ПОНЯЛ КАК ИСПОЛЬЗОВАТЬ, НЕ РАЗЖЕВАЛИ
@
НАРКОМАНЫ, ПРОСТИТУТКИ
Аноним 19/08/20 Срд 01:23:25 178107221
Хелп, при импорте одного модуля .py в другой, питон не видит переменную.

Вот условный код модуля с импортом: https://ideone.com/fork/9g91JC

Вот условный код импортируемого модуля: https://ideone.com/fork/X9yJyw

Выдает ошибку AttributeError: module 'main' has no attribute 'number'

Как фиксить? Пробовал делать from main import number, но не работает.
Аноним 19/08/20 Срд 01:27:37 178107722
Аноним 19/08/20 Срд 02:12:34 178110123
>>1781028
Тебе не кажется что это оверкилл для

try:
inpNumber = int(input())
except Exception:
print("Check Your input")
Аноним 19/08/20 Срд 02:51:21 178111124
>эти валидации через намеренный вызов ошибки и ее ловли
Забыл как эта параша называется. Ошибко-ориентированное программирование?
Аноним 19/08/20 Срд 02:58:08 178111425
>>1781077
Я попробовал создать другой файл с одной переменной и почему-то все работает. Очень прошу, объясните, в чем может быть трабл.
Аноним 19/08/20 Срд 03:24:23 178112926
>>1780994
Дебилушка человеко-часы тоже ресурс, скоро прямой речью будем кодить.
Аноним 19/08/20 Срд 03:25:59 178113227
>>1781111
Ну анон, юзер инпут же надо валидировать.
Аноним 19/08/20 Срд 03:48:04 178114228
>>1781129
Нахуй иди со своей прямой речью и человекочасами в ущерб производительности там, где она важна.
Аноним 19/08/20 Срд 03:54:32 178114429
>>1781142
Я не виноват что ты гипотетически опережаешь своими потугами свои влажные фантазии, а потом взываешь к локальной справедливости своего манямирка, сосни хуйца лизни тунца
Аноним 19/08/20 Срд 04:11:40 178114830
Аноним 19/08/20 Срд 04:16:43 178115231
>>1781148
Лутц читается на последочек довен а я только начал
Аноним 19/08/20 Срд 04:34:50 178115332
>>1781152
Начинать с питона — питоном закончить.
Аноним 19/08/20 Срд 06:04:18 178116733
Как же хочется Диабло шрифт адаптированный, локализованный и полный. Прздец просто
Аноним 19/08/20 Срд 06:23:41 178117334
Нет хуйня какая то получилась
Аноним 19/08/20 Срд 08:13:09 178119735
Почему в PyCharm такое конченное автоформатирование? Серьёзно, я ни в одном IDE которое юзал для сишки такого не видел.
Аноним 19/08/20 Срд 10:18:56 178124936
>>1780998
Борщехлеб, ты хоть на одном коммерческом проекте работал?
Аноним 19/08/20 Срд 10:22:03 178125137
Аноним 19/08/20 Срд 10:40:29 178126938
>>1781101
Оверкилл не оверхед. Не вижу причин не попробовать. И tenacity единственная библиотека которая может в корутины, ещё коллбеки писать можно. Документация кстати вся в коде есть с примерами. Это в Java надо доки читать из официального источника, а в Питоне дохуя что в коде (в том числе говнокод майнтейнера)
Аноним 19/08/20 Срд 10:42:31 178127339
>>1781197
Выбери форматер нормальный их несколько штук на выбор. ПуЧарм жава комбайн и жрет столько же. Из нормального могу вспомнить только NetBeans IDE, Eclipse, Dbeaver(и то надо вручную конфиг коннектора править), все остальное лютое дерьмо.
К тому же ПуЧарм просто дистрибутив Idea с прикрученным пихоном.
Аноним 19/08/20 Срд 11:04:26 178129140
>>1780956 (OP)
Сколько у вас проектов было на гитхабе когда вкатились? Три штуки пойдет или больше накидать?
Аноним 19/08/20 Срд 11:19:06 178130641
>>1781291
Когда я вкатился, гитхаба ещё не было.
Аноним 19/08/20 Срд 11:36:36 178132942
Есть хоть какие-то бенчмарки на асинхронные вьюхи в новом джанго?
(хотя до поддержки асинхронного доступа в дб все равно это все не имеет смысла)
Аноним 19/08/20 Срд 11:38:46 178133343
Господа-петонисты, есть у вас фреймворк, который считается стандартом для пердоленья гуйни?
Гуглятся всякие tkinter, wxpython, pyqt.
Поясните, пожалуйста, вкратце, на что лучше всего обратить внимание и почему.
Аноним 19/08/20 Срд 11:40:13 178133844
>>1781333
pyqt достаточно мультиплатформенный
есть еще какая-то параша ориентированная на веб-гуи, ей часто дата-соентисты пользуются для быстрой визуализации, на s вроде называется, не помню
Аноним 19/08/20 Срд 11:43:25 178134345
>>1781338
>ориентированная на веб-гуи
Питонисты свой электрон сделали?
Аноним 19/08/20 Срд 11:44:07 178134546
>>1781153
Ты тупенький, как такое возможно если Питон это язык которым проще всего можно работать с другими языками ? Учи питон еблан, скоро будущее и синтаксис не понадобится, а вот обширное понимание логического взаимодействия языков ой как пригодится. Даже пиццу не закажешь еблан будешь бегать по тёмным коридорам своей старой пятины с фонарикам и искать розетку и куда воткнуть usb2.0. Кароч не зли меня ебик
Аноним 19/08/20 Срд 11:48:02 178135047
>>1780994
>слишком много жрёт?
Может, потому, что в абсолютном большинстве случаев речь о том, выполнится действие за 0,02с или за 0,1с? Вроде бы и в 5 раз быстрее, а вроде бы и похуй.
И то не всегда проявляется.
Аноним 19/08/20 Срд 11:50:01 178135348
>>1780994
>Почему никто особо не говорит о том, что создавать реальный проект на питоне не разумно, ибо слишком много жрёт?
Ты, кажется, пропустил момент, когда время программиста стало дороже железа, на котором выполняется его программа.
Аноним 19/08/20 Срд 11:51:10 178135649
>>1781350
Ну не скажи, тот же бьютифул суп весьма и весьма тормозной.
Регекспами, которые реализованы на си, можно молотить гигабайтами страницы легко и быстро, а он пердит по полчаса.
Аноним 19/08/20 Срд 11:57:21 178136250
>>1781356
>Регекспами, которые реализованы на си, можно молотить гигабайтами страницы
Епт, ты хоть раз сам отмолотил с сотню страниц регексами? Че несешь-то?
Аноним 19/08/20 Срд 11:57:57 178136451
>>1781009
Нет.
Это универсальный язык для любых задач.
С чем-то справляется лучше, с чем-то хуже, как и любой другой инструмент, но в целом хорош.
Аноним 19/08/20 Срд 11:58:01 178136652
>>1781362
Да, было и по сотню-две.
Аноним 19/08/20 Срд 11:59:07 178136853
Аноним 19/08/20 Срд 12:00:08 178137254
>>1781366
А че не полторы тысячи уж тогда?
Из-за неопределенной вложенности и потенциальных человеческих ошибок парсинг html регексами - идиотское занятие. Суть любого парсера html в предусмотрении этих ошибок
Аноним 19/08/20 Срд 12:01:34 178137755
image.png 343Кб, 486x694
486x694
Еще один школяр-хэллоувордщик с Си спешит поделиться своим "открытием" насчет регулярок
Аноним 19/08/20 Срд 12:01:45 178137856
>>1781372
Да это всё понятно, но при парсинге именно дохуя однотипных рендеренных страниц одного скрипта это как раз нормально.
Аноним 19/08/20 Срд 12:01:53 178137957
>>1781362
Я молотил кастомные логи на десятки гигов с говноприложения (там нет шаблона типа log4j, а просто куча лапши, выведенная вручную в произвольных форматах) построчно на пистоне. Не особо быстро на питухоне получалось, зато написать такую дрочилку можно за 5 минут в гугле без знания самого питухона.
Аноним 19/08/20 Срд 12:02:39 178138258
>>1781377
Ещё один долбоебушек прочитал ГЛАВНОЕ ПРАВИЛО и везде поучает. Ещё про goto расскажи.
Аноним 19/08/20 Срд 12:04:16 178138659
>>1781382
>про goto
Сишнику-борщехлебу? Это всегда пожалуйста. Таким типам же похуй на все
Аноним 19/08/20 Срд 12:04:26 178138860
>>1781379
Чисто текстовые строки это хуйня, их разбор идет именно быстрыми регекспами или встроенными методами, которые си.
Бьютифул суп же может парсить быстрым сишним lxml, но тормоза идут именно в стадии построения всех этих структур-деревьев для дальнейшей работы, это происходит на чистом бидоне и тормозит ебовейше.
Аноним 19/08/20 Срд 12:05:22 178138961
scr2020-08-19 1[...].png 3Кб, 264x130
264x130
>>1781072>>1781077
УМВР, пик.
Что там у тебя не работало-то?
Аноним 19/08/20 Срд 12:19:33 178140862
>>1781350
>Может, потому, что в абсолютном большинстве случаев речь о том, выполнится действие за 0,02с или за 0,1с? Вроде бы и в 5 раз быстрее, а вроде бы и похуй.

Эм, 0.1с - это слайдшоу, 10 FPS

0.02c - это 50 FPS

Если такая хуйня будет происходить с гуем чего-то интерактивного, не обязательно игорька, то твою скриптоподелку с 10FPS нахуй выбросят и возьмут байтопидорскую, и пусть она с сегофолтами будет хоть раз в час падать зато пользоваться хоть можно.

Аноним 19/08/20 Срд 12:40:10 178143863
>>1781408
Бля, да как ты заебал, найди работу уже, чтоб подобную чушь не нести
Аноним 19/08/20 Срд 13:10:13 178149964
>>1781356
>Регекспами
Самый охуенный опыт перемалывания логов регэкспами у меня включал Perl (но там скрипт на 85% был уже готов, я просто подогнал его в паре мест под задачу), вот он быстро справлялся. Но когда мне важно как можно быстрее получить ответ - я пользуюсь Bash (если awk+grep будет достаточно) или Python потому что то, насколько быстро я напишу с лихвой перекроет любое ускорение перемалывания на тех же сях.
HTML'и парсил на bash'е буквально один раз, но думаю, что реализовать штатными средствами других языков то же, что я получил тогда, было бы сложнее.
Аноним 19/08/20 Срд 13:17:22 178150865
Вообще логи на похуй парсятся grep-ом, я хрен знает что вы тут развели. Си какое-то блять, ахуеть
19/08/20 Срд 13:24:57 178151966
>2020
>парсить регекспами
Аноним 19/08/20 Срд 13:25:26 178152267
>>1781499
Я сам перловик изначально, и да, там всё намного быстрее. Видимо потому что целенаправленно вылизано под такие задачи.
awk тоже баловался, но оно забывается без постоянной практики, которой нет.
Аноним 19/08/20 Срд 13:28:07 178152768
>>1781519
А что, появилось что-то новое для задач сложнее найти подстроку в строке?
Аноним 19/08/20 Срд 14:03:42 178160169
Подскажите, как сгенерировать случайную выборку с заданным распределением (распределение заданно функцей)? Сейчас я делаю так: https://ideone.com/FsWyVl (Онлайн не запускается)
С теоретической точки зрения все должно быть верно

Аноним 19/08/20 Срд 14:04:28 178160270
>>1781408
Смотри: есть программа, скажем... ХЗ... система генерации отчётов (пусть на основе данных, уже загруженных в RAM, чтобы не париться о тормозах СУБД и задержках на сети). Ты задал параметры отчёта и нажал на кнопку, в одном случае увидел таблицу через 0,02с, в другом - через 0,1с. Ты даже не заметишь разницы, а если и заметишь, то будет плевать.
А главное, что 95% операций, которые работают медленнее, чем хотелось бы, на самом деле либо включают какие-то расчёты, либо тратят время на получение данных или ещё какую херь.
Аноним 19/08/20 Срд 14:04:38 178160371
Аноны, скачал пару годно-книг по Nginx'у, думаю залить в репу с книгами.
Стоит ли сделать отдельную папку с веб-серверами?
Аноним 19/08/20 Срд 14:05:39 178160572
>>1781601
Случайно отправил не дописав
Проблема в том, что метод не работает(возвращает всегда 0.5 или близкие значения), кроме того очень медленный. Как это сделать нормально?
Аноним 19/08/20 Срд 14:24:33 178163973
image.png 45Кб, 461x498
461x498
Как это оптимизировать у меня скорость в ответы не влазит, что делать ребята ?
Аноним 19/08/20 Срд 14:28:09 178164574
>>1781639
Ты уроки делаешь чтобы на дваче ответы спрашивать?
Аноним 19/08/20 Срд 14:42:21 178166575
>>1781603
Nginx'ы раздают Cookbook на ангельском.
Аноним 19/08/20 Срд 14:47:21 178167176
>>1781645
Да, конечно. А потом двач за меня будет работу работать, мне останется только зарплату получать.
Аноним 19/08/20 Срд 14:56:10 178168077
>>1781671
зачем тебе список от н? представь что тебе запихнут числа милион и миляон пятсот, сумарно разница 500 но у тебя будет мильяон пятьсот элементов
Аноним 19/08/20 Срд 15:02:05 178168578
>>1781680
Насколько я понял, чтобы отработать первый for, составляющий собственно список простых чисел. На самом деле там даже немного красиво: никаких проверок делением и без лишних умножений.
Аноним 19/08/20 Срд 15:08:41 178169479
>>1781685
красиво то может и красиво но судя по всему, на решете О(н^inf) далеко не уедешь в данной задаче
Аноним 19/08/20 Срд 15:11:45 178169880
>>1781694
Разве решето вообще можно оптимизировать ? И разве оно не самый быстрый алгоритм поиска простых чисел ?
Аноним 19/08/20 Срд 15:13:52 178170581
>>1781645
Двач это когда уже всё. После этого только последний способ червя-деграданта: посмотреть правильные ответы
Аноним 19/08/20 Срд 15:15:49 178171382
>>1781698
ну хотя бы если учесть что, каждое второе число делиться на 2 что подразумевает что оно не может быть простым, то половину решета можно уже смело дропать нахуй ¯\_(ツ)_/¯
Аноним 19/08/20 Срд 15:27:49 178173183
>>1781639
Я ебал алгоритмические задачи, которые нужно наизусть знать, в рот.
Но по твоему коду похоже, что ты заполняешь весь диапазон до n, чего делать не надо.
Вот внизу у тебя вызывается с 100 до 110. Вопрос - нахуя тебе вычислять простые числа до 100?
Аноним 19/08/20 Срд 15:38:59 178175384
>>1781639
не самый быстрый код по простым числам, но что сможет сделает https://pastebin.com/rm1b3h5Q, возможно что-то предстоит коректнуть
Аноним 19/08/20 Срд 15:43:46 178176585
>>1781753
а не, поспешил с выводами, чичас сделал тесты, не прошли
Аноним 19/08/20 Срд 15:58:50 178179586
>>1781713
Ты дебилушка похоже
Аноним 19/08/20 Срд 16:01:03 178180087
>>1781795
https://pastebin.com/7ZcvB3q1
почему дебилушка? вот я дописал тесты проходят, а теперь покажи как решето с мильонами работает
Аноним 19/08/20 Срд 16:02:43 178180388
>>1781731
Потому что решето только сначала работает
Аноним 19/08/20 Срд 16:09:43 178181589
image.png 83Кб, 896x617
896x617
Аноним 19/08/20 Срд 16:10:23 178181690
>>1781800
Решето быстрее, оно не считает почти
Аноним 19/08/20 Срд 16:13:10 178182491
>>1781800
>if j * j - 1 > i:
>if (i % j == 0):
Дохуя оптимизатор нашёлся. Умножение и деление в цикле гонять.
Аноним 19/08/20 Срд 16:14:57 178182892
Может мне что ни будь заменить на более быстрое ? На кортежи или словари ?
Аноним 19/08/20 Срд 16:15:17 178183193
Есть же такой вариант ?
Аноним 19/08/20 Срд 16:16:25 178183294
Решето пробивается два раза, получается если делать в кортеже быстрее будет правильно же так?
Аноним 19/08/20 Срд 16:17:40 178183495
>>1781815
оке был не прав,вспомнил что вообще мой алгоритм предназначался для поиска итого элемента прсотых чисел, а оно быстрее решета, зря я его переделывал под такую задачу
Аноним 19/08/20 Срд 16:28:41 178184796
>>1780994
Запросы по проводам идут дольше, чем питон думает. Да и программисты дороже компьютеров.
Аноним 19/08/20 Срд 16:34:28 178185897
>>1781847
Второе конечно уже не так, время пришло пидорашка
Аноним 19/08/20 Срд 16:34:35 178185998
>>1781343
Есть eel, нормальная вещь.
Аноним 19/08/20 Срд 17:11:14 178190299
Аноним 19/08/20 Срд 17:17:06 1781912100
>>1781902
да и наверное у тебя было, не коенц времени исполнения , а переполнение памяти, как бы лист в 2ляма ощущется прилично в байтах
Аноним 19/08/20 Срд 17:19:17 1781917101
>>1781902
еще я алгоритм проверки на простоту взял самый первый в интернете, можно получше найти
Аноним 19/08/20 Срд 17:53:25 1781969102
Ща бы лист 2 ляма в питоныче парсить где по умолчанию ютф
Аноним 19/08/20 Срд 18:12:34 1782000103
>>1781273
А откуда весь этот форс "её используют даже в наса"?
Аноним 19/08/20 Срд 18:13:58 1782003104
>>1781273
> форматер нормальный их несколько штук на выбор.
В пучарме можно выбирать? Или ты про IDE?
Аноним 19/08/20 Срд 18:34:31 1782028105
>>1781902
Ладно, восхваляю тебя. Но меня в интернете (в статье на хабре) уверовали что решето - быстрее нету
Аноним 19/08/20 Срд 19:01:15 1782071106
>>1781273
Кажется, я впервые в своей практике вижу слова "нормальный" и "Eclipse" в одном предложении без явного противопоставления.
Аноним 19/08/20 Срд 19:42:58 1782092107
Хэлоу зяблы. Подскажите, как написать функцию для сортировки по такой идеи:
Вид массива = [[a0,b0],[a1,b1],[a2,b2]....]
В a будут числа типа number. В b будет, либо -1, либо +1, тоже типа number. Нужно отсортировать по а, но если встречаются одинаковые а, то вначале должны идти те массивы, где b = +1, а потом -1.

Вот пример, как это должно получиться:
[[1, 1], [2, 1], [3, 1], [4, 1], [4, -1], [8, -1], [9, -1], [10, -1]]
Аноним 19/08/20 Срд 19:48:19 1782098108
>>1782092
arr=sorted(k,key=lambda x:(x[0],-x[1]))
Аноним 19/08/20 Срд 19:49:22 1782099109
>>1782098
вместо к свой массив
Аноним 19/08/20 Срд 19:49:24 1782100110
>>1782092
z.sort(key=lambda x: (x[0], -x[1]))
Аноним 19/08/20 Срд 20:00:52 1782109111
Аноним 19/08/20 Срд 20:58:51 1782133112
Анон, подскажи решение, пожалуйста.
Уже что-то подобное спрашивалось, но нужна модификация.
Есть список, надо извлекать из списка по 5 элементов до самого конца. Проблема в том, что длина списка не кратна длине сабсета (в нашем случае - 5), поэтому недостающие элементы последнего сабсета надо заполнить случайно извлечёнными элементами всего списка.
Т.е. есть some_list = [1,2,3,4,5,6,7,8,9,10,11,12], если длина сабсета 5, то получится 2 полный сабсета, и один не полный. Вот неполный (2 элемента) надо превратить в полный (5 элементов), взяв недостающие 3 элемента случайным образом из всего some_list.
Вот был такой кусок, что к нему прикрутить для заполнения последнего (если он неполный) сабсета?

for i in range(0, len(some_list), 5):
subset = some_list[i:i+5]
Аноним 19/08/20 Срд 21:05:50 1782135113
>>1781408
Ресурс имеет цену тогда, когда он нужен и его не хватает.

Вот, процессорное время это тоже ресурс, но сейчас далеко не всегда он ограничен. В большинстве случаев речь идёт о том, что у тебя какой-то дешёвый процессор загружен на 5% вместо 1%.

Очень глупо зацикливаться на экономии того, чего у тебя в большом избытке.

С другой стороны, использование неудобных языков ведёт к тому, что ты реализуешь меньше функционала, дольше будет реализовывать, сложнее будет отлаживать и поддерживать.

Аноним 19/08/20 Срд 21:20:42 1782145114
>>1782133
ну добавь че нить типа
while len(subset) != 5: subset.append(random.choice(some_list))
правда он может одинаковые взять, но можешь провалидировать
Аноним 19/08/20 Срд 21:23:30 1782149115
>>1782133
Много опций, как сделать правильнее и сложнее, или проще.

1, про случайные элементы, смотри модуль random
import random
функцию random.choices(your_list, k)

Самый простой код
for i in range(0, len(some_list), 5):
____subset = some_list[i:i+5]
____if len(subset) < 5:
________subset += random.choices(some_list, k=5-len(subset))
Аноним 19/08/20 Срд 21:27:56 1782151116
>>1782145
>>1782149
Спасибо. Примерно так и предполагал.
Вопрос, насколько while вообще быстр? Стоит его использовать или лучше обходить стороной?
Аноним 19/08/20 Срд 21:31:42 1782155117
>>1782151
глупый вопрос честно говоря, но спишем на непонимание, насколько быстрый алгоритм который ты в него запихнешь,и тактовой частоте твоего проца
Аноним 19/08/20 Срд 21:33:36 1782156118
>>1782151
А какие альтернативы?

В некоторых случаях стоит смотреть на модули вроде itertools, но для этой задачи там прямого решения нет.

Скорость у while нормальная, но всегда может быть, что ты просто что-то делаешь не так и из-за этого просадка в производительности.

Аноним 19/08/20 Срд 21:34:29 1782157119
>>1782071
А какие варианты ещё? Ну чтоб коммьюнити и без мокрописек? Ну а так Oracle просрал наработки Sun и на жаву по сути им до пизды. Начал смотреть что там с Hadoop и Spring что аж кипятком писяют и охерел от зоопарка инструментов.
>>1782135
Ну опять же вернёмся к жава. Классный же язык? Да. Вот только JVM всем управляет. Код может быть очень чистым и прям по паттернам, а JVM решит что ей надо 80% RAM и никак иначе.
Я и питоном забивал 1 ядро на 100% фуллтайм, но это такая хуевая реализация multithreading в CPython.

Хуй знает. Сколько раз пытался в жаву, но каждый раз тошниловка начиналась с момента чтения доков. Servlets and servers мать их. Спасибо OTP что хоть что-то отдают, так бы хуй кто с жавы слез.
Аноним 19/08/20 Срд 21:35:41 1782158120
Аноним 19/08/20 Срд 21:44:00 1782162121
>>1782158
>Я про это
Это называется экономить на спичках.
Аноним 19/08/20 Срд 21:44:27 1782163122
>>1782157
>Ну опять же вернёмся к жава. Классный же язык? Да
О боже, нет. Не плюсы, но и там кошмара и ограничений хватает.

>Я и питоном забивал 1 ядро на 100% фуллтайм
Никто не говорит, что это невозможно. И в одном потоке возможно, легко. А уж когда у тебя сервис, который обслуживает много клиентов, то совсем легко.

При этом, правда в том, что это далеко не всегда актуально. И при этом есть методы разгона, pypy, nuitka, инструменты для разгона математики и др.

И да, конечно это не универсальный инструмент для всего. Но вот на джаве я бы что-то делать вместо питона совсем-совсем не хотел бы. И вовсе не из-за JVM.
Аноним 19/08/20 Срд 21:47:24 1782165123
>>1782151
Погоди.
1) ты можешь сразу проверить длину списка и определить будет ли количество сетов целым числом или нет
2) если нет, то добавь недостающие элементы. При том это можно сделать через comprehension.
3) вычленяй сеты.
Список тоже можно через comprehension создать или генератор.
While это просто вход в loop. А что внутри будет зависит от тебя. Я чаще всего использую while для бесконечного цикла: запрос данных - обработка или ожидание данных - обработка. Короче producer/consumer.
Так можно сказать что и if/else медленные и пиздуй Chain Responsibility пиши вместо хуяк-хуяк и готово.
Аноним 19/08/20 Срд 21:47:53 1782166124
Аноним 19/08/20 Срд 21:50:57 1782168125
>>1782158
Там в комментариях даётся ответ, что некорректно тестирование сделано в случае while, ошибка в коде, поэтому такой результат.

for range будет работать быстрее. И решения из itertools для каких-то задач будут работать быстрее, чем если аналогичное решение написать самому, и код короче.

Но в основном тут экономия минимальная, действительно "экономия на спичках".
Аноним 19/08/20 Срд 21:56:51 1782173126
download.jpg 8Кб, 211x239
211x239
>>1782158
Там какой-то норкоманский тест.
Проводим битву века: https://ideone.com/KBm9zW
И что мы тут имеем, разница между первым и вторым вариантом в проверке на 9999, это 0.3 секунды, отнимаем её от третьего и получаем - for 0.85, while 0.5.

Форовики соснули!
Аноним 19/08/20 Срд 22:02:41 1782175127
Изображения с кучей прозрачности ресайзятся пиздец долго в PIL. Если сконвертировать из RGBA в RGB перед этим - то все норм, но это как-то тупо.
Аноним 19/08/20 Срд 22:07:24 1782179128
Аноним 19/08/20 Срд 22:08:05 1782180129
>>1782173
Я встречал один раз чела, который переписывал код с учетом микрооптимизаций.
Стоило ему выяснить, что один способ быстрее другого - все, пизда, код начинает превращаться в мелену на глазах.
Вишенкой на торте его крошечного айсикью было то, что он мог спокойно при этом подключать тонны левых либ ради одного метода из каждой, работавших как говно. Вот это его вообще ни разу не смущало.
Аноним 19/08/20 Срд 22:44:44 1782190130
>>1782180
Да и наш анон-то, нихуя не шарит ещё, а уже за производительность переживает, молодец какой.
Аноним 19/08/20 Срд 22:49:49 1782194131
>>1782190
Учитывая как современные погромисты выдают софт что для него нужно квантовый комп то любой кто думает про оптимизации просто герой
Аноним 19/08/20 Срд 22:55:09 1782197132
>>1782194
Да, подумал, заменил пару вайлов и уже летает.
Смекалочка!
Аноним 19/08/20 Срд 22:57:44 1782199133
>>1782194
Если это кто думает про оптимизацию раньше, чем приобретает базовые знания для решения простой задачки на 10 строк, то это я бы назвал аутизмом скорее.
И вообще, преждевременные и низкоуровневые оптимизации, особенно если они в ущерб читабельности, идут нахуй.
Если чел собирается выкраивать микросекунды и работать в области, где это важно, то он зря выбрал питухон.
Аноним 19/08/20 Срд 23:00:23 1782200134
chromej0qqMcQi3F.png 115Кб, 1499x683
1499x683
Сука, какая же фрустрирующая хуйня, когда решил задачку (не сказать, что долго сидел, минут 10-15), вроде радуешься, потом открываешь решения других людей и как в говно макнули(мой код справа очевидно). Причем как минимум 2е и 3е решение я без проблем понимаю, но почему-то такие лаконичные и красивые вещи вообще в голову не лезут, только такое натужное говно
Аноним 19/08/20 Срд 23:01:58 1782201135
>>1782194
Например? ORM оверхед априори, но зато если ты три-в-одном макака влегкую миграцию сделаешь. Я ебался с процедурами, пушто как раз в одно рыло все и делал и реально пытался в микроменеджмент ресурсов пока не выгорел к хуям.
Надо было гонять данные между микрописькамисервисами из говна и палок. Пытался в Redis, а там без гарантии доставки из очереди и как брокер неочень. Въебал RabbitMQ и сидел довольный как слон. Забил нахуй на пиковые скачки CPU и average load, лол. Тут либо шашечки либо ехать. Питон именно про ехать. Если нужны ресурсы - давай деньги. Если нет денег ни на спецов ни на ресурсы лучше вообще накорню все зарубить нахуй. А то хотят BI и шоб все реалтайме и с кучей выгрузок, а из оборудования два ядра два гига зато от HP. А тут и заказчик хочет хочет въебать потоковое видео на этом говне. Вебсокеты ему подавай, лол. Лишь бы не брать Synology и не платить за лицензии.
Норм вариант же? А ты греби и так чтобы галера плыла вперёд, а не просто поворачивала.
Аноним 19/08/20 Срд 23:04:46 1782202136
>>1782200
Чё? Ты просто неопытный, это нормально.
Аноним 19/08/20 Срд 23:06:18 1782204137
>>1782200
Ну так реши чтобы работало, а потом подумай над йобизацией.
Аноним 19/08/20 Срд 23:10:26 1782206138
>>1782201
>А то хотят BI и шоб все реалтайме и с кучей выгрузок
Мне приходилось как-то строить отчеты из хуйни, которая ваще не рассчитана на аналитическую отчетность. У нее тупо база не приспособлена для этого, данные лежат не как надо, нет срезов, индексов не хватает и тд (вносить свои нельзя, иначе тебе ее снимут с сапорта). Но было нужно, потому что существующая BI система свои ETL запускала только по ночам, а какая-то залупа им нужна была вот прям щас, да еще в дашборде подавай.
Это был ад ебаный. Как ни объяснял я этим бакланам, что хуй оно будет быстро работать - те говорят типа бля ну как-нибудь сделай, нам бы что-то. Делаешь хоть как-то, сразу возмущаются почему медленно так.
Аноним 19/08/20 Срд 23:10:29 1782207139
>>1782204
Хз, а это имеет смысл? Ну т.е. я понимаю, что в целом-то полезно, но вопрос насколько. Вот у меня этот курс, я его почти добил, за ним следует след. курс, где будут учить всяким более сложным штукам, а не основам синтаксиса, и вот собственно вопрос, как выгоднее распорядиться временем (точно не на дваче сидеть, кек), пытаться оптимизировать код уже решенной задачки, или лучше идти дальше по курсу и изучать новые вещи, т.к. сложность будет повышаться, и оно наверное будет форсить меня писать лучше энивей.
Аноним 19/08/20 Срд 23:11:13 1782208140
>>1782200
Все придет со временем как тут тебе и говорят.
И callbacks полюбишь и wrapper освоишь.
От рефакторинга не избавиться, ты же не знаешь сколько раз они свои решения тестировали.
Аноним 19/08/20 Срд 23:17:09 1782211141
>>1782207
Иногда полезно, иногда не очень.
Но в таких писькомерных задачках все к этому стремятся.
В принципе, в процессе изучения оно само придет мало-помалу.
Аноним 19/08/20 Срд 23:18:26 1782212142
>>1782206
Ну я придумал костыль в виде сбора данных ночью, при том из-за уебищных связей и единой базы для всех бизнес процессов (европейские разработчики делали, да-да) все нахуй лочилось, и переноса в свою БД. Алсо, ещё выяснилось что чем больше ID по которым идёт запрос тем медленнее внутри БД собираются данные. На стороне БД уже был боттлнек, лол. В итоге коляска стала множественными асинхронными запросами по ID в 2 часа ночи, когда количество новые записи не критичны.
Ещё заебала тема "а как логи читать?" "ааа мне нужно через REST выгружать 10 строк за сутки". Ссссука. На тяге горящего пукана я бы мог вывести SpaceX на орбиту Марса. Спасибо Хуяндексу за их Clickhouse. На ELK ресурсов же нет.
Аноним 19/08/20 Срд 23:26:43 1782213143
Объясните вкатышу в чем прикол функции мап. Примеры из простых обучающих видосиков просто можно переписать через for, т.е. у нас есть какая-то функция, какая-то итерируемая хуйня и мы пишем так:
def f(x):
...
a = map(f, s)
можно же переписать как:
def f(x):
...
a = [f(i) for i in s]
Аноним 19/08/20 Срд 23:32:59 1782216144
Аноним 19/08/20 Срд 23:33:23 1782218145
>>1782213
map стал околодепрекейтед после ввода компрехеншенов и генераторных выражений.
Аноним 19/08/20 Срд 23:35:02 1782219146
>>1782213
Мап это наследие ебучего функционального стиля, в реальности используется только шизиками и ньюфагами, ибо делает код нечитаемым. Достоинства в том что в отличии от твоего решения может применяться не только к листам, а ещё работает без копирования, с анонимными функциями, и дешевле чем любой другой способ
Аноним 20/08/20 Чтв 00:15:12 1782235147
Аноним 20/08/20 Чтв 00:50:07 1782242148
>>1782213
map действительно немного depricated.

Вообще, эти инструменты заметно отличались во втором питоне по сравнению с третьим, там они проще в использовании и потому удобнее (это на память, сто лет не смотрел во второй питон). Во втором питоне пытались делать мультипарадигменный язык с сильной функциональной частью в том числе, позже многие инструменты были признаны не нужными и мешающими восприятию кода.

В общем забей, в питоне реально не очень нужная вещь. Поскольку в питоне свои фишки, вроде генераторов списков, чего в адекватном виде в большинстве языков нет. Зато анонимные функции в питоне неудобные, из-за чего функциональный стиль плохо переносим на питон.
Аноним 20/08/20 Чтв 03:23:39 1782265149
>>1780994
>что создавать реальный проект на питоне не разумно, ибо слишком много жрёт
Все тяжелые задачи делаются при помощи библиотек, написанных С, которые на питоне имеют лишь интерфейс. В остальных случаях на производительность насрать, поскольку разница в производительности определенного куска кода в 10-100 раз не влияет на общую производительность программы.
Аноним 20/08/20 Чтв 04:47:23 1782292150
>>1780994
>Почему никто особо не говорит о том, что создавать реальный проект на питоне не разумно, ибо слишком много жрёт?
У тебя там все реальные проекты это какие-то безумные рендеры, симуляции или бекенды обрабатывающие миллионы запросов в минуту? Люди пилят ПО и даже ентерпрайс ПО и их как-то не ебет отрисовывается их кнопка за 0.00001с или за 0.0001с.
Аноним 20/08/20 Чтв 05:26:25 1782296151
Какую книгу посоветуете, чтобы попробовать питон? питон для детей?
Аноним 20/08/20 Чтв 06:34:53 1782322152
>>1782296
Что-то круто взял, питон для одноклеточных сразу бери, или хотя бы питон для домашних животных.
Аноним 20/08/20 Чтв 07:23:36 1782341153
>>1780994
>создавать реальный проект на питоне не разумно

Лично меня в реальных проектах парит GIL
ну и довольно слабенькая реализация asyncio

не знал бы другие языки не парило бы. Не учите другие языки )
Аноним 20/08/20 Чтв 08:35:39 1782372154
>>1782322
"Питон для опущенных"

"Питон и говно - что лучше ?"

"Я и мой питон: справочник начинающего импотента"

Аноним 20/08/20 Чтв 08:44:28 1782378155
А в питухоне можно из строки 'F' сделать переменную ? только без всяких дрочей с Юникодаи и прочего говна ?
Аноним 20/08/20 Чтв 08:45:48 1782379156
Переменную F - Отклеилось. Из 'F' сделать переменную F
Аноним 20/08/20 Чтв 09:06:46 1782396157
Аноним 20/08/20 Чтв 09:44:20 1782413158
Аноним 20/08/20 Чтв 09:49:16 1782414159
>>1782413
всегда рад помочь. обращайтесь
Аноним 20/08/20 Чтв 11:02:00 1782460160
>>1782341
Там не хватает нормальных signal handlers, хот и запилили asyncio.run() и вроде как (уже не в 3 ветке) будет уход от GIL для coro. Проблема в менеджменте инстансов интерпретатора как объясняли.
Аноним 20/08/20 Чтв 11:06:05 1782463161
>>1782414
Обращусь. Будте покойны
Аноним 20/08/20 Чтв 11:13:08 1782475162
Допустим, вот выдрочил я синтаксис, либы и фреймворки и нашел работу. А где почитать по организации кода для больших и средних проектов, как делать микросервисы и монолиты на пистоне и все такое?
Аноним 20/08/20 Чтв 11:17:13 1782480163
>>1782475
А ты собираешься сам начинать большие и средние проекты сразу?
Аноним 20/08/20 Чтв 11:23:18 1782487164
>>1782480
Тя волнует как хочу так и начну
Аноним 20/08/20 Чтв 11:41:40 1782512165
>>1782480
Ну, если я планирую эволюционировать в мидла и синьора, то про архетиктура знать нужно будет обязательно
Аноним 20/08/20 Чтв 11:43:19 1782515166
>>1782379
если вам аналог пхпшного $$var то
globals()['F'] = 'foo'
locals()['F'] = 'foo'

но это изврат
Аноним 20/08/20 Чтв 11:58:55 1782544167
>>1782475
Так же как и на других языках. Есть книги по паттернам микросервисов. Найдешь на рутрекере "микросервисы". Про монолиты забудь сразу. Неактуально уже лет 10.
Аноним 20/08/20 Чтв 12:28:11 1782599168
>>1782544
Ну вот на работе мы переписывали микросервисы из простых RPC в cqrs и event sourcing, где про такие вещи почитать можно, микросервисы это же очень обобщенно звучит
Аноним 20/08/20 Чтв 12:34:46 1782612169
>>1780956 (OP)
Есть задача отсортировать объекты по конкретному полю.
Для этого нужно у каждого объекта сменить тип этого поля с int на str (там вперемешку из Jira приходит и по-умолчанию это вообще list)

Как это проще и правильнее всего сделать?

Ну т.е. я делаю цикл for, в котором перебираю каждый объект из списка объекта и указываю
field = str(field)

А дальше?
Аноним 20/08/20 Чтв 12:41:20 1782620170
>>1782612
sorted(my_list, key=lambda x: str(x.my_field))
Аноним 20/08/20 Чтв 13:04:21 1782657171
>>1782544
>Про монолиты забудь сразу. Неактуально уже лет 10.
свежо предание )
Аноним 20/08/20 Чтв 13:26:11 1782681172
>>1780956 (OP)
Бля, только что был баг из-за вот такого дезигна функции:
def my_shitty_func(value, flag=False, args, kwargs):

args и kwargs канешн разворачиваются через одну и 2 звездочки соответственно, указываю так чтоб макаба не запорола. Когда в другом модуле ее вызывали через my_shitty_func(some_value, args, kwargs) - то есть не указывая параметр flag, то самый левый аргумент из args при разворачивании звездочкой присваивался к flag
Сука, пиздец
Аноним 20/08/20 Чтв 13:27:22 1782684173
>>1782657
Не мешай своим монолитом настоящим программистам писать высоконагруженные приложения, в которых при каждом чихе все модули авторизуются между собой, данные бесконечно трансформируются и гоняются туда-сюда по ресту/соапу.
Аноним 20/08/20 Чтв 13:33:30 1782689174
>>1782684
а они могут мне рассказать чем старый добрый SOA отличается от их микросервисов, что они так радуются?
Аноним 20/08/20 Чтв 13:36:14 1782691175
>>1782620
да это хуевый дезигн
я как-то так стараюсь придерживаться, + чтобы дефолты имели только named_only параметры

def f(pos_only, ✵args, / , pos_or_named, ✵ , named_only, ✵✵kwargs)
Аноним 20/08/20 Чтв 13:38:56 1782695176
>>1782689
ничем
микросервисная арх-ра это SOA, но с оглядкой на этот ваш девопс
Аноним 20/08/20 Чтв 13:47:02 1782708177
>>1782695
Схуяли?
Приведи пример архитектуры тогда для маркетплейса какого-ниудь.

Учти, что необходимы:
1. Рекомендации на основании запросов
2. Рекомендации на основании покупок
3. Рекомендации на основании топ листа продуктов
4. Рекомендации на основании отзывов покупателей
5. Рекомендации на основании категории в которой клиент ищет продукт.

При твоей архитектуре ты будешь делать просто сервис рекомендаций или разобьешь все на подзадачи?

К тому же надо еще логику лояльности и бонусов реализовывать. Ты хочешь все яйца в одну корзину забросить. Вангую, что еще и БД одна на все, лол.
Аноним 20/08/20 Чтв 13:49:48 1782712178
>>1782684
А ок. В питонотреде свидетели .NET/Java EE затесались.

Кроме REST/SOAP больше ничего в голову не приходит? Ну да, ну да... Остальное же типо незащищенное нихуя.
Аноним 20/08/20 Чтв 13:55:28 1782719179
>>1782708
> Схуяли?
ну я так в книжке прочитал и в интернете считают также
https://www.talend.com/resources/microservices-vs-soa/

> Приведи пример архитектуры тогда для маркетплейса какого-нибудь
делать мне вот нехуй тебе что-то доказывать я вообще другой аноний
Аноним 20/08/20 Чтв 13:55:48 1782720180
>>1782712
а ты хочешь предложить grpc?
Аноним 20/08/20 Чтв 14:00:57 1782725181
>>1782719
>Many of the chief characteristics of SOA and microservices are similar.
А Python похож на Ruby, НО есть отличия. Жопочтец.
>>1782720
Еще есть догадки? Ну ты сможешь, я верю. Как еще реализовать publisher/subscriber, чтобы трендово было?
Аноним 20/08/20 Чтв 14:02:25 1782730182
>>1782725
Делаю интеграционную шину на файловом обмене, твои действия?
Аноним 20/08/20 Чтв 14:05:50 1782734183
>>1782725
> А Python похож на Ruby, НО есть отличия
а что не так?

> Кроме REST/SOAP больше ничего в голову не приходит? Ну да, ну да... Остальное же типо незащищенное нихуя.
> grpc
> pubsub
погугли хоть что все эти слова значат
Аноним 20/08/20 Чтв 14:06:21 1782735184
>>1782730
Менеджмент? Изоляция?
Аноним 20/08/20 Чтв 14:08:25 1782741185
>>1782735
Подголовник? Приспособленность?
Аноним 20/08/20 Чтв 14:08:30 1782742186
>>1782620
А как распарсить объект?
Оказалось, что поле, по которому я хотел сортировать, может быть пустым, так что метод sorted(my_list, key=lambda x: str(x.my_field)) не работает.

Мне кажется, что будет проще создать свой список массивов и туда перекинуть все данные, после чего и отсортировать.
Аноним 20/08/20 Чтв 14:09:02 1782745187
>>1782734
>а что не так?
ПОГУГЛИ!

>погугли хоть что все эти слова значат
акронимы как бы, ну да похуй.
Аноним 20/08/20 Чтв 14:13:07 1782755188
>>1782745
> ПОГУГЛИ
ну да похожие языки, более того руби вышел позже и испытал влияние питона
собсна как и soa->микро

> акронимы как бы, ну да похуй
так че там по pubsub и причем тут rest
Аноним 20/08/20 Чтв 14:13:30 1782757189
>>1782725
>А Python похож на Ruby, НО есть отличия. Жопочтец
Вода похожа на лед. Но есть отличия)
Аноним 20/08/20 Чтв 14:15:24 1782763190
>>1782757
Вода уже лет 10 как не актуальна
Аноним 20/08/20 Чтв 14:17:45 1782765191
>>1782763
Грызешь лед вместо воды?
Аноним 20/08/20 Чтв 14:21:26 1782770192
>>1782765
> Грызешь лед вместо воды?
Еще есть догадки? Ну ты сможешь, я верю. Как еще реализовать попить/поссать, чтобы трендово было?
Аноним 20/08/20 Чтв 14:32:16 1782782193
>>1782770
Ссышь на кухне
Канализация в туалете
Разделение по микросервисному
Аноним 20/08/20 Чтв 14:34:29 1782784194
>>1782782
Голову моешь в раковине на кухне, потом ее в ладошках носишь сливать в унитаз.
Аноним 20/08/20 Чтв 14:35:03 1782787195
Аноним 20/08/20 Чтв 14:35:35 1782788196
https://ideone.com/pFCENy

Почему мне пишет

new_issue[new_number]=[new_number,new_issue,new_release,new_status]
TypeError: 'str' object does not support item assignment

?

Если что, хочу сгенерировать новый словарь.
Аноним 20/08/20 Чтв 14:40:04 1782794197
>>1782788
У тебя в new_issue лежит summary и это, по всей видимости, строка. Строка не словарь.
Аноним 20/08/20 Чтв 14:42:10 1782796198
>>1782794
В плане summary?
Так-то у меня там все значения строки.
Просто я не понял, как динамически задавать словарь key
Аноним 20/08/20 Чтв 14:49:41 1782802199
>>1782742
А как тебе нужно сортировать объекты с пустыми полями? В конец или в начало? Если в начало, то
lambda x: str(x.my_field) if x.my_field else '')
Аноним 20/08/20 Чтв 14:51:31 1782805200
>>1782802
Честно, я заебался разбираться в структуре объектов, высранных Jira и решил тупо распарсить все в словари, а там уже и отсортировать
Аноним 20/08/20 Чтв 14:52:08 1782806201
>>1782796
>В плане summary?
4 строка:
new_issue = cur_issue.fields.summary
А в последней строке new_issue пытаешься как словарь использовать. Просто обзови по-другому, ты в переменных запутался.
Аноним 20/08/20 Чтв 14:59:32 1782817202
Дарова двач, есть вот такой код на питоне
image = np.concatenate((left_image, right_image)).tolist()
r = []
g = [] // двумерные массивы
b = []

for x, row in enumerate(image):
r_row = []
g_row = [] // одномерный массив
b_row = []
for y, pix in enumerate(row):
r_row.append(pix[0])
g_row.append(pix[1]) // элементы одномерного массива добавляются в одномерный массив *_row
b_row.append(pix[2])
r.append(r_row)
g.append(g_row) // одномерные массивы вставляются в двумерный массив
b.append(b_row)
i = np.array([[r, g, b]]) // двумерные массивы собираются в трехмерный массив

Нужно переписать на шарпе. Подскажите, сколько измерений здесь у итогового массива i? (комментарии я писал, когда пытался расшифровать, мб неправильные)
Аноним 20/08/20 Чтв 15:00:50 1782820203
image.png 67Кб, 1093x592
1093x592
>>1782817
Сорри за отступы, вот картинкой
Аноним 20/08/20 Чтв 15:37:28 1782868204
Аноним 20/08/20 Чтв 16:51:24 1783058205
image.png 42Кб, 948x443
948x443
image.png 51Кб, 565x500
565x500
image.png 56Кб, 730x523
730x523
смотрю в документацию, вижу хуй. Сортед вообще какого-то хуя не хочет применять к списку (Another difference is that the list.sort() method is only defined for lists. In contrast, the sorted() function accepts any iterable. во что блядь в документации) А сорт мне на выход выдает говнину нон, вместо самого отсортированного списка. Шо делаю не так?
Аноним 20/08/20 Чтв 17:03:53 1783075206
>>1783058
.sort изменяет сам список и возвращает None, вот и получается у тебя None[0], что естественно выдает ошибку
Аноним 20/08/20 Чтв 17:06:13 1783078207
>>1783075
Вот так, короч
words.sort()
print(words[0])
Аноним 20/08/20 Чтв 17:09:18 1783081208
>>1783058
>смотрю в документацию, вижу хуй
>документация: and returns None
>ты: kokoko.sort()[0]
чел?
Аноним 20/08/20 Чтв 17:11:17 1783083209
>>1783058
>>1783081
>также документация: just call sorted() function
>sorted([1,2,3])
>ты: kokoko.sorted()
Это функция, а не метод листа, тебе интерпретатор об этом написал же, ну.
Аноним 20/08/20 Чтв 17:16:58 1783090210
>>1783058
не умеешь читать и писать, очевидно же:
1) sorted это отдельная функция, а не метод массива
2) метод sort возвращает None, а не сам массив, поэтому индекс от него брать бесполезно
Аноним 20/08/20 Чтв 19:50:11 1783227211
>>1783083
>>1783058
Опять типичный ошибки нубов, из-за вседозволенности языка. Вот такие макаки и приходят сейчас в ОйТи и учатся они не головой, а методом тыка. Ох, бля.
Аноним 20/08/20 Чтв 20:35:24 1783281212
>>1783227
Так у него полный traceback с описанием проблемы. Дебажить инфоцыгане не учат просто. Я спокоен за кококонкуренцию на галерах.
Аноним 20/08/20 Чтв 21:15:50 1783317213
>>1783281
ага. а потом тебе в ученики такого дадут
Аноним 20/08/20 Чтв 21:31:21 1783337214
>>1781333
Когда-то пробовал pyqt, очень годная вещь по сравнению с tkinterom, только документацию находил онли для c++
Аноним 20/08/20 Чтв 21:37:32 1783341215
>>1781834
Я давно простые числа не пробовал находить, их можно быстро без решета искать? Не делил же ты каждое число на все предыдущие
Аноним 20/08/20 Чтв 21:46:31 1783345216
Двач, я тут поработал немного с django и возник вопрос, зачем людям орм, если есть достаточно простой sql синтаксис сам по себе, зачем это кривое встраивание, если все в итоге переводится как я понимаю в обычный sql запрос, но при этом ты ограничен синтаксисом орм, без возможности как-то нормально оптимизировать запросы и делать их более сложными
Аноним 20/08/20 Чтв 21:51:35 1783351217
>>1783345
1) чтобы макака могла не знать sql вообще
2) чтобы можно было за 5 минут переехать на другую субд, которую поддерживает orm
Аноним 20/08/20 Чтв 21:54:22 1783356218
Я вот реализовал тут свой небольшой сайт, без выкатывания на продакшн, настроил чуток nginx, немного покопался с gunicorn, сделал бек на джанге и сверстал с помощью бутстрапа(сайт с вопросами и ответами, типа ответов мейл ру, с фильтрами, пагинацией, задаванием вопросов и ответов, регистрацией и прочими мелкими скриптами), в планах еще добавить ajax для лайков вопросам и комментам и возникают вопросы:
1. Как работодатель будет смотреть на проект, не будет же копаться в коде
2. Это достаточный уровень для джуниор?
3. Сколько подобного нужно сделать, чтобы смело идти на собеседования(в планах еще как минимум телеграм бота сделать на том же стаке nginx, gunicorn, django, и минимум еще один сайт, скажите если не прав)
Аноним 20/08/20 Чтв 21:56:51 1783358219
>>1783345
> если есть достаточно простой sql синтаксис сам по себе
А теперь ебни какой-то невъебенный запрос. А так можно сделать все в одну короткую строку
Аноним 20/08/20 Чтв 22:04:59 1783367220
>>1783345
Почитай про sql injection.
Если хочешь оптимизацию и скорость на стороне сервера:
1. MySQL stored proc как вариант, но заебешься поддерживать. Зато никаких проблем с безопасностью. Есть пользователь который может только запускать процедуры и все.
2. Оптимизация и дебаггинг на стороне сервера и их проводит DBA, а ты только свой код пишешь.
Из минусов, в Postgres с этим будут трудности, там другим путем пошли. При миграции и расширении функционала надо все разворачивать по новой. Опять же, задача DBA.
ORM может быть медленнее, но выигрыш будет во всем, что описал анон выше.
Это нормальная практика с учётом моделей ORM - Pydantic.
По поводу оптимизации скорости работы питона можно холиварить очень долго. Для некоторых пакетов есть плюшки [speedups], например использование simplejson или rapidjson вместо штатной библиотеки.
Недавно смотрел про какие-то оптимизации при компиляции пакета Python, где-то прирост 13-20%, насчёт стабильности никто не писал. Один хрен к 4 версии что-то новое придумают.
Аноним 20/08/20 Чтв 22:07:53 1783369221
>>1783356
Выложи демо на Heroku, код могут смотреть. Это из разряда "покажи как решал эту задачу".
Аноним 20/08/20 Чтв 22:12:50 1783372222
>>1783356
Забыл совсем. Стэк Django это ещё и Celery в связке с Redis/RabbitMQ (я сразу на FastAPI начал, надо мной никто не стоял с плёткой), в учебниках должны упоминать об этом как и в документации.
Аноним 20/08/20 Чтв 22:17:25 1783373223
Кто-нибудь выполнял такую задачу:
Есть лог файл с устройств в кастомном формате без определения уровня лога. Есть ключевые слова, которые указывают на успешную операцию или сбой в алгоритме. Необходимо будет выискивать такие проблемные места и соотносить с логом более низкого уровня (лог команд по серийному порту), которые дадут более цельную картину, что привело к нарушению алгоритма.
ML в чистом виде?
Аноним 20/08/20 Чтв 22:24:06 1783377224
image.png 16Кб, 453x284
453x284
>>1780956 (OP)
бле пишу крч парсер ебаный
нахожу элементы по xpath
и тут оказывается такая хуйня что текст который я хочу спарсить это блять не элемент а сука текстнеожиданно(ожидаемо)
скажите плес как это говно спарсить я уже весь этот ебучий селениум передрочил я просто не ебу гугол не знает
элемент пикрелейтед
Аноним 20/08/20 Чтв 22:32:20 1783383225
>>1783372
Это обязательно джуну? Просто я пока даже не совсем понимаю зачем redis нужен обычным сайтам, когда sql подойдет, а про celery почитаю, но тогда можно к стэку и какой-нибудь докер требовать, но это уж точно мидл уровень, как и высоконагруженные системы всякте
Аноним 20/08/20 Чтв 22:36:56 1783386226
>>1783367
Если я правильно понял, то от инъекций достаточно данные экранировать просто, а вопрос был не о производительности, а скорее о гибкости использования, да и переходить на другие субд не слишком большой плюс, слабо представляю как от обычного postgre/mysql потребуется перейти к чему-то более навороченому. Остается только вариант о том, что проще не учить sql, а писать компактный орм код
Аноним 20/08/20 Чтв 22:41:08 1783389227
>>1783358
На практике часто приходится писать невъебенные запросы? На деле вместо select пишется objects, filter, вместо where и убираются промежуточные слова, а невъебенный запрос на орм как раз наверное сложнее реализовать. Пока писал понял плюс орм(как минимум у джанги, с sqlalchemy не работал), джанга хранит query сеты, не делая запрос к бд, пока не потребуется что-то ответить, наверное это действительно полезно
Аноним 20/08/20 Чтв 22:58:23 1783405228
>>1783386
>переходить на другие субд не слишком большой плюс, слабо представляю как от обычного postgre/mysql потребуется перейти к чему-то более навороченому
Узко мыслишь.
Представь, что ты пишешь апликуху. Ты же хочешь написать список из кучи СУБД поддерживаемых, чтобы не сужать свой потенциальный круг клиентов, и можно было поставить на любое говно? Хочешь ведь.
SQL-запросы под каждую СУБД писать и тестировать хочешь? Я бы не хотел. Стандарт стандартом, а у каждой СУБД свои специфические функции и операторы есть, заебешься под каждую вести все запросы, все актуализировать и тестировать.
А с ORM тебе не придется вообще ебаться с этим.
Облегчение миграции на другую СУБД тут не основной плюс, но полезный. Спроси у тех, кто переносил с подыхающего sybase на какой-нибудь mssql свои старые поделия.
Аноним 20/08/20 Чтв 23:09:29 1783411229
>>1783405
>А с ORM тебе не придется вообще ебаться с этим.
зато придется ебаться с орм )))
Аноним 20/08/20 Чтв 23:32:09 1783419230
есть изменяющийся словарь, чем можно отрендерить блочную диаграмму/гистограмму? посмарел matplotlib с беком tkinter чот сложна там, анимацию пилить еще
Аноним 20/08/20 Чтв 23:38:13 1783420231
>>1783383
Redis in memory или как брокер вместо RabbitMQ для Celery. Если почитать практики на Хабре можно запутаться. Мейл.ру вовсю хайпит свой Tarantool, типо превзошли Redis и добавили отказоустойчивости и надёжности. Пока даже не знаю как его щупать. Базы у меня на террабайт нет.
>>1783389
Если приходится писать невъебенный запрос уж лучше тогда вьюху запилить или засунуть кочергу в анус DBA.
LRU cache? Вот тебе и кэширование нативное. >>1783411
За это деньги платят, что поделать.
Иногда просто ставят задачу и сам ищешь путь как ее выполнить. А потом уже доказываешь, что не говнокод, а фича. Как задачу сформулировали, какая инфраструктура такая и реализация. Хотели Agile - нате.


Аноним 20/08/20 Чтв 23:41:08 1783421232
Аноним 20/08/20 Чтв 23:48:42 1783424233
Поставил я минт и какая-то залупа пошла. Почему в консоле, когда я пишу pip install выдаётся ошибка шо такого нет. Когда пишу python3 file.py запускается консольный питон и выдает ошибку. Почему виртуаленв не создаётся и не активируется виртуалка?
Аноним 21/08/20 Птн 00:21:51 1783433234
>>1783341
Ну зависит конечно от поставленной задачи, например в прошлой задаче нашелся вариант быстрее решета, а с тем алгоритмом которым я изначально пытался, он быстрее решета искал(в изначальном варианте) итый элемент простых чисел , ну и они оба жрут меньше памяти в отличии от решета, но возможно если задача стоит найти все от 2 до n числа, решето будет быстрее всех по скорости, но и кушать больше памяти офк, если задача стоит просто узнать является число простым, то выше я кидал ссылку на пастбин, там функция была на проверку >>1781902
Аноним 21/08/20 Птн 01:20:24 1783459235
>>1783405
Я не особо шарю, есть у нас проект на джанго, будь это сайт, веб-сервис,, бот, и нам нужно его внезапно на 100 серверов установить, так зачем нам нужно использовать какие-то старые бд? Но общую мысль я понял, наверное действительно удобно, просто в голове не могу представить прикладную задачу
Аноним 21/08/20 Птн 01:23:57 1783462236
>>1783433
А, чекнул, все старый перебор до квадрата с прибавлением 2-х, я уж думал я какой-то способ не знаю, спасибо
Аноним 21/08/20 Птн 01:30:52 1783465237
Что такое асинхронность в Питоне? Может кто-то на словах объяснить плиз. Или вообще Асинхронность в коде.
Аноним 21/08/20 Птн 01:42:47 1783466238
>>1783465
>Или вообще Асинхронность в коде.
У тебя есть склад и колонна грузовиков, едущих забирать груз со склада. Синхронно - 1 грузовик загружается, все остальные ждут; асинхронно - 1 грузовик начинают загружать, в это время то же самое происходит с другими грузовиками, но как только первый загружен - кладовщик пиздует выдавать документы ему.
Аноним 21/08/20 Птн 02:04:02 1783473239
>>1783466
То есть это по сути thread/que?
Аноним 21/08/20 Птн 02:50:31 1783479240
Кто-то делал автотесты для мобилы? Например, используя питоху позвонить 100 раз на телефон и тп?
Как это делается? Нужно пилить свой фреймворк и юзать эпай звонки или уже есть такое?
Аноним 21/08/20 Птн 04:11:31 1783491241
>>1783473
Нет, асинхронность это асинхронность, а мультитрединг это мультитрединг. Т.е. когда при появлении нового грузовика рядом появляется ещё один разгрузочный центр и грузовик передается разгружаться там.
Аноним 21/08/20 Птн 08:26:30 1783544242
Аноним 21/08/20 Птн 08:27:50 1783546243
>>1783389
>а практике часто приходится писать невъебенные запросы?
Отчетность.
Многие не хотят городить DataWareHouse и отчеты ебошатся прямо в проде.
Аноним 21/08/20 Птн 08:30:02 1783547244
>>1783405
> Ты же хочешь написать список из кучи СУБД поддерживаемых, чтобы не сужать свой потенциальный круг клиентов, и можно было поставить на любое говно? Хочешь ведь.
Нет.
Потенциальный круг клиентов купит то, что наилучшим образом подходит к софту и что ему скажут. И запустит в докере.
Аноним 21/08/20 Птн 08:32:40 1783549245
>>1783377
разумеется, у этого элемента есть зацепка выше по дереву и есть подэлементы.
Раньше так делали. А почему именно xpath ? В селениуме по-другому неудобно?
Аноним 21/08/20 Птн 08:33:56 1783550246
Аноним 21/08/20 Птн 10:10:57 1783595247
>>1783550
Задача уже не для прода. Проект закрыт, просто для разминки.
По поводу ELK в курсе конечно же. Кстати оверхед ещё тот, но не всем надо ресурсы считать, когда сроки горят и жопы.
Аноним 21/08/20 Птн 10:31:52 1783635248
>>1783465
Асихронность - это когда ты решил отужинать пиццей с чаем под кинцо. Ты заказываешь пиццу, и пока доставщик не приперся, ты
ставишь чайник, и пока вода не вскипела, ты идешь выбираешь кинцо. И вдруг тебе приспичило посрать, ты сидишь на толчке, в дверь истерично стучит доставщик, на кухне уже пожар, но ты ничего не можешь поделать, потому что у тебя блокирующая операция.
https://ideone.com/vfZrro
Аноним 21/08/20 Птн 11:15:11 1783737249
Гайзу подскажите по такому вопросу.

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

Как я понимаю это делается так.

1. В таблице юзера (у меня postgresql) добавляю колонку isVerified
2. Создаю вторую таблицу с токенами подтверждения привязанную к таблице с юзерами.
3. При регистрации, выставляю поле isVerified - фолс и генерирую токен, который ссылкой высылаю на почту юзера.
4. На клиенте делаю роут типа /confirm/:id на который ведет ссылки из письма
5. На клиенте на основе этого айди шлю запрос на конфирм, удаляю запись с токеном из БД и ставлю sVerified юзеру - тру.

Я правильно рассуждаю или это иначе делается?
Так же вопрос, какой почтовый сервис лучше использовать?
Аноним 21/08/20 Птн 11:22:39 1783749250
>>1783635
Лучше чем все курсы от Boston University, а главное наглядно.
Аноним 21/08/20 Птн 11:27:40 1783755251
>>1783737
Да, примерно так.
Насчет почты, самому ебаться с почтовым сервером это гиблое дело, там надо соблюсти дохуя всего и не попасть в засранные ранее адреса, а то будут в спам кидать или вообще режектить.
Посмотри сервисы вроде mailgun.
Аноним 21/08/20 Птн 11:34:33 1783763252
>>1783755
Благодарю. Запостил сначала в JS так как я на node.js делаю бекенд, но так как вопрос от языка мало зависит, решил запостнуть и сюда. Рад что так быстро получил ответ. Там 2 дня ждал и безрезультатно(
Аноним 21/08/20 Птн 11:34:33 1783764253
pycharmscreen.png 14Кб, 458x204
458x204
Почему в pycharm файлы проекта в панели выделены таким "болотистым" цветом? С чем это связано?
Аноним 21/08/20 Птн 12:00:12 1783797254
>>1783367
>Один хрен к 4 версии что-то новое придумают.
Но пока разговоров про 4 версию нет, релизы будут в стиле 3.10, 3.11, 3.12 и т.п.

Формировать новую ветку будут, если захотят внести принципиальные изменения. Но вроде пока об этом не говорят.

В ближайшее время каких-то значимых изменений в языке вроде бы не намечается.

Аноним 21/08/20 Птн 12:08:23 1783810255
>>1783367
>ORM может быть медленнее, но выигрыш будет во всем, что описал анон выше.
ORM это некая серебряная пуля, которая якобы должна решать проблемы, но реально не очень решает. В результате разработчик должен думать о том, как его код с ORM будет выглядеть в виде запросов к БД. В Джанго, например, легко было во вроде бы элегантном коде по факту получить сотни запросов к БД ради генерирования одной страницы с какой-нибудь таблицей. Что мягко говоря раздражает. Надо специально модифицировать и портить код так, чтобы он разложился в нормальные SQL запросы.


Аноним 21/08/20 Птн 12:17:40 1783818256
>>1783810
Ну а разве не всегда так?
Инструмент А решает проблемы из списка, но добавляет необходимость дополнительных тестов.
Я например столкнулся с проблемами коннекторов, то что есть в SQL Alchemy в новомодных aio-libs банально отсуствует или надо пилить свою реализацию.
Что делать если БД недоступна и connection pool просто протух? Это же банальная вещь, и такое бывает. Предлагают сразу коллбэки пилить для реконнекта/запросов из реплицированной БД.
Мне кажется банально таких вещей не хватает. Tortoise ORM еще минимум 2 года будет пилить версию 1.0.х, хотя уже видно что будет куча PR и чатик в issues.
Ждун джангу. Посмотрим.
Аноним 21/08/20 Птн 12:44:30 1783839257
>>1783351
Итого макаке нужно знать как делать в запросы в орм. И прощайте все плюшки конкретной базы данных. Более того, иногда макаке придется опуститься до sql

А все потому что "а вдруг переедем на другую бд"
Аноним 21/08/20 Птн 12:46:35 1783840258
зинануебтвоюмать.jpg 231Кб, 1063x1583
1063x1583
>>1783367
>2. Оптимизация и дебаггинг на стороне сервера и их проводит DBA, а ты только свой код пишешь.
вы там вообще охуели? у DBA зачастую нет никакой возможности что-то оптимизировать.
Если только не очень-очень говнокод пишете.
Все оптимизации DBA заканчиваются обычно пересмотром бизнес-логики и выкидыванием целых фич из продакшна.
Аноним 21/08/20 Птн 12:49:02 1783842259
>>1782322
>>1782372
Вроде нормально спросил, но в ответ получил неуместную агрессию. Наверно не стоит многое ожидать от ру-коммьюнити.
Аноним 21/08/20 Птн 12:55:44 1783848260
>>1783839
И даже хуже.

В красивой теории ORM должен помочь отделить код БД от кода приложения. И в какой-то мере так и есть... Но вместо этого код фактически переезжает в представления. То есть для разработчика вьюшек всё прозрачно, но при этом он должен думать, сколько запросов на вьюшку потребуется, но под капотом фактически код выполняется во время обработки вьюшки.

И из-за этого физически не разделишь генерирование страницы и код, отвечающий за получение данных. А как раз именно это и хочется в первую очередь разделить. Генерировать страницу может другой сервис, или даже клиент сам. Но для этого нужен готовый объект с данными, который ты получаешь через какое-то API. Но готовые объект с данным в корне противоречит самой идее ORM.

В итоге от ORM почти ничего не остаётся.
Аноним 21/08/20 Птн 13:28:13 1783871261
>>1783549
так в том и смысл что нету, это просто текст в теге div в который там записано вообще пол сайта, но этот даже элементом не является и из указателей на него только xpath ни селектора ни классов ни имен ни ссылок ни атрибутов

вот ссылка если что, не вытаскиваются перевод слов

https://am-en.ru/conversations/vocabulary.html#a
Аноним 21/08/20 Птн 14:32:14 1783953262
>>1783421
уже сделал на matplotlib, а graphviz гляну
Аноним 21/08/20 Птн 15:15:07 1784015263
Снимок.PNG 60Кб, 1786x323
1786x323
сап двач, памахите с питоном.

Делю 1000 - int на 1000.0 (float) , получаю 1.099, WTF.

Бтв возможно гуглю жопой как обычно, но я нипанимаю
Аноним 21/08/20 Птн 15:26:35 1784029264
>>1783871
да заебал, думаешь это единственный кривой сайт?
иди гугли.
Аноним 21/08/20 Птн 15:32:20 1784033265
Снимок.PNG 15Кб, 1727x46
1727x46
Если делать вывод не через sys.stdout.write, а через print - то всё нормально, цифры правильные.
Если запускать с консолечки через python file.py то такая же хуйня.

Как фиксить?

>>1784015-кун
Аноним 21/08/20 Птн 15:37:49 1784042266
Аноним 21/08/20 Птн 15:57:44 1784070267
>>1784042
Да это понятно.

Почему вывод в sys.stdout.write отличается от вывода print?
Причем на 10%.

В 0.1 + 0.2 не будет 0.33 или 0.27, даже со всеми нюансами суммирования чисел с плавающей точкой.
Аноним 21/08/20 Птн 16:09:09 1784088268
>>1784015
>>1784033
Твой 1.09 очень смахивает на присутствующий также 108.81, похоже на какой-то баг.
Попробуй выбрасывать другие значения по одному и смотри вывод.
Аноним 21/08/20 Птн 16:11:30 1784094269
image.png 5Кб, 316x94
316x94
>>1784088
если и баг то не у него одного, сейчас у себя чекнул, в пучарме, получил вот это
Аноним 21/08/20 Птн 16:11:46 1784095270
>>1784070
Тут явно не в вычислениях проблема, ты ведь строку передаешь в stdout. Скорее всего stdout байтики от себя добавляет.
Аноним 21/08/20 Птн 16:13:10 1784097271
>>1784094
Ну так баг во всей этой строке, а не в вычислении, это очевидно. Надо методом исключения его поймать.
Аноним 21/08/20 Птн 16:15:20 1784105272
>>1784094
А он не количество символов в строке выдает в конце?
Аноним 21/08/20 Птн 16:16:12 1784108273
>>1784095
И нахуя он это делает?
Я конечно понимаю, что сам дурак, не в курсе спецификаций и прочего, но где это в документации?

>>1784094
Анон, а ты на какой ОС работаешь?
Может stdout бажит изза операционки?
У меня win10
Аноним 21/08/20 Птн 16:16:27 1784109274
Бляя, я понял.
Это результат функции write, количество высранных символов, лол.
Собрались эксперты.
Аноним 21/08/20 Птн 16:17:50 1784114275
Ну да, действительно, забыли такую мелочб, ну да всего не упомнишь
Аноним 21/08/20 Птн 16:18:52 1784118276
Снимок.PNG 11Кб, 860x149
860x149
>>1784109
нихуя, тут ровно 1.0 вывел
Аноним 21/08/20 Птн 16:19:06 1784120277
Привыкли бля что newline сам принт добавляет, и сидят тут ошибку в вычислениях ищут.
Покекал.
Аноним 21/08/20 Птн 16:19:19 1784121278
image.png 10Кб, 577x94
577x94
Аноним 21/08/20 Птн 16:22:46 1784126279
>>1784121
Но тогда бы мне выводило на каждой строке ошибки, а выводит не на каждой

Можешь запустить, несколько ошибок в середине и в конце какой то треш

https://pastebin.com/FMzKTRVj
Аноним 21/08/20 Птн 16:23:39 1784132280
>>1784118
Ну только все починили, ты опять
Аноним 21/08/20 Птн 16:23:56 1784133281
>>1784118
Да это вообще норкоманская хуйня, там какие-то ужасы под капотом.
Аноним 21/08/20 Птн 16:32:45 1784149282
image.png 12Кб, 1019x171
1019x171
Аноним 21/08/20 Птн 16:34:09 1784155283
сап. насусветуйте какую ни будь дрочильню-самоучитель с заданиями. Уровень познания нулевой, умею писать хело ворлд 1000 раз циклом
Аноним 21/08/20 Птн 16:38:19 1784169284
Какая разница между lock-ами и .join() в threading? Просто то, что я могу lock-ом заставить треды ждать окончания определенного места в функции, а .join-ом можно заставить ждать только окончания всего треда?
Аноним 21/08/20 Птн 16:38:53 1784171285
>>1784149
Версия питона, версия ОС?
Аноним 21/08/20 Птн 16:41:13 1784178286
Аноним 21/08/20 Птн 16:43:09 1784182287
>>1784105
Именно так
>>>> sys.stdout.write(str('1.0'))
>1.03

Но ХЗ почему это.
Аноним 21/08/20 Птн 16:44:11 1784183288
>>1784178
окай, спасибо.
Возможно, этот баг воспроизводится только на винде.

>>1784094
Бамп вопросу Версия питона, версия ОС ?
Аноним 21/08/20 Птн 16:44:56 1784185289
Аноним 21/08/20 Птн 16:45:36 1784188290
>>1784182
>>> sys.stdout.write(str('1.0'))
1.03
>>> sys.stdout.write(str('1.00'))
1.004
>>> sys.stdout.write(str('1.000'))
1.0005
>>> sys.stdout.write(str('1.'))
1.2
>>> sys.stdout.write(str('1'))
11
>>> sys.stdout.write(str(''))
0
>>> sys.stdout.write(str(' '))
1
nightloli !!esbsgNqFnI 21/08/20 Птн 16:47:38 1784194291
21-08-202016:46[...].png 944Кб, 1920x1200
1920x1200
>>1784182
В 3-х везде 1.03, а в 2.7.18 всё кхорошо и просто 1.0, лел
Аноним 21/08/20 Птн 16:47:56 1784195292
>>1784188
Но это только в idle, если запускать как программу, то такого эффекта нет. Специфика питон-шелла.
Аноним 21/08/20 Птн 16:49:01 1784202293
>>1784182
Да уже ведь разобрались, сначала функция выдает в поток строку, которую ей передали, а потом возвращает количество символов в строке в стандартный поток вывода, в данном случае, туда же. Как-то так.
Аноним 21/08/20 Птн 16:50:11 1784204294
>>1784194
сначала подумал какой милый трап на пикче
потом увидел сиськи и расстроился
Аноним 21/08/20 Птн 16:50:21 1784205295
>>1784195
Какая блять специфика.
write выводит без ньюлайна в конце и в сосноли выводится возвращенный результат сразу.
ну сделай write('1.0\n'), будет как с принтом.
Аноним 21/08/20 Птн 16:53:42 1784215296
image.png 5Кб, 383x106
383x106
image.png 5Кб, 514x67
514x67
заметил особенность что если в цикле выводить то количество символов не выводится в конце, а если просто вывести то выводится
Аноним 21/08/20 Птн 16:54:55 1784217297
>>1784215
Потому что результат всей конструкции.
Это не сам write выводит, а шелл.
Аноним 21/08/20 Птн 16:55:28 1784220298
>>1784205
Именно специфика. При нормальном исполнении поведение другое, длина строки не печатается
>>> sys.stdout.write('1\n')
1
2
>>> print('1')
1

нормальное исполнение
> cat p.py
import sys
sys.stdout.write("1\n")
print("5")

python3 p.py
1
5

Аноним 21/08/20 Птн 16:57:18 1784223299
Лучший тред эвер. Детективное агенство "Путхон Тред" расследует загадочное появления символов в неожиданных местах.
Аноним 21/08/20 Птн 16:58:03 1784225300
>>1784220
Ты тупой или притворяешься?
Это то же самое, что ты напишешь 3+2 и выведет 5 в шелле, а если написать 3+2 в py файле и запустить, то нихуя не выведет.
Аноним 21/08/20 Птн 17:01:31 1784229301
Снимок.PNG 12Кб, 940x164
940x164
>>1784215
У меня вот такая хуйня с последним тестом, кек

>>1784015-кун
Аноним 21/08/20 Птн 17:06:14 1784234302
>>1784229
Юпитер выводит не в стдаут. Он просто в интерактивной манере вставляет последнюю строчку стдаута и метч под каждый принт стейтмент под каждую заэкзекьюченую селлу
Аноним 21/08/20 Птн 17:13:10 1784237303
>>1784194
Ты заебал всех в /s/ и решил теперь в /pr/ перейти, хуесос?
Аноним 21/08/20 Птн 17:13:50 1784238304
>>1784029
да гуглил я похоже вообще нет варианта достать текст вне элемента только всю хуйню сразу
Аноним 21/08/20 Птн 17:16:25 1784242305
>>1784234
А почему тогда этот юпитер в первом примере с которого тред свалился в детективное агенство выводит 1.09 и иногда 1.099 если делить 1000/1000.0 ?

Бтв, вывод юпитера совпал с системным.
А сейчас не выводит никаких гуков на деревьях (символов в конце строки) на примере анона, у которого эти ебаные гуки на месте.
Аноним 21/08/20 Птн 17:17:58 1784244306
>>1784225
С чего бы это шеллу вообще длину строки выводить?
Аноним 21/08/20 Птн 17:21:00 1784251307
>>1784244
Шелл выводит значение, которое вернул write.
nightloli !!esbsgNqFnI 21/08/20 Птн 17:22:51 1784253308
>>1784237
>всех
Тебя, нян? Или вас двое?
>решил теперь в /pr/ перейти
Я тут сижу ридонли, тому что писать нечего
И так и буду ближайшее время наверно
Просто о чём разговаривали решил проверить и что в питоне 2 не так написал, нян
>хуесос
<3
Аноним 21/08/20 Птн 17:23:07 1784254309
>>1784251
ты я так полагаю ввиду имеешь сам интерпретатор?, а то некоторые могут с каким нить башем или кмд спутать
Аноним 21/08/20 Птн 17:30:33 1784258310
>>1784254
Эта хуйня официально называется python interactive shell.
Аноним 21/08/20 Птн 17:46:41 1784268311
Как проверить дату на валидность? Именно дату
Поступает она простой строкой формата YYYY-MM-DD (которую всегда можно привести к тому виду, который захочется), надо убедиться что там не будет месяца под номером 13 или 29го дня в феврале невисокосного года. Пока что все что нашел это создавать объект datetime.datetime() и првоерять на выпадение ошибки ValueError
Аноним 21/08/20 Птн 17:50:46 1784273312
>>1784268
>Пока что все что нашел это создавать объект datetime.datetime() и првоерять на выпадение ошибки ValueError
А чем не нравится такой способ? Ничего лаконичнее, наверное, и нет.
Аноним 21/08/20 Птн 17:55:32 1784277313
>>1784268
>првоерять на выпадение ошибки ValueError
ну так норм жи. ловишь ValueError и пробрасываешь дальше какой-нибудь DateValidationException
Аноним 21/08/20 Птн 19:36:22 1784338314
image.png 9Кб, 379x128
379x128
Аноним 21/08/20 Птн 20:03:43 1784348315
Аноним 21/08/20 Птн 20:05:28 1784350316
>>1783635
Благодарю, Анон. Охуенно!
Аноним 21/08/20 Птн 20:20:11 1784356317
>>1783465
Может кто-то на словах объяснить отличия от асинхронности в ЖС?
Аноним 21/08/20 Птн 20:21:36 1784357318
Аноним 21/08/20 Птн 20:32:37 1784363319
>>1784169
Join завершает поток, Lock блокирует выполнение. В документации же написано.
Аноним 21/08/20 Птн 21:10:51 1784391320
image.png 16Кб, 663x400
663x400
>>1784015
мне кажется это прикол типа этого
Аноним 21/08/20 Птн 21:22:37 1784401321
image.png 8Кб, 448x143
448x143
>>1784015
sys.stdout.write возвращает количество символов, которое было выведено на экран, а Jupyter печатает это количество если ты не записал его в переменную. У меня он сейчас не установлен, но такое же поведение наблюдается в консоли пайчарма.
Аноним 21/08/20 Птн 21:22:55 1784402322
Аноним 21/08/20 Птн 21:50:17 1784415323
>>1784356
В JS асинхронность более нативная и прозрачная. Если ты определяешь функцию через async, то при запуске через await такой функции она уже автоматом стартует асинхронно.

В питоне это не так. В питоне даже если ты оформишь функцию через async, и вызовешь её через await, выполнение всё равно будет синхронным. Тебе необходимо запустить соответствующую корутину как задачу, через вызов create_task, ensure_future, или некоторые другие вызовы.

В общем в питоне асинхронность совсем не очевидная и имеет нюансы, подводные камни.
Аноним 21/08/20 Птн 22:35:29 1784449324
Вопрос есть.
Создаю класс, например кнопка. Кнопке задаю всякие разные поля типа текста, размера, координат и прочего. Далее создаю метод, который будет вызван если кнопка нажата.
Я хочу чтобы для каждого отдельного экземпляра класса внутри этого метода вызывалась своя уникальная функция.
Как мне это завернуть?
Пробовал при создании экземпляра в качестве аргумента передавать нужную мне уникальную функцию, а ее использовать в качестве аргумента для метода нажатия кнопки, но так не срабатывало.
Аноним 21/08/20 Птн 23:21:53 1784478325
>>1784449
ты ее со скобочками передавал или как объект?
Аноним 21/08/20 Птн 23:41:04 1784492326
>>1784449
Ставишь хендлер (функцию) как атрибут экзмепляра, хуле. Это стандарт

class MyClass:
----def __init__(self, func):
--------self.handler = func
Аноним 22/08/20 Суб 01:01:35 1784562327
>>1784253
Та я тебя с пониебом спутал, который срет непрекращая в линукс-тред, цвета на десктопе у вас похожие, извиняй.
Аноним 22/08/20 Суб 07:28:11 1784651328
>>1780956 (OP)
Привет, погромисты.
Как получить класс-предок в питоне (сам объект или хотя бы имя)? Уже 20 минут гуглю, ничего найти не могу.
Аноним 22/08/20 Суб 07:29:20 1784652329
>>1784651
предок класса имею ввиду (не экземпляра).
Аноним 22/08/20 Суб 08:26:27 1784657330
>>1784651
Допер сам вооружившись dir():
Obj.__weakref__.__objclass__
Спасибо питухону за синтаксис. Внутри кода класса это делается простым super(), но извне вот так коряво.
Аноним 22/08/20 Суб 10:05:39 1784682331
Screenshot2020-[...].png 13Кб, 343x402
343x402
>>1784657
Можно было попробовать вооружиться гуглом сначала
Аноним 22/08/20 Суб 10:22:25 1784693332
Аноним 22/08/20 Суб 11:52:15 1784738333
>>1784651
Не понятно, что конкретно тебе надо? Откуда тебе надо вытащить класс предок? Из self?
Аноним 22/08/20 Суб 14:08:40 1784794334
Короче, анон, пришлось мне сейчас писать одну хуйню на C#. Его я знаю слабо, поэтому набросал в Петухоне код, а потом начал переносить в Шарп.
Любите Петухон, посоны. Им можно хуйнуть список в множество, потом обратно в список и сразу его отсортировать в одну строку.
В Шарпе нельзя. Храни Господь питон.
Аноним 22/08/20 Суб 14:34:48 1784831335
>>1784794
Удобство или байтоебство, всегда есть два стула.
Аноним 22/08/20 Суб 14:36:29 1784835336
>>1784651
>Уже 20 минут гуглю
Устал? За тебя все сделать? Кидай ТЗ, хуле.
Аноним 22/08/20 Суб 14:36:41 1784836337
>>1784794
>Его я знаю слабо, поэтому набросал в Петухоне код, а потом начал переносить в Шарп.
Питон как макетная плата?
Аноним 22/08/20 Суб 14:53:10 1784856338
>>1784836
Я синтаксис шарпа знаю хуёво. Если не знать синтаксис и при этом пытаться решить какую-то задачу, то точно нихуя не выйдет. Написал в питоне, проверил что всё работает как надо, перенёс логику в шарп.
Аноним 22/08/20 Суб 16:29:16 1784955339
>>1784794
>В Шарпе нельзя
можно конечно. И более привычным "цепочка вызовов", чем в питоне где си подобно.
Аноним 22/08/20 Суб 16:33:09 1784956340
>>1784794
var result = new[] {2, 3, 2, 1, 5, 9}.ToHashSet().OrderBy(v=>v).ToList();
Аноним 22/08/20 Суб 16:53:24 1784964341
>>1784956
Окей, буду знать, спасибо.
Аноним 22/08/20 Суб 20:20:14 1785056342
В чем профит nginx? Я деплоил разок свою джанго-приложуху на Ubuntu-server, настраивал там nginx, но просто потому что инструкция, которую я юзал, так говорила, типо: django будет работать на localhost:8002, а nginx будет слушать порт 80 и проксировать запросы к localhost:8002. Теперь я задумался: нахрена? Неужели джанго-демон не сможет сам слушать 80 порт? В чем профит в виде посредника nginx?
Аноним 22/08/20 Суб 20:30:39 1785059343
Аноны, недавно начал вкат, объясните одну штуку. Последовательно изучаю синтаксис, и чет туплю и не могу понять, уже в 2 сурсах мне просто взорвали мозг и я ничего не понял. Вот у нас есть всякие функции типа принта, понятно зачем они нужны, чтобы сделать определенную хуйню грубо говоря. Вот мы можем написать свою функцию, т.е. мы опять же грубо говоря сворачиваем определенную последовательность действий и вызываем ее по имени функции, чтобы 300 раз не копипастить эту последовательность. А что такое класс, и нахуя он нужен. У меня чет от объяснений из курсов и видосик сразу внимание разъезжается, мысли куда-то улетают и я понимаю, что нихуя не понял, что это за ебанина и зачем она.
Аноним 22/08/20 Суб 20:41:00 1785065344
>>1785056
В том, что джангосервак очень слабенький, для дебага хватает и не более того.
Аноним 22/08/20 Суб 20:46:19 1785067345
>>1785059
На самом деле, в пистоне все можно представить как объект класса. Например [1, 2, 3] - объект класса list, или "иди нахуй" - объект класса string.
Читни основы ООП или в ютубе там посмотри.
Аноним 22/08/20 Суб 20:47:13 1785069346
>>1785059
>А что такое класс, и нахуя он нужен
Для моделирования объектов в твоей программе. Для наследования от других классов. Это одновремено и
>чтобы 300 раз не копипастить эту последовательность
и позволяет структурировать код, чтобы любой васян открыл твою программу, и разобрался где какой код к чему относится.
Открой любую книгу из шапки для начинающих, обычно всегда дают ОЧЕНЬ простые примеры на уровне животных, машинок и т.д.
Твой вопрос относится к концепции ООП, а не к самому питону.

Допустим, тебе в игре нужно сделать персонажа-человека. Он должен уметь ходить.
Объявляешь класс "человек" и описываешь метод "ходить()".
Теперь ты одной строчкой можешь создать объект-экземпляр этого класса.
Потом тебе понадобился персонаж-пидор. Он тоже должен уметь все то же, что человек, только еще сосать хуй.
Ты создаешь класс "пидор", наследуя от класса "человек", и все что тебе дополнительно нужно, - только описать метод "сосать_хуй()".
Аноним 22/08/20 Суб 20:50:02 1785072347
>>1785065
Я думаю что вопрос именно в том, зачем nginx как прокси до хуевенькой джанги, можно же поставить приложение хоть на nginx хоть на апач допустим непосредственно

не питонист
Аноним 22/08/20 Суб 20:52:24 1785074348
>>1785069
Есть ли хоть что-то, что на дваче не смогут пояснить через хуи и пидоров?
Аноним 22/08/20 Суб 20:56:43 1785078349
>>1785069
>Допустим, тебе в игре нужно сделать персонажа-человека. Он должен уметь ходить.
>Объявляешь класс "человек" и описываешь метод "ходить()".
>>1785067
>На самом деле, в пистоне все можно представить как объект класса. Например [1, 2, 3] - объект класса list, или "иди нахуй" - объект класса string.
Я сейчас конечно почитаю, но все-таки перед этим еще спрошу. Это же язык, мы оперируем тут буквами и цифрами. Соответственно типа и объекты под них сделаны, т.е. можно взять именно числа, можно брать просто сколько-то цифр и букв вместе(строки), можно сделать их отдельными и идущими подряд в списке, можно сделать словарь и т.д. А когда мы делаем свой класс, мы же не можем ничего принципиально нового добавить. Все те же комбинации букв и цифр, значит вся суть, чтобы к нему прихуярить метод? А почему мы просто не можем сделать функцию, и хуярить ее к тому, чему хотим, без классов? Ладно, вы меня все равно сейчас пошлете нахуй читать, так что наверное пойду и займусь этим.
Аноним 22/08/20 Суб 21:08:52 1785081350
>>1785059
По сути это свой собственный тип данных, используется для долгосрочной разработки, если скрипт маленький, то не нужен.
Аноним 22/08/20 Суб 21:10:26 1785084351
>>1785059
Забей пока, рано тебе ещё голову забивать этим
Аноним 22/08/20 Суб 21:20:34 1785089352
>>1785056
Джанго демон однопоточный и мало чего умеет.

Например вот такая простая ситуация, у тебя клиент делает запрос, но ответ из-за медленного интернета долго забирает. Всё это время твой джанго процесс будет заблокирован. А nginx просто положит в буфер.

И это актуально даже при мирном использовании, когда твои клиенты добропорядочные (сервер для внутренних нужд).

Nginx может хорошо и быстро обрабатывать статику, что тоже полезно.
Аноним 22/08/20 Суб 21:24:40 1785090353
>>1785072
Как ты поставишь приложение на nginx-apache? Они не умеют питон обрабатывать. Они могут только перенаправить поток на другой сокет, но этот сокет может уже работать на другом протоколе, не обязательно на http. Задача nginx обработать http, транслировать в wsgi, подключиться к джанго, получить ответ, сложить его в буфер и отдать клиенту.
Аноним 22/08/20 Суб 21:30:53 1785094354
>>1785059
Смотри, функция тебе помогает в том, чтобы делать какое-то действие и не хранить состояние. Каждый раз функция запускается заново и не знает, что её уже раньше запускали.

С помощью классов ты создаёшь "объекты". Объект это такая штука, у которой есть состояние, то есть внутри объекта лежат переменные, которые меняют значение.

Методы класса это такие функции, которые имеют доступ к переменным объекта.

Объекты нужны не всегда, конечно.
Аноним 22/08/20 Суб 21:31:39 1785095355
>>1785078
В пистоне все сделано под объекты, и объектами мы оперируем. Класс - это тип объекта.
Смотри, например есть список l = [1, 2, 3]
l - это объект класса list
если мы напишем l.append(4) в конец списка добавится значение 4.
append() - это метод класса list, тоесть функция описаная в классе.

>А когда мы делаем свой класс, мы же не можем ничего принципиально нового добавить.

Ну навскидку, мне надо оперировать векторами. Сложение, вычитание. Или пример с персонажами. Это все реализовать линейно можно, но когда векторов или персонажей дохуя, твой код превращается в голимое чтиво. И если надо что-то изменить, добавить или убрать, надо вычищать тонны говнокода. А применив классы я просто меняю в одном месте метод, и во всех персонажей хуй увеличевается с 12 до 21 см.
Причем чтение кода превращается в подобие обучению языку, что близко всем. Ты просто разбираешся как работает тот или иной метод класса, + у тебя появляется возможность поменять поведение определенного метода, или добавить новый.
Аноним 22/08/20 Суб 21:39:19 1785100356
>>1785078
>можно сделать словарь и т.д. А когда мы делаем свой класс, мы же не можем ничего принципиально нового добавить. Все те же комбинации букв и цифр, значит вся суть, чтобы к нему прихуярить метод? А почему мы просто не можем сделать функцию, и хуярить ее к тому, чему хотим, без классов?
В случае питона фактически так и есть. Объект на самом деле фактически словарь, а методы классов это обычные функции, которым ты первым аргументом передаёшь словарь.

Но вот подумай, как ты будешь, например, просто создавать этот словарь и заполнять его значениями по-умолчанию? Тебе придётся придумывать свои велосипеды вместо конструктора объекта и т.п.

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

ООП пришло как расширение обычного программирование, но чем сложнее программа, тем больше плюсов ты можешь получить от ООП подхода.
Аноним 22/08/20 Суб 23:05:54 1785128357
Как установить библиотеку вручную? Под вручную я понимаю, прям руками нужные файлы перенести. Я осваиваю веб-макакинг на жанге, настроил бдшку, запускаю в консоли миграцию, и там какая-то анальная ошибка на хостинге, с тем что нет библиотеки mysqlclient, при попытки её установки через пип или через easy_install с готовым .tar архивом возникает какая-то линуксоидная проблема, а я в линуксе не силён от слова совсем. Гуглеж ничего не дал, единственное решение, которое я придумал, это вручную файлики распихать по местам.
Аноним 22/08/20 Суб 23:34:10 1785139358
>>1785128
Вот весь лог если что.
Аноним 23/08/20 Вск 00:49:07 1785191359
Молю, дайте курс, где будут домашние задания. Пускай это будут лабы какого-нибудь универа или задания в книге или на сайте. На любом языке, хоть на северокорейском. Заранее спасибо.
Аноним 23/08/20 Вск 01:05:05 1785198360
Аноним 23/08/20 Вск 03:09:42 1785236361
>>1785059
Короче, пока тут хуйни тебе понаписали. Если у тебя ебически большой проект, то ты просто охуеешь оформлять его функциями . Ориентироваться в нём будет очень сложно, а поменяв одну функцию сломаешь нахуй всю программу. ООП структурирует большой йоба-код в удобоваримый вид. У тебя есть классы с такими-то свойствами и методами.
Допустим, ты сделал функцию, которая описывает человека, и на её основе запилил здоровенный код. Потом у человека внезапно появляется новое важное свойство - он теперь умеет срать, не снимая свитер. Если программа у тебя процедурная, то тебе придётся всё перепиливать, а так тебе будет достаточно просто наследовать все свойства от предыдущего человека и объявить, что теперь класс-наследник может то же самое, но + срать не снимая свитер.
ООП это не что-то сверхважное, как например основы синтаксиса. Ты начнёшь им пользоваться, когда в этом возникнет потребность. Пока можешь описать всё функциями - описывай функциями и не еби себе мозги.
Аноним 23/08/20 Вск 03:20:18 1785237362
>>1785078
>>1785059
Это снова я. Нашел эту серию видосов https://youtu.be/25Ds7aeTyOQ , вроде очень понятно все разжевано, тут я хотя бы понимаю что происходит, не в пример заумному курсу на степике, где лектор мне кажется пытается выебнуться и задавить терминами, а не объяснить. Одна беда, автор канала хитрая жопа и часть видосов видна только донаторам. Есть что-то настолько же для дебилов, но бесплатное? (только не говорите про документацию, я же говорю, для дебилов)
Аноним 23/08/20 Вск 03:22:07 1785238363
>>1785236
Спасибо, но я курс пытаюсь проходить, в котором основы синтаксиса уже закончились, и теперь пытаются ебать как раз этим ООП видимо. Грузят про область видимости переменных, объекты и всякую такую хуйню. Беда в том, что первая часть курса, про синтаксис пилилась другими людьми и была еще туда-сюда понятна (да и темы как мне кажется проще были), а тут лектор так себе поясняет
Аноним 23/08/20 Вск 03:22:16 1785239364
>>1785236
Херню ты какую-то пишешь. Есть куча огромных проектов, написанных на Си или ещё каких простых языках, где никакого ООП нет и в помине, и ничего, работают.

Всё прекрасно модифицируется при грамотном проектировании. С ООП часто модифицировать сложнее, вдруг оказывается, что ради добавления свитера тебе надо менять всю иерархию классов, что ломает весь код вообще.

Выделение в объект становится актуальным тогда, когда ты в программе работаешь не с одним человеком, а с несколькими. Под каждого надо выделать как-то ресурсы, не отдельные переменные, а массивы, вводить идентификаторы. Или делать те же словари. Плюс ты обнаруживаешь, что у тебя засрано пространство имён.

В случае объектов ты делаешь
dog = Dog()
man = Human()

dog.feed()
man.feed()

всё более-менее понятно, а без объектов тебе надо уже писать функции вроде
feed_dog(dog)
feed_man(man)
что как бы грязно.

То есть даже без наследования и полиморфизма объектный синтаксис несёт много пользы.
Аноним 23/08/20 Вск 03:29:18 1785242365
>>1785238
Я тебе так скажу, читать книжки по теории ООП почти также бесполезно, как и читать книжки по паттернам проектирования.

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

Но реально эти технологии нужны, когда код уже очень большой и сложный, и ты сам думаешь, как бы его организовать, чтобы хоть как-то можно было адекватно спроектировать так, чтобы это дошло до рабочего состояния. Причём там ты сам в состоянии много чего переоткрыть. Но учишься больше на примерах, чем по теоретическим книжкам.
Аноним 23/08/20 Вск 03:35:53 1785244366
>>1785237
И ещё, две большие разницы, ООП вообще и ООП в питоне. В питоне номинальное ООП.

Ты должен понимать, что ООП как технология появилось из компилируемых языков вроде C++ и Java (придумали ещё раньше, но не в массовых языках). В них нет много чего такого, что совсем естественно в питоне.

Поэтому там ООП строже и стройнее. В питоне от него почти одно название, необходимость не такая острая.

Если тебе нужно понять, откуда многие концепции ООП идут и зачем они, тебе надо погружаться в C++/Java, может C#, я его просто не трогал, не знаю.

В питоне всё проще.
Аноним 23/08/20 Вск 03:41:17 1785245367
image.png 18Кб, 610x239
610x239
Посоны, помогите, пожалуйста. У меня есть ксв-файл из несколько тысяч строк вида
хуй_пизда_джигурда20052134
хуй_пизда_паук120042330
хуй_нигра_ЧВ12005321

Мне нужно в идеале разделить их на два столбца, где в одном будут хуи и пезды, а в другом - числа. Числа, к слову, разнятся в длине от 7 символов до 9.

Я подумал, что можно просто провернуть эти строчки через регулярки, вычленив числа, но код почему-то не работает - возвращает пустые множества []. Что не так?
Аноним 23/08/20 Вск 03:58:39 1785247368
chromeG3Jwr51auL.png 80Кб, 968x855
968x855
Сори аноны, что доебываю, но друг который меня затащил в погромирование дал этот курс и съебал в отпуск, где сидит без связи. Вот что этому ебаному курсу в моем коде не нравится? Не понимаю
Аноним 23/08/20 Вск 04:00:49 1785248369
>>1785247
алсо формулировки пиздец, вот в can_add True и False вообще надо выводить? А если надо, то как, принт и объект бул, или принт строка тру/фолс. Не понимаю просто.

>Гарантируется, что метод add(self, v) будет вызываться только если can_add(self, v) – True.

Вот тут тоже хуй знает, что они имели в виду? Что они обещают проверять только такими значениями, при которых это будет тру? Или я должен сделать ограничения, чтобы функция нахуй слала?
Аноним 23/08/20 Вск 04:04:50 1785249370
Аноним 23/08/20 Вск 04:08:44 1785251371
image.png 36Кб, 1352x316
1352x316
Аноним 23/08/20 Вск 04:15:01 1785253372
>>1785191
Хирьянова алгоритмы на ютубе. Практика в этом курсе очень хорошая, чего там только нет.
Аноним 23/08/20 Вск 04:26:23 1785256373
>>1785247
https://stepik.org/course/512/syllabus Ты вот этот же курс проходишь, да? Тоже сегодня его нашел, думал потыкать. Что вообще кто из анонов может про него сказать, норм?
Аноним 23/08/20 Вск 04:37:28 1785259374
>>1785245
Если я правильно понял задачу, то у тебе нужно что-то типа
[0-9]{7,9}$
а не говно вместо регулярки как у тебя
Аноним 23/08/20 Вск 04:38:58 1785261375
>>1785259
и да, если у тебя одно вхождение может быть, нахер тебе findall
делай что-то типа
pos = re.search("[0-9]{7,9}$", line).start()
для получения позиции и сплитай строку, я бы так сделал
Аноним 23/08/20 Вск 05:58:11 1785274376
>>1785245
Findall нужно использовать, когда читаешь весь файл.
А если читать построчно, то как >>1785261 этот господин сказал я бы сделал.
Аноним 23/08/20 Вск 10:25:55 1785316377
>>1785248
> вот в can_add True и False вообще надо выводить
у каждой функции есть возвращаемое значение, оно идет после return. В твоей реализации return нет, значит функция возвращает None. А должна True или False

> Вот тут тоже хуй знает, что они имели в виду
имели в виду то что написали, то что метод add должен только добавлять, проверку can_add сделают они сами и внутри тебе ее чекать не надо
Аноним 23/08/20 Вск 11:00:52 1785326378
>>1785244
Если после питона и функциональщины начать погружаться в Джава ООП можно кукушкой поехать.
Тут уже скидывали статью про ОРМ. Пока доберешься до сути уже слоев 10 пройдешь и в итоге выстроить цепь связей и интерфейсов.
Про KISS (keep it simple, stupid) как-то всё стали забывать. Брать Java потому что там JVM и кроссплатформенность? Ну так себе затея, оверхед будет всегда. Как по мне, не получится что в питонеч что в джаве сразу на двух стульях усидеть (скорость разработки и скорость работы кода).
Когда говорят, что <language name 1> медленнее чем <language name 2> забывают о том, какие ресурсы уходят на разработку и какие на тесты. Python можно отдебажить на любом этапе, можно даже без unittest. Даже в проде можно будет оперативно перейти в DEBUG, а как там с Java? Хуй плавал.
Почему все дрочат на Java? Потому что заставляет писать понятный код, а не лапшу. Можно ли делать красивый код на Python без лапши и использовать паттерны? Конечно можно, в любом языке можно писать код без лапши.
JVM все равно не серебряная пуля. Она не будет решать проблемы говнокода.
Аноним 23/08/20 Вск 11:24:57 1785336379
>>1785326
>Потому что заставляет писать понятный код, а не лапшу
Вообще то ж наоборот. Жаба выразительностью никогда не отличалась. Сам же пишешь "Пока доберешься до сути уже слоев 10 пройдешь"

в питоне модули хорошо, но они же и зло. в 1 файле получается куча кода. неудобно
Аноним 23/08/20 Вск 11:44:23 1785349380
Screenshot34.png 44Кб, 416x853
416x853
Парни, закрыл пайчарм, а вернувшись обратно не обнаружил файл с кодом.py. Где он лежит?
Аноним 23/08/20 Вск 11:58:25 1785357381
>>1785349
надуй ты .venv открыл?
Аноним 23/08/20 Вск 12:06:18 1785361382
>>1785349
держа проекты и вообще данные в винде на диске С - не только файлик потеряешь в итоге
Аноним 23/08/20 Вск 12:09:13 1785362383
Аноны, не работал с python'ом около 6 месяцев, хочу заново начать что бы через год получить джуниора на удалёнке. Что я могу сделать на своей aws'ке, что бы показать свой уверенный уровень джуниора?

П.С. до этого писал много парсеров, работал с потоками и по мелочи
Аноним 23/08/20 Вск 12:32:04 1785381384
>>1785336
Я подразумевал либовь жавистов к абстракции и интерфейсам.
Так пожалуйста пиши свои интерфейсы в другом файле, не проблема же.
Аноним 23/08/20 Вск 12:53:29 1785405385
>>1785381
>Так пожалуйста пиши свои интерфейсы в другом файле, не проблема же.

вообще не понял о чем ты
Аноним 23/08/20 Вск 12:53:43 1785407386
>>1785381
>либовь жавистов к абстракции и интерфейсам.
Это любовь любого нормального программиста, причем начинается уже на уровне железа.
Аноним 23/08/20 Вск 12:58:27 1785411387
Да что не так-то??
z = input("Операция" )
x = float(input("Первое число:"))
y = float(input("Второе число:"))

If z == "+":
c=x+y
print("Результат " +str(c))
elif z == "-":
c=x-y
print("Результат " +str(c))
elif z == "":
c=x
y
print("Результат " +str(c))
elif z == "/":
c=x/y
print("Результат " +str(c))
else:
print("Хуйню написал!")
Аноним 23/08/20 Вск 12:59:00 1785413388
Аноним 23/08/20 Вск 13:03:57 1785419389
>>1785413
Всё ок, но хули ты жабу поставил?
Да и код хуйня с копипастом. Сделай модненько, словарь с лямбдами, все дела.
Аноним 23/08/20 Вск 13:06:45 1785423390
Аноним 23/08/20 Вск 13:08:14 1785425391
Аноним 23/08/20 Вск 13:11:45 1785427392
>>1785425
У меня ничего не получилось бы без тебя, спасибо большое :3
Аноним 23/08/20 Вск 13:20:04 1785429393
Аноним 23/08/20 Вск 13:20:41 1785431394
Screenshot35.png 15Кб, 832x308
832x308
А теперь что не так?
Аноним 23/08/20 Вск 13:23:24 1785433395
>>1785429
Установи пакеты build_essential и python3-dev, тогда приходи.
>>1785431
Это надо запускать из обычного cmd, а не питоньего шелла.
Аноним 23/08/20 Вск 13:23:27 1785434396
>>1785431
Пип нужно вызывать просто в cmd, а не в интерпретаторе питона
Аноним 23/08/20 Вск 13:25:45 1785436397
Screenshot36.png 31Кб, 993x637
993x637
Аноним 23/08/20 Вск 13:26:49 1785438398
Аноним 23/08/20 Вск 13:30:23 1785442399
>>1785436
Как ставить хакирские цвета выучил, уже хоршо.
Аноним 23/08/20 Вск 14:00:32 1785463400
>>1785433
>Установи пакеты build_essential и python3-dev, тогда приходи.
У меня нет пароля для установки пакетов в линупс, как я понял.
Аноним 23/08/20 Вск 14:08:30 1785472401
>>1785463
Сейчас такие ещё бывают? Что за провайдер?
Аноним 23/08/20 Вск 14:09:47 1785475402
Аноним 23/08/20 Вск 14:27:59 1785490403
>>1785089
Значит ли это что с помощью nginx можно сделать однопоточную программу (вроде синхронного приложения на Джанго) условно многопоточной? Так как разные соединения будут обрабатываться в разных воркерах nginx?
Аноним 23/08/20 Вск 14:43:33 1785503404
>>1785490
Этим занимается прежде всего какой-нибудь гуникорн, а не нджинкс
Аноним 23/08/20 Вск 14:44:33 1785505405
>>1785326
>Если после питона и функциональщины начать погружаться в Джава ООП можно кукушкой поехать
Объектная модель всё-таки там стройная, но платформу делали под ООП, когда был хайп вокруг ООП, и стиль программирования соответствующий выработали.

ООП подход часто снижает гибкость, чем больше слоёв, тем меньше гибкости.

ООП в питоне убого реализовано, немного раздражает. Главным образом наследование.

Но и не нужно на питоне писать в стиле классического ООП, потому что оно важно, когда язык компилируемый, с сильной статической типизацией. Те проблемы проектирования, которые необходимо в C++/Java решать с помощью развитого ООП, в питоне часто решаются проще.
Аноним 23/08/20 Вск 14:50:06 1785509406
>>1785490
Ну смотри, тебе в любом случае тогда надо запускать несколько копий джанги. А нжинкс уже в принципе может раскидывать трафик по ним, он это умеет.

То есть в промежуточных гуникорнах и т.п. решениях необходимости нет. Но тебе в любом случае необходим какой-то менеждер процессов, который будет следить, что запущено нужное количество копий джанги, перезапускать их и т.п.
Аноним 23/08/20 Вск 15:23:06 1785530407
Питухарики помогите очень прошу. Дело в том что после того как я начал изучать программирование я плачу каждый день оттого что представляю как я буду его очень хорошо знать и унижать других пидорах которые его не знают. Я плачу целый день от счастья и уже все глазницы солёные, не пойму что же делать помогите пожалуйста
Аноним 23/08/20 Вск 15:24:26 1785531408
Снимок.PNG 72Кб, 1819x484
1819x484
>>1784401
В пизду этот sys.output, вообще рандомную поеботу выводит
Аноним 23/08/20 Вск 15:54:29 1785558409
>>1785530
>я плачу каждый день
не туда платишь )
Аноним 23/08/20 Вск 15:56:06 1785561410
>>1785436
а еще лучше
python -m pip ...
Аноним 23/08/20 Вск 16:20:26 1785587411
>>1785472
>>1785475
Хостинг таймвеб, но дело в том что там я не своим аккаунтом в нём пользуюсь, и я не знаю есть ли у владельца пароль и наебнуть бы ему всему не хотелось.
Аноним 23/08/20 Вск 16:26:50 1785591412
>>1785587
>наебнуть бы ему всё
Аноним 23/08/20 Вск 16:28:45 1785593413
Поясните ньюфагу за абстракный класс

class Base(ABC):
def __init__(self,data)
def func1(self)
def func2(self)
def func3(self)
@abstractmethod
def func4(self)

class A(Base)
def func4(self)

class B(Base)
def func4(self)
def funcb(self)

class C(Base)
def func4(self)
def funcc(self)

Нахуя нужна эта абстрактная залупа в родительском классе, если можно спокойно определить func4 отдельно в каждом классе?
Аноним 23/08/20 Вск 16:45:58 1785606414
>>1785593
Чтобы заставить наследующего от абстрактного класса, реализовать метод, который лень или невозможно реализовать в абстрактном классе. Абстрактный класс, это такой же контракт как и интерфейс. Контракты используются чтобы принудить к какой-либо конвенции в коде.
Аноним 23/08/20 Вск 17:16:16 1785643415
есть у кого на примете красивой структуры объехно ориентированной программы?
Аноним 23/08/20 Вск 17:22:39 1785652416
>>1785643
а какую цель преследуешь? понять ооп в питоне или понять пользу от ооп?
Аноним 23/08/20 Вск 17:25:30 1785657417
>>1785652
ну есть скрипт в процедурном стиле и в перспективе буду его расширять, просто охото посмотреть на уже существующие паттерны/билды на питоне, чтобы ща не велосипедить
Аноним 23/08/20 Вск 17:27:59 1785662418
>>1785652
то есть подключение к influxdb юзать pandas, например
Аноним 23/08/20 Вск 17:35:00 1785673419
>>1785657
А надо ли.
Вот я упоротый шарпист. И в шарпе же метод без класса существовать не может и вообще "классы наше все". И мне очень нравится собирать из классов, как из кубиков, граф объектов с помощью контейнера (IoC), потом просто пнул и оно покатилось. Если часть системы нужно изменить, то подкладываешь другие кубики. Потому там интерфейсы и рулят.

но в питоне меня ждал облом. импорты они же вытягивают зависимости. То есть в шарпоподходе класс обьявляет контракт и в него заталкивают зависимости, а питоне модуль сам вытягивает на себя

Конечно можно собирать граф из классов, но как то это чужеродно выглядит. Я в итоге перестал выделываться и сместил акцент с "построим нужный граф объектов" на "в конфигах переконфигурируем". И если нет особой причины делать класс, то и не делаю. Да даже есть то не всегда - модули точно так же классы синглтоны
Аноним 23/08/20 Вск 17:40:36 1785684420
>>1785673
ну классы щитай обертка на функциями, просто берешь и пачками управляешь всеми ими из входной точки, то есть если без классов лепить то нужно будет знать какая функция где находитс, кароч мб ты и прав, пойду лучше навелосипедю че нить, рано мне еще мыслить о высоких абстракциях
Аноним 23/08/20 Вск 17:45:12 1785689421
>>1785684
>ну классы щитай обертка на функциями
класс хорош тем что может инкапсулировать свое состояние и таких инстансов больше одного
а как хранилище функций - модуль такое же хранилище
А в питоне всё объект.

А если нужен контракт,то есть Protocol - он вообще для всего на свете. Вот у меня в последнем лисапеде плагины просто модули в папке.
Аноним 23/08/20 Вск 17:53:55 1785694422
>>1785684
>знать какая функция где находитс

Еще пример. В шарп например если я делаю вебапи какой я вешаю аттрибуты роутов и внешний механизм бегает по сборке и ищет эти аттрибуты и регистрирует их у себя.

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

заведи такой же декоратор и ничего знать не нужно будет.
Аноним 23/08/20 Вск 17:56:26 1785696423
>>1785316
Погоди, а зачем здесь ретурн? В случае проверки на вместимость мы просто делаем принт, он и без ретурна работает, а в случае с добавлением монет - это же self.v внутри класса, она и так увееличивается, я в консоли чекал
Аноним 23/08/20 Вск 18:19:23 1785707424
>>1785694
Кстати, редко вижу что кто-то использует wrapper, каюсь и сам редко пользовался. Каждый раз руками прописывать логирование пиздец какой-то, теперь в следующих проектах только обертки.
Аноним 23/08/20 Вск 18:32:35 1785720425
>>1785696
крч бросай проганье не твое
Аноним 23/08/20 Вск 18:37:27 1785723426
>>1785657
Тебе в любом случае надо отталкиваться от функционала твоего приложения.

Нет универсальных методов и идеальных практик для всего.

ООП лишь инструмент. Твой код что-то делает. Тебе надо добиться того, чтобы логика была ясна, чтобы код можно было поддерживать. Из этого думать об архитектуре.

В зависимости от задачи наилучшие подходы могут быть противоположными.

ООП нужно тогда, когда в логике твоей задачи явно присутствуют ОБЪЕКТЫ. Которых много, у которых есть внутреннее состояние, над ними проводятся какие-то действия.

По-настоящему ООП работает, когда у тебя много похожих, но в то же время разных объектов, часть кода общая, а часть кастомизированная.
Аноним 23/08/20 Вск 19:56:07 1785817427
>>1785723
Это ты про рефакторинг говоришь, когда уже есть код и надо его приводить к бизнес процессам с оглядкой на сущности (о как).
А в Java/C# идут по пути описания бизнес процесса и связывании сущностей. А потом уже говнокод идёт.

https://pda.litres.ru/stiv-makkonnell/sovershennyy-kod-prakticheskoe-rukovodstvo-po-razrabotke-programmnogo-obespecheniya/?utm_source=google&utm_medium=cpc&utm_campaign=search_dsa_ohvat_f%7C2087774395&utm_term=&utm_content=433453034319%7Bphrase_id%7D_%7Bsource%7D_%7Bsource_type%7D_%7Bregion_name%7D_9047028&param_2=987239&gclid=Cj0KCQjwp4j6BRCRARIsAGq4yMHzWtMBG8_-IJQlVOmXs-2QNL6XisjSVQyqx12MBRtSjqYiEKmNf-caAo2vEALw_wcB

Спиздите этот талмуд, будет понятнее.
Аноним 23/08/20 Вск 20:11:28 1785823428
Аноним 23/08/20 Вск 22:28:30 1785917429
Аноним 23/08/20 Вск 22:30:56 1785919430
>>1785817
>Это ты про рефакторинг говоришь
все правильно он говорит. много задач которая решается тупо модулями с функциями без единого класса.
Аноним 23/08/20 Вск 23:17:06 1785945431
>>1785919
Через обертки?
Я коннекторы все расширял через классы, потом с инстансами проще работать.
Типо self.connected = False, если соединение установлено, то True и тогда не приходится при старте сразу в Exception лезть.
Питон позволяет так делать это факт, но тогда надо хорошо документировать простую функцию.
Аноним 23/08/20 Вск 23:45:53 1785950432
>>1785945
вообще не знаю о чем ты. В питоне в основе всего модули и много задач, где просто дергаешь модуль и ооп даром не нужен


вопрос всем
как организовать проект чтобы

python setup.py bdist_wheel

не засирал все на свете. ладно он срет на уровне где сам лежит, так еще и внутри рядом с пакетами создает projectname.egg-info

бесит
Аноним 24/08/20 Пнд 00:45:05 1785965433
>>1785720
Иди нахуй, я все смог в итоге.
Аноним 24/08/20 Пнд 00:46:31 1785967434
>>1785561
Пожалуйста, объясни что произойдет
Аноним 24/08/20 Пнд 01:08:20 1785977435
>>1785967
будет вызван pip для этого питона. ведь pip всего лишь модуль для питона.
когда в системе несколько питонов, что обычное дело для всяких там линуксов когда 2.7, 3.6 и 3.8 стоят и поди разбери где чей pip
Аноним 24/08/20 Пнд 07:48:57 1786060436
>>1785965
Самое сложное ещё впереди
Аноним 24/08/20 Пнд 09:17:12 1786077437
>>1785977
>поди разбери где чей pip
В принципе можно вызвать командой pip3 или pip3.8.

Если ставишь в виртуальное окружение что-то, то можно просто указать полный путь до pip соответствующего, и всё сработает как надо без активации окружения.
Аноним 24/08/20 Пнд 10:16:17 1786114438
>>1785917
В телеге? Или запилить веб-страницу?
Аноним 24/08/20 Пнд 10:34:06 1786118439
13.PNG 14Кб, 457x358
457x358
Работяги почему на обратном пути звёздочка к строке не коннектится ??
Аноним 24/08/20 Пнд 10:37:11 1786120440
>>1786118
Ты кажись забыл первый символ к звездочке прибавлять
Аноним 24/08/20 Пнд 10:40:45 1786123441
>>1786120
А нахуя ? Возвращается результат рекурсии а я к нему звездочку прибавляю разве нет ?
Аноним 24/08/20 Пнд 10:42:37 1786125442
>>1786120
А всё понял опертор + же с возвращаемым работает значением
Аноним 24/08/20 Пнд 10:43:10 1786126443
>>1786120
Ужё 40 недель пытаюсь понять рекурсию, скоро сам у себя из жопы вылезу
Аноним 24/08/20 Пнд 10:49:23 1786127444
Первую свою рекурсию я сделал в 18 лет.
Это была хуевая реализация алгоритма поиска пути в Macromedia Flash, который я сделал "из головы".
Но там я не передавал в новый вызов значение, массив с ценами пути хранился в глобальной переменной, а в самой рекурсивной функции были условия запуска следующего шага/остановки.
Аноним 24/08/20 Пнд 10:52:20 1786128445
r.jpg 35Кб, 560x249
560x249
>>1786126
>сам у себя из жопы вылезу
Главное чтобы без головы
Аноним 24/08/20 Пнд 11:04:25 1786135446
Аноним 24/08/20 Пнд 11:43:36 1786161447
Хочу поучаствовать в каком-нибудь проекте, например, чужом пэте. Стэк python, django, requests, bs4, немного vk_api, telegram-bot-api. Подскажите как найти в чем поучавствовать, либо может я кому могу пригодиться, с удовольствием приму участие
Аноним 24/08/20 Пнд 11:58:38 1786176448
Аноним 24/08/20 Пнд 12:00:46 1786180449
>>1785056
В первую очередь это удобная архитектура, когда nginx быстро обрабатывает большую часть клиентов и только при необходимости проксирует на вебсервер для джанго, так же мы стараемся максимально заранее формировать кверисеты и только когда нужно делать запрос к бд, просто чтобы не перенагружать систему
Аноним 24/08/20 Пнд 12:13:07 1786192450
>>1786176
Человек, который хочет найти проект, чтобы сделать что-нибудь интересно, стэк указал, разобраться с чем-то новым смогу
Аноним 24/08/20 Пнд 12:20:04 1786198451
>>1786161
это не стек, блядь. это перечисление навыков с курсов.
Аноним 24/08/20 Пнд 12:23:50 1786203452
>>1786161
>стэк
>requests
Слабоват стэк, добавь os, fnmatch, pathlib
Аноним 24/08/20 Пнд 12:45:23 1786222453
Аноним 24/08/20 Пнд 14:34:53 1786390454
>>1785917
Так какого бота ебана рот?
Аноним 24/08/20 Пнд 14:36:41 1786394455
Аноним 24/08/20 Пнд 14:51:07 1786410456
>>1780956 (OP)
сяпки
ЧТо делать если питонопараша выдает ошибки из Си и спп?
Думаю, опытные господа итт сталкивались с таким, когда библиотека на сишках, а обертка хуй пойми как наговнокодена на петоне.
Аноним 24/08/20 Пнд 14:57:55 1786415457
Аноним 24/08/20 Пнд 15:04:51 1786417458
>>1786198
Да кому не похуй ей богу, реквестс это скорее про работу с апи. Мне нужно было написать навыки с курсов? Или раз уж стэк, то писать про nginx и gunicorn? Когда это нахуй не будет нужно
Аноним 24/08/20 Пнд 15:18:18 1786429459
>>1786410
Возможно ты поел говна не установил сторонние либы для ОСи. Как python-dev для линуха например
Аноним 24/08/20 Пнд 15:46:28 1786470460
подскажите плиз какой нибудь хелпер для базы данных для тестов
ну чтобы код положил данные и я этим хелпером пошел и проверил что они там какие надо
ну и обратное - закинул в базу данных (не хочу скл городить) и выбрал тестируемым кодом

очень не хочется писать велосипед на 1 раз
Аноним 24/08/20 Пнд 17:29:34 1786602461
Котаны, есть файл с 1.5 Гб логов от nginx, как его открывать и работать с ним, чтоб ничего не наебнулось? Грубо говоря, как итерироваться по строкам, чтобы весь файл разом не выгружался в память?
Аноним 24/08/20 Пнд 17:30:44 1786606462
>>1786602
okay google python read file line by line
Аноним 24/08/20 Пнд 17:35:12 1786612463
>>1786602
1 читаешь весь файл в память
2 сплитом разбиваешь на строки
3 делаешь словарь "номер - строка"

и потом уже итерируешь словарь
Аноним 24/08/20 Пнд 17:54:37 1786642464
Аноним 24/08/20 Пнд 18:06:46 1786682465
>>1786642
признаю. я забыл отсортировать по ключу словарь. посыпаю голову пеплом )
Аноним 24/08/20 Пнд 18:14:22 1786698466
Привет ребят, нужна помощь. Пишу код для телеграм бота с помощью pyTelegramBotAPI. Можно ли сделать функцию с помощью которой бот будет запоминать сообщения?(нужно для последующей передачи их в базу данных)
Аноним 24/08/20 Пнд 18:17:54 1786704467
Аноним 24/08/20 Пнд 18:20:01 1786706468
>>1786704
Как только нажал кнопку отправить знал что этот ответ будет, переформулирую, как это сделать?
Аноним 24/08/20 Пнд 18:34:06 1786724469
>>1786706
нужно сделать функцию с помощью которой бот будет запоминать сообщения
Аноним 24/08/20 Пнд 18:36:42 1786726470
>>1786724
>Как сделать функцию?
>Нужно сделать функцию
Аноним 24/08/20 Пнд 18:41:38 1786733471
>>1786726
блин ну это вопрос из разряда "как положить бегемотика в холодильник"
ну а какого ответа еще можно ожидать
Аноним 24/08/20 Пнд 18:44:56 1786736472
>>1786706
> как это сделать?
открыть доку по либе
почитатьпосмотреть индусов на трубе
сделать
Аноним 24/08/20 Пнд 19:05:15 1786786473
>>1786706
ты пишешь, что тебе нужно потом сохранять в бд
возьми сразу сохрани в бд, зачем потом
Аноним 24/08/20 Пнд 19:05:41 1786787474
chrome-capture.jpg 282Кб, 1241x778
1241x778
chrome-capture [...].jpg 143Кб, 536x733
536x733
Есть задача и есть моё наивное решение, которое проходит базовые примеры, но не проходит все тесты (они скрыты системой) и пишет, что неправильный ответ. Я не прошу за меня решить, но может посоветуете в чём может быть косяк и куда копать?
Аноним 24/08/20 Пнд 19:08:20 1786790475
>>1786786
А как сформулировать тремя запросами добавление данных в одну строку?
Аноним 24/08/20 Пнд 19:14:16 1786797476
>>1786790
охуенно конкретный у тебя вопрос
клиенты бизнес требования и то понятнее формулируют
Аноним 24/08/20 Пнд 19:14:40 1786798477
>>1786787
чтение инпута какое то странное.
просто не может не быть в инпуте не 2 значения
и [] не нужен
и проверка ниже не имеет смысла
Аноним 24/08/20 Пнд 19:18:06 1786800478
>>1786797
короче забей, я дегенерат. с формулированием запроса я разобрался, мне нужно сделать так, чтобы при написании команды последовательно считывалось три сообщения
Аноним 24/08/20 Пнд 19:32:32 1786831479
нихрена не разобрался в библиотеках. Как мне набор конкуретных http/2 отправить? есть пример?
Аноним 24/08/20 Пнд 19:56:50 1786862480
>>1786831
на каких?
потому что вот я который знать не знает про хттп2.0 моментально нагуглил hyper и по одному взгляду на пример понял как в нем шлется конкурентные запросы
Аноним 24/08/20 Пнд 20:00:47 1786866481
работяги, вопрос, как быстро в джуниор вкатиться??
Аноним 24/08/20 Пнд 20:02:36 1786868482
>>1786866
вдумчиво изучаешь основные концепции любого языка
чтобы аж очень вдумчиво и основательно в общих парадигмах

потом вктываешься в любой язык. Кроме нейросетей.
Аноним 24/08/20 Пнд 20:03:39 1786869483
>>1786868
пайтон вроде освоил, requests, json, и всякое такое. думаю этого не хватит, может для гита чето запилить?
Аноним 24/08/20 Пнд 20:12:56 1786875484
Аноним 24/08/20 Пнд 20:17:54 1786879485
Аноним 24/08/20 Пнд 20:18:28 1786881486
Аноны, я правильно понимаю, что ФастАпи это просто еще один фласкоподобный фреймворк, в который напихали поддержку асинхронщины?
Аноним 24/08/20 Пнд 20:45:15 1786908487
>>1786787
Чёт я хуй знает что ты добиваешься своим словарём. На мой взгляд решается от противного: если есть буквы в 1м слове одинаковые И во втором слове на позициях этих букв буквы РАЗНЫЕ, то ответ - нет, иначе - да.
Аноним 24/08/20 Пнд 21:01:33 1786926488
Аноним 24/08/20 Пнд 21:28:33 1786962489
chrome-capture.jpg 149Кб, 691x663
691x663
>>1786926
Не нихуя, не проходит, короче какая-то изъёбистая комбинаторная хуйня, тут одним проходом не получается, думал, что такой метод сработает
Аноним 24/08/20 Пнд 21:29:21 1786965490
>>1786868
> Кроме нейросетей.
Чому?
Аноним 24/08/20 Пнд 21:29:52 1786966491
Аноним 24/08/20 Пнд 21:38:17 1786980492
>>1786965
Я ниасилил. Несмотря на быструю обучаемость
Конечно может оно просто не мое
Аноним 24/08/20 Пнд 21:39:47 1786985493
>>1786881
Вообще автор фреймворка на сайте написал почему он вообще взялся за FastAPI и да, с оглядкой на Flask. Простота и удобство разработки + всякие приблуды для документации в виде OpenAPI.
А что не так? Он от команды encode ещё и databases взял для примера. Это ж FOSS
Аноним 24/08/20 Пнд 21:45:15 1786990494
>>1786985
Это кстати не он твитил чет, типа его собеседовали куда-то на разраба и послали нахуй, потому что недостаточный опыт работы с этим фастАпи?
Аноним 24/08/20 Пнд 21:51:22 1786998495
изображение.png 10Кб, 379x297
379x297
Аноним 24/08/20 Пнд 21:55:14 1787005496
изображение.png 11Кб, 389x311
389x311
>>1786998
Забыл проверку чтобы много раз не проверять одну букву.

Аноним 24/08/20 Пнд 21:58:08 1787006497
>>1786990
Он.
Encode кстати и uvicorn тащат, они правда меня нахуй послали два раза: по поводу кастомного логгера (я хотел асинхронный въебать) и по поводу запуска uvicorn в виде child process, сами что-то там нахуевертили и теперь с 0.8.6+ так делать нельзя.
Аноним 24/08/20 Пнд 22:21:32 1787026498
chrome-capture [...].jpg 185Кб, 1414x897
1414x897
>>1787005
Даже базовый не прошёл
Аноним 24/08/20 Пнд 22:28:35 1787033499
>>1786985
>А что не так?
Да нет, все так, просто смотрю на документацию и вижу практически то же самое, что и в каком-нибудь фласке/айохттп, не без своих фишечек, конечно, но в целом все то же
Аноним 24/08/20 Пнд 22:34:12 1787040500
>>1787033
Так уже ничего нового не выкатят. Либо uvloop и быстрые декодеры, либо комбайн all in one.
Аноним 24/08/20 Пнд 22:50:57 1787055501
изображение.png 14Кб, 454x352
454x352
Аноним 24/08/20 Пнд 23:08:42 1787076502
>>1787055
Нет, мало того, я загуглил и на стеке тоже никто не может) Ебал я этот headhunter с такими задачками

https://ru.stackoverflow.com/questions/1163395/%D0%9F%D1%80%D0%B5%D0%B2%D1%80%D0%B0%D1%82%D0%B8%D1%82%D1%8C-%D0%BF%D0%B5%D1%80%D0%B2%D1%83%D1%8E-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83-%D0%B2%D0%BE-%D0%B2%D1%82%D0%BE%D1%80%D1%83%D1%8E-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D1%8F%D1%8F-%D0%BE%D0%B4%D0%BD%D0%B8-%D0%B1%D1%83%D0%BA%D0%B2%D1%8B-%D0%BD%D0%B0-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D0%B5

https://ru.stackoverflow.com/questions/1164776/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0-%D0%9F%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D0%BB%D0%BE%D0%B2
Аноним 24/08/20 Пнд 23:13:22 1787081503
>>1787076
Да условия вафлёрские
Аноним 24/08/20 Пнд 23:29:29 1787091504
>>1787055
я согласен с тем что просто нужно сверять буквы на их местах как выше писали
ну это если узнать "взможно ли"
а не сколько для этого надо преобразований
Аноним 24/08/20 Пнд 23:45:04 1787104505
>>1787091
Так в условиях же нет "сколько", там boolean 0/1 ответ
Аноним 24/08/20 Пнд 23:48:35 1787108506
Аноним 24/08/20 Пнд 23:56:10 1787117507
Аноны такой реквест

Покажите плис примеры хорошего кода на питоне как пример, можно с гита чтонить.

Хочу запилить свою аиб по советам анонов.
- Умею в хостинг и домены, есть опыт, пили доры. На чем можно сделать аиб чтобы разобраться.

Хочу также в работу питон погромистом. Что требуют, какие нужны знанния, что востребовано по нишам. Нужно знать как написать клиент-сервер, этого хватит?
Аноним 24/08/20 Пнд 23:57:32 1787118508
>>1787108
Объясни логику, пожалуйста, я что то не до конца понимаю ))
Аноним 25/08/20 Втр 00:06:15 1787127509
>>1787076
Будь няшей, дай линк на тесты.
Аноним 25/08/20 Втр 00:10:19 1787130510
>>1787118
если бы я ее понимал.

я заметил это

Входные данные: абаб ааах
Выходные данные: 0
Преобразовать нельзя, так как 'б' не сможет оказаться одновременно 'а' и 'х'.

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

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

и через зип идет обход букв, а charmap хранит соответствия встреченных букв было->соответствует и по повторной встрече буквы проверяет что целевая буква такая же, как была в первый раз
Аноним 25/08/20 Втр 00:17:51 1787136511
>>1787118
то есть

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

Аноним 25/08/20 Втр 00:24:35 1787141512
>>1787130
ааааа, всё понял, спс. Всё ясно зачем тебе get словаря ;)
Аноним 25/08/20 Втр 00:33:04 1787148513
>>1787141
ну можно переписать if in
но ранний оптимизатор сказал "а ну быстро оптимизировать бл.."

но это туфта ибо смотря сюда

д ⇒ я (ааббяя) - промежуточная "я"
а ⇒ д (ддббяя)
я ⇒ а (ддббаа)

они явно хотят какой то преобразования учитвыющий алгоритм. а не такой " в лоб"

Аноним 25/08/20 Втр 00:54:33 1787152514
Screenshot37.png 12Кб, 1122x54
1122x54
Что он от меня хочет?
Как установить этот промт в данную директорию? Можно ли изменить директорию? Что промт вообще делает?
Аноним 25/08/20 Втр 01:11:04 1787165515
>>1787152
>Что он от меня хочет?
Чтобы ты питон установил
Аноним 25/08/20 Втр 01:14:24 1787169516
>>1786787
Говнокод сломается уже на первой строчке кода номер 3.
Аноним 25/08/20 Втр 01:17:05 1787173517
>>1787165
У меня уже стоит интерпретатор -__-
Как заставить пайчарм идти в другую папку?
Аноним 25/08/20 Втр 01:19:23 1787177518
>>1787173
зайти в настройки проекта и указать нужное env или интерпретатор
Аноним 25/08/20 Втр 01:36:33 1787185519
Аноним 25/08/20 Втр 02:06:21 1787196520
>>1787185
>>1787177
Окей, в настройках проекта я установил путь к директории с питон.ехе внутри, команды запускаются, Но откуда у меня взялась папка промпт и почему пайчарм туда лез? И вроде это важный пакет, да? Почему я просто не переустановил промпт в ту же папку?
Аноним 25/08/20 Втр 02:52:30 1787207521
>>1787196
Потому что у тебя venv. Виртуальная среда свою копию интерпретатора делает и пэкэджи. почитай документацию, ладно? Даже у джетбрейнса она есть. Очень тупые вопроса начались. Неинтересно.
Аноним 25/08/20 Втр 04:24:52 1787218522
Аноним 25/08/20 Втр 11:20:17 1787364523
>>1787148
Да вот у меня тоже чувство закрадывается что они хотят чтобы мы построили цепочку трансмутаций букв и уже согласно неё проверили. Но я рот ебал так делать, когда в задаче ни слова про это нет.
Аноним 25/08/20 Втр 12:56:06 1787504524
Аноним 25/08/20 Втр 12:57:31 1787506525
>>1787169
Да в тесте битые данные не даются, не в этом проблема была, а так это просто экономия времени, зачем что-то придумывать, если данные подаются всегда в одном формате
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов