Сохранен 519
https://2ch.hk/pr/res/1989943.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Питон тред №117 /python/

 Аноним 08/04/21 Чтв 13:40:23 #1 №1989943 
python-django.png
Тред, посвящённый языку программирования Питон, #117

Предыдущий: >>1977853 (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
Аноним 08/04/21 Чтв 14:11:12 #2 №1990004 
вкот, питонщики.
тут есть кто делает игры на питоне по типу говна три в ряд или например олдскульные рпг?
Аноним 08/04/21 Чтв 14:31:09 #3 №1990039 
>>1990004
Если ты решил делать игры на питоне, то остановись и подумай, все библиотеки питона для игр такое себе. Лучше уж выбрать юнити или другой движок и писать на c
Аноним 08/04/21 Чтв 16:01:38 #4 №1990149 
doc2019-09-0615-37-52.mp4
Годная литература по алгоритмам никогда не устаревает я правильно понимаю? Посоветуйте пожалуйста. Грохаем алгоритмы слишком проста по отзывам. не бейте
Аноним 08/04/21 Чтв 17:02:28 #5 №1990203 
>>1990149
Слишком проста по отзывам? Если с алгоритмами до этого не сталкивался, то простоты там точно не будет.
Аноним 08/04/21 Чтв 17:26:28 #6 №1990227 
Решил тут почитать мангу, а у нее страницы сдвоенные, но не все. И некоторые сдвоенные на самом деле развороты. Как написать скрипт, который бы разделял одну картинки на две, при условии что сдвоенные картинки имеют ширину большую чем высоту, и белую полосу в середине?
Аноним 08/04/21 Чтв 17:28:37 #7 №1990231 
fbv01ch01p006-007.jpg
fbv01ch01p052.jpg
fbv01ch06p192-193.jpg
>>1990227
Вот сдвенная странница, обычная и разворот
Аноним 08/04/21 Чтв 18:19:55 #8 №1990312 
>>1990039
ну я имел ввиду игры просто по приколу, не для коммерции
Аноним 08/04/21 Чтв 19:12:17 #9 №1990376 
image.png
>>1989943 (OP)
Здравствуйте, такой вопрос возник, вот щас дошел до изучения сортировок и вроде все понятно кроме одной вещи, а как на экран то результат вывести?
То есть вот, сортировка Хоара, она получает какой то список, че то там сортирует, а как увидеть то результат соритровки в том же самом например вскоде
Объясните пожалуйста, просто уже вроде как какую лекцию смотрю и нигде вообще не объясняется как вообще либо увидеть результат
Аноним 08/04/21 Чтв 19:18:58 #10 №1990391 
>>1990376
for 0 to len(return) + принт по индексу +', '
Аноним 08/04/21 Чтв 19:19:47 #11 №1990394 
>>1990376
Если не троллишь, то

nums = [2, 12, 85, 0, 6]
print (quicksort(nums))
Аноним 08/04/21 Чтв 19:26:37 #12 №1990415 
Привет тред. Я правильно понял, что сокеты подходят только, если клиент написан на питоне? А если делаешь сайт, то они не подойдут, ведь клиент то не на питоне будет написан, а будет слать запросы к серверу из браузера? Тупой вопрос, но я в работе веб приложений что-то совсем нихуя не понимаю. https://www.youtube.com/watch?v=3UOyky9sEQY к примеру как код из этого видика переделать, чтобы это все крутилось в браузере?
Аноним 08/04/21 Чтв 19:38:37 #13 №1990429 
image.png
image.png
>>1990394
Не тролю, у меня нихуя не получается и я не понимаю почему, то есть первый раз когда я вставил оно отсортировалось, начал еще раз пробовать начал выдавать вот такую ошибку
Аноним 08/04/21 Чтв 19:41:18 #14 №1990432 
Есть функция, которая возвращает данные из бд логов (индексы и партицирование уже настроены). Проблема в том, что иногда скрипт долго висит из-за выполнения этой функции, т.к. на каких-то итерациях из очереди запрос может выполняться по 15-20 минут. Как мне внутри функции добавить асинхронный счетчик времени?
Ну т.е. как сделать, чтобы при вызове функции запускался счетчик, дальше идёт запрос к бд, дальше функция ожидает ответа и переключается на счетчик. Если счетчик насчитал за время ожидание, допустим, 10-15 минут, то принтит варнинг.
Аноним 08/04/21 Чтв 19:43:10 #15 №1990434 
>>1990429
Животное, ты че ожидаешь передав на прямую данные?
Аноним 08/04/21 Чтв 19:45:19 #16 №1990436 
>>1990434
Ну не стукай, я убрал, все равно не работает
"напрямую" это ведь ты имел ввиду что я в самой функции список написал?
Аноним 08/04/21 Чтв 19:48:31 #17 №1990444 
>>1990429
оставь только nums в значение функции
Аноним 08/04/21 Чтв 19:49:00 #18 №1990446 
>>1990436
Питон дырявая хуета, не работать он может даже если луна в раке.
Аноним 08/04/21 Чтв 19:52:08 #19 №1990453 
>>1990444
Так и сделал, он ту же самую ошибку выдает, хотя в самый первый раз оно почему то сработало
>>1990446
Но как же... я же думал что лучший ЯП эвар... на самом деле ничего не думал, но впервые столкнулся с тем что сначала вроде работало, а щас перестало , хотя ничего по сути не изменилось
Аноним 08/04/21 Чтв 19:55:20 #20 №1990459 
Учить программирование по функциональщине и скриптовом языке, всеравно что пытаться водить боинг видя вчера только руль машины.
>>1990453
переменные в функции локальные, точка входа получает только ссылки или подготовленные данные по типу func(a. 11, t, 55)
nums в тексте это примерно proc.main.var.nums
nums в функции это proc.main.func.name[nums]
разный уровень вложености.
Аноним 08/04/21 Чтв 19:57:08 #21 №1990462 
>>1990459
Честно говоря, мне ни на грамм понятнее не стало от твоего поста
Аноним 08/04/21 Чтв 19:58:31 #22 №1990463 
>>1990459
>Учить программирование по функциональщине и скриптовом языке, всеравно что пытаться водить боинг видя вчера только руль машины.
Этого двачну, сначала надо низкоуровневого говна пожрать. Но вкатышам хрен объяснишь.
Аноним 08/04/21 Чтв 20:03:54 #23 №1990470 
>>1990462
У функции не переменные на входе, а ссылки, уже внутри разные уровни вложенности и доступа, все локальные не доступны из вне, и точка выхода только в ретурн.

Создай еще один экзепляр, просто функциональщики не могут в написание нормального кода, и логично чтобы
A = func(B) и A = func()->(B) A=func(* B). отличались.
Новички думают или создается копия, а оригинал сохраняется переменной или операциия происходит с самой переменной по типу B:= func(B)
Аноним 08/04/21 Чтв 20:15:46 #24 №1990479 
Всем привет! Имеется. Как в пайтесте параматрищировать API ендпоинты? Допустим есть 5 разных видов эндоинтов, на который нужно написать один тест.
url1= “http://“
url2= “servis-huervis”
url3= “.com”
url4= “.pidor”
Url5= “https://“

Вот из таких комбинации грубо говоря нужно сделать один тест. Как это параметризировать?
В идеале, если это можно какую-то фикстуру запилить, скажем if url3 ==“.com” то делай это. И тд.
Аноним 08/04/21 Чтв 20:31:42 #25 №1990489 
>>1989943 (OP)
Я произвожу некую операцию, которая занимает долгое время (запрос в базу например), как мне поставить таймаут на эту операцию, чтобы если он истек то выскочило некое исключение, которое потом можно было бы обработать?
Аноним 08/04/21 Чтв 20:36:54 #26 №1990493 
>>1990470
Про то что на входе не надо ничего писать я и с первого раза понял, а еще у меня методом тыка получилось понять отчего TypeError возникал
>>1990463
>объяснишь
Справедливости ради, особо никто и не пытается объяснять, а те кто пытаются пишут настолько сложно что хуй разберешь что они тебе посоветовали, порой создается впечатление что программисты выебываются своим знанием технических терминов и стараются как можно больше ими выражаться прям как 12 летние девочки из твитора у которых зарубежных слов в посте больше чем русских
Аноним 08/04/21 Чтв 20:45:08 #27 №1990503 
>>1990459
>Учить программирование по функциональщине и скриптовом языке, всеравно что пытаться водить боинг видя вчера только руль машины.
И функциональщина, и скриптовые языки довольно естественны.

Просто функциональщине надо иначе учить и иные задачи на ней решать.

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

#include <stdio.h>
int main(void) {
printf("hello world \n");
return 0;
}
Вот тут, что такое include, что такое stdio, что за магия, int, main, void, return?

Чуть дальше начинается магия с выделением памяти и т.п., и т.п.

Правда для бэкграунда в это полезно погрузиться.

Но я бы сказал, что питон как первый язык очень-очень хорошее решение. Вот JS, PHP так себе варианты, лучше не надо.
Аноним 08/04/21 Чтв 21:23:39 #28 №1990548 
>>1990429
В строке 3 нужно return nums, а не return. У тебя же в первом посте правильно было.
Аноним 08/04/21 Чтв 21:32:52 #29 №1990559 
image.png
А вообще реально получить текущее значение генератора, не запуская по новой next ?
Аноним 08/04/21 Чтв 21:39:36 #30 №1990567 
1616200126624.png
>>1990004
Ку, делал около года назад "Жизнь" на pygame
До этого еще всякую дичь на том же pygame делал
Аноним 08/04/21 Чтв 21:44:48 #31 №1990570 
>>1990559
разобрался, нужно было через переменную сделать
Аноним 08/04/21 Чтв 22:03:11 #32 №1990580 
Внимание, ПЛАТИНА!

Есть смысл пересаживаться с ПЫХи на Питон для веб-кодинга?
Аноним 08/04/21 Чтв 22:11:16 #33 №1990586 
696333D5-8288-4D2D-9D90-B02C0E734A90.jpeg
Вниманий платинная! Стоить ли вкатитися в айти на питонзмея програмируи, когда тибе 33 годика?
Аноним 08/04/21 Чтв 22:20:29 #34 №1990590 
>>1990580
С пыхи всегда есть смысл пересаживаться
Аноним 08/04/21 Чтв 22:24:57 #35 №1990596 
>>1990586
>33 годика
Дед, гроб пора заказывать по индивидуальному дизайну, какой питон?
Аноним 08/04/21 Чтв 22:25:37 #36 №1990597 
>>1990586
Последние 10 лет небось занимался лишь дрочевом tpl-шаблонов со вставками жкьюри да косплеем жавовского спринга, устраивая из него каргокульт?
Аноним 08/04/21 Чтв 22:43:53 #37 №1990603 
>>1990429>>1990453
>>Так и сделал, он ту же самую ошибку выдает, хотя в самый первый раз оно почему то сработало
В третьей строке nums добавь к return
Аноним 08/04/21 Чтв 22:46:01 #38 №1990604 
>>1990597
Не братан, я вообще даун торговый представитель, с кодом не знаком ни капли.
Аноним 08/04/21 Чтв 23:26:16 #39 №1990630 
Как вообще для вката jetbrains academy + leetcode + свой аналог двощей на джанге? Плюс ещё Кормена наебнуть и что-нибудь по проектированию рестухи. Из опыта в ит стажировочка по системной АНАЛитике и 3 курс вузика по прикладной информатике. Плюс пара хаков выигранных. Хватит такого чтобы каким-нибудь джуном пойти или ещё чего-то наебнуть?
Аноним 08/04/21 Чтв 23:31:20 #40 №1990633 
>>1990604
Если тебе это интересно, то очевидно стоит попробовать. Но будь готов к тому, что при лучше раскладе уйдёт около полугода на вкат джунобомжом.
Аноним 08/04/21 Чтв 23:48:47 #41 №1990640 
>>1990479
Плиз хелп!
Аноним 08/04/21 Чтв 23:59:06 #42 №1990644 
>>1990429
Убери мутабельную переменную из дефолтного значения. Это первое. И никогда так не делай. Она инициализируется 1 раз и если вызовов функции будет два, то ты охуеешь искать где баг, так как предыдущий вызов будет влиять на следующий.
Второе, ты когда функцию вызвваешь для списка из 1 числа, то возвращаешь None. А питон складывать None со списком не умеет. На это питон и ругается. А вот эти долбаебы советчики я вообще в ахуе
>>1990444
>>1990434
Но вот этот дебил просто пиздец. Язык у него через раз работает, пиздец. Мозги у тебя через раз работают просто >>1990446
Аноним 09/04/21 Птн 00:02:47 #43 №1990646 
>>1990479
Сформулируй свою мысль, читать невозможно
Аноним 09/04/21 Птн 00:04:43 #44 №1990649 
Потихоньку учу питон, вкатываюсь в функции. Попробовал подключиться к рабочей базе данных, и сначала не получалось, потому что код был такой: https://ideone.com/XaTPfr

Потом я добавил функцию main, которая вызывает connection внутри test, и оно заработало: https://ideone.com/z1yujK

Почему не работал мой вариант? Я думал, что если возвращаю через return результат подключения (conn), то могу использовать его как аргумент в следующей функции.
Аноним 09/04/21 Птн 00:05:43 #45 №1990651 
>>1990604
Пиздос, тебе сейчас фантазер уже 1 написал про "войти в айти за полгода". Кроме того, что это обесценивание знаний, так еще и просто неправда. В лучшем случае, если повезёт года полтора. В среднем на два года расчитывай. Сюда докидывай от месяц до трёх на поиск работы(в зависимости от региона и размера города).
Аноним 09/04/21 Птн 00:08:12 #46 №1990653 
>>1990649
Бля, тут все глухо. Даже объяснять бессмысленно. Попробуй с чего попроще понять. Ты просто не понимаешь как работают функции
Аноним 09/04/21 Птн 00:12:26 #47 №1990657 
>>1990653
Я пробовал читать/смотреть гайды, везде пишут/говорят, что вот, мол, хуе-мое, вот функция, возвращаем ее результат, и теперь мы можем этот результат использовать дальше. И никаких main() там не было.
Аноним 09/04/21 Птн 00:15:46 #48 №1990661 
>>1990657
Плохо читал и смотрел. Давай так — что такое переменная?
Аноним 09/04/21 Птн 00:21:49 #49 №1990666 
>>1990661
Это заглушка, вместо которой можно подставить любое значение.
Аноним 09/04/21 Птн 00:31:18 #50 №1990670 
>>1990649
В 1 варианте ты в функцию test() не передал connection().
Аноним 09/04/21 Птн 00:32:47 #51 №1990673 
>>1990567
ЛОЛ, тут в дваче расшаривал игры?
как оно тебе?
что еще за дичь мутил?
Аноним 09/04/21 Птн 00:35:10 #52 №1990676 
>>1990670
Да, во втором случае я это и сделал. Но я-то думал, что передавая в test - conn как результат функции connection, оно будет работать. И вот я не понимаю, почему это так не работает.
Аноним 09/04/21 Птн 00:37:06 #53 №1990678 
>>1990630
бамп вопросу
Аноним 09/04/21 Птн 00:38:09 #54 №1990680 
>>1990649
Надеюсь ближайшие 5 лет 95% вкатывальщиков, которые параллельно лезут на рынок вместе с мной, будут вот такими, тогда себя не таким отбитым уёбищем ощущаю.
Аноним 09/04/21 Птн 00:41:52 #55 №1990682 
>>1990676
Так в 1 примере ты ничего не передал в test, на 20 строке у тебя вызов функции.
Аноним 09/04/21 Птн 00:42:41 #56 №1990683 
>>1990680
Ну не токси, лучше бы помог анчоусу разобраться.
Аноним 09/04/21 Птн 00:46:41 #57 №1990687 
>>1990682
Ааа, ты про 20-ю строчку. Я думал, ты про 13-ю. Ну окей.
Аноним 09/04/21 Птн 00:49:27 #58 №1990689 
>>1990687
Кекус, на 13 ты ОПРЕДЕЛЯЕШЬ функцию
Начни с базы, анчоус, почитай доки
Аноним 09/04/21 Птн 00:49:48 #59 №1990690 
>>1990683
>Я думал, что если возвращаю через return результат подключения (conn), то могу использовать его как аргумент в следующей функции.
Вызовом функции connection() на 11 строке ты "создал" объект подключения в памяти, но не привязал его ни к какой переменной (ссылке).
Потом ты на 20 строке вызываешь функцию test(), которая принимает на вход что-то, в твоём случае объект подключения, но ты ей ничего не передал, поэтому ничего не работает.
Аноним 09/04/21 Птн 01:07:00 #60 №1990702 
>>1990649
Чтобы использовать результат одной функции в другой, нужно этот результат получить, а потом передать в другую функцию. Сходство названий переменных в телах аргументах разных функций ничего не означает - переменные, объявленные внутри функции, живут только внутри этой функции.

def f1(): x = 0; return x
def f2(): x = 1; return x
def g(x): return x + 1
print(g(10)) # 11, не 1 и не 2

Чтобы использовать возвращаемое значение одной функции, ее явно нужно передать в другую функцию:

result = f1()
print(g(result))

Или сокращенно print(g(f1())).

В твоем случае, в строке 11 создается и тут же выбрасывается объект соединения (т. к. ты не сохранил результат работы функции ни в какую переменную и никуда не передал). В строке 20 функция тест отказывается запускаться, потому что ты не передал туда никакого значения conn.

Что почитать: LEGB rule - алгоритм поиска переменной в питоне; lexical scope.
Аноним 09/04/21 Птн 01:19:47 #61 №1990709 
>>1990646
Есть эндпоинты, они разные. На них нужно писать тест юниты в пайтесте.
Чтобы не писать кучу одинаковых тестов где меняются лишь юрл нужно что-то придумать.
Пока сделал следующий образом. В файл записал ссылки. Сделал один тест и в этот тест через pytest.paramerize закидываю по одной ссылке. Вроде норм.
Но теперь в эндпоинте поменяли адрес с .com на .net например. Можно ли как-то иначе передавать данные в тест чтобы ссылку можно было порезать и в случае изменения домена проставлять нужный.
Аноним 09/04/21 Птн 01:24:41 #62 №1990715 
GztUAW4u0Kc.jpg
>>1990702
Охуеть. От души за пояснение, анон!
Аноним 09/04/21 Птн 09:54:03 #63 №1990847 
>>1990415
>Я правильно понял, что сокеты подходят только, если клиент написан на питоне?
Нет, неправильно
> как код из этого видика переделать, чтобы это все крутилось в браузере?
Видеву не смотрел, но судя по превью, там речь идет о голых tcp-сокетах, это не те сокеты, что ты ищешь. Тебе нужны вебсокеты, используй их. Сервер можешь на питоне пилить, а клиента, раз клиент в браузере, на джаваскрипте.
Аноним 09/04/21 Птн 11:03:11 #64 №1990896 
Питонусы, обьяснити нубасы что такое эндпоинт. Ручка Строка реста? Или под этим иногда подразумевают что-то ещё?
Аноним 09/04/21 Птн 11:09:29 #65 №1990900 
>>1990896
host:port/api/user/{id}

Вот пример эндпоинта. Например шлёшь GET api/user/1 и получаешь запись из БД с id 1.

Аноним 09/04/21 Птн 11:09:57 #66 №1990901 
MAPTrentonJessy011.jpg
>>1990896
Видишь эндпоинт?
Аноним 09/04/21 Птн 11:10:40 #67 №1990902 
>>1990901
Типичное общение бэка и фронта по rest api
Аноним 09/04/21 Птн 12:19:39 #68 №1990950 
Аноны, кто работал с Instagram? Хочу себе сделать скрипт для автоматического постинга веселых картинок. Есть библиотека instabot. У нее в зависимостях numpy!!!1 и еще куча всякого.
Вопрос: Есть что-нибудь полегче? Или пох юзать этого инстабота?
Аноним 09/04/21 Птн 12:43:53 #69 №1990973 
launcher.png
gun.gif
>>1990673
>ЛОЛ, тут в дваче расшаривал игры?
Не, боюсь диванона и травли храню петы на гитхабе
>как оно тебе?
Было весело делать, вообще делал эту игру только потому что нарандомил её в programming challenges
pygame довольно прост сам по себе, если делаешь что-то небольшое
Сложнее было делать лаунчен на PyQt пикрил который кстати сука при темной теме GTK делает шрифт Qt невидимым, потому что я еблан не поправил конфиг
По итогу я не знаю как лаунчер в целом работает, просто гуглил, читал мануал и подстраивал чужой код под себя
>что еще за дичь мутил?
Смотря о чем вопрос, в целом на пистоне много всякой дичи делал, веб-приложухи, скрипты для автоматизации каких-то задач в ОС
Если про другие игры на pygame, то делал alien invaders, по гайду из одной книги python crush course, но это супер давно было, тоже ничего сложного по сути, пытался сделать платформер потом, но ничего из этого не вышло
Если про игры вообще, то еще в шараге была задача сделать тот же alien invaders но уже на ассемблере
Вот это реально треш был, там мозги кипели жестко, зато теперь понимаю как вообще все устроено на уровне железа

BTW, после шараги начал вкатываться, не справился с требованиями к web ждунам, потому что там была какая-то ебейшая математика и 100500 фреймворков и вот уже год работаю в банке, чищу вилкой данные для дата-сатанистов, строю etl'ки
Аноним 09/04/21 Птн 13:24:08 #70 №1991006 
>>1990666
Нет. Вот попробуй с этого начать. Ты пропустил самую важную часть программирования
Аноним 09/04/21 Птн 13:26:40 #71 №1991008 
>>1990709
Бля, что у тебя на эндпоинты подаётся и возвращается, что ответ отовсюду одинаковый? Или это последствия гениальной архитектуры?
Аноним 09/04/21 Птн 13:28:25 #72 №1991010 
>>1990651
Братюни спасибо за позитивные слова, я как бы не планирую моментально стать профикодером, рассчитываю на работу примерно через 1,5 года, то есть 18 месяцев на вкатывание.

Пока начал с Яндекс практикума, и хочу составить список литературы для понимания основ, слышал про некого Савина как он?
Аноним 09/04/21 Птн 14:00:01 #73 №1991029 
>>1990586
>>1991010
Чел, а можешь подробнее о себе? Какое у тебя образование? Как математика в школе давалась? Есть ли хоть какой-то интерес к программированию и информационным технологиями или просто хочешь работать за 300к?
Аноним 09/04/21 Птн 14:13:34 #74 №1991041 
изображение.png
Анчоусы, подскажите , как работать с json.
Библиотеку глянул, ну нихуя не понял, смог только вытащить структуру словарём. Но наверное же есть методы чтоб кокретный кусок только доставать, а не копаться в словарях тройного вложения.


И вопрос вопрос номер два. Если есть вложеный словарь, можно сразщу получить доступ в N вложение, если знаешь ключи, или только в цикле перебирать?
Аноним 09/04/21 Птн 14:14:57 #75 №1991042 
>>1991041
Нету, ты строку приводишь к словарю. Потом с ним и работаешь
Аноним 09/04/21 Птн 14:17:47 #76 №1991046 
изображение.png
19345011.jpg
LVP1002Dfront.jpg
>>1991041
Аноним 09/04/21 Птн 14:17:49 #77 №1991047 
Дублирую вопрос...
Как вообще для вката jetbrains academy + leetcode + свой аналог двощей на джанге? Плюс ещё Кормена наебнуть и что-нибудь по проектированию рестухи. Из опыта в ит стажировочка по системной АНАЛитике и 3 курс вузика по прикладной информатике. Плюс пара хаков выигранных. Хватит такого чтобы каким-нибудь джуном пойти или ещё чего-то наебнуть?
Аноним 09/04/21 Птн 14:24:59 #78 №1991054 
изображение.png
>>1991046
Я ничего не понял
Аноним 09/04/21 Птн 14:30:02 #79 №1991060 
изображение.png
>>1991054
Ой блять, это питонотред, ошибся немного
Аноним 09/04/21 Птн 14:43:08 #80 №1991079 
>>1991060
А теперь как понял. Спасибо анон.
Аноним 09/04/21 Птн 14:49:51 #81 №1991088 
>>1991041
json.loads()
json.dumps()

json.load()
json.dump()

Вот и всё, что тебе нужно. Прочитай в инете про них, не займёт и 5-ти минут
Аноним 09/04/21 Птн 14:54:37 #82 №1991090 
Можно ли в питоне написать код на любом япе и вставить как модуль, как это будет выглядеть, сильно сложно? На уровне пит компилятора должно же быть что-то что будет все это понимать и переводить. Нет?
Аноним 09/04/21 Птн 15:06:10 #83 №1991099 
А как вообще сделать перебор регистра?
К примеру строка qwert
сделать ретёрн
qwert
qwerT
qweRt
qweRT
qwErt
qwErT
и тд
Аноним 09/04/21 Птн 15:11:28 #84 №1991104 
>>1991090
На уровне кого?
Аноним 09/04/21 Птн 15:16:02 #85 №1991106 
>>1991090
1 Пишешь код на другом япе
2 Запускаешь его из Питона через subprocess
3 Profit
Аноним 09/04/21 Птн 15:17:23 #86 №1991107 
>>1991099
chr(ord('c') + 1) выводит 'd'
Дальше сам
Аноним 09/04/21 Птн 15:18:13 #87 №1991109 
>>1991099
Какая задача?
Аноним 09/04/21 Птн 15:18:29 #88 №1991111 
>>1990973
как тебе работа в банке? платят норм?
кем там числишься? младшим баг дата сиентисом или типа того?
Алсо что за шарага была?
Аноним 09/04/21 Птн 15:29:59 #89 №1991118 
>>1991109
По сути брутфорс с использованием словаря паролей.
Только надо ещё не просто из файла брать варианты, а и перебирать регист букв
Аноним 09/04/21 Птн 15:35:35 #90 №1991119 
>>1991104
На уровне питоновского компилятора. Хз как он там называется, байт машина.

>>1991106
Я про то что как модуль, вызывая методы. Видел подобное для асма.
Аноним 09/04/21 Птн 15:48:25 #91 №1991128 
>>1991041
Посмотри на библиотеку
jsonpath-ng
она как раз для этого. Аналог xpath в xml
Аноним 09/04/21 Птн 16:08:30 #92 №1991142 
>>1991119
Передавай жсоном или аргументами командной строки в отдельную программу на другом языке данные и метод который нужно выполнить, лови ее ретурн. Или ты память общую хочешь?
Аноним 09/04/21 Птн 16:15:54 #93 №1991145 
>>1991090
https://wiki.python.org/moin/IntegratingPythonWithOtherLanguages
Аноним 09/04/21 Птн 16:23:07 #94 №1991150 
16155839488740.png
>>1991111
квадриплу грех не ответить
>как тебе работа в банке? платят норм?
Т.к. первая работа, то сравнивать особо не с чем
Понатыканая везде "безопасность" зачастую мешает работать, например мне нужен был один плагин для текстового редактора, так для него нужно завести заявку и ожидать ответа месяц, чтобы админы САМИ тебе его накатили
Также не нравится стек, но я думаю так везде сраное древнючее легаси без внятной документации
З.п. - немного ниже среднего для джунов, но грех жаловаться, потому что я большую часть дня ебланю удаленка, а потом закрываю довольно простые задачи за несколько часов
Если попадается что-то сложное, то спрашиваю помощи и трачу чуть больше времени
>кем там числишься? младшим баг дата сиентисом или типа того?
Не, все довольно банально - "младший разработчик"
>Алсо что за шарага была?
Не самая плохая, но и не самая хорошая
Как мне кажется в них разницы нет, в любом случае на одной шараге далеко не уедешь, если бы я пытался устроиться только с теми знаниями, что получил там, сейчас бы работал в пятер очке
Хотя все же были хорошие преподы, которые делились реально полезными знаниями
Аноним 09/04/21 Птн 16:23:54 #95 №1991151 
>>1991099
https://ideone.com/Hc2lgo
Аноним 09/04/21 Птн 16:25:06 #96 №1991153 
>>1991151
я уверен что это не лучшая реализация но оно работает...
Аноним 09/04/21 Птн 17:24:54 #97 №1991213 
Что нужно знать из питона чтобы успешно фрилансить, на какие задания есть спрос на питоне.
Аноним 09/04/21 Птн 18:07:58 #98 №1991255 
>>1991029
Я гуманитарий, в одной школе математика не заходила был троечником . Но когда я перешёл в другую школу, то стал отличником по математике и весь класс у меня списывал, истинна где-то посередине получается, в общем 4. Любимый предмет черчение.

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

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

Такая мотивация.




Аноним 09/04/21 Птн 18:31:07 #99 №1991276 
>>1991255
Программирование морально тяжёлая сфера.

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

Вот ты смотришь код, тебе надо что-то подправить и доработать. Но для этого надо разобраться в куче тебе непривычного и непонятного, зачем там как-то сделано, почему криво (на это есть причины обычно), как переделать, чтобы было не криво и т.п.

Аноним 09/04/21 Птн 18:33:27 #100 №1991278 
>>1989943 (OP)
Знатоки, подскажите, почему этот код https://ideone.com/I9qfNc работает так странно. Список my_list объявлен глобально и в обеих функциях мы заводим локальные списки и возвращаем их.
Так почему глобальный список изменяется?
Аноним 09/04/21 Птн 18:43:12 #101 №1991286 
Что учить чтобы легче работу найти фласк или джангу?
Аноним 09/04/21 Птн 18:44:49 #102 №1991288 
>>1991278
В test_append ты аппендишь ссылки на элементы, это одни и те же списки в итоге. Надо копировать.
Аноним 09/04/21 Птн 19:04:23 #103 №1991299 
>>1991286
> Что учить чтобы легче
Фласк
> легче работу найти
Джангу

Аноним 09/04/21 Птн 19:05:56 #104 №1991301 
>>1991150
корка шараги помогла при устройстве на работу? ты кстати из милионника? пиздец у вас там админы отмороженные!
Аноним 09/04/21 Птн 19:17:17 #105 №1991313 
>>1991288
То есть, если я хочу создавать независимый список списков из частей другого списка со списками мне нужно делать deepcopy его частей?
Аноним 09/04/21 Птн 19:19:39 #106 №1991317 
>>1991313
deepcopy это для всяких сложных вложенных структур, для простого списка достаточно copy или того же [:]
Аноним 09/04/21 Птн 19:30:49 #107 №1991320 


Передаю в __init__ класса, объект другого класса.
Все окей
def __init__(self, obj):
----self._obj = obj


НО! Я не могу передать self._obj в декоратор как аргумент
@decor(self._obj)
def blabla_function():
----pass


NameError: name 'self' is not defined

Как обойти эту хрень?
Аноним 09/04/21 Птн 19:35:02 #108 №1991325 
>>1991320
У тебя ведь будет доступ к аргументам внутри декоратора, 1й аргумент это self, хуль тебе надо?
Аноним 09/04/21 Птн 19:38:50 #109 №1991327 
>>1991320
Декоратор - внешняя функция, не знает он никаких self, cls и т.д., если только ты не определил его как метод класса, в чем я очень сомневаюсь
Аноним 09/04/21 Птн 19:39:31 #110 №1991328 
изображение.png
>>1991327
Аноним 09/04/21 Птн 19:41:08 #111 №1991329 
>>1991328
Ага. И? Сам то понял?
Аноним 09/04/21 Птн 19:44:10 #112 №1991331 
изображение.png
>>1991329
Пиздец дети обленились, без Папки не могут нихера
Аноним 09/04/21 Птн 20:02:56 #113 №1991337 
>>1991008
Именно так брат. Такие эндпоинты.
Аноним 09/04/21 Птн 20:07:51 #114 №1991340 
Как вообще для вката jetbrains academy + leetcode + свой аналог двощей? Плюс ещё Кормена наебнуть и что-нибудь по проектированию рестухи. Из опыта в ит стажировочка по системной АНАЛитике и 3 курс вузика по прикладной информатике. Плюс пара хаков выигранных. Хватит такого чтобы каким-нибудь джуном пойти или ещё чего-то наебнуть?
Аноним 09/04/21 Птн 20:07:54 #115 №1991341 
restapi.jpg
>>1990901
Аноним 09/04/21 Птн 20:44:41 #116 №1991366 
16157922624470.jpg
>>1991301
>корка шараги помогла при устройстве на работу?
Я не знаю насколько это зашквар по меркам двача, но у меня короче СПО ПТУ
Насколько я узнал из тредов МЫ ВАМ ПЕРЕЗВОНИМ, подобных кандидатов отсеивает автоматический фильтр, так что их хрюши даже не видят, поэтому я поменял своё СПО на высшее в резюме и по итогу меня самого пригласили после пары недель тестовых в интересные мне компании, которые я успешно заваливал

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

>ты кстати из милионника?
Простой Иван, город Пекин

>пиздец у вас там админы отмороженные!
Подобная херня везде, где речь идет о бабках
Во всех банках без исключения наверное
Аноним 09/04/21 Птн 22:58:43 #117 №1991450 
Парни, есть запрос в базу который выполняется около десятка секунд, потому что собирает больно много данных, как правильно сделать "листалку" (пагинацию) чтобы запрос выдавал данные лишь кусками и база нагружалась меньше?
Аноним 09/04/21 Птн 23:09:41 #118 №1991456 
Встал вопрос о временном хранилище для ~50,000 пар key:string (строка - пару сотен символов) на время работы программы. Имеет смысл юзать Redis?
Аноним 09/04/21 Птн 23:10:47 #119 №1991458 
>>1991456
Да, это веб-приложение, если что.
Аноним 09/04/21 Птн 23:25:22 #120 №1991468 
>>1991456
Ну вообще имеет, редис охуенен.
А что за данные и зачем их хранить?
Аноним 09/04/21 Птн 23:48:22 #121 №1991477 
>>1991456
>Имеет смысл юзать Redis
Нет. 50к - это вообще ни о чем.
Аноним 09/04/21 Птн 23:49:46 #122 №1991478 
>>1991468
> А что за данные и зачем их хранить?
Грубо говоря, несколько десятков тысяч последних результатов вычислений от разных пользователей, чтобы они могли их между собой переиспользовать, а скрипт не делал лишнюю работу.

>>1991477
> 50к - это вообще ни о чем.
От какой планки тогда отталкиваться, миллионы?
Аноним 10/04/21 Суб 00:12:21 #123 №1991483 
>>1991478
>несколько десятков тысяч последних результатов вычислений от разных пользователей
Ага, ну отлично подходит, да.
Аноним 10/04/21 Суб 00:41:27 #124 №1991492 
>>1991366
Лол, что за прикольная картинка?
алсо ты реально из китая? поясни.
пиздато, значит можно пиздеть про вышку.
И кстати, почему заваливал собесы в другие компании?
Аноним 10/04/21 Суб 00:49:17 #125 №1991499 
Читал кто (а может и имеет цифровую копию) CPython Internals: Your Guide to the Python 3 Interpreter / Anthony Shaw , стоит внимания или есть ресурс получше для копания во внутренностях?
Аноним 10/04/21 Суб 00:58:28 #126 №1991503 
>>1991499
Она уже спирачена, в принципе, по содержанию выглядит достойно, я пока не читал.
Ещё есть такая книжка, но она попроще https://leanpub.com/insidethepythonvirtualmachine
Алсо, видел на ютубе серию лекций, но они про двойку, не знаю, насколько актуально, для общего развития сгодится, наверное.
Аноним 10/04/21 Суб 04:06:16 #127 №1991596 
>>1991450
Оператор. LIMIT поможет, надеюсь
Аноним 10/04/21 Суб 04:17:03 #128 №1991598 
>>1989943 (OP)
>https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Питоногоспода, вкадывающийся ИТТ, а возможности скачать все одним архивом на эту хуйню не завезли? Хочу полистать книжки, выбрать наиболее подходящую, но скачивать по одной займет тысячу лет.
Аноним 10/04/21 Суб 06:31:24 #129 №1991607 
>>1991596
В бд есть FETCH, но я слышал что лучше делать это на стороне приложения. При использовании FETCH в бд, она всё равно запрашивает все данные, но выдает порциями, а првильнее будет запрашивать только нужную часть.
Аноним 10/04/21 Суб 08:56:01 #130 №1991644 
16179866523140.png
>>1991331
Дак у тебя декоратор без аргументов же.
Аноним 10/04/21 Суб 09:04:10 #131 №1991646 
изображение.png
Как правильно делать импорт своих модулей?
Я думал просто импорт-название файла, но не работает.
Аноним 10/04/21 Суб 09:21:46 #132 №1991648 
>>1991646
Консоль запущена в корне проекта, у тебя будет WebApi.convert_time
Аноним 10/04/21 Суб 09:38:07 #133 №1991652 
a.png
b.png
c.png
Почему эта хуйня не работает?
Я же создал переменную и она стала глобальной ведь, но в модуле она не существует.

Как исправить код чтобы можно было дотянуться до этой переменной без явного импорта?
Аноним 10/04/21 Суб 09:49:50 #134 №1991656 
>>1991648
Понял, спасибо.
Аноним 10/04/21 Суб 10:24:01 #135 №1991663 
Если уже умею прогерить на другом яп то достаточно ли будет прочтения документации чтобы прохавать за синтаксис и либу языка? Или посоветуйте чего чтобы максимально быстро вкатиться.
Аноним 10/04/21 Суб 10:29:44 #136 №1991664 
a.png
b.png
>>1991652
Нашел решение, но его не рекомендуют.
Аноним 10/04/21 Суб 10:45:45 #137 №1991668 
236581273658.jpg
1616169479595.png
>>1991492
>алсо ты реально из китая? поясни.
На дваче же недавно тема была с автозаменой
тян - кошачья жена
ДС - Пекин
анон - простой Иван город Тверь
и тд

Или этого в тематиках не было, только в /b/?

>И кстати, почему заваливал собесы в другие компании?
Откликался на вакансии типо "знать фласку, пистон, ськуэль и тд." Потом приходило тестовое с докером, нгинксом и другими тулзами, которых указанно не было и я естественно сливался
Еще были ебанутые задания уровня "Рассчитайте коллизию двух сфер и визуализируйте полученные данные, если известно, что на вход будут подаваться примерно следующие данные"
Я конечно понимаю, что нужно уметь обрабатывать ошибки, но я ебал проверку автотестами с 1 попыткой, где ты даже не знаешь, что именно отработало не так
То есть ты пишешь код по мутному ТЗ, отправляешь его, запускаются автотесты - все отработало, окей, беседуем дальше, иначе иди нахуй должны отработать все задачи, которые были даны, без ошибок
Ну и мой самый любимый тип вакансий, которые никого не ищут, а просто смотрят че на рынке творится
Аноним 10/04/21 Суб 10:48:36 #138 №1991670 
>>1989943 (OP)
Аноним 10/04/21 Суб 10:50:23 #139 №1991672 
>>1989943 (OP)
Аноним 10/04/21 Суб 11:04:37 #140 №1991681 
Пишут что питон может все, а чего не может питон?
Аноним 10/04/21 Суб 11:07:35 #141 №1991683 
>>1991681
Может не питон, а чувак который прохавал питон охуеть как сильно.
Аноним 10/04/21 Суб 11:10:09 #142 №1991688 
R2-FSA-Graphic-for-9-Best-Programming-Languages-to-Learn-Bl[...].jpg
>>1991681
>может все
Кто говорит? Инфоцыгане? Проще перечислить то, что он может, чем то, чего не может
Пикрил в помощь
Аноним 10/04/21 Суб 11:12:43 #143 №1991692 
>>1991644
...
Угараешь? Нахрена передавать туда какие-то аргументы (которые все равно физически невозможно передать как тот чувак хочет) если есть работающее решение без этого говна?
Аноним 10/04/21 Суб 11:34:58 #144 №1991701 
>>1991688
Откуда это говно? Electron теперь не desktop? Dart теперь не мобилка?
Аноним 10/04/21 Суб 11:46:13 #145 №1991706 
>>1991701
Первую попавшуюся пикчу с гугла залил, для общего понимания пойдет
Аноним 10/04/21 Суб 13:14:53 #146 №1991753 
>>1991668
А, то есть ДС?
такое проскакивало в пораше вроде но недолго, буквально несколько дней пофорсили и все.
и то в основном в связи пыня низкий рост редкий волос
Что за вакансии которые никог оне ищут? Это какие то исследовательские агенства?
алсо тесты с автопроверкой это пиздец дичь, ну там при сдаче даже не указывается где ошибка? пиздец они психи.
рад что попал в банк?
Аноним 10/04/21 Суб 13:15:36 #147 №1991754 
>>1991688
Странно что нету пхп, на нем весь веб, фейсбук и еще куча чего.
Аноним 10/04/21 Суб 13:54:08 #148 №1991773 
>>1991692
Тот чувак это я и есть. И изначально мой декоратор должен был получать число и объект другого класса. Но поебавшись 2 дня, я нашел другой способ. Теперь мой декоратор получает только число.
Аноним 10/04/21 Суб 16:20:06 #149 №1991933 
>>1991773
>и объект другого класса
ВНЕЗАПНО: без задней мысли взял и передал в декоратор, что сложного?
Аноним 10/04/21 Суб 16:46:57 #150 №1991965 
>>1991664
Функция globals тебе список глобальных переменных файла, а не папки.
В любом случае, явный импорт - лучшее решение. Какой бы ни была проблема.
Аноним 10/04/21 Суб 17:01:30 #151 №1991987 
>>1991688
А с помощью чего делают desktop applications на языке пайтон? Хочу сделать одну хуйнюшку для души.
Аноним 10/04/21 Суб 17:07:45 #152 №1991997 
>>1991987
PyQt
Аноним 10/04/21 Суб 17:20:33 #153 №1992017 
Уважаемые питонисты, прошу совета. Мне нужно визуализировать около 20Гб данных, записанных в бинарники. Теперь собственно сам вопрос, что для этой цели лучше использовать? Пока что выбор пал на язык R, но может есть какие нибудь библиотеки для питона?
Аноним 10/04/21 Суб 17:41:48 #154 №1992036 
a.png
b.png
>>1992017
Библиотека matplotlib, а также не плохая bokeh





Эвент луп блокирует прибавление нового значения в поле у объекта класса. Как обойти эту проблему?
Код запущен через multiprocessing
Аноним 10/04/21 Суб 18:46:50 #155 №1992086 
a.png
>>1992036

Решил запустить асинхронно. Но multiprocessing не давал этого сделать. TypeError: cannot pickle 'coroutine' object sys:1: RuntimeWarning: coroutine 'Test.event_loop' was never awaited

Но в threading все получилось.
Я так и не понял почему.
Аноним 10/04/21 Суб 19:01:04 #156 №1992094 
image.png
>>1991754
>Странно что нету пхп
Аноним 10/04/21 Суб 19:04:56 #157 №1992098 
>>1992086
Потому что "cannot pickle 'coroutine' object" - он же сам говорит
Он не может в бинарный формат корутину перегнать чтоб потом ее десереализовать
Аноним 10/04/21 Суб 19:06:59 #158 №1992105 
Screenshot 2021-04-10 at 21.05.26.png
>>1992098

А почему трэдинг может?
Аноним 10/04/21 Суб 19:08:13 #159 №1992106 
170527728.jpg
>>1992105
Потому что он ничего не сериализует. Очевидно же
Аноним 10/04/21 Суб 19:11:00 #160 №1992108 
>>1992106
Спасибо улиточка, но ни хуя не понятно
Аноним 10/04/21 Суб 19:38:50 #161 №1992137 
>>1992105
Неправильно, пикл это любые маринованные штуки.
Аноним 10/04/21 Суб 21:00:35 #162 №1992259 
tkinter
Аноним 10/04/21 Суб 21:49:34 #163 №1992307 
>>1992108
Общее пространство памяти, не надо передавать объект в другой процесс ( для передачи его надо запаковать - pickle).
И для трединга другая метода передачи объектов из одной asyncio.loop в другой
Аноним 10/04/21 Суб 23:26:32 #164 №1992383 
>>1992307
>для трединга другая метода передачи объектов из одной asyncio.loop в другой
трединг же независим от asyncio?
Аноним 11/04/21 Вск 00:10:01 #165 №1992417 
Аноны, посоветуйте литературу по AWS. Хочу расширить границы познания дальше простых операций с EC2 инстансами.
Аноним 11/04/21 Вск 07:12:30 #166 №1992490 
>>1992307
Фигасе сколько тонкостей
Аноним 11/04/21 Вск 07:42:22 #167 №1992492 
Всем привет.
Начал, как тот торговец-каджит выше, вкатываться в программирование на питоне...
35, 5 лет вахты ведущим инженегром ПТО, в/о теплоэнергетик, программировал в школе на турбопаскале. Сам с микропосёлка в залупе мира.
Повелся на пиздеж отца, что энергетик царь и бог + электростанция под боком.
Пришел к тому, что заебло морозить жопу в ебенях с уральским и прочим быдлом настолько, что уже физически тошнит от тупорезов + потолок по зарплате в моей сфере это 150к~2k$/
Так шо пока сижу на работке, изучаю Питон, прохожу Я.Практикум, хочу заказать на алике ардуино наборчик, собрать какого-нибудь робота с племянником и прикрутить к нему питон, сделать простое приложение на телефоне, чтобы можно было управлять и тд.
Короче, вот такое хобби.

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


Аноним 11/04/21 Вск 08:08:49 #168 №1992495 
>>1992492
полюбому пасто откуда то
Аноним 11/04/21 Вск 08:11:11 #169 №1992497 
>>1992495
ммм, нет, можешь яндекснуть/гуглануть.
Аноним 11/04/21 Вск 08:49:12 #170 №1992504 
>>1992492
https://www.youtube.com/watch?v=yuJyzlrJ3vw
Аноним 11/04/21 Вск 08:55:34 #171 №1992505 
>>1992495
Не, не паста. А если паста, то неизвестная.

>что энергетик царь и бог
Но это ведь правда.
Аноним 11/04/21 Вск 09:49:01 #172 №1992521 
>>1992505
царь и бог говна, пара и электричества

Аноним 11/04/21 Вск 09:51:55 #173 №1992522 
Лутц выбесил. Про сраное импортирование столько воды налил, что пиздец. Раза в два больше, чем про функции. При чём функции как раз надо разжёвывать в деталях с кучей примеров, но он оче кратко всё описал и побежал дальше. А ебаные каталоги и импортирование модулей у него размазано на миллиард абзацев, при чём часто повторяя одно и тоже. Сука. Там вся инфа на 2-3 страницы от силы.
Аноним 11/04/21 Вск 09:54:16 #174 №1992524 
>>1992521
Говно и электричество будут всегда. Кому-нибудь всегда надо будет всё это хозяйство обслуживать, а оно с каждым годом всё сложнее и сложнее.

А программу один раз написал, и она после этого работает, ты не нужен становишься.
Аноним 11/04/21 Вск 10:01:42 #175 №1992530 
Есть два стула: pytest-bdd и behave

На какой сам сядешь, на какой девопса посадишь?
Аноним 11/04/21 Вск 10:04:30 #176 №1992532 
>>1992524
надоело уже...
хочется эволюционировать)
Аноним 11/04/21 Вск 10:13:37 #177 №1992538 
>>1992524
> электричество будут всегда
Разве что статическое, когда трешь кота.
Аноним 11/04/21 Вск 13:04:52 #178 №1992610 
Сап питонач.
Я в процессе вкота в питон, для начала запилил простенького дискорд-бота для практики и теперь думаю что делать дальше. Из того что я уже нагуглил/прочитал в нюфак треде - для того чтобы иметь хоть какие-то шансы на трудоустройство нужно изучить какой-нибудь фреймворк и REST api. Решил начать с фреймворка и выбрал Джангу, но пока гуглил гайды - понял что в некоторых местах мои знания явно проседают. В шапке дохуя книг, но какие из них нужны - непонятно.

Посоветуйте книжку по Джанге и книжку по Ресту, да и вообще разных советов мудрых.
Аноним 11/04/21 Вск 16:08:19 #179 №1992745 
>>1990847
Спасибо, анон. Таки нашел пример с вебсокетами, где клиент шлет запросы из браузера, очень годно. https://www.youtube.com/watch?v=4haMUvUxUJI&list=LL&index=1
Теперь есть еще пара вопросов, если вкратце направишь буду крайне благодарен.
1) Я хочу сделать любую веб игру в которую играет 2 человека, хоть крестики нолики, главное чтобы состояние игры менялось после ходов игроков. Я так понимаю, что состояние игры и очередность хода без проблем будет считаться на сервере, хоть в каком нибудь словаре, а клиенты будут обращаться к серверу, видеть очередность хода и от этого уже можно будет сделать ход или нет и т.д. Как это масштабировать, чтобы одновременно могло несколько сессий проходить, чтоб разные люди могли играть. Тоже самое, только в словаре несколько сессий хранится? Подозреваю, что есть стандартное решение этого вопроса
2) Как проще всего вывести и вести разработку на реальном сервере, чтоб можно было не с локалхоста ебошить, а по нормальному адресу, чтоб можно было корешам скинуть показать что уже получилось, какой самый быстрый / легкий вариант?
Аноним 11/04/21 Вск 18:40:06 #180 №1992851 
>>1992745
Не смотрел, ткнул в пару мест.

На видео чувак реализует руками http протокол. Это как-бы странно, максимум для обучения полезно, чтобы понимать, что такое http протокол.

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

То, что нужно для твоей задачи, это использовать какой-нибудь асинхронный фреймворк. Например aiohttp.

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

>Тоже самое, только в словаре несколько сессий хранится?
Самое простое, ты хранишь id сессии, и словарь объектов-состояний игры. Скажем игровое поле, чей сейчас ход и т.п.

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

>какой самый быстрый / легкий вариант?
Вариант только купить себе хостинг на VPS, цена вопроса на уровне 5 долларов в месяц. Можно дешевле что-нибудь найти, но за 5-10 долларов в месяц есть какие-то очень-очень приличные варианты.

Бесплатно такие вещи не очень дают из соображений безопасности.
Аноним 11/04/21 Вск 20:31:30 #181 №1992923 
Я делаю учебный проект в котором с каждым шагом накидываются дополнительные задачи. Нигде не пояснено - могу ли я в проекте каждую подзадачу делать в отдельном файле, чтобы титульный у меня только спрашивал какую функцию я хочу запустить и брал их из файлов, так же нигде пока не написал - нормально ли это писать все просто в одну страницу, но лично мне так кажется как-то монструозно.
Где почитать или может есть простой ответ как разбивать проект на файлы и оформлять по человечьи сразу?
Аноним 11/04/21 Вск 21:46:19 #182 №1992999 
>>1992985
Спасибо, я уловил, вот только понятия класс еще не видел(я знаю что это такое, но в "программе" пока не подразумевается что мне стоит париться с этим пока)
Но главное что я понял что это import. Т.е. он сразу поймет что я импортирую из соседнего файла в проекте, а на будущее - если я захочу импортировать из другого проекта - мне надо сначала добавить фаил в проект или можно как-то import ~/Pidoras/musor/proecthuini hyinya.py zashkvarclass? Или так делать не принято из-за неразберихи с файлами и невозможности запустить проект если я забуду отправить все человеку и он не распихает все по директориям так же(или у него вообще винда)?
Аноним 11/04/21 Вск 21:52:58 #183 №1993007 
1618170767564.jpg
Я не могу осилить эту книгу. Что со мной не так? Дошёл до for и while и не смог выполнить задания в конце главы. Я один такой?
Аноним 11/04/21 Вск 21:54:33 #184 №1993010 
>>1993007
Какое задание?
И почему ты выбрал для детей книгу?
Аноним 11/04/21 Вск 22:35:07 #185 №1993080 
>>1993007
Я решил открыть рандомную книгу, только не для детей и понял информацию сразу. А эта книга создана дьяволом. Я даже не представляю, как её смогут понять дети.
Аноним 11/04/21 Вск 22:36:02 #186 №1993083 
>>1993080
Там в аннотации не написано что она должна даваться детям в придачу к преподу?
Аноним 11/04/21 Вск 23:18:35 #187 №1993163 
>>1993007
Надо было с сишки начинать, она более понятна для новичков.
Аноним 12/04/21 Пнд 00:47:52 #188 №1993272 
>>1992522
Так блять с импортами в питоне пиздец тонкостей дохуя. А функции это прос о функции. Ничего необычного.
Аноним 12/04/21 Пнд 01:28:06 #189 №1993286 
Тяжело у вас вообще первую работу найти?
Аноним 12/04/21 Пнд 01:40:35 #190 №1993297 
>>1993286
Я учу по фану и мне похуй, но я уже вижу что работы "хуила питоновая" не существует как с джавой, например, это либо дрочила цифер у которого плюсом идет ЛЮБОЙ скриптовый язык, либо питон написан десятым языком в требования, либо вообще в позиции "ну было бы не плохо, а вообще нахуй надо". Смотрел по питеру если что. Я не знаю почему я выбрал питон, но я уже чувстую со всех сторон намеки на туповатость этого выбора.
Аноним 12/04/21 Пнд 01:43:10 #191 №1993303 
>>1993297
Для работы думаешь лучше жаву дрочить?
Аноним 12/04/21 Пнд 01:45:48 #192 №1993307 
>>1993303
Меня лучше не спрашивать, я еще неделю назад хеллоу ворлд писал
Аноним 12/04/21 Пнд 01:59:55 #193 №1993316 
>>1993307
Понял. Бтв почекай вакансии на джангу и фласк. Их вполне себе по количеству. Ну по крайней мере если ты в дс...
Аноним 12/04/21 Пнд 07:10:01 #194 №1993382 
>>1993007
ты не очень умный...
Аноним 12/04/21 Пнд 07:15:27 #195 №1993385 
программист питон.jpg
Аноним 12/04/21 Пнд 07:16:25 #196 №1993387 
>>1993385
уха, шашлык, плов, пельмени, блять...
Аноним 12/04/21 Пнд 08:33:34 #197 №1993425 
>>1993385
Пельмени к уху. Кринж то какой.
Аноним 12/04/21 Пнд 09:00:19 #198 №1993436 
16181671797210.jpg
>>1993007
Аноним 12/04/21 Пнд 10:01:59 #199 №1993462 
>>1993385
Это я должен прогать, а потом ещё шеф-поваром на лыжах у костра скакать с гитарой?)
Аноним 12/04/21 Пнд 11:23:01 #200 №1993532 
>>1993462
во время
Аноним 12/04/21 Пнд 13:00:27 #201 №1993612 
>>1989943 (OP)
Почему при асинхронном доступе к базе (например aio sqlalchemy) мы совершает await дважды: при запросе в базу и при доставании результата как вот тут:

async with self._connector() as connection:
----query_result = await connection.execute(query)
----rows = await query_result.fetchall()
Аноним 12/04/21 Пнд 13:01:10 #202 №1993613 
>>1993612
Достаточно же 1 await сделать - первый, что мы можем await-ить после?
Аноним 12/04/21 Пнд 14:57:44 #203 №1993728 
>>1993613
Чего там даже эвейта внутри не видно https://aiopg.readthedocs.io/en/stable/_modules/aiopg/cursor.html#Cursor.fetchall
Аноним 12/04/21 Пнд 15:13:23 #204 №1993750 
>>1989943 (OP)
> Параметры должны приниматься как в JSON, так и в POST формате параметров запроса.

Аноны, что за POST-формат параметров запроса? Это мне кастомные хэдэры передавать надо?
Аноним 12/04/21 Пнд 15:39:25 #205 №1993777 
>>1993612
Рискну предположить, что первый раз ты говоришь базе выполнить операцию, второй раз - получаешь от базы данные
Аноним 12/04/21 Пнд 15:49:19 #206 №1993786 
>>1993750
Это скорее всего формат form-urlencoded
Аноним 12/04/21 Пнд 15:50:28 #207 №1993790 
>>1993786
Хм, спасибо. Ни разу в REST с таким не сталкивался
Аноним 12/04/21 Пнд 16:10:40 #208 №1993802 
Пытаюсь подключиться к устройству в локальной сети:

import socket
s = socket.socket()
s.bind(('192.168.0.1', 1488))


Какой бы локальный айпишник не указывал получаю

OSError: [WinError 10049] Требуемый адрес для своего контекста неверен

ЧЯДНТ?
Аноним 12/04/21 Пнд 16:29:00 #209 №1993831 
Y8PQLF4q56U.jpg
Антоны, скажите правильно ли я составил список действий для того чтобы устроиться на работу по программированию?
Читаю грохаем алгоритмы>читаем лутца и выполняем задачи оттуда> опционально читаем кнута, параллельно пишем какую-то программу (и тут вопрос, для того чтобы путь от профана до работника был максимально краток, мне нужно акцентироваться на вебе, или можно заниматься приложениями? Хотелось бы конечно второе). Надо учить все так чтобы сразу засесть за работу, а не терять время на условной стройке, так что оклад устроит любой, лишь бы на еду хватало. И вообще сколько времени займет путь от профана до быдлокодера-работника?
Аноним 12/04/21 Пнд 16:37:14 #210 №1993844 
>>1993831
С таким бэкграундом тебя не возьмут никуда.
Аноним 12/04/21 Пнд 16:52:54 #211 №1993856 
>>1993844
Хорошо, я понимаю. Мне нужна хотя бы просто какая-то сверхзадача, чтобы на ней акцентироваться и от нее исходить. Есть какие-нибудь идеи вроде борды5000запросов в секунду как в той пасте?
Аноним 12/04/21 Пнд 17:06:34 #212 №1993870 
>>1993802
sock.bind(('', 1488)) попробуй
Аноним 12/04/21 Пнд 17:16:31 #213 №1993889 
https://www.youtube.com/watch?v=uAL-9AzQdQs

Поймал себя на мысли, что постоянно возращаюсь к питону, чтобы не начал изучать, за какой бы яп не брался или хотелся бы взяться. В чем подвох?
Аноним 12/04/21 Пнд 17:21:00 #214 №1993897 
>>1993889
Он прекрасен, это вершина человеческой мысли, ничего лучше нет и быть не может.
Мне на работе намекнули, что можно подучить питон и скинули ссылку на курс хотя изначально я шел на другие дела в этот проект, я очень скептически отнесся, потому что тяги к самообразованию у меня давно уже не было, но мне невообразимо зашло. Просто влюбился в него с первого взгляда. Продолжаю его изучать и выбиваю себе задачи на питоне, жизнь удалась.
Аноним 12/04/21 Пнд 17:25:22 #215 №1993902 
>>1993897
Если это не ирония, то в будущих версиях нас ждет оптимизация, еще более сахарный код, еще более плюшек, case конструкции, хз даже почему его так хейтят, мол для даунов и ничего не может. Веб, приложухи, даже уже микроконтроллеры есть. Как что еще нужно? Чел из видоса мониторил джобы по питону, на хх и прочих, там рили питон топ и больше всего строчек по нему. Даже по моей мухосрани строчек больше на питухоне чем на сях, жаве и прочем, но там практически только веб или всякие академгородки.
Аноним 12/04/21 Пнд 18:55:48 #216 №1994009 
Ухтыбля, в питоне можно русские буквы в названии переменных использовать!
Аноним 12/04/21 Пнд 19:33:22 #217 №1994031 
Как понять что я не пишу хуйню?
Тренировочные задачи, я решаю - изъебываюсь, затолкал все в функции, у меня идет работа с 5 переменными, которые я затолкал в листы, каждая функция либо лямбдой вычитает из оригинального листа количества, либо превращает некоторые элементы в нужные. Смотрю как ее васян со стак оверфлоу делает - тупо переменные +, переменные -, просто последовательный список операций с каждой переменной.
Короче у меня 50 строк, у него 97(с однаковыми отступами по ПЕП) и без комментариев.
Но с другой стороны у него как топор читабельно, у меня тоже(учитывая тупость учебной задачи), и обе задачи проходят проверку edutools
Вот это особо не поясняется кроме ублюдских видео на ютубе косого лысеющего хохла советующего не изобретать велосипед
Аноним 12/04/21 Пнд 19:37:51 #218 №1994033 
Я тут что то по ностальгии заглянул в ваш тред и стало интересно.
А веб на питоне сейчас до сих пор пишут на джангоговне или появилось что то нормальное?

мимо нода-тс бэкендер
Аноним 12/04/21 Пнд 20:05:35 #219 №1994061 
DASH480 (1).mp4
В общем чтобы не терять время я решил пойти по этому пути: https://m.habr.com/ru/post/311642/

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

Я: >>1993831
Аноним 12/04/21 Пнд 20:18:14 #220 №1994078 
>>1994033
ASGI-фреймворки погугли. Starlette особенно.
Аноним 12/04/21 Пнд 20:20:16 #221 №1994084 
>>1994078
Поглядел мельком, вроде прикольно. Но на вид, как будто это чисто новая мета. Или уже крупные дяди уже в проде используют?
Аноним 12/04/21 Пнд 20:24:43 #222 №1994090 
>>1993856
Конечно есть. Напиши свою имиджборду. И чтобы она выдерживала 3000 запросов в минуту.
Аноним 12/04/21 Пнд 20:28:07 #223 №1994096 
>>1994061
Это весьма очевидный список, ты его найдешь и в гугле, и если посмотришь программы курсов, там все есть прямо как на хабре. Я сегодня знатно проиграл, захожу на скиллбокс(потому что присылает мне рекламу в вк постоянно), там все эти курсы, вижу курс джанго за 12к, тысяча в месяц, думаю что когда дойду - подумаю стоит ли брать, типа тысяча немного, но я получу анального раба-препода отвечающего на вопросы, открыл этот курс, внизу кнопка - "скачать программу курса", нажимаю - кидает на главную страницу. КУРСЫ ЕБАНЫХ КОМПЬЮТЕРНЫХ МАСТЕРОВ, ПРОФЕССИЯ ВЕБ ДЕВЕЛОПЕР НАХУЙ ГЛЮЧНЫЙ ХУЕВО ОТОБРАЖАЮЩИЙСЯ САЙТ ХУЙНИ СДЕЛАННЫЙ КОНТУЖЕННЫМ ДИЗАЙНЕРОМ И ТАКИМИ ЖЕ ВЕБ МАКАКАМИ ЕБАЛ В РОТ.
И решил что сам когда придет время выучу джанго
Аноним 12/04/21 Пнд 20:32:46 #224 №1994103 
djjpg.jpg
>>1994096
>вижу курс джанго за 12к, тысяча в месяц
И вы могли подумать что он на год, а нет, он блядь на полгода. И там все цифры такие, например тестирование мобильных приложений 58800 на 9 месяцев, и это всего 2450 в месяц!
Я не могу это объяснить
Аноним 12/04/21 Пнд 21:22:37 #225 №1994130 
>>1994031
>у меня идет работа с 5 переменными, которые я затолкал в листы, каждая функция либо лямбдой вычитает из оригинального листа количества, либо превращает некоторые элементы в нужные.
Нихрена не понятно, что ты имеешь в виду. Смотреть надо. Если ты оптимизируешь строчки тем, что в одной строке делаешь две операции, то это ни разу не оптимизация.

Код должен быть читаемым и сопровождаемым. Не уверен, что это про твой вариант.

>косого лысеющего хохла
Если ты голубоглазая пышноволосая русня, что ты вообще в программирование лезешь? Или в манагеры по продажам, там симпатяшки нужны. А не те, кто что-то умеет.
Аноним 12/04/21 Пнд 21:26:13 #226 №1994132 
>>1993612
По идее, оба раза ты реально обращаешься к базе данных, по сети соответственно. Поэтому нужен await, синхронно лучше не делать.

Первым запросом СУБД разбирает запрос и помещает результат куда-то к себе в буферы. Из которого ты можешь запрашивать данные как построчно, так и все вместе. Вторым запросом бы именно выкачиваешь данные из СУБД к себе в процесс.
Аноним 12/04/21 Пнд 21:31:44 #227 №1994133 
Test

Аноним 12/04/21 Пнд 21:33:20 #228 №1994134 
hHQ1DedEvPA.jpg
>>1994090
То есть можно с этим прийти устраиваться?
>>1994096
Где то читал что нанимать препода - гиблое дело, у него ~30-50 учеников и отвечает он дежурными фразами, мол легче самому все это искать, а тому что могут дать на курсах ты один хрен сам научишься
>когда придет время
Звучит как оправдание не находишь? "Не получилось ну и ладно, главное что я старался". Не откладывай в долгий ящик
Аноним 12/04/21 Пнд 21:34:36 #229 №1994135 
>>1994130
>голубоглазая пышноволосая русня
Ну не совсем, я голубоглазая пышноволосая полунемчина полу жидяра, может мне можно все таки? Я уже в манагерах и админах клуба был, не хочу больше.
Аноним 12/04/21 Пнд 21:34:42 #230 №1994136 
>>1994134
Да
Аноним 12/04/21 Пнд 21:35:24 #231 №1994137 
>>1994134
Когда придет время я подразумевал когда я дойду просто до этого, я даже близко не подошел к разработке чего-то
Аноним 12/04/21 Пнд 21:40:39 #232 №1994140 
>>1994134
Не верю, что может быть какой-то смысл в дешёвых онлайн курсах.

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

В онлайне сложнее это обеспечить в принципе. Как-то можно, но это сложно и дороже будет. Хотя если с тебя много попросят, то не факт, что этим обеспечат.

Тебе в обучении нужна обратная связь, а здесь скорее всего её не будет.

Просто электронных материалов дофига и бесплатных. Тебе не нужно даже ворованные курсы с трекеров качать.

Возьми программу курса и сам изучи нужные темы по этой программе.
Аноним 12/04/21 Пнд 21:48:42 #233 №1994143 
>>1994084
Было бы странно, если бы не использовали. Сейчас вообще у пайтоновского веба своеобразный ASGI-ренессанс - думаю, скоро стандартом станет.
Аноним 12/04/21 Пнд 23:10:11 #234 №1994191 
>>1994031
Ты долбаеб в строчках оценивать качество кода? Два главных качества кода это поддерживаемость и читаемость. Чтобы оценить насколько все плохо у тебя с этим на данном этапе, напиши проект тысячи на полторы строк. Оставь его на месяцок-два, а потом открой и попробуй внести туда новый функционал. Вот как раза два-три такое придется сделать, так сразу поймёшь, что городить лямбды на ровном месте хуйня затея, что лучше написать топорно, чем хуячить редкоиспользуемые функции и модули, что экономия двух десятков строчек выливается в десятки часов ебли и охуевания от того, что ничего не работает.
Аноним 12/04/21 Пнд 23:11:38 #235 №1994195 
>>1994033
> А веб на питоне сейчас до сих пор пишут на джангоговне или появилось что то нормальное?
Что у тебя за проблемы с джангой?
Аноним 12/04/21 Пнд 23:14:23 #236 №1994199 
>>1994143
ASGI ренессанс потому что вышла ASGI джанга лол
Аноним 12/04/21 Пнд 23:21:35 #237 №1994207 
>>1994191
А комментарии для чего?
Аноним 12/04/21 Пнд 23:34:37 #238 №1994216 
Tkinter
Аноним 12/04/21 Пнд 23:35:32 #239 №1994219 
>>1994207
Если ты пишешь код, для которого нужны комментарии, то ты уже пишешь говнокод. Как минимум, ты заставляешь человека не только поддерживать код, но и поддерживать комментарии. Но это половина беды, вторая половина заключается в том, что говнокод на то и говнокод, что комментарии у тебя будут на 30-40 строк, что не просто не улучшит, а лишь ухудшит читаемость кода.
Но вообще это все лирика, просто напиши петпроект за недельку на тысячи полторы строк. И попробуй его поддерживать новым функционалом раз в месяц-полтора хотя бы три-четыре месяца. Как перепишешь код в пятый-шестой раз, то приходи за азами кодстайла в тред.
Аноним 13/04/21 Втр 00:08:17 #240 №1994244 
>>1994219
>Если ты пишешь код, для которого нужны комментарии, то ты уже пишешь говнокод
Ты бросаешься в крайности. Комментариями надо пользоваться для того, чтобы пояснять, зачем нужен некоторый кусок кода и почему его не надо удалять при рефакторинге. Ну и для пояснения сложных алгоритмов, которые иногда таки приходится писать. Короче - по обстоятельствам.
Аноним 13/04/21 Втр 00:17:56 #241 №1994254 
>>1994244
>пояснять, зачем нужен некоторый кусок кода
Этот кусок кода должен пояснять сам себя. Если он этого не делает, то вместо дрочева комментариев его надо переписать так, чтобы пояснял.
>и почему его не надо удалять при рефакторинге
Для этого должны быть тесты.
>Ну и для пояснения сложных алгоритмов
Если речь о математических алгоритмах, то там максимум нужна ссылка на википедию.
Аноним 13/04/21 Втр 00:32:18 #242 №1994259 
>>1994254
Код сам за себя может пояснять, что он делает. Но он не может пояснять, зачем он это делает.
Аноним 13/04/21 Втр 00:37:49 #243 №1994265 
>>1994254
>Этот кусок кода должен пояснять сам себя
Код сам может пояснять только то, что он делает, а не почему. Это две разные вещи.
>Для этого должны быть тесты.
А если их нет?
>Если речь о математических алгоритмах, то там максимум нужна ссылка на википедию.
Не совсем. Математические алгоритмы обычно заканчиваются подключением нужной библиотеки - тут комментировать не нужно. Я скорее про всякие ебанутые преобразования данных. Они встречаются в основном в датасаенсе, но и в других сферах тоже не исключены.
Аноним 13/04/21 Втр 00:37:52 #244 №1994266 
>>1994259
Это уже документация бизнес-логики или внешнего API, в комментариях сурс-кода такое не пишется и не должно писаться.
Аноним 13/04/21 Втр 00:38:54 #245 №1994269 
>>1994265
>А если их нет?
Если у тебя нет ног, то нет смысла обсуждать варианты педикюра.
Аноним 13/04/21 Втр 00:42:27 #246 №1994271 
>>1994269
>Если у тебя нет ног, то нет смысла обсуждать варианты педикюра.
Юнит-тесты имеются от силы у половины проектов, и тоже нуждаются как в комментариях, так и в поддержке.
Аноним 13/04/21 Втр 00:50:14 #247 №1994273 
Screenshot from 2021-04-13 00-46-59.png
Screenshot from 2021-04-13 00-46-42.png
Screenshot from 2021-04-13 00-46-30.png
>>1994266
Глянул ради интереса сорцы django, aiohttp и fastapi.

FastAPI очень-очень бедно задокументирован, aiohttp средненько с большим упором на docstring, а не комментарии.

Зато вот django просто конкретно закомментирован. А django всегда считался образцом, как надо проектировать, документировать, такое настоящее индустриальное ПО.
Аноним 13/04/21 Втр 01:05:55 #248 №1994280 
>>1994266
>Это уже документация бизнес-логики или внешнего API, в комментариях сурс-кода такое не пишется и не должно писаться.
Любой код реализует какую-то логику, иначе он просто не нужен. Логика может быть неочевидной. Если её оформлять в виде документации, то во-первых, она может быть сильно больше, чем просто код, во-вторых, она будет где-то отдельно, это придётся лезть в документацию. В третьих, в документации часто принято какой-то код или псевдокод приводить для иллюстрации, потому что кодом некоторые вещи проще выразить, чем словами.

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

Я видел народ, который считает, что код должен быть "самодокументированным", но их код обычно ни разу не саодокументирован.

Вообще чаще комментарии не пишут, чем пишут. Но и за код отвечают конкретные люди, кто просто знает что и зачем там без документации. Но это дурной стиль. Хотя в принципе удобно, когда тебя трудно заменить другим человеком.
Аноним 13/04/21 Втр 01:06:03 #249 №1994281 
>>1994271
Проекты без тестов нуждаются в первую очередь в тестах, а не в педикюре.
>>1994273
Либо ты говоришь "я комментирую, потому что так правильно, и вот мои причины думать, что так правильно", либо ты говоришь "я комментирую, потому что в джанге/хуянге так кто-то написал, на причины мне поебать".
Аноним 13/04/21 Втр 01:09:55 #250 №1994286 
>>1994280
В первом параграфе ни одно утверждение не следует из предыдущего. Неочевидную логику нужно наоборот описывать как можно проще и на видном месте, а не закапывать в слой комментариев в какой-то жопе.
>Реальная логика действий может быть закопана довольно глубоко
Ну значит откапывай, а не накидывай сверху еще комментариев лопатой.
>Много магии
Убирай магию, а не пиши некрономикон.
Аноним 13/04/21 Втр 02:42:56 #251 №1994302 
>>1994281
>Либо ты говоришь "я комментирую, потому что так правильно,
Тогда ты скажешь что я никчёмный говнокодер, который пишет говнокод, а нормальные проекты так не делают.

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

>Ну значит откапывай,
Невозможно сложную логику сделать простой. Примерно как невозможно любую программу уместить в 1000 строчек. Программирование о сложности. Как только проект растёт, растёт и сложность в нём. У тебя всегда есть огромная масса неочевидных моментов, огромная масса допущений.

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

Может быть масса решений не очевидных, но удачных. Я делаю что-то не очевидно, чтобы мог поддержать что-то. И вот такие вещи надо комментировать.

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

Аноним 13/04/21 Втр 05:18:25 #252 №1994323 
После Укуса стоит на Лутца переходить? Или что дальше читать?
Аноним 13/04/21 Втр 05:38:05 #253 №1994326 
>>1993902
Python используется в автомобиле Tesla, так что изучай, не парься.
Скоро в каждом утюге будет.
Аноним 13/04/21 Втр 09:54:11 #254 №1994394 
>>1994195
Так это общеизвестный кусок дерьма. Просто один из самых первых фреймов под веб для питона и поэтому много где использовался. Если на питоне до сих пор основа веба это джанго, то слава христу, что я 5 лет назад дропнул этот питон нахуй и вкатился в нормальные технологии.
Аноним 13/04/21 Втр 10:31:34 #255 №1994414 
>>1994394
Веб-фреймворк Django используется в сайтах Instagram[9], Disqus[10], Mozilla[11], The Washington Times, Pinterest, YouTube, Google и др.

https://ru.wikipedia.org/wiki/Django
Аноним 13/04/21 Втр 11:26:45 #256 №1994445 
Почему у каждого треда одинаковое описание? Какой лучше,?
Аноним 13/04/21 Втр 12:04:49 #257 №1994488 
>>1990432
run_in_executor + ensure_future
Аноним 13/04/21 Втр 12:13:12 #258 №1994499 
>>1994323
Лутц же старый. Порешай задачи, почитай по стандартным библиотекам, почитай кукбуки.
Аноним 13/04/21 Втр 12:19:40 #259 №1994504 
>>1994323
Укусил питон, выебал Лутц - теперь ты настоящий питонист!
Аноним 13/04/21 Втр 12:48:26 #260 №1994516 
>>1994504
главное не перепутай! а то станешь пхпшником
Аноним 13/04/21 Втр 12:50:15 #261 №1994518 
>>1994244
> Ты бросаешься в крайности. Комментариями надо пользоваться для того, чтобы пояснять, зачем нужен некоторый кусок кода
Да, бывает, повторяю, бывает(!!!) иногда ситуация, когда без комментариев не обойтись. Какая-то охуительная схема по подготовке данных к отправке или оптимизация чего-то, когда целенаправленно жертвуют читаемостью в угоду скорости или сложным преобразованиям. Но в общем случае, наличие комментариев говорит о том, что в проекте лютый говнокод и комментарии это попытка хоть немного пролить свет на внутреннюю логику.
> почему его не надо удалять при рефакторинге.
Чего блять? Ты удаляешь все модули, в которых нету чёткого обоснования в комментариях почему их удалять не надо?
> Ну и для пояснения сложных алгоритмов, которые иногда таки приходится писать. Короче - по обстоятельствам.
Я выше написал. Иногда комментарии нужны, да. Но они мягко говоря не панацея
Аноним 13/04/21 Втр 12:53:56 #262 №1994519 
>>1994394
> Так это общеизвестный кусок дерьма.
Держи в курсе. Особенно смешно слышать это от человека, который пишет на ноде.
> Просто один из самых первых фреймов под веб для питона и поэтому много где использовался.
Питон в вебе использовали потому что была джанга, а не наоборот.
> Если на питоне до сих пор основа веба это джанго, то слава христу, что я 5 лет назад дропнул этот питон нахуй и вкатился в нормальные технологии.
> в нормальные технологии
> нода-тс бэкендер
Ага. Понятно. Продолжайте вести наблюдение.
Аноним 13/04/21 Втр 12:56:54 #263 №1994523 
>>1989943 (OP)
Нужна помощь /pr/. Просьба к вам пройти по ссылке

https://2ch.hk/po/res/42808915.html

И там по ссылке глянуть видео на Идель-Реалиях. Суть в следующем: есть семья. Отец-одиночка и три его сына: музыкант, программист, ихтиолог. Программист пишет код на Python и Java и ему Amazon дал личный грант. А также его взяли контрактором в распределённую команду канадской корпорации из 60 - 70 сотрудников. И там на видео бл скриншот кода. Мы там в теме спорим, действительно ли код адекватный для контрактора или вся семейка (музыкант, программист, ихтиолог) врёт, а код - Hello, World.
Аноним 13/04/21 Втр 13:03:05 #264 №1994529 
>>1994523
я не мэтр, но с SAVE_FILE_TO_AMAZON чот проиграл
Аноним 13/04/21 Втр 13:28:56 #265 №1994540 
>>1994414
Кек. А ноду юзает пейпал, нетфликс, фейсбук, амазон и тот же гугл. Дальше то что?)

>>1994519
Я если честно подумал сперва что ты рофлишь, защищая этот кусок дерьма, но видимо нет.

>Держи в курсе
Говно орм - раз. Отсутствие асинхронности - два. Худшая в мире архитектура - три. Нихуя почти не развивается - четыре. Единственный его плюс - в коробке сразу много чего есть и не надо руками писать лишнее. То бишь, обычный макакинг. А, ну и про типизацию думаю сам допрешь.

В ноде есть божественный libuv, асинхронность, eventloop, прекрасный тайпскрипт и начали появляться нормальные инструменты по типу NestJS где реализована отличная архитектура DDD, охуенная масштабируемость, заточенность под микросервисы, и куча возможностей для кастомизации. Даже если нест не вкатил - нода пиздец как развивается, и можно спокойно без головной боли собрать охуенный кит для себя на основе того же express/koa.

Хотя нахуй я это пишу, если все что осилил джангодебил помимо ковыряния админок на своем помойном фреймворке это
я>Ага. Понятно

Сходи прочилься, сынидзе.
Аноним 13/04/21 Втр 13:40:40 #266 №1994546 
>>1994540
>1994414 (You)
Кек. А ноду юзает пейпал, нетфликс, фейсбук, амазон и тот же гугл. Дальше то что?)

Ничего)
Загуглил сочетание "джанга питон". Увидел, что пациент бредит. Отписался.
Аноним 13/04/21 Втр 13:48:36 #267 №1994554 
Как в существующий экземпляр добавить метод? Абстрактная задача.
Аноним 13/04/21 Втр 13:58:22 #268 №1994564 
>>1994554
Абстрактный ответ — никак.
Аноним 13/04/21 Втр 13:59:42 #269 №1994567 
>>1994564
Мы вам перезвоним.
Аноним 13/04/21 Втр 14:33:22 #270 №1994593 
Создаю класс. Потом его экземпляр. Создаю пустой класс с именем первого класса. Ссылаюсь на атрибуты экземпляра и он их выдаёт, хотя вроде как должен их искать в классе, а их там уже нет.
Аноним 13/04/21 Втр 14:35:55 #271 №1994595 
>>1994593
Бля, не так. Атрибуты то понятно - они присвоены экземпляру. Я вызываю методы класса. И они вызываются. хотя в классе, к которому принадлежит экземпляр, их уже нет.
Аноним 13/04/21 Втр 14:46:41 #272 №1994605 
>>1994595
Хороший вопрос на самом деле, вот я пожалуй не знаю как. Вопрос "нахуй такая архитектура нужна" не поднимаем.

Когда ты делаешь
class A:
____pass

a = A()

то запись вида
a.foo(value)
в случае, когда у объекта a есть свойство foo, то питон берёт значение и делает вызов как обычного callable объекта. Без подстановки a в качестве первого аргумента.

Если нет, то включается механизм mro, и там это, по идее, эквивалент записи
A.foo(a, value)

Слёту кривой выход, если у тебе определён
def external_method(self, value):
____print(self)
____print(value)

и ты хочешь связать его с a, но не классом A, то можно сделать что-то вроде
a.foo = lambda(value): external_method(a, value)

Но не очень симпатично смотрится
Аноним 13/04/21 Втр 14:50:52 #273 №1994614 
>>1994595
>Атрибуты то понятно - они присвоены экземпляру. Я вызываю методы класса. И они вызываются. хотя в классе, к которому принадлежит экземпляр, их уже нет.
Методы на самом деле такие же атрибуты. Там работает механизм MRO.

Суть в том, что если у объекта нет своего собственного атрибута, либо метода, либо просто другого объекта, то тогда питон смотрит, нет ли такого атрибута у класса этого объекта. Если нет, то смотрит на родительский класс и т.д.

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

Аноним 13/04/21 Втр 14:57:38 #274 №1994618 
>>1994614
>Суть в том, что если у объекта нет своего собственного атрибута, либо метода, либо просто другого объекта, то тогда питон смотрит, нет ли такого атрибута у класса этого объекта. Если нет, то смотрит на родительский класс и т.д.
Я это понимаю. Потому и не понимаю откуда он берёт метод, если класс я удалил уже, а в экземпляре метод не переопределялся.

class Test:
_def Жопа(self):
__print("Ыть")

biba = Test()

class Test: pass
del Test

biba.Жопа()

Почему выполняется метод Жопа()? Он же долже был искаться в классе, а класс уже тютю.
Аноним 13/04/21 Втр 15:08:04 #275 №1994626 
>>1994618
Класс не тю-тю. Он просто недоступен по имени Test. Но в объекте он хранится не по имени, а по ссылке.

То есть после такого у тебя реально в памяти будут оба класса. При этом по имени Test доступен новый класс, а в объекте biba старый класс
Попробуй сделать
print(id(Test), id(biba.__class__))
до и после изменения класса
Аноним 13/04/21 Втр 15:12:47 #276 №1994629 
>>1994626
Спасибо огромное. Причём я так блядь и знал что питон это где-то хранит. Такой же заёб был с перезагрузкой объектов, импортированных через from.

Ещё вопрос. Я правильно понял, что в питоне встроенные операции не ищут метод в экземпляре, а только в классе?
Аноним 13/04/21 Втр 15:44:09 #277 №1994673 
>>1994605
А зачем прослойка в виде лямбды?
Аноним 13/04/21 Втр 15:47:10 #278 №1994678 
>>1994673
А как без ламбды? Её роль в том, чтобы связать функцию external_method с объектом a
Аноним 13/04/21 Втр 16:06:35 #279 №1994706 
>>1994629
>Я правильно понял, что в питоне встроенные операции не ищут метод в экземпляре, а только в классе?
Хороший вопрос, пожалуй я не знаю, так слёту в доках ответа не вижу, надо бы заботать.

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

Короче пока не знаю. Но итересный вопрос.

Думаю, всё-таки можно и операторы вроде __call__ и __eq__ каким-нибудь образом переопределить для конкретных объектов, а не для классов в целом.
Аноним 13/04/21 Втр 16:13:32 #280 №1994717 
image.png
>>1994706
Так то вот. Просто Лутц это такое... Вроде понял, а вроде и нихуя не понял. Это "Изучаем питон", 5 издание, том 2, 78 страница.

>>1994706
>Попробовал, не работает так просто
Как ты попробовал? Я же ради теста этой параши и затеял всю эту ебатеку с встраиванием метода в экземпляр.
Аноним 13/04/21 Втр 16:28:16 #281 №1994751 
image.png
>>1994678
Если этот метод мы встраиваем в конкретный экземпляр, почему явно не написать его под этот экземпляр? Без аргумента self вовсе.
Может я хуйню конечно сделал, но я только начинающий макакен + уже сам запутался в своём вопросе уровня "как удобнее есть говно зубочисткой".
Аноним 13/04/21 Втр 16:30:50 #282 №1994753 
>>1994717
Я пробовал через консоль idle, смотря что происходит с элементами через __dict__, id, получается ли переопределить разным образом и что происходит при этом.

В принципе и более умные способы существуют.

В доку питона тоже заглянул, там как-то непонятно про это написано. Надо всерьёз влезать, может PEP читать соответствующие.

Лутца мне кажется тебе надо или обновить, или какую-нибудь другую книжку взять. В твоём скрине упор на питон-2, это морально устарело, всё, что касается объектной модели, там радикально переделали. В плане кишок там вообще всё очень сильно переделали.

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



Аноним 13/04/21 Втр 16:33:16 #283 №1994757 
>>1994753
>В общем лучше смотреть книги, где именно про питон-3, может с отсылкой иногда к тому, как было в питон-2.
Так у Лутца так и есть же.
Аноним 13/04/21 Втр 16:34:33 #284 №1994758 
>>1994751
Это если ты пишешь метод с нуля. А если у тебя есть функция-метод, которые ты хочешь привязать к конкретному объекту?
Аноним 13/04/21 Втр 16:36:21 #285 №1994764 
>>1994758
Ок, понял. Спасибо.
>А если у тебя есть функция-метод, которые ты хочешь привязать к конкретному объекту?
То мне пора в дурку.
Аноним 13/04/21 Втр 16:38:01 #286 №1994768 
>>1994757
В твоём скрине явно речь идёт о питон-2, с отсылкой к тому, что в питон-3 уже несколько иначе. Тебя учат в первую очередь второму питону.

Питон-2 надо просто забыть, как страшный сон. Ну полезно некоторые вещи представлять оттуда, чтобы знать, откуда ноги растут. Но не более.

Особенно все эти классы старого стиля.
Аноним 13/04/21 Втр 16:48:53 #287 №1994784 
>>1994768
Ненене. Книжка про 3, просто он много рассказывает про то как было и что делать, если вы ещё сидите на 2 или переходите.
Аноним 13/04/21 Втр 16:58:45 #288 №1994796 
>>1994758
>А если у тебя есть функция-метод, которые ты хочешь привязать к конкретному объекту?
Задача изначально была оторванная от реальности, но всё же: как может так получиться, что у меня уже есть готовый метод, который принимает аргумент self?
Аноним 13/04/21 Втр 17:06:14 #289 №1994806 
>>1994796
>как может так получиться, что у меня уже есть готовый метод, который принимает аргумент self?
Легко в общем-то. Ты можешь пытаться использовать метод из другого класса для своего объекта. Либо метод, сделанный чтобы его в качестве MixIn использовать. Это как раз нормально.
Аноним 13/04/21 Втр 17:14:54 #290 №1994809 
>>1994806
Понял.
Аноним 14/04/21 Срд 13:58:28 #291 №1995690 
image
Добрый день. Почему-то не срабатывает input в теле функции, может, я что-то сделал не так?
Аноним 14/04/21 Срд 14:19:39 #292 №1995719 
image
>>1995690
Забыл преобразовать summ и percent в int, классика.
Аноним 14/04/21 Срд 19:03:15 #293 №1996137 
>>1995719
Ты реально ощущал пиздец надобность пофиксить эту хуйню?
Аноним 14/04/21 Срд 19:54:18 #294 №1996207 
Случается такое что мой бот из-за проблем с интернетом не может выполнить какой-то запрос.
И нужно поставить скрипт на паузу time.sleep(60) и попробовать повторить перевыполнить функцию пока не получится нормально передать запрос.
Хочу написать обработчик ошибок.

Проблема в том, что скрипт из разных модулей, есть класс, в классе эвент-луп со своей логикой и вызовом разных функций которые принимают разные аргументы. Эти функции, иногда завершаются ошибкой.
Отлавливать и писать логи ошибок я научился, код для этого лежит в отдельном модуле.
Получается следующее:
Я вижу что "Ошибка в функция_нейм". Я даже могу вызвать эту функция_нейм() но я не знаю как получить те самые аргументы для этой функции, которые передались как-то в эвент-лупе класса, да еще и в другом модуле.


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

Какие есть варианты более подходящи для моей ситуации?
Ссори если написал запутано
Аноним 14/04/21 Срд 19:56:50 #295 №1996215 
Аноны, как получить отсортированный по ключу dict, содержащий в себе несколько list? https://ideone.com/7sVLQe
Аноним 14/04/21 Срд 20:20:37 #296 №1996256 
>>1996215
Параметр key в sorted должен быть функцией, которая получает на вход элемент сортируемой последовательности, а возвращает значение, которое будет использоваться для сортировки, функция-ключ может быть и лямбдой. Я так понял, тебе надо отсортировать именно список размеров, а не словарь date, ведь там только один элемент, собственно sizes, так что в итоге получается как-то так:

sizes = sorted(data['sizes'], key=lambda size: size['height'], reverse=True)

Аноним 14/04/21 Срд 20:27:53 #297 №1996264 
>>1996256
Спасибо, ты мне очень помог.
Аноним 14/04/21 Срд 20:33:21 #298 №1996268 
>>1996256
>sizes = sorted(data['sizes'], key=lambda size: -size['height'])
мимо математик
Аноним 14/04/21 Срд 20:48:28 #299 №1996286 
>>1996207
Нихера не понял. Если у тебя asyncio и один процесс интерпретатора, то что ты не можешь получить из одной области памяти?
Ты делаешь запрос, есть какой-то payload и тебе надо повторить запрос с измененным payload?
Скинул бы ссылку на git, так хоть можно понять о чем речь идет
Аноним 14/04/21 Срд 21:28:33 #300 №1996333 
>>1996207
Нихрена не понятно, но скорее всего тебе надо реализовать "менеджер заданий".

У тебя есть или отдельная asyncio-задача, или отдельный тред, которые занимаются тем, что выполняют специфичные задачи. Задачи они получают в виде словаря с какими-то параметрами. Для этого они случают очередь.

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

Самый общий паттерн.
Аноним 14/04/21 Срд 21:53:49 #301 №1996363 
>>1996268
В данном случае, это может и так, только вот в общем случае это может не сработать. Чтобы сортировать коллекцию, элементы которой принадлежат типу T, (ну, или функция-ключ возвращает значение типа T), необходимо и достаточно, чтобы у этого типа T были реализованы операции сравнения, при этом, реализация каких-либо других операций, например, операции вычитания, для этого типа T вовсе не требуется для выполнения сортировки, то есть, существование параметр reverse более чем оправданно.
Аноним 14/04/21 Срд 22:16:00 #302 №1996381 
>>1996363
Полностью согласен, но придется ответить духотой на духоту: операция вычитания и операция обращения знака это разные операции.
Аноним 15/04/21 Чтв 01:14:18 #303 №1996480 
Понял, что на работе деградировал и разучился пользоваться нормально реббитом и настраивать CI/CD потому что все уже давно настроено, а добавление микросервиса сведено до написания трех строк
Хочу сделать пет в несколько этапов, что бы все вспомнить
1) Сервис для получения курсов валют раз в 10 минут, на который можно было бы подписаться и который отсылал бы дифы на подключившиеся сервисы + либа-клиент для него
2) Реализация простого rpc-сервера, который можно было бы превратить в любой нужный сервис просто добавили методы
3) Деплой на gitlab без выхода в сеть
4) Деплой на амазон с выходом в сеть через бесплатный аккаунт

Как еще можно поиграться с кроликом?
Аноним 15/04/21 Чтв 01:28:07 #304 №1996483 
>>1996137
Не понял вопроса. Мне нужна программа для расчетов, эта функция высчитывает проценты, что непонятного? Единственное, что мне было нужно - заставить скрипт работать и я сам с этим справился. Не понимаю вообще, зачем ты что-то мне пишешь, дружок.
Аноним 15/04/21 Чтв 02:17:57 #305 №1996490 
>>1996483
Испытал те же чувства, что и тот аноним. Сложно словами описать. Ну типа ты пишешь примитивные вещи и при первой же ошибке пишешь на двач, вместо того чтобы подумать и погуглить.
В функции print разделитель по умолчанию - пробел, поэтому в строке результат не нужен пробел после двоеточия, у тебя получается два пробела подряд в выводе.
Лучше писать int(input())
Sum по-английски пишется с одной m
Press any key будет работать не так, как должно работать, а ждать, пока ты нажмёшь enter
Не знаю, зачем я это пишу, все равно из тебя ничего путного не выйдет
Аноним 15/04/21 Чтв 02:33:04 #306 №1996492 
>>1996490
>Sum по-английски пишется с одной m
Здесь ты не совсем прав, в том смысле, что sum всё-таки базовая встроенная функция питона и использовать такие имена переменных крайне дурной тон. Поэтому summ довольно общепринято.
Аноним 15/04/21 Чтв 02:41:37 #307 №1996496 
>>1996490
> Испытал те же чувства, что и тот аноним.
И с чего ты взял, что меня ебут ваши чувства, дядь? Ты аустист что-ли?
>Сложно словами описать.
Понимаю, бывает такое, когда у тебя вместо мозга раковая опухоль.

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

Тл;др
Нахуй иди долбоеб и советы свои в задницу засунь, а я буду делать что захочу и где захочу.
Аноним 15/04/21 Чтв 02:44:07 #308 №1996497 
>>1996483
Ты, анон, не обижайся, но смотрится так, как будто ты первый-второй день изучаешь программирование с нуля, посмотрел урок, попытался написать, и решил сюда что-то кинуть. Может потому, что скучно.

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

Дам тебе дельный совет. Пользуйся питоновской idle, думаю ты знаешь, что это такое. Там ты можешь каждую операцию более-менее оттестировать, каждую конструкцию проверить. Это сильная сторона питона и помогает быстро прокачать скиллы.
Аноним 15/04/21 Чтв 04:29:06 #309 №1996514 
Пытаюсь в первый проект. Подскажите, что почитать для понимания работы сервиса. Интересует момент общения бэкенда и фронтенда, как передавать информацию между ними.
Аноним 15/04/21 Чтв 07:19:16 #310 №1996553 
Нужно за короткую юзеровскую сессию делать где-то 300-400 асинхронных реквестов в один API. Есть какие-то тулзы, которые автоматизировали бы отправку этих реквестов через разные прокси для разных юзеров, чтобы API не заблочил? Или в таких случаях прокси мануально скрейпят?
Аноним 15/04/21 Чтв 09:13:25 #311 №1996599 
>>1996514
REST, JSON API
Аноним 15/04/21 Чтв 09:45:18 #312 №1996614 
>>1996514
Попробуй по HTTP. Тебе понравится
Аноним 15/04/21 Чтв 10:10:31 #313 №1996627 
>>1996496
Ух, как же тебя разворотило! Надеюсь, никогда не вкатишься, не хочу с истеричными мартышками в одном айти работать.
Аноним 15/04/21 Чтв 10:27:39 #314 №1996644 
>>1996480
Никак, упрешься в прожорливость erlang
Аноним 15/04/21 Чтв 10:28:35 #315 №1996646 
>>1996286
У меня нет гита. Да и честно не хочу палить свой говнокод.

>>1996333
Мне кажется, что мне нужно что-то подобное как ты описал.
Спасибо, погуглю.
Аноним 15/04/21 Чтв 11:00:22 #316 №1996697 
>>1996646
Почему нет? Можно делать приватные репозитории, бесплатно
Аноним 15/04/21 Чтв 11:55:07 #317 №1996746 
>>1996553
Создаешь лист с проксями, при каждом запросе дергаешь рандомом или если можно последовательно, то через itertools.cycle
https://docs.aiohttp.org/en/stable/client_advanced.html?highlight=proxy#proxy-support
Аноним 15/04/21 Чтв 12:18:31 #318 №1996779 
>>1996627
Не вкачусь, это моё хобби.

>>1996497
На что обижаться? На то, что вы настолько охуевшие, что нельзя вопрос задать и, сука, самому на него ответить?
Это не со мной что-то не так, раз вы не можете пройти мимо пусть даже самого тупого на свете, но уже закрытого, блядь вопроса со своим неебически важным мнением.

Вот мне действительно не стоило больше писать итт, кормлю последний раз.
Аноним 15/04/21 Чтв 17:32:39 #319 №1997188 
Сейчас будет даунский вопрос, сразу предупреждаю.
Изучаю пайтон (не как основное ремесло, а как вспомогательный инструмент).
Хочу сделать на нем какой-нибудь пет проджект.
Идеи есть, но суть не в этом.
Что мне вообще сделать, сайт на джанге или десктоп на PyQt (или аналогах)?
Хоть и не планирую писать сайты промышленно, склоняюсь к джанге, потому что она хотя бы на слуху. С другой стороны, для сайтов еще кучу всего надо знать. Десктоп будет проще, наверное, но десктоп на пайтоне кажется совсем мертвой темой (извините ради бога, если ошибаюсь).
Помогите определиться.
Аноним 15/04/21 Чтв 17:38:12 #320 №1997199 
>>1997188
В принципе клепать фронты на питоне можно, но зачем? Логичнее было бы написать HTTP сервак.
Аноним 15/04/21 Чтв 17:38:49 #321 №1997202 
>>1997199
Да мне именно для практики питона, не то чтобы я мечтаю делать сайты или приложения.
Аноним 15/04/21 Чтв 17:44:41 #322 №1997208 
>>1997202
Ну запили тогда рисовалку фракталов и рендерь её прям в консоль. Прям в ту у которой 16 цветов и 80x25 размер экрана.
Аноним 15/04/21 Чтв 17:50:16 #323 №1997216 
>>1997188
Я бы веб-приложение пилил, клиентскую часть можно запустить без боли везде где есть браузер, серверную часть можно запустить хоть на утюге, хоть на другой стороне глобуса. Всяких UI-kit сотни, интерфейс сразу будет выглядеть прилично. Можно использовать возможности браузера, push-сообщения, pwa и все такое. Без js не обойтись, но зачем на одном языке зацикливаться.
Аноним 15/04/21 Чтв 17:59:06 #324 №1997232 
>>1997208
С одной стороны да, а с другой стороны хочется что-то осязаемое, чем потом можно будет и с людьми поделиться.
>>1997216
Звучит интересно, js я тоже не против знать для общего развития.
>UI-kit
Про эти штуки расскажи подробнее, чем пользоваться?
Аноним 15/04/21 Чтв 18:23:07 #325 №1997258 
xfOqp.png
>>1997232
Чем тебе консоль с фракталом не осязаемое? Ей очень даже можно с кем-нибудь поделиться.
Аноним 15/04/21 Чтв 20:30:52 #326 №1997390 
А если из функции возвращать несколько результатов вычислений этой функции, то она всегда вернет их кортежем?
Ну типа
def test():
__a = 5
__b = 6
__c = 7
__return a,b,c

Аноним 15/04/21 Чтв 21:29:53 #327 №1997441 
>>1997390
порядок возврата в этой хуете не гарантирован, это же дефайн сишка с костылями, если хочешь то берешь и в массив суешь
Аноним 15/04/21 Чтв 21:31:37 #328 №1997442 
>>1997390
и вообще тебе скорее нада глобалки тащить или создавать пустышки, после передавать в функцию и менять через глобалку.
Аноним 15/04/21 Чтв 22:01:34 #329 №1997456 
>>1997390
Да, кортежем будет

>>1997441
>порядок возврата в этой хуете не гарантирован
Ты ебанулся?
Аноним 15/04/21 Чтв 22:46:46 #330 №1997488 
>>1996746
Это я понимаю, я другое имею в виду - как по-православному скрейпить эти самые прокси-то? Просто как-то не верится, что для такой задачи нету какой-то стандартной тулзы.
Аноним 15/04/21 Чтв 23:11:50 #331 №1997502 
>>1997488
Оно слишком просто пишется, что бы иметь стандартную тулзу, у тебя по сути есть просто словарь c доступами, которые тебе нужно выбрать по определенному признаку.
Аноним 15/04/21 Чтв 23:19:42 #332 №1997506 
>>1997502
Вот как пример
https://pastebin.com/SMhYGVEa
Аноним 16/04/21 Птн 00:19:48 #333 №1997566 
>>1997442
Хуй знает чел, я хоть и начинающий, но слышал, что глобалки зло, и нехуй их использовать.
Аноним 16/04/21 Птн 00:51:59 #334 №1997578 
def range(start, stop):
____def step():
________nonlocal start
________res = start
________start += 1
________return res
____return iter(step, stop)

Не понимаю, почему эта конструкция работает, как итератор. Мы же в iter() передаем функцию, а не итерируемый объект, или внутри range сохраняется состояние start?
Аноним 16/04/21 Птн 01:39:07 #335 №1997621 
>>1997502
>>1997506
Нет, так тут фишка же в чём: если поток пользователей через прокси пропускать, то лист с этими прокси должен иметь вменяемую степень валидности, то есть, количество мёртвых или медленных прокси должно быть сведено к минимуму, а желательно вообще к нулю. Поэтому странно, что нету каких-то общеупотребимых инструментов/сервисов под пайтон, которые бы автоматизировали эту фильтрацию.
Так-то, конечно, можно и самому это написать, но, понятное дело, лень.
Аноним 16/04/21 Птн 01:53:49 #336 №1997627 
>>1997621
Думаю, что такое будет только за денежку
http://pubproxy.com/
Аноним 16/04/21 Птн 02:08:51 #337 №1997629 
>>1997627
Да, я вот только на такие сервисы и наталкивался. Обдиралово натуральное.
Наверное, придётся свою либу писать.
Аноним 16/04/21 Птн 02:45:53 #338 №1997636 
>>1997629
.
Аноним 16/04/21 Птн 06:30:19 #339 №1997662 
>>1997188
https://2ch.hk/pr/res/1989943.html#1997629
вон чел хочет писать самодельную библиотеку для запроса к апи по списк прокси. напиши свою реализацию. нафиг нужны всякие вебы да десктопы.
Аноним 16/04/21 Птн 06:46:05 #340 №1997667 
>>1997188
веб делай, задеплоить можно без проблем и доступ будет откуда угодно, джанга я думаю более задокументированная, чем десктоп либы, да и информации на стековерфлоу побольше будет, а для веба особо знать ничего не надо, ты же для собеса готовишься, поэтому протоколы, бд и прочее тебе и не нужны, по сути будешь по гайдам делать обертку для своих функций
Аноним 16/04/21 Птн 06:48:20 #341 №1997668 
>>1997566
не пользуйся глобалами, порядок гарантирован, хз откуда взял тот чел про то что это не гарантированно
Аноним 16/04/21 Птн 08:56:04 #342 №1997689 
>>1997390
Описание кортежа прочитай в доках. Всё он вернёт упорядоченно. Это до 3.6 версии была "фича", что возвращаемый словарь был неупорядоченный, а не кортеж.
Аноним 16/04/21 Птн 09:04:36 #343 №1997693 
Каво
Аноним 16/04/21 Птн 09:50:03 #344 №1997715 
>>1997232
>UI-kit
Это набор готовых графических элементов в едином стиле. Скорее всего ты слышал про twitter bootstrap, но есть еще много других. Чем пользоваться не подскажу, я в них не разбираюсь. Сам использую vuetify, потому как фронт на vuejs, мне норм.
Аноним 16/04/21 Птн 09:52:46 #345 №1997717 
>>1997578
В дебаг моде посмотри значение step, хули гадать
Аноним 16/04/21 Птн 09:58:04 #346 №1997719 
>>1997662
>>1997667
>>1997715
Спасибо за ответы!
Аноним 16/04/21 Птн 12:34:07 #347 №1997870 
>>1997578
НУ НАПИСАНА ЖЕ:
If the second argument, sentinel, is given, then object must be a callable object. The iterator created in this case will call object with no arguments for each call to its __next__() method;
Аноним 16/04/21 Птн 12:42:51 #348 №1997881 
>>1997629
>Обдиралово натуральное
Ну так нужно выгружать список проксей постоянно из разных источников и проверять их актуальность, хули ты хотел?
Аноним 16/04/21 Птн 14:42:01 #349 №1998017 
Посоветуйте видеоуроки по ооп, нашел на ютабе годный курс, прям чел так ясно излагает про атрибуты и методы, прям все так ясно, потом хуяк, когда до самого доходит - платная подписка. Я в ахуе, но если бы досмотрел точно бы разобрался во всем. Но платить не хочется, он там типо только партнерам рассказывает хитрый пидор.
Аноним 16/04/21 Птн 14:47:59 #350 №1998021 
>>1998017
https://www.youtube.com/watch?v=o9pEzgHorH0
Аноним 16/04/21 Птн 15:10:58 #351 №1998055 
16148642240660.png
Анончики помогите пжта. Написал простенькую программу. Вначале необходимо ввести текст. В онлайн интерпритаторах можно вводить только одной строкой. Есть ли какое-то просто решение, как можно поделиться с кем то программой, чтобы можно было вводить большой блок текста. В http://pythontutor.com/live.html#mode=edit
например спокойно копирую из блокнота, что угодно и вставляю. Все работает без ошибок.
Аноним 16/04/21 Птн 15:30:48 #352 №1998065 
>>1998055
В итоге хочется видеть, что-то похожее на replit.com Делишься ссылкой. По ссылке сразу запускается программа.
Аноним 16/04/21 Птн 15:35:03 #353 №1998070 
>>1998021
На иврите балакает жид. Ничего не ясно.
Аноним 16/04/21 Птн 15:49:19 #354 №1998088 
Аноны, поздравьте меня я с вами уже больше года и наконец получил свой оффер, сразу на неплохую зп, задавайте вопросы
Аноним 16/04/21 Птн 15:51:30 #355 №1998093 
>>1998088
>на неплохую зп
На какую? В каком городе? Какой стек?
Аноним 16/04/21 Птн 15:53:34 #356 №1998097 
>>1998093
50к первый месяц, мск, для 19 лет просто великолепно, еще и удаленка, постараюсь с учебой совмещать. На проекте вроде сейчас фласк, алхимия и ребит используются, хотя я больше по джанге, думаю разберусь
Аноним 16/04/21 Птн 16:01:10 #357 №1998107 
>>1998097
Пойдет, успехов в карьере!
Аноним 16/04/21 Птн 16:06:34 #358 №1998118 
>>1998107
Спасибо :3
Аноним 16/04/21 Птн 16:47:29 #359 №1998170 
Ньюкекный вопрос. Дошел до классов, не понимаю нахера это нужно, в моих курсах отвечаю на вопросы правильно, задачки пишу правильно, но все равно нахер не понимаю нахрена это относительно простого присваивания. Я понимаю что в больших программах и принципах ООП это все более нужно, но пока что это просто какой-то кастыль, куски лишнего кода, инит, селфы, скоуп какой-то ради того чтобы сделать то что я пока делаю в три раза проще без всей это лажи.
Аноним 16/04/21 Птн 16:52:19 #360 №1998173 
>>1998170
Ну посмотри на стандартные базовые типы вроде листа-дикта-стринга.
Ты просто и элегантно пользуешься ими как объектами. А теперь представь это со свом в три раза проще.
Аноним 16/04/21 Птн 17:22:42 #361 №1998193 
>>1998170
Просто посмотри на библиотеки которые используешь и поймешь что все программирование на питоне по большей части это ооп, типа метод гет у сессии, метод джоин у строк, гет у словарей и т.д и даже когда ты принтишь вызывается метод объекта __str__
Аноним 16/04/21 Птн 17:23:19 #362 №1998196 
>>1998170
Лучше вкатывайся в ооп как можно скорее, чтобы потом говна не пожрать, как я. 5 лет писал на сикуле процедуры и функции, а как в сисярп и питухон залез, так до сих пор ебусь с классами, конструкторами и методами.
Аноним 16/04/21 Птн 18:01:20 #363 №1998235 
>>1998196
>5 лет писал на сикуле процедуры
Круто, я тоже. До какой зп дорос?
Аноним 16/04/21 Птн 22:10:19 #364 №1998493 
Опытные человечки, подскажите.
Есть сторонняя система, обеспечивающая кусок бизнес процессов. Она интегрирована с другими приложениями предприятия через самописный рест апи. И апи и другие приложения написаны на питоне. Вопрос: какие есть лучшие практики, для того чтобы формализовать структуры данных, которыми апи общается со своими потребителями?
Пока что я пришел к отдельному пакету, в котором эти структуры описаны как frozen dataclass. То есть апи из этого пакета взял датакласс, инициализировал и бросил в сериалайзер, консьюмер апи взял ответ апи, кинул его в конструктор датакласса и гарантированно не будет ошибок.
Проблема в том, что теперь нужно поддерживать и деплоить еще один пакет.
Как можно сделать проще?
Аноним 17/04/21 Суб 02:51:13 #365 №1998661 
>>1998493
Никак, по сути у тебя есть SDK для апи написано. Можно заебаться с каким нибудь универсальным протоколом типа протобафа или любого другого с кодогенерацией, что бы описывать все в одном файле, но это тоже такое себе.
Аноним 17/04/21 Суб 08:47:06 #366 №1998780 
>>1998661
Ок, спасибо.
Аноним 17/04/21 Суб 08:51:24 #367 №1998782 
photo2020-08-0201-50-52.jpg
Аноны какой рассово верный способ работы с sql?
Если допустим мне надо один единственый запрос отправить если смысл корячить для этого sqlalchemy? А если два? Где эта граница, когда уже надо имплементировать?

Не ясен хуй, проще пиздык-хуяк-и_в_продакшен. Но как правильно?

Меня не обоссут за то что я для одного запросы алхимию тащу?

Аноним 17/04/21 Суб 08:57:05 #368 №1998786 
>>1998782
Нужно учитывать, насколько сильно проект будет изменяться в будущем, чтобы те, кто будет его дальше писать, не охуели.
>Меня не обоссут за то что я для одного запросы алхимию тащу
Менеджерам и прочим кабанчикам все равно, лишь бы работало, остальным наверное даже лучше, придется разбирать говнокод только на питоне.
Аноним 17/04/21 Суб 09:46:04 #369 №1998803 
Подскажите где можно читнуть про параллелизм, асинхронность, вот про это все. Про ооп уже изучил. Хочется вот этого модного. Также изучил про парадигмы программирования, про императивное и декларативное.
Аноним 17/04/21 Суб 10:01:01 #370 №1998810 
>>1998782
Запиши его в файлик и оттудова бери
Аноним 17/04/21 Суб 10:04:05 #371 №1998815 
>>1998493
https://spec.openapis.org/oas/v3.1.0#schema-object
Аноним 17/04/21 Суб 10:24:53 #372 №1998831 
>>1998803
Разрозненно если только medium.com/hackernoon.com, в Ютубе или на reddit. Потому что с 3.6 библиотека изменилась, из node js пришла uvloop, методы многие поменялись, теперь миксуешь asyncio.method() И loop.method() методы.
В 3.9/3.10 вместо loop.run_in_executor(Executor, func(*args)) вообще asyncio.to_thread(). Дохрена изменений в каждом выпуске, уже заебали если честно. Девы какие-то ебанутые.
Аноним 17/04/21 Суб 10:26:28 #373 №1998833 
>>1998782
Peewee легковеснее, если не нужна асинхронка. Да и синтаксис там получше. Алхимия в бенчах везде на дне.
Аноним 17/04/21 Суб 10:27:19 #374 №1998834 
>>1998493
Pydantic
Аноним 17/04/21 Суб 10:30:01 #375 №1998838 
>>1998833
что-то там у него список поддержки баз бедный, даже оракла нет.
Аноним 17/04/21 Суб 10:52:18 #376 №1998851 
>>1998833
>в бенчах
К реальной жизни бенчмарки отношения не имеют. Если профилировать среднестатистическое приложение, то 90% времени там уйдет не на орм, а на системный ввод-вывод, так что можно поначалу не ломать голову над выбором. Ну а если ты уверен, что у тебя сразу будет хайлоад, то там уже будет другая архитектура приложения, заточенная на масштабирование.
Как-то читал статью каких-то чехов, которые взяли затестили веб-фреймворки питона не в вакууме, а в обычных условиях, с обращениями к бд, и вышло что супер-йоба-быстрый фастапи выдал ~20 рпс, а медленный устаревший джанго - где-то 15. Экономия на спичках.
Аноним 17/04/21 Суб 12:39:27 #377 №1998892 
Мне вчера Марк рассказал, что если у функции на питоне дефолтным значением аргумента будет пустой лист [], то это будет работать не так, как ожидается. Правда, он конкретных примеров не привел. Вы слышали что-нибудь про это?
Аноним 17/04/21 Суб 12:42:27 #378 №1998895 
>>1998892
Пустой лист создается при определении, а не при каждом вызове функции. После любых модификаций он уже не будет пустым.
Аноним 17/04/21 Суб 12:43:59 #379 №1998896 
>>1998895
Вот тебе пример https://ideone.com/WRmkCx
Аноним 17/04/21 Суб 12:45:03 #380 №1998900 
>>1998895
>>1998896
Неожиданно, спасибо большое!
Аноним 17/04/21 Суб 13:31:32 #381 №1998944 
>>1998895
> лист создается при определении, а не при каждом вызове функции
А почему это именно так работает? Я понимаю, что это как-то связано с изменяемостью/неизменяемостью типа, но все равно не могу логику уловить.
А какие еще неочевидные вещи знаете, которые любят на собесах спрашивать?
Аноним 17/04/21 Суб 13:42:36 #382 №1998962 
>>1998944
Области видимости
Аноним 17/04/21 Суб 14:08:33 #383 №1998998 
>>1998944
> Я понимаю, что это как-то связано с изменяемостью/неизменяемостью типа, но все равно не могу логику уловить.
Просто мутируемый тип можно собственно смутировать, а немутируемый ты просто заменишь в текущей области видимости на время вызова функции.
Почему определяется только раз, а не на каждом вызове - хуй знает.
Аноним 17/04/21 Суб 14:23:28 #384 №1999015 
>>1998838
Если нужен оракл, то бери Алхимию, в чем проблема? Оракл уже другая нагрузка. PG, MySQL для дешмана, тут peewee зайдет. Если база дешман, значит и нагрузок таких нет
Аноним 17/04/21 Суб 14:25:33 #385 №1999018 
>>1998851
Асинхронка не про скорость, а про отказ от task managers.
FastAPI надо уметь запускать, когда Джанго хуяк хуяк и а продакшен с оверхедом.
Gunicorn uvicorn workers нужны и быстрый uvloop, видел бенч такой именно и там Джанго дали пососать.
Аноним 17/04/21 Суб 14:27:16 #386 №1999020 
>>1998851
Алсо, ещё выкатывают tortoise ORM, тоже охуенная тема, но версия там 0.17.* ещё 2 года до готового релиза.
Аноним 17/04/21 Суб 14:45:42 #387 №1999043 
Пару вопросов по
Многопоточность это и есть параллельное программирование?
Чем отличается асиннхронность от многопточности? Стабильностью?
И где это можно заюзать, это все про веб? Или питон может и десктоп-моб?
И если дрочить джангу-фласк, там все это есть? или надо дрочить aiotop?
Аноним 17/04/21 Суб 15:23:30 #388 №1999095 
Нубовопросы. Как можно добавить записи в json? Нужно добавить еще словари в "c"

{
"a": "1",
"b": "1",
"c": {
{
"c11":"3",
"c12":"4"
}
}
}
Аноним 17/04/21 Суб 15:47:52 #389 №1999126 
>>1999018
>Асинхронка не про скорость, а про отказ от task managers.
Нет, менеджить таски ты спокойно и в питонячьем asyncio может, и вообще суть не про менеджмент, оно и в ГОвяших гринтредах есть, а про конкурентную многозадачность в рамках одного системного треда.
Аноним 17/04/21 Суб 15:48:09 #390 №1999127 
>>1998170
Аноны, раз уж так пошло, я видимо выбрал хуевый курс, где толком не поясняется значимость классов.
Я прошел его, на вопросы ответил, как их билдить, инит-хуит знаю, но как это в общую программу записать, и главное зачем не могу уловить.
Есть ли какой-то адекватный источник, желательно объемный, типа книги по ООП и классам, их методам, функциям, коллам, а то я пытаюсь монстрячить какую-то херню и понимаю что он меант ту би с классами, а не просто в линию с деревьями иф елиф ваил.
Аноним 17/04/21 Суб 15:52:23 #391 №1999135 
>>1999127
Классы это просто структуры данных с забиндеными на них методами. Представь, что у тебя есть словарик с данными, с которым ты часто юзаешь определенную функцию. Для удобства работы с ними ты объединяешь их в одну модель.
Аноним 17/04/21 Суб 15:54:07 #392 №1999136 
>>1999135
Да это я могу и вики прочитать и в мануале.
Мне нужно всякую логику их использования, как вызывать методы(?) класса дальше в программе и почему я не могу просто понаписать десятки функций
Аноним 17/04/21 Суб 16:01:04 #393 №1999144 
>>1999136
Ну например, сделал ты запрос через requests или aiohttp и тебе пришел экземпляр класса Response у которого есть готовые методы, а внутри него лежат определенные данные. Если писать все на функциях то тебе нужно помнить для какого именно класса оно предназначается и импортировать их при этом не проебав перезапись имен потому что названия действий могут быть одинаковы в разных контекстах. Еще классы дают доступ к ООП, когда ты можешь четко определить интерфейс хотя в питоне можно так и для функций обычных сделать и отнаследовать сам класс для его модификации.
Аноним 17/04/21 Суб 16:10:35 #394 №1999163 
>>1999136
Потому что когда у тебя в программе внезапно появятся сущности HttpRequest, BlogPost, Email и NaHui и у каждой из них должен быть метод send, ты начнешь писать десяток функций sendHttpRequest, sendBlogPost, sendEmail, sendNaHui. Когда у тебя таких сущностей станет не 10, а 110, то и функций у тебя будет 110 и все с разными именами. И вместо того, чтобы писать x = new Some(); x.send(); x.elsewhere(); x.nahui(); ты будешь писать x = createSome; sendSome(x); elsewhereSome(x); nahuiSome(x); Занимаясь бесполезной хуетой.

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

Когда же ты откроешь для себя, что определенные сущности могут иметь одинаковое или отчасти похожее поведение и откроешь для себя композицию или наследование, то вообще ахуеешь.
Аноним 17/04/21 Суб 16:48:50 #395 №1999220 
>>1999043
>Чем отличается асиннхронность от многопточности? Стабильностью?

Ну ёбана смари. Вот есть у тебя шлюха, которую надо повыаебать. У неё три дырки, а хуй у тебя только один. Многопоточность, это когда ты как ебанутый поочереди вставляешь в каждую дырку. А асинхолнность, это когода говоришь, что я тебя буду ебать две секунды в пизду, а потом две в сраку и тд.
Аноним 17/04/21 Суб 16:50:44 #396 №1999223 
>>1999095
Это невалидный жсон. Должен быть ключ, тогда добавляешь ключ со значением. Если нет ключа, то это массив с квадратными скобками, добавляешь как в список.
Аноним 17/04/21 Суб 16:51:58 #397 №1999225 
>>1999220
А где это можно применить? Не для написания же скриптов это надо. Для веба? В джанге и фласке есть такая реализация асиннхронности? Или это только про торнадо? Или только для десктопа?
Аноним 17/04/21 Суб 16:58:39 #398 №1999232 
>>1999223
Спасибо. Еще порылся на стаковервлоу, вроде работает
Аноним 17/04/21 Суб 17:01:10 #399 №1999239 
>>1999225
В вебе, в sql. Когда отправил запрос и пока ждёшь ответа, не сидишь мнёшь вялого, а посылаешь ещё запросов, пока тебе ответят.
Аноним 17/04/21 Суб 17:41:00 #400 №1999321 
Где почитать и разобраться раз и навсегда со всякими ювикорнами, гуникорнами, гиперкорнами, гевентами и прочими единорогами? Какой из них для чего нужен.
Аноним 17/04/21 Суб 20:33:55 #401 №1999504 
16186774681940.jpg
Питонята, такая проблема: вот я уже 3 года работаю, основной стек это DRF и Flask, но не знаю как и куда дальше расти. ML не хочу, да и сам веб-стэк мне нравится, но хочу апаться до синьора. Что посоветуете? На работе всё обычно сводиться до построения API для фронта/мобилки, нестандартных задач мало, да и то обычно сводятся до юзания какой-нибудь библиотеки.
Аноним 17/04/21 Суб 21:13:52 #402 №1999558 
>>1999126
Я подразумевал Django+Celery
Аноним 17/04/21 Суб 22:23:48 #403 №1999634 
>>1989943 (OP)

Сап, анонсы, а как с помощью скрипта на пистоне узнать версию pip, например?

Типа, ну вот пишу я print('pip - v'), но ничего не происходит. Как это делается? Как запустить через пайтон команды как для консоли? Например, скрипт, скачивающий какие-то пакеты?
Аноним 17/04/21 Суб 22:26:08 #404 №1999638 
>>1999634
https://stackoverflow.com/questions/4256107/running-bash-commands-in-python/51950538
Аноним 17/04/21 Суб 22:32:35 #405 №1999643 
>>1999638

Сенк ю, мой ночной друг, чая, тортикрв и добра тебе, любезный человек
Аноним 17/04/21 Суб 23:43:07 #406 №1999687 
За скока времени научусь парсить сайт если могу написать только хедо ворлд?
Аноним 18/04/21 Вск 00:02:44 #407 №1999699 
>>1999687
За день?
Аноним 18/04/21 Вск 00:39:04 #408 №1999726 
>>1999687
Зависит от сайта, где то одного запроса с извлечением тегов хватит, а где-то аутизм с селениумом с обязательным логином, гуглокапчей и прочим говном
Аноним 18/04/21 Вск 00:46:31 #409 №1999738 
>>1999726
А что, есть что-то, что может селениум, чего не может бутифулсоап?
Аноним 18/04/21 Вск 00:54:23 #410 №1999750 
>>1999738
Как только ты захочешь парсить нормальный сайт, там будет защита от таких умников, чекающая, заходишь ли ты с браузера, для чего нужен силениум. Ещё более солидные сайты и с силениумом особо не попарсишь, марин трафик я пытался как-то парсить, так там такая защита анальная, что пришлось забить на это дело. Но васянский сайт без проблем спарсишь и с супом, да.
Аноним 18/04/21 Вск 02:01:05 #411 №1999795 
>>1999738
Любые жс подгрузки, суп умеет работать только если тебе сразу по запросу выдают хтмл с нужной инфой.
Аноним 18/04/21 Вск 02:14:02 #412 №1999798 
>>1999738
В 90% для всяких жс-защит от парсинга, остальное всякие сверханальные рендеры на клиенте.
Аноним 18/04/21 Вск 04:37:37 #413 №1999853 
>>1999504
Прочитай для начала "Совершенный код".
Потом позакапывайся в туториалы по языку на официальном сайте, разберись досконально, как работает язык, на котором ты пишешь.
Потом почитай Clean Architecture, попробуй спроектировать какой нибудь сервис с т.з. чистой архитектуры. Когда станет получаться, можешь считать, что ты уже на правильном пути. Плюс, ты должен стараться писать код на работе так, чтобы к тебе было меньше претензий со стороны qa.
Ну и наконец, алгоритмы тоже надо по чуть-чуть прокачивать. Попробуй задачки на литкоде порешать.
Аноним 18/04/21 Вск 06:17:11 #414 №1999877 
изображение.png
У меня довольно тупой вопрос. Есть метод класса, который в том числе через async запрашивает с restapi данные, и вместо того чтобы вернуть результат, он говорит, мол я еще незакончил делать то что в асинке, и нихуя невозвращает.
Аноним 18/04/21 Вск 07:11:23 #415 №1999883 
>>1999750
Ночью все-таки взялся за этот сайт. Вроде серьезная контора, продают свое ПО и довольно недешево, но все данные которые мне нужны лежат в открытом доступе на сайте. Ограничение на запросы с одного айпи есть, но если зарегаться и оплатить подписку за 100500 рублей то ограничение частично снимают. Я уже хотел было забить, но зарегистрировался (без оплаты) ради интереса, и сделал удивительное для себя открытие. У этих додов просто создает субдомен типа твое_имя.site.ru а там таких субдоменов дохуя естественно, все ищутся в любом сервисе поиска поддоменов. Я думал сначала подставлять те, что живые, у которых еще лимит не кончился, но потом нашел вообще охуительный субдомен API.site.ru на запросы к которому вообще нет никаких ограничений. Короче я начал писать на бутифулсоп, надеюсь получится.
Аноним 18/04/21 Вск 09:06:52 #416 №1999924 
>>1999883
Нихуя ты угроза
не хакай двач пожалуйсто
Аноним 18/04/21 Вск 09:44:24 #417 №1999947 
>>1999924
Это же законно, разве нет?
Аноним 18/04/21 Вск 10:27:38 #418 №1999976 
>>1999504
ЛОЛ, нахуя лягушки на него запрыгнули?
Аноним 18/04/21 Вск 10:36:55 #419 №1999990 
>>1999947
Это тебе дяди из СБ объяснят, омежка.
Аноним 18/04/21 Вск 10:41:19 #420 №2000003 
>>1999990
Я за семью проксями ващето.
Аноним 18/04/21 Вск 10:43:20 #421 №2000006 
>>2000003
Сдадут с потрохами, ибо ты чмо никому не нужное.
Аноним 18/04/21 Вск 10:44:59 #422 №2000007 
>>2000006
Да не пизди, это же хуйня.
Аноним 18/04/21 Вск 10:53:45 #423 №2000021 
>>2000007
Вот так пацанам из СБ и рассказывай только выбитые зубы подбери сначала
Аноним 18/04/21 Вск 12:34:16 #424 №2000125 
>>2000021
и что они ему сделают? Думаешь из конторы рога и залупы, его вычаслят по ип и набьют ебальник?
Аноним 18/04/21 Вск 12:41:28 #425 №2000130 
>>1999853
Спасибо, схоронил
Аноним 18/04/21 Вск 12:41:49 #426 №2000131 
>>1999976
Вкатывальщики осваивают питон
Аноним 18/04/21 Вск 14:44:55 #427 №2000237 
>>1999877
У тебя обычный def, а должен быть async def. Странно, что тебе IDE об этом не орет.
Аноним 18/04/21 Вск 14:51:40 #428 №2000246 
>>1999853
>совершенный код
Более мерзкой книги по кодингу я не видел, автор льет воду в виде мотивационное залупы 90% текста, все полезные идеи умещаются несколько статей.
Аноним 18/04/21 Вск 14:53:22 #429 №2000249 
пятерочка чел кассир тату.png
>>2000131
Аноним 18/04/21 Вск 15:08:54 #430 №2000283 
>>1999877
Не складывай строки. Объединяй join'ом
Аноним 18/04/21 Вск 16:00:28 #431 №2000361 
>>2000246
Он прост обосновывает, что не с потолка взял.
"У функций должны быть понятные имена, это подтверждает внутреннее исследование в компании Zaloopa Inc. в 1989 году, где после внедрения человекочитаемых имен число самоубийств программистов сократилось на 6%".
А дядя Боб напишет то же самое, но с мотивацией "я на этом еще в 70-е года на pdp-11 погорел, так что верьте".
Аноним 18/04/21 Вск 16:01:46 #432 №2000364 
>>2000283
Не объединяй join'ом. Вставляй в f-string
Аноним 18/04/21 Вск 16:09:21 #433 №2000368 
>>2000283
Почему лучше обьеденять джоином?
Аноним 18/04/21 Вск 16:43:55 #434 №2000416 
>>1999976
У лягунов сезон спаривания))))))))
Аноним 18/04/21 Вск 16:55:10 #435 №2000428 
>>2000368
Так больше на джаву похоже. Как будто энтерпрайз.
Аноним 18/04/21 Вск 17:14:07 #436 №2000457 
>>2000416
А почему на питоне порятся? в чем смысл?
Аноним 18/04/21 Вск 17:27:59 #437 №2000481 
Если set() асимптотически пиздатая структура данных, ищущая в себе значения за О(1), то и len(set()) будет работать хорошо? Или же мне лучше хранить размер в отдельной переменной? Предположим я заполняю set с нуля и в цикле каждый раз проверяю условие на его длину.
Аноним 18/04/21 Вск 17:44:18 #438 №2000500 
>>2000481
len для стандартных типов берется из отдельной переменной внутри сишки, для них всегда О(1)
Аноним 18/04/21 Вск 17:47:29 #439 №2000506 
>>2000481
1. Алгоритм работает.
2. Алгоритм работает недостаточно быстро.
3. Алгоритм исследован профайлером и установлено бутылочное горлышко.
Если ты не на пункте три, тебя не должно ебать, насколько быстро работает len в питоне.
Аноним 18/04/21 Вск 17:57:49 #440 №2000520 
>>2000368
Строки имутабельны и каждый "+" - это создание новой строки
Аноним 18/04/21 Вск 18:01:49 #441 №2000526 
>>2000520
А джойном не создается? Они же иммутабельные.
Аноним 18/04/21 Вск 19:34:51 #442 №2000667 
Подскажите что я упустил по видам алгов.

Брутфорс
Разделяй и властвуй
Динамическое програмирование
Жадный алгоритм
Поиск с возратом, аля бектрекинг
Локальный поиск
Трансформируй и властвуй.

Есть еще что-нибудь?
Аноним 18/04/21 Вск 19:38:49 #443 №2000672 
>>2000667
Трансформируй поиск.
Жадный бектрекинг.
Локальный разделяй.
Аноним 18/04/21 Вск 21:54:45 #444 №2000764 
>>2000526
При сложении строк с помощью "+", при каждом сложении будет создаваться промежуточная строка, например, выражение "собака"+" "+"грызет"+" "+"кость" создаст целых четыре строки: "собака ", "собака грызет", "собака грызет ", "собака грызет кость".
А " ".join(["собака", "грызет", "кость"]) берет все строки, что ему дают, и сразу выделит необходимый размер памяти и создаст новою строку только один раз, сразу создаст "собака грызет кость".
Аноним 18/04/21 Вск 22:02:48 #445 №2000766 
>>2000764
А какой из этих вариантов легче читается? Покажи большой проект, где джойнами склеивают строки.
Аноним 18/04/21 Вск 22:05:22 #446 №2000770 
>>2000457
Питон няшный
Аноним 18/04/21 Вск 22:16:14 #447 №2000788 
что за пидор дефо.mp4
>>2000770
Он заставляет их пороться в некотором роде?
Аноним 18/04/21 Вск 23:27:15 #448 №2000855 
>>2000667
https://en.wikipedia.org/wiki/List_of_algorithms
Аноним 19/04/21 Пнд 10:40:17 #449 №2001052 
>>2000506
>Если ты не на пункте три, тебя не должно ебать, насколько быстро работает len в питоне.
Это ты не совсем прав, тебя должно волновать, какая сложность у какой из операций. Например если сложность O(N), то это как бы очень нехорошо.

Вот скажем как тест на вхождение в список vs тест на вхождение в множество или как ключ в словарь.

В случае len() всё просто, уже ответил анон, работает за O(1). Поэтому заводить прочие переменные не нужно.
Аноним 19/04/21 Пнд 14:57:20 #450 №2001377 
Ананас, как красиво сделать инстанс модели джанги неизменяемым через некоторое время после создания, скажем, через неделю?
Аноним 19/04/21 Пнд 15:15:18 #451 №2001403 
Пиздец как забавно, начал как хобби учить питоне лет 5 назад, смотрел ролики, почитал даже лутца. Но самое интересное, что норм видосы, наши и бурж стали снимать только щас, причем так понятно, что я ваще все понимаю о чем пиздят. Даже про ооп. В голове такая ясность. А пару лет назад несли такую хуйню. Но я все равно пытался понять все. И понял.
Аноним 19/04/21 Пнд 15:27:09 #452 №2001426 
>>2001377
Через сигналы
Аноним 19/04/21 Пнд 15:28:55 #453 №2001429 
>>2001403
Это называется плато.
Аноним 19/04/21 Пнд 15:41:23 #454 №2001452 
Что эффективней, завести одну очередь и забирать оттуда по параметрам сообщения, либо завести n очередей и чтобы каждый консьюмер забирал из своей? Много очередей не будут требовать сильно больше памяти\цп?
Аноним 19/04/21 Пнд 15:56:13 #455 №2001473 
>>2001452
Извините, я совсем не опытный, но мне кажется, что из очереди сначала считывают, а потом узнают все параметры...
Аноним 19/04/21 Пнд 16:08:24 #456 №2001493 
>>2001429
Ясное дело что не на сухую продолжил. Но рили, вот стали снимать очень ясно, структурировано. Видимо сами научились. Или я стал старше-умней. Осталось дело за малым, просто найти работу) погромистом. Но это самое простое же.
Аноним 19/04/21 Пнд 16:20:55 #457 №2001514 
>>2001377
Блокировать save если created_at старше недели?
Аноним 19/04/21 Пнд 17:29:24 #458 №2001644 
>>2001403
>Но самое интересное, что норм видосы, наши и бурж стали снимать только щас, причем так понятно, что я ваще все понимаю о чем пиздят. Даже про ооп.
А можно примеры видосов?
Мимо вкатывальщик
Аноним 19/04/21 Пнд 17:32:11 #459 №2001648 
>>2001644
Кстати, пиши python 2021 или также только ооп. И смотри все подряд. Я так и делаю. По ооп дохуя уже просмотрел, становится ясно уже. И на кодворзе по ооп каты щелкал. Уже шарю за поля, методы, инстансы и тд и тп.
По самому питону можно смотреть все что за час, далее, ооп. Еще можно мнопоточность и асиннхронсть смотреть. Про джангу также кстати, год только писать 2021 и все. Там выведет куда надо.
Аноним 19/04/21 Пнд 17:33:43 #460 №2001650 
>>2001648
Понял, спасибо
Аноним 19/04/21 Пнд 17:35:25 #461 №2001652 
>>2001650
Ну вот например https://www.youtube.com/watch?v=-pEs-Bss8Wc&t=2223s индус норм поясняет за ооп. Все ясно четко и понятно.
Аноним 19/04/21 Пнд 17:49:01 #462 №2001668 
Хай, народ! Такие вопросы:

1. Много ли вы знали(прочитали там книг по Python, алгоритмам + изучали годные курсы + решали задачки каждый день), когда приходили устраиваться на работу программистом ?
2. Могли ли вы применить Python для решения проблем на ПК/в реале ?
3. Можно ли делать норм софт на пк (исп. Python+...?; примеры есть?) ?
4. Можно ли делать норм(не тормознутые) приложения/игры(2d, 3d, online) для Android (исп. Python+...?; примеры есть?) ?
Или Android Development в основном для Java/Kotlin ?
5. Для Python актуальны пункты /3./4./ ?
Или есть пути разработки проще/правильней для 2021 ?
Аноним 19/04/21 Пнд 18:22:36 #463 №2001692 
Есть 60000 строк в текстовом файле 1.
80000 строк в текстовом файле 2.
Нужно вычленить в файл 3 все полностью совпадающие у файлов 1 и 2 строки,
а в файл 4 совпадающие частично.
Частично - значит, что строка файла 1 имеет вид XXXX-YYYY-NN, а строка файла 2 имеет вид XXXX0-YYYY-ZZ или наоборот. Если найдены такие строки, то они должны быть идентифицированы как частично совпадающие и выгружены рядом друг с другом в файл 4.
Подскажите, может есть какие-то библиотеки, работающие с большим количеством строк? Мое решение работает для небольшого количества, но спотыкается на больших файлах, игнорируя некоторые дубликаты.
Аноним 19/04/21 Пнд 18:58:46 #464 №2001719 
>>2001668
1) я начинал не с питона и питон не был основным языком.
2) да
3) Можно. Из того, чем пользуюсь я - торрент-система Deluge. Полноценный торрент клиент с gui, внешне по нему не скажешь, что он на питоне сделан.
5) ХЗ, но в целом мне кажется, что скорее нет, чем да. То есть питон плохо заточен под GUI приложения, под настольные приложения в целом. Для сервисных и серверных приложений да, для обработки данных да, но под десктоп бедновато как-то.

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

Нудство по п.1. Программирование != знание языка. Тебе больше надо понимать технологии и уметь программировать. Особенно если речь не идёт о тяжёлых индустриальных языках вроде C++ STL, Java.
Аноним 19/04/21 Пнд 19:05:06 #465 №2001725 
>>2001692
>Частично - значит, что строка файла 1 имеет вид XXXX-YYYY-NN, а строка файла 2 имеет вид XXXX0-YYYY-ZZ или наоборот.
Нужно подробнее. Самое главное тут формально описать функцию сравнения и может быть придумать какие-то инварианты, которые общие для двух строк (условно YYYY-NN часть строки).

Задача с идентичными строками проста. Ты хранишь строки полностью в множествах или как ключи в словарях и сравниваешь. Это будет работать быстро. Если у тебя всего 100 тысяч строк по 1000 символов, то расход памяти по современным меркам небольшой, чтобы думать об оптимизациях и сложных алгоритмах.

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

Аноним 19/04/21 Пнд 19:15:22 #466 №2001736 
>>2001692
1 - залить файлы в сикульные таблицы, посчитать от строк хэш и заджонить, всё это можно и в пандасе сделать, объемы маленькие, в крайнем случае можно разбить на чанки
2 - нужны списки возможных масок частичного совпадения, дальше всё тоже самое, что 1, только при сравнении применять функцию, которая будет маски сравнивать
Аноним 19/04/21 Пнд 19:17:15 #467 №2001737 
>>2001736
Добавлю ещё, если строки всегда имеют одинаковый вид и 2 разделителя, то можно разбить их на столбцы, для 2 случая так даже быстрее будет
Аноним 19/04/21 Пнд 19:24:54 #468 №2001741 
>>2001692
Из каждой строчки берешь эти самые XXXX-YYYY и пихаешь в словарь ключем, внутри список с полным значениями.
Потом обрабатываешь проверяемый файл так же, если ли в словаре, и есть ли полное значение, соответственно частичное и полное совпадение.
Аноним 19/04/21 Пнд 19:28:47 #469 №2001744 
>>2001692
Первая задача изящно решается через метод intersection() типа данных set, а вторую я отказываюсь решать, пока она нормально не поставлена.
Аноним 19/04/21 Пнд 19:58:00 #470 №2001757 
Прочитал книгу укус питона, в конце была дана задача "Адресная книга", которую я не смог сделать. В книге меня не сталкивали напрямую с чем-то подобным. Пришлось гуглить и смотреть, как ее сделали другие люди. Правильно ли я понял, что можно тупо нагуглить, понять логику задачи, переписать ее по-своему, и таким образом произойдет обучение, запоминание, как делать подобные задачи? Или этого недостаточно?
Аноним 19/04/21 Пнд 20:21:35 #471 №2001768 
>>2001725
>>2001736
>>2001741
>>2001744
Всем спасибо за наводки. Уже примерно набросал что-то близкое к решению.
Но еще вопрос такой: изначально строк было 500000, после выравнивания регистра и new_list = [elem for elem, _ in groupby(orig_list)] осталось всего 80000 строк. Насколько этому решению можно доверять? Не могло оно удалить лишнего?
Аноним 19/04/21 Пнд 20:25:53 #472 №2001771 
>>2001768
Тфу, забыл пояснить, что изначально хотел оставить только уникальные значения в файлах 1 и 2 для дальнейшего сравнения, тк. строки в них тоже дублировались.
Аноним 19/04/21 Пнд 20:38:30 #473 №2001781 
image.png
Аноним 19/04/21 Пнд 20:41:52 #474 №2001784 
>>2001781
помогити, я не помню, зачем это написал
Аноним 19/04/21 Пнд 20:57:29 #475 №2001797 
Как развить логическое мышление?
Аноним 19/04/21 Пнд 20:58:17 #476 №2001799 
>>2001797
попробуй if else
Аноним 19/04/21 Пнд 22:45:09 #477 №2001847 
>>2000766
Думаю, когда нужно составить строку из нескольких переменных, лучше использовать что-то вроде f-strings, а там где прям список строк, причем, возможно, генерируемый в ходе исполнения программы, то там, кончено, лучше join.

Что касается проектов, можем взять любой крупный питоновский проект на гитхабе, например django, flask, sphinx, tensorflow, sqlalchemy, или еще какой-нибудь, и поискать там склеивание строк джоином, там их достаточно много.

Вообще, это такая рекомендация есть, для склеивания большого количества строк предпочитать джоин.
https://wiki.python.org/moin/PythonSpeed/PerformanceTips#String_Concatenation
Аноним 20/04/21 Втр 08:41:00 #478 №2002015 
CC1A484C-40E4-4C73-AD8F-BD9BE073EA0E.jpeg
Уважаемые знатоки, с какой из этих книг вкат будет проще и продуктивнее ? я зеленый
Аноним 20/04/21 Втр 10:26:31 #479 №2002105 
>>2002015
ты реально будешь читать бумажную книгу?
и что значит зеленый? тролль?
Аноним 20/04/21 Втр 10:38:42 #480 №2002120 
1618904312220.jpg
>>2002015
Аноним 20/04/21 Втр 11:20:48 #481 №2002155 
>>2001757
Можешь брать целые куски кода и копировать если совсем не понимаешь, главное либо запомнить принцип, либо разобраться потом почему и как, чтобы через время ты мог не подглядывать ни в синтаксис, ни в решения(я первые пол года постоянно сидел с вкладками с методами словарей и списков, когда скопировал 100 раз .append() я запомнил)
Аноним 20/04/21 Втр 14:47:59 #482 №2002409 
Насчет алгоритмов. Да есть геометрические и дохуя математические.
Но в овносном их делят на линейные, ветвление и циклические. Я так понимаю по логике. И по способу решения,
брутфорс
разделение на подзадачи
динамическое программирование, типо кэширование
жадные алги
бектрекинг
локальный поиск
и трансформация.

Помимо этого что еще нужно знать?
И такой вопрос. Где-то читал про основные понятия, пермутация... трататация и еще что-то. Это к чему относится? Чую что тоже важно.
Аноним 20/04/21 Втр 15:04:00 #483 №2002429 
Придумайте мне задачку
Аноним 20/04/21 Втр 15:27:50 #484 №2002466 
>>2002429
Генератор собак
Аноним 20/04/21 Втр 15:29:08 #485 №2002470 
>>2002429
Напиши программу для придумывания задач.
Аноним 20/04/21 Втр 15:53:26 #486 №2002517 
>>2002409
>Помимо этого что еще нужно знать?
Ты уже спрашивал. Тебе в первую очередь надо понимать сами алгоритмы, а не пытаться их классификации придумывать.
Я вот не понимаю, что это такое:
>бектрекинг
>локальный поиск
>и трансформация.
Это какая-то твоя классификация. И не понимаю, зачем мне вообще уметь классифицировать по каким-то неведомым классификациям.

Ты можешь придумать и реализовать алгоритм для конкретных задач? Хорошо. Не можешь? Плохо. Причём алгоритмы это слишком широкая область, чтобы в такие классификации их загонять.

Ты реально какой-то хернёй занимаешься.

>понятия, пермутация
pertumation = перестановка
Ты уж или по английски пиши, или по русски, а этого треша не надо. И ХЗ, как это классифицировать, и ХЗ, зачем это вообще классифицировать.

Алгоритмы о том, как получить все возможные перестановки, например. Кстати там есть разные варианты.
Аноним 20/04/21 Втр 16:59:43 #487 №2002571 
Frame 33.png
>>1989943 (OP)
Аноним 20/04/21 Втр 19:51:08 #488 №2002754 
pandas
Аноним 20/04/21 Втр 20:41:53 #489 №2002814 
Сап анон. Сейчас пишу небольшую программу, где требуется использовать логин и пасс от сервиса. Я планирую просто положить логин и пасс в тхт-файл, а уже из него забирать это в основной код программы, где происходит логин. Как мне в этом случае передать логин и пароль в качестве переменных в .py-файл? На ум пришло только открывать тхт-файл через with open и забирать оттуда логин и пароль, а потом подставлять их индексом в программу. Но должно быть менее уебанское решение?
Аноним 20/04/21 Втр 21:46:06 #490 №2002875 
>>2002814
https://docs.python.org/3/library/configparser.html
Аноним 20/04/21 Втр 23:28:09 #491 №2002974 
>>2002875
Добра.
Аноним 20/04/21 Втр 23:47:19 #492 №2002989 
>>1999504
Попробуй fastapi
Аноним 20/04/21 Втр 23:51:28 #493 №2002994 
>>2002015
Нахуй ты их купил? Я понимаю еще лутца( и то идиотизм), все книги надо пролистывать(конкретно лутца,т.к. там душная книга но много инфы, увидел то что не знаешь гуглишь для лучшего объяснения), единственную которую можно читануть если 0 - укус питона.
Аноним 21/04/21 Срд 01:44:57 #494 №2003052 
Не могу разобраться с переносом результата функции в другой компонент.
Допустим, у меня есть файл example1.py в котором я выписываю определение функции с еще кое-какими данными и возвращаю ее результат (return result), в result лежит список.
Далее, я хочу задействовать этот список из result в функции из другого файла - example2.py. Например хочу превратить этот result в стрингу и конкатенировать ее с чем-нибудь еще или сделать из нее сет и так далее.

from example1 import func1

def funktsia2():


И вот тут я завис.
Аноним 21/04/21 Срд 01:46:17 #495 №2003053 
>>2001403
Это норма, это развитие ютуба и общего поля подачи информации, твои деды были вынуждены читать очень нудные книги, ковырять платы своими крабулями, писать какую-то мутнейшую залупу. Потом был период когда задрот-индус просто 2 часа кодил с невероятной скоростью называя это мануалом. А теперь найти полноценные обучающие видео, с пошаговостью, с источниками, с конкретными примерами применения, с объяснением математики если она используется - очень просто и этого добра навалом. Сейчас курсы гарвардов и МИТов уже очень хорошо сделаны(и бесплатны, только если хочешь диплом бумажный купить надо платить), есть всякие сайты типа бриллианс для совсем уж детей(но неплохо по ним изучать косвенную хуйню типа логики, начальной робототехники или инженерии), есть кодеварс где ты натурально качаешь своего эльфа 80го уровня и пиздишься с другими эльфами качая его за очки полученные решением микрозаданий на своем языке, и можно посмотреть у представителей какого языка самый длинный хуй, клан джавы накидал клану сиплюсов ололо, а завтра все поменяется, мы будем отомщены.
Я не представляю зачем современные люди вообще покупают курсы за деньги, это просто ебланство(ну и лень, и отмазы, и тупость, и непонимание принципов обучения и что нужно работодателю)
Аноним 21/04/21 Срд 01:48:36 #496 №2003054 
Capture4.PNG
Халп, позязя.
Есть пикрил. Нужно подставлять значения из списка без комы в конце. Как эту ебучую кому убрать?
В списке - куча datetime по которым нужно отдельно выгружать данные, потому и цикл.
Аноним 21/04/21 Срд 02:44:40 #497 №2003059 
>>2003054
Уже нашел.
.replace(',', '')
Аноним 21/04/21 Срд 10:25:00 #498 №2003238 
>>2001757
да, если сможешь сперва адаптировать чужой код то это нормально.
потом придрочишся и уже сможешь писать свой.
а так в программировании юзают чужой код постоянно.
Собственно почему один из главных скиллов кодера это писать понятный другим код - потому что код пишут один раз, а читают дохуя раз и дохуя людей.
Аноним 21/04/21 Срд 11:12:41 #499 №2003277 
Что происходит, когда к условному веб-приложению на Flask'е (или на чём-нибудь другом), задеплоенному через какой-нибудь Gunicorn, прилетает запрос от нового пользователя - получается, сервер создаёт в памяти дубликат этого приложения и, как бы, несколько пайтоновских интерпретаторов начинают работать параллельно? Или как это устроено?
И есть ли в этом вопросе отличия между WSGI и ASGI серверами/фреймворками?
Аноним 21/04/21 Срд 13:18:34 #500 №2003401 
>>2002015
Эрик Мэтиз — то, что нужно, хорошая книжка. А вообще, раз уж у тебя 2 книги, то обе и читай, в чём проблема-то?
Аноним 21/04/21 Срд 17:49:41 #501 №2003643 
Screenshot 2021-04-21 at 19.48.58.png
Тучик, какого хуя?

Аноним 21/04/21 Срд 18:29:34 #502 №2003690 
>>2003643
True == True
хули ты хотел?
Аноним 21/04/21 Срд 18:31:05 #503 №2003693 
>>2003690
(мужик and пидор) == (баба and пидор)

Схуяли это True?
Аноним 21/04/21 Срд 18:35:18 #504 №2003696 
Screenshot 2021-04-21 at 20.34.49.png
Да. Странная логика
Аноним 21/04/21 Срд 19:58:25 #505 №2003784 
Пасаны, а это нормально делать с threading:
for thread in threads:
....thread.start()
for thread in threads:
....thread.join()

Тралов получается в районе 30 каждый просто делает апи звонок на статус.
Аноним 21/04/21 Срд 20:53:12 #506 №2003806 
>>2003784
Через ThreadPoolExecutor красиивее, а вообще лучше учи asyncio
Аноним 21/04/21 Срд 20:56:39 #507 №2003810 
>>2003696
Ну для того, кто даже логику первого порядка освоить не смог, конечно странная
Аноним 21/04/21 Срд 21:00:35 #508 №2003813 
>>2003277
Gunicorn создает указанное количество дубликатов при запуске и они работают вместе сразу. Дальше запросы балансируются между ними nginx'ом, например. asgi создает на запрос отдельную асинхронную корутину
Аноним 21/04/21 Срд 21:13:50 #509 №2003819 
Где можно понятно почитать про еблю с джейсоном, как вызывать через урл, как печатать и сравнивать нужные строки, обязательно ли это ебошить всегда через дикшинари, почему формат типа a = requests.get(url).json() и дальше я делаю a['заметки о залупах']. Типа я вроде понимаю что джейсон скорее всего в формате дикшинари и есть, ключи и вальи, но бля, делал проект, натыкал как-то и сам не понял нихрена.
Аноним 21/04/21 Срд 21:52:54 #510 №2003847 
ex1.png
ex2.png
>>2003052
Как-то так. А что у тебя не работает?
Аноним 21/04/21 Срд 22:05:14 #511 №2003867 
Сообщаю, что спиздили high performance python второе издание, там есть экономия на спичках, мультипроцессинг, очереди, асинхронщина и всякие кулстори из жизни.
Аноним 21/04/21 Срд 22:39:53 #512 №2003914 
ПЕРЕКАТ
>>2003913 (OP)
>>2003913 (OP)
>>2003913 (OP)
>>2003913 (OP)
>>2003913 (OP)
Аноним 21/04/21 Срд 22:46:48 #513 №2003922 
>>2003819
>обязательно ли это ебошить всегда через дикшинари

Если пользуешься встроенным json декодером из модуля requests, то да - это то, что он возвращает. Хотя, строго говоря, он может вернуть список словарей, а не один словарь. Попробуй посмотреть, например, на результат requests.get('https://api.github.com/events').json()

Аноним 22/04/21 Чтв 05:08:50 #514 №2004053 
>>1999127
Посмотри на ютубе видосики про SOLID на любом языке. Мне помогает.
Аноним 22/04/21 Чтв 05:10:20 #515 №2004054 
>>1999144
А можешь ссылку на какой-нибудь проект на гитхабе скинуть? Чтобы там интерфейсы были.
Аноним 22/04/21 Чтв 10:28:56 #516 №2004147 
>>2003813
Понял.
А вне Gunicorn'а это приблизительно так же выглядит? Или какие-то другие механизмы?
Аноним 22/04/21 Чтв 15:06:57 #517 №2004456 
2.png
1.png
Напишите пожалуйста эту "эквивалентную реализацию через getitem". А то я не могу понять как бы она работала, не смотря на объяснение.
Аноним 23/04/21 Птн 02:20:01 #518 №2005127 
Screenshot from 2021-04-23 02-19-40.png
>>2004456
Видимо имеется в виду мимикрия под list.
Аноним 23/04/21 Птн 06:36:41 #519 №2005181 
>>2005127
Круто, спасибо.
comments powered by Disqus

Отзывы и предложения