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


Ответить в тред Ответить в тред

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
385 37 105

Питон тред №95 /python/ Аноним 28/07/20 Втр 21:53:44 17626231
15948219196510.png (30Кб, 768x768)
768x768
1328116117terka[...].jpg (87Кб, 1280x853)
1280x853
photo-4-900x500.jpeg (33Кб, 900x500)
900x500
python.jpg (262Кб, 1600x1068)
1600x1068
Тред, посвящённый языку программирования Питон, #95

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Аноним 28/07/20 Втр 22:04:58 17626302
пасоны, че за лямба?
Аноним 28/07/20 Втр 22:08:26 17626323
Подскажите плз, я чет не допираю, как можно отправить словарь в телеграм боте одним сообщением? Юзаю телебот. Я могу типа для каждого элемента в цикле вызывать отправку сообщения, но тогда будет не одно сообщение.
Аноним 28/07/20 Втр 22:10:55 17626344
Аноним 28/07/20 Втр 22:23:58 17626395
>>1762630
У рыбы между клоакой и заднепроходным отверстием.
Аноним 28/07/20 Втр 22:26:21 17626426
>>1762632
А, ну я наверное могу просто в цикле сначала сделать строку из элементов, а потом вывести её
Аноним 28/07/20 Втр 22:55:25 17626637
>>1762630
Бессерверные вычисления в амазон веб сервисес
Аноним 28/07/20 Втр 22:56:03 17626648
>>1762642
блять, тут реально погромисты такого уровня обитают?
Аноним 28/07/20 Втр 22:57:03 17626659
>>1762664
Да я не погромист, изучаю просто. Не уверен, изучу ли когда-нибудь.
Аноним 28/07/20 Втр 23:04:50 176267810
>>1762664
Не всегда. Порой захаживает Люд вроде меня. Таких черти и шныри кличут Хозяином, а пацаны - Папой
Аноним 28/07/20 Втр 23:07:24 176268111
>>1762665
>Не уверен, изучу ли когда-нибудь.
Да хули, сам какой-то вариант придумал уже хорошо.
Аноним 28/07/20 Втр 23:10:51 176268612
>>1762623 (OP)
Что с tornado? На моей галере половина продукта написано на нем, придется тащить
Каковы перспективы tornado в 2020, приятно ли на нем писать и что в нем с асинхронностью?..
Аноним 28/07/20 Втр 23:26:25 176269413
1uprOURnw5wj-0K[...].png (461Кб, 2328x1342)
2328x1342
>>1762686
Ну хуй знает... Поддерживай легаси и не бубни.
Аноним 28/07/20 Втр 23:31:14 176269814
>>1762694
Сурс?
торнадо на uvloop вроде не такое уж и говно
Аноним 29/07/20 Срд 00:59:17 176275515
29/07/20 Срд 01:33:11 176279116
посоветуйте гайд по джанго. мозилла норм?
Аноним 29/07/20 Срд 04:34:35 176284917
image.png (3Кб, 200x59)
200x59
Аноним 29/07/20 Срд 04:43:20 176285118
image.png (2Кб, 177x48)
177x48
Аноним 29/07/20 Срд 08:12:55 176289919
>>1762755
>medium
>ahmed

обоссывали уже вроде этого ахмеда
Аноним 29/07/20 Срд 08:30:30 176290620
>>1762899
Ну сам разработчик FastAPI не любит писькомерство. По сути любой бенч это тот ещё черрипикинг.
То что aiohttp без говнокода даёт на клык это факт. То что жанговская ОРМ самая продвинутая тоже факт. То что на Tornado уже меньше и меньше пишут тоже факт.
Аноним 29/07/20 Срд 11:06:16 176296621
Аноним 29/07/20 Срд 11:12:14 176297022
>>1762966
Дай обниму. Хватит кормить уже инфоцыган.
Документация, SO, другие тематические форумы или блоги. Ощущение, что инфоцыгане в продакшен нихуя не выводили. По сути это как аспиранты на кафедрах. Что-то выучили, как-то поняли и стали преподавать
Аноним 29/07/20 Срд 13:10:21 176309223
>>1762849
>>1762851
Ну мне надо было парами, типа как в самом словаре. Ну я уже сделал типа [print(i, dict) for i in dict]
Аноним 29/07/20 Срд 13:16:55 176310124
>>1762906
Fastapi удобнее в сотню раз из-за pydantic и зависимостей, но зато в aiohttp есть клиент и тестовый клиент. С последним ещё можно как-то сторонней протухшей либой решить проблему в fastapi, а вот что там из сторонних асинхронных клиентов есть сейчас?
Аноним 29/07/20 Срд 13:30:08 176311825
photo2019-11-16[...].jpg (102Кб, 1050x1266)
1050x1266
>>1762970
это потому что случайно доки по django оказались хороши.

в общем случае, все очень хуево.
Аноним 29/07/20 Срд 13:59:56 176317026
Аноним 29/07/20 Срд 14:51:20 176325727
Выше картинка была. Это получается, что торнадо, про который я столько наслышен, держит только 11к запросов в секунду? Нам препод говорил, что нода 1 млн держит в секунду.
Аноним 29/07/20 Срд 15:30:05 176330028
>>1763257
Надо смотреть методику и результат в тех же условиях.
Аноним 29/07/20 Срд 16:15:21 176338029
Аноним 29/07/20 Срд 16:16:42 176338230
>>1763257
Держит то держит, а БД когда упадет без репликации? И это сама держит или с прокси? Яндекс Танк в помощь короче
Аноним 29/07/20 Срд 16:18:13 176338831
>>1762970
А я вот аспирант. Сижу в ней потому что мне дают халявные 8к стипухи, проездной и общагу
Параллельно работаю фуллстек-макакой. Мне норм
Аноним 29/07/20 Срд 16:35:34 176342032
image.png (84Кб, 384x246)
384x246
Аноним 29/07/20 Срд 18:31:01 176356333
Так блин, что-то я не вдуплил, как асинхронка тащит
Вот я отправляю некий http запрос и пока он "летит" туда-обратно мне надо еще выполнить какие-то действия, код вроде этого:

result = await send_request()
make_calculations()
result.process()

попросту же "встанет" на моменте с await, event loop будет искать другие задачи, пока результат с await не выполнится, но тем не менее, пока send_request не вернет что-то, выполнение кода дальше этой строчки не пойдет
Я упустил что-то?..
Аноним 29/07/20 Срд 18:45:46 176357934
>>1763563
await нужен как раз для последовательного выполнения, чтобы не ебаться с коллбеками.
Аноним 29/07/20 Срд 19:29:18 176363335
>>1763563
Так оно нужно для io задач. Представь, что у тебя таких запросов тысяча, и они независимы друг от друга. Код будет ждать и дальше await не пойдёт, но у тебя там ждут выполнения ещё 999 таких же, и пока ты ждёшь этот, ты можешь другие отправить. Пока отправляешь другие, прилетит ответ на этот и продолжишь его выполнять. А если ты хочешь ещё что-то считать, пока запрос выполняется, то подход надо менять. Есть future_requests, там запросы вроде в отдельном треде дёргаются, главное только не охуеть там коллбеки писать, если они нужны. И вроде как при системных вызовах снимается блокировка интерпретатора, так что ты сможешь дальше выполнять код, а потом по мере необходимости забрать ответ на свой запрос. В принципе, в asyncio можно аналогичные штуки проворачивать, но нахрен он нужен, если у тебя упор на вычисления, а не на ввод-вывод?
Аноним 29/07/20 Срд 20:24:28 176368036
вникаю в async, нужно создать десяток соединений, отправить что-то, получить ответ, оставить корутину с соединением активной, делать свои дела дальше. ответы надо же собрать и обработать в том месте, где они были запущенны.

что-то не соображу, как это сделать. если спавнить таски через gather, результаты же придут только когда корутина завершится. как быть?
Аноним 29/07/20 Срд 20:39:22 176369237
>>1763420
да там и всё ебало покорёжено. только на кладбище этого пидора.
Аноним 29/07/20 Срд 20:59:06 176369838
>>1763563
promise = send_request()
make_calculations()
result = await promise
result.process()

Наверное должно сработать
Аноним 29/07/20 Срд 22:22:24 176374839
>>1763563
>Так блин, что-то я не вдуплил, как асинхронка тащит
Ивент луп скачет между корутинами, поэтому они все выполняются параллельно. Считай как потоки на одноядерной машине если утрировать.
>event loop будет искать другие задачи, пока результат с await не выполнится
Типа того. Await "блокирует" только текущую корутину.
>send_request не вернет что-то, выполнение кода дальше этой строчки не пойдет
В этой текущей корутине естественно нет, но это нормально.

make_calculations()
Тут серьезная ошибка. Ты не имеешь права в асинхронном приложение использовать нечто блокирующее, так как это заблокирует ивент луп и все корутины "встанут". Ты должен через редис/rabbitQM отправить задачу процессу воркеру на выполнение каких-то блокирующих вычислений. В самом асинхронном приложение только I/O. Зразумив?
Аноним 29/07/20 Срд 22:32:22 176375740
>>1763748
>make_calculations()
ебануть её в новый тред и подождать пока закончится.
Аноним 29/07/20 Срд 22:36:13 176375941
>>1763748
>Ты не имеешь права в асинхронном приложение использовать нечто блокирующее
кек
ТЫСКОЗАЛ?

p.s. создается новый тред или пул тредов, декораторы вроде sync_to_async так и делают, но вообще ничего не запрещает вызывать синхронщину внутри асинхронщины
Аноним 29/07/20 Срд 23:07:19 176377942
>>1763748

И ты идёшь нахуй.
awaitable loop.run_in_executor(executor, func, *args)¶
Arrange for func to be called in the specified executor.

The executor argument should be an concurrent.futures.Executor instance. The default executor is used if executor is None.
Стандартно это thread. Засовывает туда блокирующую операцию и погнали.
Аноним 29/07/20 Срд 23:09:28 176378243
>>1763759
Да, но весь смысл теряется. Пока что корутины в питоне уебищные, green events в го мне показались как-то интуитивнее и понятнее
Аноним 29/07/20 Срд 23:20:35 176379044
Аноним 29/07/20 Срд 23:32:59 176380145
Аноним 29/07/20 Срд 23:34:36 176380346
>>1763680
сам задал, сам отвечу. помазался фьючерами, хуй его знает, правильно ли всё сделал. петяны, чекайте, вот простой пример.

https://pastebin.com/qBBDw7CR

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

Аноним 29/07/20 Срд 23:35:45 176380447
>>1763790
В 3.9 обещали завести нечто адекватное и отказ от предопределения asyncio.get_event_loop().
Если в asyncio.run() добавят методы для перехвата signal и штатного завершения процедур или их отмены если это например цикл без конца будет заебок.
Пока предлагают вот это
coroutine asyncio.to_thread(func, /, args, kwargs)¶
Asynchronously run function func in a separate thread.

Any
args and kwargs supplied for this function are directly passed to func. Also, the current contextvars.Context is propogated, allowing context variables from the event loop thread to be accessed in the separate thread.

Return a coroutine that can be awaited to get the eventual result of func.
Аноним 29/07/20 Срд 23:36:41 176380648
>>1763801
>Представьте, вы разрабатываете CLI-инструмент для извлечения размера веб-страницы и хотите поддерживать и синхронный, и асинхронный способы его работы
Спс, поорал
Аноним 29/07/20 Срд 23:37:15 176380749
>>1763801
ололо, там какой то пидор два месяца переводил с английского блогпост другого пидора, и выдаёт перевод на свою статью? хуябра как обычно.
Аноним 29/07/20 Срд 23:38:38 176380850
>>1763804
> coroutine asyncio.to_thread(func, /, args, kwargs)
чем это лучше тред экзекьютера?
Аноним 29/07/20 Срд 23:44:09 176381551
2020-07-2923-42[...].jpg (256Кб, 1172x572)
1172x572
Питон может быть альтернативой джавы скрипта? С веб не связывался, в основном работал с vb и C++, а тут надо потыкать веб программирование.

Пытался осилить JS, но каждую секунду мне пригорало. Не знаю по какой причине, но я его блять ненавижу. Разве пикрилейтед может прочесть ЧЕЛОВЕК? В общем, поясните за веб и пригодность питона для этого.
Аноним 29/07/20 Срд 23:46:39 176381752
>>1763815
Это разве не обфусцированный код?
Аноним 29/07/20 Срд 23:48:32 176381953
Аноним 29/07/20 Срд 23:48:51 176382054
>>1763815
>>1763817
Это минифицированный код, обрабатывается перед деплоем. Человек и не должен читать, лол.
Аноним 29/07/20 Срд 23:48:51 176382155
>>1763759
>>1763779
Ну шкальники городят треды в асинхронном приложении, смешивая подходы. Профессиональные разработчики отдают задачу в RabbitQM. Пшли вон отсюда.
Аноним 29/07/20 Срд 23:49:40 176382256
>>1763815
ну если бы ты си или перл застал, то так бы не верещал, щегол.
Аноним 29/07/20 Срд 23:50:32 176382357
>>1763821
Шта? Ты ещё RabbitMQ на rapsberry запусти, пёс. Совсем уже жангодебилы в край охуели.
Аноним 29/07/20 Срд 23:52:03 176382458
>>1763808
Да хуй его знает. Может оптимизируют на уровне C. Пока все наработки, не заметил конкретики при описании changelog. Да все ещё письмами обмениваются, решают что в какую версию вносить
Аноним 29/07/20 Срд 23:52:59 176382559
>>1763821
да, потом у них гостевая книга работает в шести докер контейнерах под кубернетисом в облаке на микросервисах, медленно.
Аноним 29/07/20 Срд 23:53:53 176382660
>>1763815
Нет. Ты путаешь фронтэнд и бэкэнд. Питон/года/го для бэка, адекватный Vue для фронтэнда. Вот и вся кухня.
Аноним 29/07/20 Срд 23:54:41 176382761
>>1763815
>веб
На фронте альтернатив жс просто нету. Или ты в танке?
На бэке юзается. Топовые асинхронные фреймворки вроде FastAPI хуярят на уровне с Нодой. Тут Господа сейчас как раз и базарят за асинхронщину
Аноним 30/07/20 Чтв 00:01:18 176383262
>>1763817
Хуй знает. Короче это код, который должен создавать иллюзию 3д т.е. пользователь "вращает" объект мышкой, а на самом деле это скрипт выводит обычные картинки в определенной последовательности.

Как здесь
https://www.root-solutions.co.uk/product/keyshot-web/
если проскроллить вниз, там есть мотоцикл — его можно покрутить мышкой. В общем, это очень дешевый способ показать 3д с красивым графоном, в отличии от web gl.

В общем делает это все из коробки одна прога для визуализации KeyShot, но мне по многим причинам она неудобна и я написал свою, кроме части, которая реализована на JS.

С этим скриптом работает всё норм, но я хотел во избежание правовых претензий сделать свой скрипт и увидел это нечитабельное говно. Пытался осилить JS, но понять этот текст я не в силах.
Аноним 30/07/20 Чтв 00:03:32 176383463
Аноним 30/07/20 Чтв 00:04:09 176383664
>>1763820
А это можно вернуть в удобоваримый вид?
Аноним 30/07/20 Чтв 00:06:28 176383765
>>1763834
Да не в этом дело. Спрашивал-то я про питон, но ушло в джаву.
В общем, ответ мне уже дали.
Аноним 30/07/20 Чтв 00:14:02 176384166
>>1763836
UPD в JS треде уже ответили
Аноним 30/07/20 Чтв 00:18:02 176384367
Дарова двачане. Собираюсь оформлять вкат в ml. Что скажете по такому набору книжонок.
Лутц 1-2;
Николенко "Глубокое обучение" или Франсуа Шолле "Глубокое обучение"( Еще не решил);
Ну и параллельно матешу подтянуть, хотя итак +- знаю
Что скажете, бояре?
Аноним 30/07/20 Чтв 00:19:49 176384568
>>1763843
Ну и вот лутц тоже под вопросом. Вдруг лучше Byte Of Python, хотя я его поскролил и там вроде совсем база которую я знаю уже
Аноним 30/07/20 Чтв 05:26:17 176392269
>>1763845
Тогда зачем тебе лутц?
Вообще, ты дрочи МЛ, а не пистон, ибо полезнее будет.
Аноним 30/07/20 Чтв 08:21:04 176395170
изображение.png (135Кб, 186x305)
186x305
изображение.png (174Кб, 302x450)
302x450
изображение.png (396Кб, 487x700)
487x700
Аноним 30/07/20 Чтв 09:28:11 176397471
>>1763951
Демидович и Численные методы были в печатном виде, но сдуру отдал племяннице. А теперь срочно надо кашу в голове структурировать, ух бомбит теперь.
мимопроходил
Аноним 30/07/20 Чтв 10:03:37 176399472
Подскажите что нибудь по типу питонтютор, хотел там попытать счастья, а проект мертв. Желательно на русском, пасиба
Аноним 30/07/20 Чтв 10:13:21 176399773
Аноним 30/07/20 Чтв 10:17:20 176400174
>>1763997
спасибо,мил человек.
Шапка у вас душком тянет,согласен
Аноним 30/07/20 Чтв 10:21:28 176400975
Аноним 30/07/20 Чтв 13:10:53 176420276
>>1763951
Сомневаюсь, что "численные методы" вообще имеют какое-то отношение к теме, они совсем про другое. Да и матанализ Демидовича.
Аноним 30/07/20 Чтв 13:17:11 176421277
Узнал тут про aiopg - асинхронный движок для postgresql
С алхимией будет работать? Я че-то думал что алхимия синхронная сама по себе...
Аноним 30/07/20 Чтв 14:07:34 176428078
Есть книги по джанге 3 хорошие?
Аноним 30/07/20 Чтв 14:15:55 176430079
>>1764280
В 3ке почти не было невероятно крупных изменений кроме начала ввода асинхронщины, читай по 2ке
Аноним 30/07/20 Чтв 14:18:16 176430480
>>1764300
Понял, спасибо. А там есть советы какие?
Аноним 30/07/20 Чтв 14:20:51 176431081
>>1764304
А то никак книгу себе выбрать не могу...
Аноним 30/07/20 Чтв 14:25:53 176431982
>>1764304
Документация Джанго
Аноним 30/07/20 Чтв 14:34:57 176433183
Двачеры дайте один простой ответ на один простой вопрос.
Лутц или укус путона?
Аноним 30/07/20 Чтв 14:41:26 176434184
>>1763563
Плюсую. Вот есть у меня io-вызовы вроде:
await asyncio.sleep(4)
await asyncio.sleep(3)
await asyncio.sleep(2)
await asyncio.sleep(1)
Я хочу чтоб все они пошли выполняться вместе и чтобы все результаты были готовы через 4 секунды, а вот в этом куске кода результаты вернутся через 4+3+2+1 = 9 секунд, что не есть гуд
Аноним 30/07/20 Чтв 14:43:11 176434485
>>1764331
Укус лутца.
Ты сравниваешь книгу на 1600 страниц по всему и туалетную брошурку для ньюфага.
Аноним 30/07/20 Чтв 14:51:07 176435386
>>1764341
Ты их собираешь и запускаешь одновременно, учитывая что с gather() ты будешь авейтить до момента, пока выполнится самая медленная корутина
Аноним 30/07/20 Чтв 16:19:41 176439487
Сап, аноны. По образованию прохраммист, по факту студенческие годы пинал хуи и получил минимум знаний. Сейчас работаю аналитиком 1с, хочу выкатится из этого дерьма. Есть вариант перекатится на питон, чем и хочу воспользоватся. Прошел бесплатный курс от яндекс практикума (20 часов), почитал немного книжку "Как устроен питон" и высрал простенькую реализацию игры "Быки и коровы" без логики компьютера, т.е. только попытки игрока угадать число, сгенерированное компом. Пока нет понимания, как писать хорошо, поэтому хотелось бы пресечь говнокод. Если кто-то может указать на ошибки, как писать не надо, как было бы лучше - был бы очень благодарен. Код тут - https://pastebin.com/gqp3ikpM
Заметил, что многие пишут цикл с условием в 1 строку - это нормально? Не снижает ли это читаемость кода? Так же, реквестирую книжку, где было бы все максимально подробно расписано. Т.е. не просто: вот есть переменная, ты ей присваиваешь значение, все круто. А подробно, что происходит, когда ты присваиваешь значение переменной ( про объекты, счетчик ссылок, когда это все удаляется, перезапись) и прочее. В "Как устроен питон" хорошо написано, но там только основы.
Аноним 30/07/20 Чтв 17:20:06 176444788
Подскажите, что почитать по генераторам? Никак не вкурю send метод, как с ним работать, полного нормального понимания оператора yield. Помогите.
Аноним 30/07/20 Чтв 17:35:35 176447289
>>1764447
генератор - это просто вызов return с сохранением стека . Сильно помог?
Аноним 30/07/20 Чтв 17:49:29 176447890
>>1764472
Об этом я догадывался. Ебучий пример из лутца не могу выполнить, он работает не так как в книжке.

def gen():
for i in range(10):
x = yield i
print(x)

Дальше он делает вот что:
g = gen()
next(g)
>> 0
g.send(10)
>> 10
>> 1

Это в примере, а у меня сенд нихуя не робит, не понимаю, как это понять сукаааааа. Помоги, если можешь
Аноним 30/07/20 Чтв 17:58:09 176448391
>>1764478
>next(g)
>>> 0
Запускаешь генератор, yield отдает тебе и и ожидает что ты ему что-то передашь
>g.send(10)
>>> 10
>>> 1
Закидываешь в генератор 10, х становится 10, выводится, цикл уходит на 2й круг и возвращает тебе 1 и т.д.
Аноним 30/07/20 Чтв 18:09:08 176449292
tt.png (17Кб, 296x624)
296x624
Аноним 30/07/20 Чтв 18:15:41 176449493
>>1764492
А теперь внимательно посмотри на свой код и подумай, что могло пойти не так
Аноним 30/07/20 Чтв 18:18:46 176449694
>>1764447
pixamp.com/posts/generatory-v-python/
хз мне понятнее стало
Аноним 30/07/20 Чтв 18:20:09 176449895
>>1764494
Блядь, чувак, ну я в дебаггере посмотрел, там по шагам, x становится равным 10 а потом сразу срабатывает yield i и x принимает следующее значение. Этот пример почти дословно из книжки, и там у лутца другой вывод. Ты лучше объясни, как работает генератор. Вот я вызываю next(g) первый раз, функция отрабатывает до первого yield значения, возвращает его, и замирает на следующей строчке кода в ожидании следующего next. В книге, send возвращает значение которое ему передали, плюс сразу следующее из рэнджа. А у меня нихуя не так. Я блядь заебался, уже 2 часа бьюсь об эту хуйню и никак не могу понять.
Аноним 30/07/20 Чтв 18:22:33 176449996
>>1764496
Спасибо, сейчас взгляну.
Аноним 30/07/20 Чтв 18:23:45 176450097
Нужно мониторить папку и при появлении нового файла копировать в другую папку, через че лучше делать? Ос? Вачдог?
Аноним 30/07/20 Чтв 18:24:56 176450298
>>1764498
> В книге, send возвращает значение которое ему передали, плюс сразу следующее из рэнджа.
Возвращает только yield, send отправляет 10 в генератор но ты его не выводишь учись смотреть на свой код и искать ошибки в отступах
Аноним 30/07/20 Чтв 18:26:07 176450399
Обращаюсь к одной кнопке таким образом: driver.find_elements(By.XPATH, '//button')[4]
Как мне к ней обратиться в expected_conditions?
EC.presence_of_elements_located(By.XPATH, '//button')[4]
^вот так вроде не работает
Аноним 30/07/20 Чтв 18:34:59 1764506100
tt.png (21Кб, 498x225)
498x225
ttt.png (8Кб, 223x376)
223x376
>>1764502
Чувак, я в отступы могу. У меня вопрос возник, по этому поводу.

Смекаешь, к чему я? В книжке хуйня какая-то, либо я в глаза долблюсь.
Аноним 30/07/20 Чтв 18:42:15 1764509101
>>1764506
Если ты можешь в отступы то поставь уже ебучий отступ перед принтом, как ты блядь выводить 10 собрался, если у тебя принт вне цикла?
Аноним 30/07/20 Чтв 18:48:20 1764513102
Блядь, я еблан, прости, ну сука вишь там написано так было, сразу не догадался. впизду все равно не понимаю
Аноним 30/07/20 Чтв 18:48:51 1764514103
file.png (27Кб, 616x296)
616x296
>>1764506
Энджой йор пиривот.
Аноним 30/07/20 Чтв 18:53:04 1764515104
Люди, которые ставили на сервер что-либо, скажите, как происходит загрузка модулей, например нужен для программы модуль работы с фото, его в папку с проектом засовывают? Или качают на сервере специально пакет, если так, то зачем нужна папка bin и как конкретно в нее устанавливать модули, например, если я уже работаю в виртуальном пространстве
Аноним 30/07/20 Чтв 18:55:03 1764518105
Вопрос по базам данных:
Я делаю приложение на Flask - что-то вроде браузерного просмотрщика медиафайлов. Каталоги, в которых лежат файлы я храню в БД, то есть это одна таблица.
Каталогам можно назначать типы и категории. То есть это как минимум еще 2 таблицы.
Можно назначить любой тип (один), а категорию - только из списка категорий для выбранного типа.
И я не могу понять, как настроить связи и ограничения. Можно конечно не ограничивать поля в БД и проверять уже это в коде напрямую, что категория которую мы назначаем находится в допустимом списке, но хочется поканоничнее это реализовать.
Аноним 30/07/20 Чтв 18:55:49 1764519106
Аноним 30/07/20 Чтв 19:03:13 1764524107
>>1764513
>все равно не понимаю
Проведи аналогию с каким-нибудь конвейером или еще какой-то хуйней, принцип выше уже писал
Аноним 30/07/20 Чтв 19:03:41 1764525108
Пиздец у меня багет. Ходил на собез на джуна. Ответил на все вопросы по SQL, на сложность алгоритмов, пояснил про питухон. Типы данных, итераторы/генераторы расписал через iter и next, всё как надо; декорирование функций, ООП, логика выполнения кода в ide, как проходит поиск по словарям, хэш функции и прочая хуйня. Ну вообще ответил на всё, что меня спрашивали. Сегодня перезванивают и говорят, мол, НУ МЫ ВООБЩЕТ НЕ ИЩЕМ ДЖУНА ЧЕСТНЫГОВЫРЯ) ДАВАЙ В СЕНТЯБРЕ ОБКАШЛЯЕМ ЕЩЁ РАЗОК ВОПРОСК. Охуенно, спасибо блять.
Аноним 30/07/20 Чтв 19:06:18 1764526109
>>1764525
Так а в чем проблема? Если ты с каждого собеса будешь так рваться, тебя не хватит надолго
Аноним 30/07/20 Чтв 19:09:05 1764528110
>>1764526
Да проблема в том, что так уже три месяца. Все говорят, ну да, всё заебись, приходи оформляться, и постоянно то весь отдел кадров уходит в отпуск, то руководитель пропадает, то внезапно появляется внутренний кандидат, то вот очередная хуета.
Я вообще не понимаю проблемы, ну если видно что я еблан, ну так откажите сразу, ёбаный в рот. Зачем тянуть резину, заставлять ждать, давать какие-то надежды. Более того, если им не нужны РАБотники, нахуй тогда вообще висит вакансия и зачем меня пригласили на технический собез.
Аноним 30/07/20 Чтв 19:11:24 1764529111
>>1764528
А ты приходил к ним через месяц, когда они уже с отпуска возвращались?
Может, ты слишком всратый? Ну внешне на сколько себя оцениваешь?
Аноним 30/07/20 Чтв 19:12:44 1764530112
>>1764525
Видимо сегодня этой какой-то ритуал - издеваться над джунами.
Начал активно искать работу уже будучи мидлом. Делал тестовое, если ок, брали. Если нет, то нет. Ни разу не спрашивали про всякие алгоритмы, ооп, хэши и т.д.

Аноним 30/07/20 Чтв 19:37:22 1764536113
мвп протекло?
Аноним 30/07/20 Чтв 20:07:36 1764546114
Помогите пожалуйста, я далек от программирования, но думаю это не очень сложно. У меня есть .txt файл с юрл адресами, в количестве около 1600 штук. Есть второй файл, со всеми юрл адресами сайта, 42к. И есть третий файл, по сути адреса те же, но они уже нихуя не те. программист редиректы не настроил и у нас сайт из индекса выпадать начал Мне нужно: значение из первого файла ищется во втором, если оно находится, то тут же берется эта же строка и ее значение из третьего файла, и все это записывается в отдельный файл, желательно с каким нибудь разделителем.
Аноним 30/07/20 Чтв 20:12:40 1764548115
Аноним 30/07/20 Чтв 20:33:54 1764558116
tt.png (10Кб, 739x245)
739x245
Долбаеб опять выходит на связь.

Аноним 30/07/20 Чтв 20:36:37 1764560117
11859310562990.webm (4799Кб, 994x560, 00:00:10)
994x560
>>1764394
>Сейчас работаю аналитиком 1с
Аноним 30/07/20 Чтв 21:12:43 1764575118
>>1764558
Ельд и не должен ничего в Х сам возвращать, если ты не отправил ничего туда, а сам генератор возвращает цифры как положено
Аноним 30/07/20 Чтв 21:31:00 1764587119
Pytest Аноним 30/07/20 Чтв 21:58:46 1764595120
Есть две папки sibling'и, и хочу в файле test_poop.py писать типо from parent.poop import bluh.
Тащемта стековерлоу уже почитал, например вот тут https://stackoverflow.com/questions/6670275/python-imports-for-tests-using-nose-what-is-best-practice-for-imports-of-modul
прям как у меня проблема. Пока мне больше нравится вариант с sys.path.append, потому что вариант с setuptools кажется слишком громоздким https://stackoverflow.com/a/50193944. Как вы решали, если сталкивались?
Аноним 30/07/20 Чтв 22:01:01 1764597121
Аноним 30/07/20 Чтв 22:04:12 1764601122
>>1764546
f1 = open('1.txt', 'r')
f2 = open('2.txt', 'r')
f3 = open('3.txt', 'r')
out = open('file_for_writing.txt', 'w')

капице?
Аноним 30/07/20 Чтв 23:48:41 1764644123
>>1764601
r не нужон, салага.
Но вообще это вопрос на однострочник для перла или авк. Но я пробую отсечь эти решения для более активного переката, лол.
Аноним 31/07/20 Птн 00:23:28 1764656124
Аноним 31/07/20 Птн 00:43:55 1764660125
image.png (3401Кб, 1600x1068)
1600x1068
котаны, подскажите что это за тема\редактор плез
Аноним 31/07/20 Птн 00:52:57 1764661126
Аноним 31/07/20 Птн 00:55:50 1764662127
Screen Shot 202[...].png (159Кб, 1082x710)
1082x710
Всем привет. Убрали куэйщиков и меня посадили на пики точенные править сломанные Selenium тесты.

Есть карусель с 4мя элементами-цифрами (см пик), файнд элементс создает лист с этими элементами, но ебаный вебдрайвер их не кликает (почему?) и выкидывает "javascript error: Failed to execute 'elementsFromPoint' on 'Document': The provided double value is non-finite."
Перечитал уже кучу статей на стаковерфло и ничего не помогает.
Нужно просто прокликать все элементы в этом списке, коих на данный момент 4.
>driver.find_elements_by_class_name('carousel-indicators')
for element in video_workshop_carousel_indicators:
ActionChains(driver).move_to_element(element).click().perform()
sleep(3)

Спасибо!
Аноним 31/07/20 Птн 01:03:49 1764663128
>>1764662
забыл сам эелемент:
>video_workshop_carousel_indicators =driver.find_elements_by_class_name('carousel-indicators')
Аноним 31/07/20 Птн 01:09:32 1764664129
>>1764662
>>1764663
Поищи плагин для браузера для Селениума, там можно записать действия, может так поможет
>sleep(3)
так лучше не делать бтв, есть специальная хуйня для того, чтобы ждать пока элемент отрисуется на странице
Аноним 31/07/20 Птн 01:17:05 1764666130
>>1764663
>>1764662
Разобрался. Оказалось, что тот локейтор почему-то не работал, хз почему. В общем заработало после того как поменял локейтор на css_selector.
>>1764664
Спасибо, обязательно посмотрю что это.

Аноним 31/07/20 Птн 02:16:57 1764675131
Продолжаю свою КУЭ транзицию ебана. Нужно написать простой тест для метода пост в этом классе для статус кода и контента. Нельзя напрямую реквестить линк.

import requests

class Blog:
def __init__(self, name):
self.name = name

def posts(self):
response = requests.get("https://jsonplaceholder.typicode.com/posts")

return response.json()

def __repr__(self):
return '<Blog: {}>'.format(self.name)

Я с реквестами никогда не работал напрямую. Моя идея такая, просто пройтись по методу на ассерт по коду? 200 ОК и тд. А по бади уже через словарь. Это так делается?
Аноним 31/07/20 Птн 06:51:48 1764720132
>>1764675
Подскажите хоть теги, где погуглить такое. Благодарю.
Аноним 31/07/20 Птн 08:40:04 1764748133
Аноним 31/07/20 Птн 09:31:20 1764764134
>>1764748
>>1764675
В общем запилил такую вот хуиту. Но ничего не работает. Просидел с этим дерьмом уже часа 4.
1. Выдает ошибку, почему-то не импортирует функцию, хотя sample_mock находится в той же папке. Ошибка - File "tests_mock.py", line 16, in <module>
from src.sample_mock import posts
ImportError: cannot import name 'posts' from 'src.sample_mock' (.../src/sample_mock.py)
2. Само собой говорит, что нет response не определена.

import unittest
from src.sample_mock import posts

class Test_Blog(unittest.TestCase):

def setUp(self):
self.test = Blog('Test')

def test_post_response(self):
self.assertEqual(response.status_code(), 200)


if __name__ == '__main__':
unittest.main()

Какие варианты?
Аноним 31/07/20 Птн 09:32:14 1764765135
Может за $ кто-то поможет именно объяснить? Можно даже не решать.
Аноним 31/07/20 Птн 09:46:30 1764775136
На связи веб-макака, пишущая на flask, aiohttp и любой херне, что потребуется заказчику. Работаю полгода, хотел узнать:
а) что нужно для переката в Дата Инженера? Вроде там перспективы по зп и по развитию пизже
б) если оставаться по моему направлению, то что стоит учить, чтобы не отстать от рынка и стать более востребованным?
Аноним 31/07/20 Птн 09:57:43 1764779137
Аноним 31/07/20 Птн 09:59:06 1764781138
>>1764597
книжку скачай "Эксель для офисных дебилов".
Аноним 31/07/20 Птн 10:12:59 1764788139
>>1764781
Ну и хули ты не можешь решение скинуть, которая наверняка не больше пяти строк занимает, не дебилушка?
Аноним 31/07/20 Птн 11:32:15 1764816140
image.png (5Кб, 221x142)
221x142
Сап, есть один скрипт, который открывает через селениум открывает браузер, совершает некоторые манипуляции и принтует в консоль всякую информацию. Но я хочу, чтобы на последней строчке всегда отрисовывалась какая-нибудь строка с актуальной информацией, например, сколько окон запущено и сколько времени прошло со старта скрипта. Накидал пикрил для понимания, как это примерно должно выглядеть.

Чем и как можно подобное реализовать? А то я настолько, дебил, что не могу даже в гугле запрос составить правильно
Аноним 31/07/20 Птн 11:54:26 1764833141
Есть книги для углубленного пайтона? Что после Лутца читать? Хочу про ассинхрон почитать.
Аноним 31/07/20 Птн 12:02:04 1764834142
>>1764833
Лучано читай, про асинхронку есть в шапке книга
Аноним 31/07/20 Птн 12:16:22 1764840143
Аноним 31/07/20 Птн 13:45:44 1764920144
Аноним 31/07/20 Птн 13:51:20 1764923145
Аноним 31/07/20 Птн 14:35:58 1764953146
Аноним 31/07/20 Птн 14:57:21 1764973147
Был в курсе про модуль atexit, который позволяет вызывать функции при завершении программы. Мне надо при завершении моего скрипта выводить некую отладочную информацию на экран, я думал сделать это по типу:

atexit.register( lambda: print( get_info() ) )

Но внезапно я выяснил что если скрипт завершается через ctr+C или инвм сигналом, который его "убивает", то нихера не принтится. А у меня мой скрипт завершается именно так (это бесконечный loop). Че делать?
Аноним 31/07/20 Птн 15:03:59 1764974148
Bmp
Аноним 31/07/20 Птн 15:47:14 1765019149
>>1764973
atexit вызывается при цивильном экзите. Попробуй сигналы обрабатывать.
Аноним 31/07/20 Птн 16:22:47 1765051150
>>1764764
>from src.sample_mock import posts
что такое posts? Я ебу что ты там наговнокодил? Показывай давай нормально.
Аноним 31/07/20 Птн 16:28:25 1765055151
>>1764973
>это бесконечный loop

signal_event = False




def handler(sig, frame):
signal_event = True
os.exit(0)

signal.signal(signal.SIGTERM, handler)

while not signal_event:
print(''Govnokod is working')


Аноним 31/07/20 Птн 16:43:49 1765065152
В чем отличие промисов (Promise) из жс и футур (Future) из асинхронного питона?..
Аноним 31/07/20 Птн 18:21:56 1765124153
Может слегка ебанутый реквест, но как реализовать вебсокеты на питоне на низком уровне (то бишь на либе socket и ей подобных)
Аноним 31/07/20 Птн 19:34:45 1765180154
>>1765124
Читаешь спеку и реализуешь.
Я как-то колхозил парсер сервиса на вебсокете на пхп и нашел либу с реализацией что-то в 300-400 строк включая каменты и прочую хуйню. Так что должно быть не особо сложно.
Аноним 31/07/20 Птн 19:52:09 1765199155
>>1765051
posts это метод из класса Блог. отюсда >>1764675

Плиз хепл!
Аноним 31/07/20 Птн 19:55:21 1765201156
>>1765199
То есть я попытался импортировать функцию пост из класса Blog.
Но она не импортится.
Аноним 31/07/20 Птн 19:58:21 1765204157
>>1765201
Но суть даже не в этом. Похуй на импорт. Я могу в том же самом файле на крайняк тест сделать.
Смысл в том, чего делать дальше.
Аноним 31/07/20 Птн 20:16:07 1765218158
>>1765201
Метод post из класса Blog? Пиздуй азы учить, братюнь.
Если метод класса, то и вызываешь его Blog.posts(), если инстанса, то через инстанс: new_blog.posts().
Вы вообще хоть что-то читаете про ООП в питухоне? Там же все тривиально.
Аноним 31/07/20 Птн 20:21:27 1765226159
>>1765204
import unittest
from src.sample_mock import posts

class Test_Blog(unittest.TestCase):

def setUp(self):
self.test = Blog('Test')

def test_post_response(self):
self.assertEqual(response.status_code(), 200)


if __name__ == '__main__':
unittest.main()

Только сейчас заметил.... Ты определил инстанс зачем-то в методе. Полный ахалаймахалай.
перенеси в init(). Потом self.test.posts() вызывай.
Ты main() где определил? Нигде. И что в данном случае интерпретатор сделает? Правильно, напишет что нет такого метода main(). Ну ебана. Ты хочешь автотесты писать, при этом на выходе говнокод.
Убирай нахуй unittest, пиши обычную логику. Как поймёшь что куда дальше уже смотри или пиши свои тесты.
Аноним 31/07/20 Птн 20:24:50 1765231160
>>1765226
Если у тебя библиотека requests, то status_code нихуя не функция.
assert response.status_code == 200.
Знаешь что лучше сделай? Пиздуй на github fastapi (загугли блеать) и посмотри как они тесты написали. У тебя полная каша в голове сейчас.
Аноним 31/07/20 Птн 20:42:04 1765237161
>>1765218
>Метод post из класса Blog?
Да.
Ок, заработал сам Метод. Спасибо!
Сейчас он возвращает мне то, что в этом методе - return response.json().
А как теперь проверить статус код? Ведь внутри этого метода есть
response, но как я могу достать переменную response из этого метода?
Аноним 31/07/20 Птн 20:43:48 1765238162
Screen Shot 202[...].png (243Кб, 2594x996)
2594x996
>>1765237
Всем спасибо за ответы! Дедлайн горит, у меня еще свой проект на стороне. Я на питоне никогда не работал пасаны.
Аноним 31/07/20 Птн 20:44:44 1765239163
>>1765238
Само собой этот код не работает. Потому что у метода posts нет response.status_code.
Аноним 31/07/20 Птн 21:02:20 1765242164
Запилил пару тестов, работают.

Никак не могу достать статус код, потому что он возвращается в формате Джсон. :(
Аноним 31/07/20 Птн 21:07:36 1765245165
>>1765242
У любого респонса статус код доступен априори
Это свойство любого респонса бля
не говоря уже о том, что ты зачем-то заюзал на объекте метод response.json() а потом жалуешься что "не могу достать статус код"
иди в /web и латай дыры в знаниях
Аноним 31/07/20 Птн 21:16:04 1765248166
>>1764834
презентации от дэвида бизли посмари есть в pdf и на утубе
Аноним 31/07/20 Птн 21:16:16 1765249167
>>1765242
Не смотри что писал касательно main и setUo(), в глаза уже долблюсь

response.status_code - возвращает статус код.

По поводу дедлайна успокойся. Так больше ошибок сделаешь.
Аноним 31/07/20 Птн 21:32:36 1765254168
Screen Shot 202[...].png (301Кб, 1192x1424)
1192x1424
>>1765245
Бро, все так. Только это не мой код. Мне нужно протестировать этот функционал. Конечно же я бы запилил отдельный метод в классе Блог чисто для респонс код. Но такие условия задачи.
>>1765249
Спасибо, но как уже писал выше я не могу достучаться до переменной response из свой тест класса.

Вот что на выходе.
Тест test_posts_response не работает и выдает.
AttributeError: type object 'Blog' has no attribute 'response'

Аноним 31/07/20 Птн 22:00:08 1765259169
>>1765254
Пиздец... ты хоть в одном языке видел определение переменной?
Какой метод делает запрос и возвращает результат? Его используй.

r = self.test.<my_func>
assert r.status_code == 200
Аноним 31/07/20 Птн 23:09:14 1765274170
Есть ли у меня шансы в пограммировании, если функция ниже для меня пиздец как сложна для понимания? Я уже принтами вывел все потоковые значения, понятнее стало на процент. Обычно, если и после этого алгоритм мне не до конца понятен, я рисую блок-схему и разбираюсь. Тут же это в принципе невозможно, и я больше часа сижу туплю над десятком строчек.

def permutel(seq):
if not seq:
return [seq]
else:
res = []
for i in range (len (seq) ) :
rest = seq[:i] + seq[i+1:]
for x in permutel (rest) :
res.append(seq[i:i+1] + x)
return res
Аноним 31/07/20 Птн 23:11:57 1765276171
>>1765274
заливай на ideone или pastebin, пидор
Аноним 31/07/20 Птн 23:17:12 1765280172
>>1765274
>Есть ли у меня шансы в пограммировании, если функция ниже для меня пиздец как сложна для понимания?
У меня 4 год опыта работы, и я понятия не имею, что делает твоя функция. Для нее должен быть написан docstring, а в идеале юнит-тесты. Если этого нет, то запускай дебаггер и смотри что она делает. Блок-схемы бесполезны.
Аноним 31/07/20 Птн 23:20:46 1765284173
>>1765276
https://ideone.com/CveeBN
>>1765280
Это пример из Лутца, я понимаю что она делает, точнее что она возвращает, там это сказано точнее. Перемешивает последовательность, выдавая список из всех возможных вариантов последовательностей с теми же элементами. Делов в том, что я не понимаю как она работает.
Аноним 31/07/20 Птн 23:27:51 1765286174
>>1765284
Скачай PyCharm, запусти дебаггер и смотри что происходит после выполнения каждой строчки.

Проблема не в том, что ты не умеешь программировать, а в ограниченных возможностях человеческого мозга. Именно поэтому сложные алгоритмы должны иметь хорошую документацию, а в идеале лучше такое вообще не писать, а использовать готовые библиотеки.
Аноним 31/07/20 Птн 23:28:34 1765288175
>>1765284
>Делов в том, что я не понимаю как она работает.
Воспользуйся дебаггером, посмотри что на каждом шагу происходит. если только вкатываешься ясен хуй будет сложно и будешь тупить
Аноним 31/07/20 Птн 23:44:18 1765289176
>>1765284
Да вроде не очень сложно.
Выбираются элементы кроме текущего и рекурсивно прокручиваются, потом в результат добавляется текущий + каждая из этих прокруток.
Аноним 01/08/20 Суб 00:34:19 1765303177
>>1762623 (OP)
Добрый вечер, аноны. Быдло-кодер на связи. Вкатываться в коммерческую разработку не планирую. Программирование не профильное. Пилю небольшие скрипты для себя.

Ситуация следующая: большинство моих потребностей в основном упираются в разбор текстовых файлов html, xml, csv, просто текст в txt, etc. и преобразование их в другой формат.

Т.к. хорошего кода я практически не видел, то все мои манипуляции с текстовиками в итоге пришли к макаронам из del, split, replace и списков из ошметков, повторно проворачиваемых через них.

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

1) Насколько сильно это хреновый подход?
2) Дадут ли регулярки больший профит? И стоит ли лезть в это болото?
3) Как вообще это делать правильно?
Можно просто макнуть ебалом в линк.
Аноним 01/08/20 Суб 00:43:22 1765309178
>>1765303
Да, регулярки это охуенно.
Все твои сплиты и прочее можно сделать регулярками (но не нужно), а чтобы повторить довольно несложные регулярки ты сто раз через жопу провернешься.
Где вписываются базовые методы - юзаешь их, но без велосипедов.
Наверное, баланс приходит с опытом, никто тебе не распишет каждый случай.
Аноним 01/08/20 Суб 00:49:32 1765311179
>>1765259
Этот метод.
def posts(self):
response = requests.get("https://jsonplaceholder.typicode.com/posts")

return response.json()

Я пытаюсь через этот метод узнать status_code, но он не видит эту переменную..
Аноним 01/08/20 Суб 00:55:55 1765313180
Screen Shot 202[...].png (40Кб, 1084x228)
1084x228
>>1765259 >>1765311
AttributeError: 'function' object has no attribute 'status_code'

Плиз Хелп. Неужели никто не знает? :( Я уже обгуглился.
Аноним 01/08/20 Суб 00:59:51 1765319181
>>1765313
Да ты заколебал. Отоспись, все равно башка не варит уже
f - функция
f() - вызов функции
f.status_code не имеет смысла блэт
Аноним 01/08/20 Суб 01:01:26 1765323182
>>1765311
>>1765313
status_code есть у response.
Ты вовзращаешь response.json(), который уже распаршенный текст респонса.
Аноним 01/08/20 Суб 02:13:21 1765341183
15930125038360.jpg (236Кб, 1080x1080)
1080x1080
>>1765319
Да я уже по-всякому пробовал и с фукнкцией и с методом. в обоих случая ошибка атрибута. Нет респонс.
>>1765323
Я получаю эту ошибку при вызове: AttributeError: 'function' object has no attribute 'status_code'

Если вы знаете правильный вариант, подскажите плиз!
Аноним 01/08/20 Суб 03:39:28 1765349184
Эх, кроме двача и спросить-то негде!
Аноним 01/08/20 Суб 04:23:04 1765352185
>>1765341
Реально отоспись.

Сделай return response без доп. методов.
Тебе нужен именно сам объект response,
Аноним 01/08/20 Суб 06:36:41 1765363186
>>1765352
Спасибо, друг. Но как я уже сказал, я не могу править исходный класс.
Получается что из этого метода, без его изменения Никак нельзя получать статус код?
def posts(self):
response = requests.get("https://jsonplaceholder.typicode.com/posts")

return response.json()
Аноним 01/08/20 Суб 09:05:25 1765385187
Аноним 01/08/20 Суб 09:43:55 1765397188
>>1765385
Там написано людям с Двача не рады. Обоссут там за любой вопрос?
Аноним 01/08/20 Суб 10:46:07 1765417189
>>1765363
return response
В json уже на месте превращай. Если ситуация не позволяет и код править нельзя, то само по себе наличие json-объект ( if response.json() ) говорит о том, что response_code == 200. Сам подумай. Не веришь - читай спеку: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Аноним 01/08/20 Суб 12:52:33 1765465190
>>1765417
Тебе кто такое сказал? Я могу и 403 вернуть, но с телом ответа.
Аноним 01/08/20 Суб 12:54:26 1765467191
>>1765465
Епт, ну канешн надо проверить валидность тела, а как иначе?
Аноним 01/08/20 Суб 14:58:52 1765533192
как с помощью asyncio сделать пул отложеных задач, причём выполнятся должна только последняя?
приходет вызов из коллбака, спавнится ждун А. ждун А заканчивает, спавнится новая задача Х.
если во время выполнения ждуна А, пришёл новый вызов спавнится ждун Б, ждун А ничего не делает. после того, как ждун Б закончит, спавнится новая задача Х.
Аноним 01/08/20 Суб 15:27:02 1765546193
Аноним 01/08/20 Суб 15:32:45 1765554194
>>1765546
не, мне для дома, для семьи, в уютный маленький прожэкт.
Аноним 01/08/20 Суб 17:15:51 1765656195
Нужно распарсить лог спортивного матча, т.е. происходят всякие события и они стандартно описаны таймштампом и текстом.
Я так понимаю, лучше всего токенизировать и потом разбирать, или можно как-то попроще?
Аноним 01/08/20 Суб 17:30:51 1765671196
>>1765309
>регулярки это охуенно
Понимаю. У них же основная проблема - это читаемость. Поэтому стараюсь не лезть без крайней необходимости.

>баланс приходит с опытом, никто тебе не распишет каждый случай
Ну что поделать. Будем набивать с переменным успехом. Спасибо за реплай в любом случае.
Аноним 01/08/20 Суб 17:44:54 1765689197
FbLVjMB5O4Y.jpg (16Кб, 486x467)
486x467
>>1762623 (OP)
Чики двощ!
Я заканчиваю "Автоматизацию рутинных задач", набрал новых крутых учебников, но в них подход недостаточно проектный. Надо больше чужого кода и практических задачек. Вот по Джанго нашёл Django for Beginners by William S. Vincent, очень нравится. А что есть по чистому Питону для того, кто хочет стать интермидиэйт? С английским я ок.
Аноним 01/08/20 Суб 17:59:03 1765703198
>>1765689
Нет такого подхода. Ну можешь почитать GoF и все.
Или посмотреть какие-то части решений.

У меня был опыт сбора данных из БД или по SNMP, парсинг/обработка -> передача в БД/обмен данными через AMQP. О чем попросит тебя заказчик... хуй его знает. Ко всему нельзя быть готовым.
Пока ковырял проект были и идеи по управлеию сервисами через собственный вебсервис через pystemd. Так как часто снимали логи через SSH со сторонних устройств , то прикручивал asyncssh.
Автоматизировал отчетности. Выгрузка из БД, перевод в excel и рассылка через SMTP библиотеку.
Парсил HTML, использовал OpenCV для получения данных из видеопотка с камер. Передавал потом в сторонние системы...

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

При том неважно будешь ты на питоне это писать или на другом языке. Просто если ты не тупой, твоя задача не просто кодить (ты же не мартышка с печатной машинкой), а именно находить решения и реализовывать их.
Аноним 01/08/20 Суб 18:05:53 1765715199
>>1765703
Ты хочешь сказать, что надо просто работу найти?
Аноним 01/08/20 Суб 18:20:36 1765737200
>>1765715
Ну ты можешь что-то для себя ковырять. Подергать чужие API, посмотреть как люди документации пишут и потом вспоминать это с умилением. Потому что отечественный IT все равно с "душком". Кто-то где-то реализовал хуйню, ее не протестили, потом начинаются костыли и так далее. А ты сидишь как баран и пишешь ебучие заплатки. И молишься чтобы тебя предупредили, когда в проде что-то поменяется.
Пойми одно. Есть проект - людей нагоняют и вроде как пишут документацию, потом галера пустеет и остается только полтора землекопа, которые знают наверное 30% о своем продукте.
Потом когда надо что-то допилить, снова галера заполняется и так пока не придут к какому-то логическому концу или не выдадут новый бюджет для попила и все нахуй с нуля перепишут.
У меня был такой горький опыт.
Аноним 01/08/20 Суб 18:51:32 1765766201
>>1765737
Звучит отстойно.

Аноны, советы по книжкам еще нужны. Пишите, пожалуйста.
Аноним 01/08/20 Суб 19:06:32 1765776202
>>1765766
А ты думал IT в 21 веке это сказочный мир что ли?
Тут блять CoC обсуждают, а не развитие инструментов. Запрещают slave/mastery/blacklist/whitelist.
А ну и выгорание на проекте в течение полугода, так как если ебашить малой группой, то с переработками и иногда без выходных. Бывало спал по 2 часа в течение 3-х недель.
Аноним 01/08/20 Суб 19:27:56 1765793203
1520648156989.jpg (43Кб, 650x650)
650x650
>>1765776
Я не специалист в компьютер сайенс, но мне кажется, что тебе надо отрастить яйца. Пик релейтед - иногда смотрю на него и вспоминаю, что человек сделан из звёзд, и отчаиваться ему не подобает.

Еще про политкорректность скажу. В Америке если человеку не нравится что-то - он ищет единомышленников. Пишет о себе, проводит встречи, пробивается в медиа и во власть. Негры не хотят терпеть чего-то там - и вот, как видишь, мир меняется, становясь всё более похожим на их мечту. Вместо того, чтобы ныть, ты бы посмотрел на жизнь вокруг и понял, что всё так засрано и бедно, потому что лично ты ничего не делаешь.
Аноним 01/08/20 Суб 19:34:07 1765801204
Бля, кто-нибудь, добавьте в шапку, что книги по той же Джанге (и по любому фреймворку) это beginner уровень, если хочется осваивать джанго/фласк/торнадо/фастапи - пиздуем изучать доки, шерстить стэковерфлоу и ютубчик. Любая литература по фреймворкам быстро стареет
Тут за тред уже 4й или 5й чел просит какие-то книги по Джанге блять кроме "Two Scoops of Django" с его best practises ничего нормального нет, остальное слишком старое
Аноним 01/08/20 Суб 19:59:23 1765816205
Как заставить какую-то функцию вызываться по интервалу? Например каждые 10 секунд?.. без неэффектитвного (треды будут слишком часто переключаться почем зря) мультитрединга это сделать невозможно?
Аноним 01/08/20 Суб 21:06:08 1765870206
>>1765816
while True:
твоя функция
time.sleep(10)

Или я чего-то не понимаю.
Аноним 01/08/20 Суб 21:08:55 1765873207
>>1765793
Не хочу в полемику углубляться. Разработчики не делятся по полу/национальности и расе. Раньше всех все устраивало. Пришли люди с улицы и сказали все переделать. Потом скажут что Julia ущемляет права женщин, а маскот Python является фаллическим символом и ваще патриархальный.
И мейнтейнеры будут заниматься полной хернёй вместо решения проблемы с GIL и оптимизацией встроенных библиотек.

>>1765816
Покажи код. Почему мультитрединг не эффективный? Все от задачи зависит.

>>1765801
Ну напишут. Кто-то читает что ли? Тут даже заходят с вопросами, которые разжеваны на SO

Аноним 01/08/20 Суб 21:10:45 1765876208
>>1765816
Не хочешь постоянного переключения - ебни отдельный процесс под функцию, хули
Аноним 01/08/20 Суб 21:19:07 1765878209
>>1765870
А если твоя функция занимает 100 секунд?
Аноним 01/08/20 Суб 21:21:02 1765879210
>>1765878
>А если твоя функция занимает 100 секунд?
Значит нужно ее оптимизировать.
Аноним 01/08/20 Суб 21:22:16 1765881211
>>1765878
Сделать ее асинхронной

мимо
Аноним 01/08/20 Суб 21:42:50 1765887212
>>1765417
Спасибо. Да я тоже так подумал, когда читал по API.
Я запилил такую вот логику в обход, это норма или идиотизм?

status_code = self.test.posts()
if not status_code:
return False

>>1765465
Каким образом?
Аноним 01/08/20 Суб 21:52:20 1765892213
>>1765887
return Response(json.dumps({'error':'ID is unknown', 'comment'':'I am calling police'}), status=403, media_type='application/json')

Я так вебсервис писал, ибо нехуй. Если возвращается ошибка, то ее надо обозначать через статус коды.
Тогда я делаю контракт (через документацию), что при успешном запросе статус 200, а при неуспешном все от 400. При этом, если статус не 500 и выше, то можно получить тело ответа.
ЭТО НОРМА. Я так работал с ИС, которая возвращала всегда 200, даже если ошибка была. Это полный ад.
То есть я ОБЯЗАН парсить тело ответа и определять там есть ключ 'error' или нет. Это банально лишние операции и больше ошибок.
Аноним 01/08/20 Суб 22:22:28 1765904214
>>1765881
Что это значит? Объясните тупому.
Аноним 01/08/20 Суб 22:34:30 1765913215
Аноним 01/08/20 Суб 22:43:13 1765919216
Запилил такую вот еботу, но статус код конечно же не проверяется напрямую...

def test_posts_status_code(self):
status_code = self.test.posts()
expected = {здесь экспектед бади}
if status_code:
self.assertEqual(self.test.posts()[0], expected)
else:
return False
Аноним 01/08/20 Суб 22:54:09 1765924217
>>1765919
Чет ты коляску какую-то пилишь.
assertEqual(first, second, msg=None)
Test that first and second are equal. If the values do not compare equal, the test will fail.
Нахрена ты булевые ввел?
Аноним 01/08/20 Суб 22:56:12 1765925218
>>1765919
ну и опять же
assertIsNotNone(x)
если None, то сразу непройденный тест. За тебя уже давно все придумали
Аноним 01/08/20 Суб 23:12:46 1765931219
>>1765925
>>1765924
Спасибо. Поправил. Мне подсказали, что мне нужно использовать mock юнит тест. Как уже советовал добрый Анон выше.
А еще меня забанили в группе Питонщиков на пару дней. :(

Аноним 01/08/20 Суб 23:12:59 1765932220
>>1762623 (OP)
Где я могу научиться писать нейросети? Кто-то может научить меня писать нейросети?
Аноним 01/08/20 Суб 23:15:18 1765935221
>>1765932
Я научу. И писечку пососу. И за ручку отведу, в кресло сеньора посажу
Аноним 01/08/20 Суб 23:20:54 1765937222
>>1765935
А можно? Я спасибо скажу, обещаю
Аноним 01/08/20 Суб 23:55:34 1765947223
>>1765932
1-3 курс, линейная алгебра и матанализ
Аноним 01/08/20 Суб 23:58:12 1765948224
>>1765931
Ну не совсем. Смотри доки
>unittest.mock provides a core Mock class removing the need to create a host of stubs throughout your test suite. After performing an action, you can make assertions about which methods / attributes were used and arguments they were called with. You can also specify return values and set needed attributes in the normal way.

У тебя же задача клиента написать для тестов. А вот хер который бэк писал должен был как раз mock использовать.
Аноним 02/08/20 Вск 01:59:49 1765989225
>>1765947
нахуй не нужны для них.
Аноним 02/08/20 Вск 02:31:05 1765994226
Аноним 02/08/20 Вск 03:18:35 1766002227
>>1765994
Ты долбоеб? Что там нельзя послать в твоём блядь случае я чё телепат нахуй? Скажи мне пидорас тупорылый, я телепат нахуй ты думаешь или чё?
Аноним 02/08/20 Вск 03:24:27 1766003228
>>1765994
Не слушай поехавшего.
ef test_get_employee(requests_mock):
test_id = 'random-id'
requests_mock.get(f'{__BASE_URL}/employee/{test_id}', json= {'name': 'awesome-mock'})
resp = get_employee('random-id')
assert resp == {'name': 'awesome-mock'}

def test_absent_employee(requests_mock):
test_id = 'does_not_exist'
requests_mock.get(f'{__BASE_URL}/employee/{test_id}', status_code=404)
with pytest.raises(HTTPError):
resp = get_employee(test_id)

Вариант 1.
Возвращается тело, логика теста, а следовательного всего приложения может продолжаться
Вариант 2.
Возвращается ошибка. логика теста продолжается, идет обработка кода ошибки.

У тебя уже готовый сервис с данными, которые ты проверяешь. Mock в данном случае не требуется. Тебе просто надо пройти тесты с разными входными данными, которые тебе выдали. Все.
Аноним 02/08/20 Вск 03:29:04 1766005229
>>1765994
Короче. Объясняю с точки зрения погромиста.

Вот написал я охуенную приложуху, но у меня еще нет ни БД, ни сервиса. Проебывается БД админ например и второй программист ответственный за вебсервис. А я в соответствии с графиком заебашил свою часть, но при этом чтобы реально сказать "я сделал, дальше ебитесь сами" я должен подготовить тесты, в том числе с mock. Т.е. я должен буду описать логику поведения своего говнокода, так чтобы возможные ошибки не повлияли на общую работспособность, когда все соберут воедино. Как-то так.
Аноним 02/08/20 Вск 03:43:00 1766008230
>>1766003
>Тебе просто надо пройти тесты с разными входными данными, которые тебе выдали. Все.
Благодарю! Означает ли это, что при получении экспектед бади я могу сказать, что статус код будет 200?

Алсо. Поясните почему или зачем метод возвращает именно return response.json() метод?
Аноним 02/08/20 Вск 04:00:03 1766011231
>>1766005
Вообще мне тоже кажется, что я велосипед изобретаю. Проверил бади, если получил правильный ответ, по идеи статус код похуй же.
Аноним 02/08/20 Вск 04:53:50 1766015232
>>1766003

Почитал про мокинг классы. Какая-то непонятная тема.
Запилил вот эту кашу, ну и само собой на выходе ошибка.

def test_hello(self):
with patch('sample_mock.requests.get') as mocked_get:
#mocked_get.return_value.ok = True
mocked_get.return_value.text = 'OK'

r = self.test.posts()
mocked_get.assert_called_with('https://jsonplaceholder.typicode.com/posts')
#mock.assert_called_with('https://jsonplaceholder.typicode.com/posts')
self.assertEqual(r, 'OK')
Аноним 02/08/20 Вск 04:54:47 1766016233
>>1766015
>AssertionError: <MagicMock name='get().json()' id='4436669720'> != 'OK'

Он почему-то не запрос возвращает, а какую-то ботву.
Аноним 02/08/20 Вск 05:01:29 1766018234
Ботва блядь, как же я в твой ротик мелкий срал ахуеть.
Аноним 02/08/20 Вск 05:24:21 1766022235
image.png (4Кб, 275x144)
275x144
Сап, змеи.
Решили с другом на Питоне сделать бота в вк, чтобы он выполнял различные функции. Уже 5 скриптов есть (пикрил) еще будет функция удаления всех диалогов+хотим вынести в отдельное десктоп-приложение.
Но нужно наполнение. Подкиньте идей годных.
Аноним 02/08/20 Вск 08:53:52 1766072236
159634162837.png (54Кб, 1118x642)
1118x642
Как пофиксить этот кусок кода чтобы работало?
Аноним 02/08/20 Вск 08:57:06 1766074237
>>1764525
>НУ МЫ ВООБЩЕТ НЕ ИЩЕМ ДЖУНА ЧЕСТНЫГОВЫРЯ
Серьезные люди ищут не джуна а Шинку.
Аноним 02/08/20 Вск 14:40:25 1766216238
>>1766072
PS: это колаб если что
Аноним 02/08/20 Вск 20:24:48 1766593239
Вопрос такой - есть картинка, собственно скриншот из фильма. Как получить, к примеру, 7 основных цветов на картинке.
В жопе мозге понимаю что взять - посчитать массив цветов и отсортировать. Но вот не пойму с какой стороны подойти. Ткните носом, плз. Чую что через имажмагик, но понять не могу с какой стороны начать
Аноним 02/08/20 Вск 20:51:27 1766622240
Аноним 02/08/20 Вск 21:03:28 1766625241
Че такое "инъекция зависимостей". Вот чувак высирает уже вторую статью про нее на Хабре:
https://habr.com/ru/post/513510/

Но я не могу никак вдуплить: что такое инъекция зависимостей и нахрена она собственно нужна? Определение в гугле путанное
Аноним 02/08/20 Вск 21:11:21 1766630242
>>1766625
это короч когда ты отдаешь управление зависимостями для твоего кода внешней хуйне(фреймворку). в общем случае такой подход называется inversion of control. внедрение один из способов мутить ioc. еще есть лукап и фабрики.
мимо жабамразь
Аноним 02/08/20 Вск 21:13:35 1766633243
>>1766625
>что такое инъекция зависимостей

Это когда рантайм твоего языка ломают к хуям через, например, механизм рефлексии или кодогенерации и ебут инкапсуляцию в рот, без скрыто инициализируя приватные поля, оправдывая это программированием через конфигурацию и возможностью легкой замены классов как перчаток.
Аноним 02/08/20 Вск 22:55:12 1766690244
>>1766625
И что этот чел намутил, интересно? В чем в целом профит той еботни, что он понаписал?
Аноним 02/08/20 Вск 23:05:45 1766698245
>>1766633
Ты вечерний прием галоперидола забыл
Аноним 03/08/20 Пнд 00:44:44 1766732246
Анон как мне прогнать pytest над данными лежащими в файлах?
Суть такова: есть 1 рабочий конфиг для этого скрипта, хочу прогонять тесты с его использованием, ожидаемый результат собираюсь поддерживать в отдельном файле, синхронизируя по мере обновления конфига.
Наговнякал вот такую говнину https://pastebin.com/CHp29rCM
Она работает, но выглядит поуродски.
Можно ли как то сделать загрузку данных красиво через фикстуры? А не костыли прикрученые сбоку как у меня?
Аноним 03/08/20 Пнд 03:09:30 1766792247
image.png (60Кб, 623x544)
623x544
image.png (24Кб, 581x181)
581x181
обрабатываю пост запрос в restx и хочу передать args['imageData'] в celery задачу объект файла, как правильно его сериализовывать? либо арет на json is not seriazable или шо рекурсия когда пытаюсь в ручную через pickle декодировать
Аноним 03/08/20 Пнд 03:58:43 1766800248
image.png (99Кб, 865x566)
865x566
>>1764341
>Я хочу чтоб все они пошли выполняться вместе и чтобы все результаты были готовы через 4 секунды, а вот в этом куске кода результаты вернутся через 4+3+2+1 = 9 секунд, что не есть гуд
Аноним 03/08/20 Пнд 04:01:41 1766801249
Аноним 03/08/20 Пнд 07:50:56 1766823250
>>1764341

В питоне многопоточность не многопоточность в смысле что долбить больше одного ядра в соточку нильзя. Только через процессы.
Аноним 03/08/20 Пнд 10:19:03 1766910251
на чем графоний делоть? только шоб бесплатно
Аноним 03/08/20 Пнд 11:12:18 1766930252
Аноним 03/08/20 Пнд 11:14:01 1766932253
>>1766930
сорян, я имел в виду интерфейсы пользовательские рисовать
Аноним 03/08/20 Пнд 11:24:10 1766936254
Аноним 03/08/20 Пнд 14:27:44 1767193255
Зашел на c++ ресурс с задачками для проганья. В категориях "сложные" и "хардкорные" какой-то проходняк лежит кек
Аноним 03/08/20 Пнд 16:10:15 1767305256
>>1767193
легкоатлетические разряды со времен СССР тоже понизились.
что ты хотел этим сказать?
Аноним 03/08/20 Пнд 16:45:27 1767361257
Пистоны, кто-нибудь разбирается в discord.py, нужно сделать бота, который будет отвечать на каждый пост. Желательно, чтобы он еще заходил как обычный пользователь.
Аноним 03/08/20 Пнд 19:34:32 1767610258
pythonassert.png (30Кб, 716x605)
716x605
Почему условие ложно? Пытаюсь найти строку в списке, в списке элементы - int, строку, соответственно, тоже конвертирую в int. Спасибо.
Аноним 03/08/20 Пнд 19:38:50 1767613259
>>1767610
У тебя список туплей, а не интов.
Аноним 03/08/20 Пнд 19:41:18 1767614260
>>1767610
Проверка список.count(элемент) тоже возвращает 0.
Аноним 03/08/20 Пнд 19:59:13 1767631261
>>1767613
Благодарю. нашел громоздкое решение, но работает
Аноним 03/08/20 Пнд 20:04:02 1767638262
>>1767631
Какое там решение, tuple(el) in list или (el,) in list
Аноним 03/08/20 Пнд 21:48:04 1767734263
image.png (158Кб, 1016x848)
1016x848
image.png (29Кб, 730x422)
730x422
>>1762623 (OP)
Сосач, почему оно не хочет писать русский текст без пикчи?? endcode utf-8 не работает
Аноним 03/08/20 Пнд 22:27:51 1767767264
image.png (3Кб, 586x50)
586x50
Аноним 03/08/20 Пнд 23:36:34 1767798265
>>1763092
dict = {
1 : "2",
3 : "4",
4 : "5"
}
string = dict.__str__()
Аноним 03/08/20 Пнд 23:44:52 1767801266
>>1764394
Ну, игру уже написал, осталось монетизацию прикрутить.

Мне вот книжка понравилась - хз тебе такое надо или нет https://automatetheboringstuff.com/2e
Аноним 03/08/20 Пнд 23:58:11 1767808267
>>1764546
Охуенно интересно делать без примеров строк - ты совсем ебобо?

def three_files():
with open("file1") as file1:
file2 = open("file2")
str2 = file2.readlines()
file3 = open("file3")
str3 = file3.readlines()
result = []
for str1 in file1.readlines():
if str1 in str2:
for s3 in str3:
if str1 in s3:
result.append(str3)
return result

Это кривая хуета по идее вернет тебе лист строк из 3 файла.
Аноним 04/08/20 Втр 00:09:06 1767815268
>>1765689
Если найдёшь чего, то маякни - я б тоже почитал
Аноним 04/08/20 Втр 00:17:04 1767817269
Привет, котаны.

Маленько начал учить питон - пока всё нравится, прошёл курс на курсере бесплатный от вшэ, лол, порешал задачки на гитхабе для нубов, порешал на codewars, читаю automating boring stuff сейчас и вот всё не даёт мне покоя вопрос:

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

Это я не дорос просто до задач или что?
Аноним 04/08/20 Втр 02:25:28 1767867270
Аноним 04/08/20 Втр 03:31:43 1767885271
>>1767817
>Нахуя нужны классы? я всё что ни делал пока - писал через функции, прям ну вот не было нужды совсем. В чём плюсы ?
Если ты задаешься таким вопросом, значит пока что не нужны. Необходимость в них появится когда твоя программа разрастется до тысяч строк процедурного говнокода. Понимание когда именно использовать классы приходит только с опытом.
Аноним 04/08/20 Втр 04:13:35 1767893272
>>1767817
На курсере ебанутая система, хуй найдёшь инфу, что курсы платные, я так проебался, добился рефанда. Спишут через неделю, отвязывай карту
Аноним 04/08/20 Втр 05:16:59 1767895273
image.png (28Кб, 442x318)
442x318
Тайперы на месте? Это уродливо или так можно делать?

Аноним 04/08/20 Втр 05:17:35 1767896274
>>1767895
очевидно что декоратор для класса не нужен, но вы понели.
Аноним 04/08/20 Втр 09:39:47 1767944275
>>1767893
а что означает "доступна финансовая помощь" ? многие курсы как будто бесплатные, но я не разобрался в условиях.
Что на самом деле?
Аноним 04/08/20 Втр 10:09:42 1767954276
>>1767896
нет мы нихуя не поняли
ты хочешь спросить про typing.Generic?
Аноним 04/08/20 Втр 10:18:37 1767959277
>>1767893
Спасибо за совет, бро, но если меня просят привязать карту = идут на хуй )) потому что отвязывать карту ещё потом заебёшься и если забудешь, то спишут ~3К за месяц.

>>1767885
>>1767867
Спасибо

>>1767944
Можешь подать заявку что ты нищий стузиозус и часть(или всю) оплаты за тебя заплатят.
Аноним 04/08/20 Втр 10:47:19 1767971278
Есть набор точек вроде
points = [ (1,2), (3,4), (5,6) ]

Как "нормально" вытаскивать из набора по 2 точки за раз и вычленять их аргументы x и y? Что-то лучше чем

for i in range(len(points) - 1):
----first = points
----second = points[i+1]
----x1, y1 = first[0], first[1]
----x2, y2 = second[0], second[1]

существует?
Аноним 04/08/20 Втр 10:48:04 1767973279
>>1767971
first = points

канешн
фикс
Аноним 04/08/20 Втр 10:49:09 1767975280
>>1767973
Блять, Абу да ты заебал моё [ i ] прятать. Ну что ты за мудила, а?
Аноним 04/08/20 Втр 10:55:06 1767979281
Аноним 04/08/20 Втр 11:32:06 1768004282
Как запустить питоновского демона на unix?
В поваренной книге питона есть рецепт, как запилить демона через os.fork, но вот как оперативно его запускать/останавливать? Это по хорошему надо делать через systemd для единообразия а не питоновсеими командами. Я в линухе пока не особо шарю
Аноним 04/08/20 Втр 11:36:35 1768007283
>>1767979
Ты ж в курсе, что ты вытащил только одну?
И это наводит на дальнейшие размышления: наверняка есть генератор, который позволит за раз отдавать нужное количество объектов, например нам нужно вытаскивать не 2, а 4 точки за раз и проводить над ними одну и ту же операцию
Аноним 04/08/20 Втр 12:08:01 1768050284
Многие пишут, что обязательно необходимо изучать Python по Марк Лутцу, т.е. "Изучаем Пайтон". Действительно ли так? Или он больше как справочник подходит?
Аноним 04/08/20 Втр 12:13:06 1768054285
Аноним 04/08/20 Втр 12:38:39 1768086286
>>1767979
Норм, работает. Оно как tuple принимает x,y - я верно понимаю?

points = [(1, 2), (3, 4), (5, 6)]
for (x, y) in points:
print(x, y)
Аноним 04/08/20 Втр 12:42:48 1768087287
>>1768086
это же не то шо ты хотел, а так оно распаковывает из кортежа в переменные х и у соответственно
Аноним 04/08/20 Втр 12:52:59 1768093288
>>1768087
Так я и не он :) кортежи то просто выдернуть, а что в такой форме работает я не знал
Аноним 04/08/20 Втр 13:56:48 1768158289
Аноны, какое портфолио должно быть у junior'а?
Аноним 04/08/20 Втр 14:04:53 1768170290
>>1767971
Сам написал генератор для этой херни. Как приду домой, скину сюда, мне все равно не нравится, как получилось
Аноним 04/08/20 Втр 15:06:30 1768232291
Сап дващ, какие курсы проплатить, чтоб через месяц 300к получать? Сам 30лвл, вышки нет.
Аноним 04/08/20 Втр 15:12:03 1768236292
Все волосы на жопе поседели, пока пытался применить один шаблон ко всему проекту в жанге. Всю ночь ебался, пока наконец не додумался перед ссылкой на этот шаблон удалить /. Пиздец просто.
Аноним 04/08/20 Втр 16:01:07 1768281293
Аноним 04/08/20 Втр 16:21:30 1768312294
>>1768236
Типичные будни жангодауна
Аноним 04/08/20 Втр 16:23:47 1768318295
Аноним 04/08/20 Втр 17:55:25 1768407296
>>1768170
import itertools
points = [(1, 2), (3, 4), (5, 6)]
generator = (p for p in points)
while True:
try:
print(next(generator))
except StopIteration:
print('generator exhausted')
break

Чем не устраивает?
Аноним 04/08/20 Втр 17:56:33 1768408297
>>1768407
Импорт мой лишний, сам тестил кое-что. Можно и в более наглядном виде и по PEP8
points = [(1, 2), (3, 4), (5, 6)]
generator = iter(points)
Аноним 04/08/20 Втр 17:57:20 1768411298
>>1768408
проебался. блять. там итератор на выходе. Короче ты понЕл
Аноним 04/08/20 Втр 18:25:49 1768437299
>>1768407
>>1768408
>>1768007
>>1767971
ну я в прошлый раз не зометил шо тебе нужна пара координат
глянь ето
points = [(1, 2), (3, 4), (5, 6), (7, 8)]
def two_points(points):
----g1 = (p for p in points[::2])
----g2 = (p for p in points[1::2])
----point = zip(g1, g2)
----return point

g = two_points(points)
print(next(g))
print('----------')
(x1, y1), (x2, y2) = next(g)
print(f'x1 = {x1}, y1 = {y1}\nx2 = {x2}, y2 = {y2}')
print('----------')
Аноним 04/08/20 Втр 18:28:03 1768438300
>>1768437
можно попробовать еще класс генератора напейсать, но у мну пока не получилось, сам нуб еще, методы init next iter надо реализовывать
Аноним 04/08/20 Втр 18:30:31 1768443301
image.png (54Кб, 469x426)
469x426
>>1768437
и да, глянул ща фукнцию зип, он юзает генератор списков, значит моё решение в помойку если у тя будет миллион точек
Аноним 04/08/20 Втр 19:10:40 1768471302
>>1768443
а не, я тупанул, там же yield, так шо всё зоебис
Аноним 04/08/20 Втр 19:45:39 1768491303
>>1768170
>>1768007

https://ideone.com/AW8ICy
Такс, я дома, нахер. Накидал подобное. У нас есть генератор, который принимает на вход итератор и integer число, за каждый проход он возвращает именно это (или меньшее, если не хватает) число объектов

Но тут есть свои косяки и непонятки. Во-первых, с фига ли он мне пишет что тот же range не является итератором?? Чтобы все работало его нужно обязательно в iter() обернуть

Думал кстати делать raise StopIteration внутри блока except в надежде что тогда внешний цикл увидит это и прекратится, чтобы обойтись без ебучих флагов, но нихрена - лишь ошибка: RuntimeError: generator raised StopIteration
Аноним 04/08/20 Втр 19:47:21 1768493304
Всем привет, вопрос от новичка:
Когда нужно использовать в коде конструкцию

if __name__ = '__main__':
...

?
Аноним 04/08/20 Втр 19:49:02 1768494305
>>1768491
Также неплохо было бы добавить "дефолтное" значение для "пустых" ячеек. Например при вызове: numbered(iter(range(10)), 4) последний список будет содержать 2 значения а не 4, что может вызвать проблемы при присваивании. Поэтому юзер сам сможет задать свое дефолтное значение по типу: numbered(it=iter(range(8)), n=3, default=None)
А так значения можно принимать списком, а можно распаковывать на лету как: for x, y, z in numbered(iter(range(110)), 3)
Аноним 04/08/20 Втр 19:58:53 1768502306
>>1768494
напишешь как решишь, интересно
Аноним 04/08/20 Втр 20:01:16 1768505307
>>1768491
>>1768494
>>1768502
https://ideone.com/vFZV0D
Вот вроде как нормальная доработанная версия. iter напрямую больше нет нужды вызывать, отсутствующие значения тоже заполняются. Можно делать что-то вроде:
for u, x, y, z in numbered(range(255), 4, default=0):
print(sum((u, y, z)))
Аноним 04/08/20 Втр 20:51:57 1768530308
>>1768505
А у тебя задача какая?
Из цикла можно просто через break выйти без флага, а сам цикл while True.
Аноним 04/08/20 Втр 22:16:14 1768549309
хочу сделать бота для бесед (подчеркивание, бесед), но код (мне нужен конкретно его суммон) из гайдов 2017-ого года (ибо новее гайдов нету) устарел. заранее спасибо
Аноним 04/08/20 Втр 22:54:17 1768567310
>>1768549
И что ты хочешь, чтобы кто-то за тебя написал?
Кури доки.
Аноним 04/08/20 Втр 22:59:41 1768570311
>>1768567
ИТТ каждый третий такой
"Хочу готовое решение, нихуя не умею, в ангельский не умею, вот".
Бич питона. Даже не знаю, где ещё такой идиотизм есть. Видимо только только с питоном, спасибо инфоцыганам. Коллега без знания всего хвастался торговым ботом, который построен на if-else и жаловался, что питон медленный, лол. Все хотят здесь и сразу. Сразу стать миддлом и 150кк в наносекунду.
Про архитектуру приложений и паттерны никто и не слышал. Думали тут как на пехе, просто добавь воды говнокод
Аноним 04/08/20 Втр 23:04:27 1768572312
>>1768570
>Про архитектуру приложений и паттерны никто и не слышал.
Слышал только про паттерны PIDOR и MVC. Я успешен?
Аноним 04/08/20 Втр 23:17:06 1768577313
>>1768570
Анончик, подскажи, я видел многие намекали что if-else типа хуевая структура организации кода, а как реальные пацаны пишут тогда? Во что она эволюционировать должна? Я максимум до чего дорос - тернарный if.
Аноним 04/08/20 Втр 23:18:49 1768578314
>>1768577
Он о том, что бизнес-логика, построенная на ветвящихся if - однозначный признак говнокода
Аноним 05/08/20 Срд 01:59:33 1768627315
>>1768572
Ну для жангодебила хватит, пиздуй DRF макакой работать или CRUDы дрочить. Через пару лет завезут кривую асинхронки и комбайн снова начнет работать, а потом начнутся очередные бенчмарки без проксирования с черрипикингом, где жанга ПОЧТИ догонит ноду и не совсем Go, мхех
Аноним 05/08/20 Срд 02:11:53 1768632316
>>1768577
Да хоть свитч сделай (обещали в 3.9, лол. Таки дошло до Гвидо) через dict/enum.
Один хуй когда логика более чем "if my_date != date.today(), и состояний объекта может быть на цикл более чем 5 if-else уже нужен рефакторинг, иначе будет спагетти-код, ещё и сам запутаешься.
Ты думаешь многие советуют из-за ЧСВ? Просто сами столкнулись в своем/чужом коде с таким. Лучше заранее соломку подстелить.
В начале можешь хуячить и так. Правда потом обиднее лезть в старый код, вспоминать какая была первоначальная идея и снова писать тесты.
Это реально обидно и времени ещё больше отнимет.
Аноним 05/08/20 Срд 09:56:16 1768706317
>>1768632
switch давно реализуется через dict вида:

selecter = {
"first": lambda x: 2x,
"second": lambda x: custom_process(x),
"third": lambda x: not x
}
result = selecter[option](input_data)

Че там этот Гвидо подвозить собрался?
Аноним 05/08/20 Срд 10:30:12 1768715318
>>1768570
>Думали тут как на пехе
В 2005 году. Современный боевой пых - это джава с динамической типизацией, ООП, SOLID, паттернами и прочим.
Аноним 05/08/20 Срд 10:34:26 1768717319
Аноним 05/08/20 Срд 10:51:45 1768726320
>>1768715
>ООП, SOLID, паттернами и прочим
Пощади, ирод
Пыхобляди это вообще особый подвид долбоебов. Понагородили в динамически типизированном языке многоэтажных конструкций лишь чтобы выебнуться и заодно доказать самим себе что они почти "белые люди" (джависты). Тот еще цирк

мимо жсмакака
Аноним 05/08/20 Срд 10:52:50 1768727321
>>1768706
Нихуя ж себе - надо записать!

Может тогда объясните как вот эта хуета работает ?

def wind_direction(deg):
direction = {0 <= deg < 20: "N",
20 <= deg <= 30: "N/NE",
...
...
...

320 < deg <= 340: "N/NW",
340 < deg <= 360: "N"}[True]
return direction
Аноним 05/08/20 Срд 10:57:58 1768730322
>>1768726
Когда мне кстати кто угодно начинает предъявлять за solid, я сразу же понимаю что это attention whore с двумя извилинами. Это что-то на уровне предъяв за 5ю нормальную форму БД
Аноним 05/08/20 Срд 11:33:35 1768776323
>>1768727
Ты просто вернул словарь весьма странного содержания вот и все
Switch что через словарь что в том же си обеспечивает быстрый доступ к процедуре и порой лучшую читаемость через параметр case. В твоем случае case в любом случае должен быть вычислен до доступа к словарю. И тут внезапно вычислять его таки надо через if. Switch тут бесполезен
Хотя в твоем случае ты вообще не туда воюешь. Тебе надо банально решается математически. Вот у тебя есть окружность и 1722 равных по величине сектора. Ты серьезно собрался хуярить 1722 if-а либо 1722 case-а? Вот тут мы и подходим к вопросу, что огромное число if-ов говорит о тупости прогера в первую очередь
Аноним 05/08/20 Срд 11:40:07 1768781324
>>1768572
кста а есть репозиторий на паттерн PIDOR?
Аноним 05/08/20 Срд 11:44:21 1768789325
>>1768776
Самое очевидное что у меня на уме на жанный момент это разновидность бинарного поиска: берем середину окружности (средний сектор, если быть точнее) и проверяем больше или меньше значение deg, отрезая таким образом половину вариантов. Повторяем по новой пока не получим единственныф сектор
Призываются математики, способные решить задачку без циклом лишь на бумаге...
Аноним 05/08/20 Срд 11:51:21 1768803326
>>1768789
Либо: создаем массив элементов Decimal от 0 до 360 с шагом base = 360 / n (n - число секторов). Все ответы у нас уже в руках то бишь. Ищем index элементов, между которыми попадает deg
Но это по-прежнему решение от дауна-прогера. Уверен, математически это будет легче
Аноним 05/08/20 Срд 11:55:35 1768808327
>>1768776
Да это понятно что метод каличный, я не понимаю что за хуйня [True] после словаря идёт? Это можешь объяснить, пожалуйста?
Аноним 05/08/20 Срд 12:20:18 1768832328
Двач помогай. Кинули таску для перехода на другую должность. В итоге требуется -
С помощью Python разработать программу,которая выполняет следующие действия:
1.Открывает браузер
2.Осуществляет переход на google.com
3.В поисковой строке вводит слово "новости", после чего выполняется поиск по заданному слову
4.На открывшейся странице выполняется переход на раздел "новости"
5.Вывести в терминале заголовок случайной новости в пределах первой страницы

Получилось только сделать первые два пункта. Как дальше работать со страницей в браузере понятия не имею,подскажите как гуглить эту задчку
Аноним 05/08/20 Срд 12:24:26 1768838329
>>1768832
На какую еще должность ты там переходить собрался?

selenium епта
Аноним 05/08/20 Срд 12:26:01 1768840330
>>1768838
надо на питоне онли
Аноним 05/08/20 Срд 12:26:46 1768842331
>>1768808
Поиск по ключу True, что в большинстве случаев бред само по себе
Кто это навалял? Чтоб код работал надо при каждом новом значении deg инициализировать новый словарь. If и то профитнее
Аноним 05/08/20 Срд 12:29:00 1768850332
Аноним 05/08/20 Срд 13:16:21 1768900333
Аноним 05/08/20 Срд 13:20:12 1768903334
>>1768627
Учи жангу чтобы не быть батхёртом, чел
Аноним 05/08/20 Срд 13:59:12 1768980335
>>1768900
Тебе дают все ключи в руки, ты же как и сказано в >>1768570
хочешь на все готовенькое
Аноним 05/08/20 Срд 14:23:01 1769018336
Slowpoke.png (19Кб, 200x218)
200x218
>>1762623 (OP)
Анон, напомни, пожалуйста, как решать следующие задачи.
Есть список (например, из 22 элементов), есть окно (например, из 5 элементов, т.е. длина списка не делится нацело на длину окна).
Надо окном извлечь все элементы из списка, включая последние два, которые это окно полностью не заполняют. Как это сделать?
Аноним 05/08/20 Срд 14:27:26 1769027337
Аноним 05/08/20 Срд 15:00:03 1769111338
>>1768842
теперь понял, спасибо
Аноним 05/08/20 Срд 15:48:06 1769192339
>>1768726
>мимо жсмакака
ясно
Аноним 05/08/20 Срд 16:49:29 1769226340
>>1769192
Что тебе ясно, ребёнок?
Аноним 05/08/20 Срд 16:55:31 1769237341
>>1768493
Когда ты хочешь, чтобы модуль по разному себя вел, когда ты его импортируешь из другого модуля, и когда ты запускаешь этот модуль как самостоятельную программу. Код в блоке после строчки "if __name__ == '__main__':" будет выполняться только, когда ты запускаешь данный модуль как основную программу, а когда ты импортируешь этот модуль из другого модуля, этот код выполняться не будет
Аноним 05/08/20 Срд 16:56:12 1769238342
изображение.png (4Кб, 350x92)
350x92
Аноним 05/08/20 Срд 17:11:58 1769245343
>>1767817
>прошёл курс на курсере бесплатный от вшэ
И как оно?
Аноним 05/08/20 Срд 17:13:42 1769246344
Аноним 05/08/20 Срд 17:24:27 1769248345
>>1769245
Как первый курс, когда ничего не знаешь - ОК (если жопа не сгорит на тестовых заданиях), если есть основы - такое себе.
Аноним 05/08/20 Срд 18:01:33 1769263346
11.png (43Кб, 1109x321)
1109x321
>>1768980
ладно.был не прав. и вправду через селениум делается. но все равно не могу доделать таску. застрял на том,как рандомно вывести заголовок новости в консоль.
подскажите хоть как примерно это реализовать?
сорян за скрин кода,а не в pastebin
Аноним 05/08/20 Срд 18:22:56 1769274347
>>1769238
пока только в голову пришли вложенные классы и properties
Аноним 05/08/20 Срд 18:24:40 1769276348
>>1769263
Зарплату будем на всех делить?
Аноним 05/08/20 Срд 19:18:59 1769309349
>>1769276
мне мне 100% те 0%

// мимокрокодил
Аноним 05/08/20 Срд 19:26:47 1769316350
Привет, друзья

Изменилось ли что-то в Питоне?

Почему код из __init__.py не исполняется неявно при исполнении модуля?
Аноним 05/08/20 Срд 19:29:07 1769317351
>>1769263
Получи список заголовков, а потом выбирай с помощью функции choice из стандартного модуля random
Аноним 05/08/20 Срд 19:32:47 1769318352
>>1767817
automating boring stuff
годнота штоле? уже второй в треде про это пишет
Аноним 05/08/20 Срд 19:37:40 1769322353
Аноним 05/08/20 Срд 19:49:56 1769325354
>>1769318
Хорошо для хоббистов или всяких тыжпрограммистов, можно найти решения для типовых задач. А так ничего особенного.
Аноним 05/08/20 Срд 20:09:31 1769338355
>>1769325
>>1769318
Каждому питонисту в том или ином виде стоит ее прочитать. Но всерьез думать, что это сделает тебя YOBA-разрабом - быть дауном
Для более глубокого погружения стоит читать Python Cookbook от Бизли (ебана, уже полгода работаю на галере, но иногда таки возвращаюсь к этой книге, действительно набор годных рецептов есть). А так - начинай потом хуярить доки фреймворков, которые тебе нужны и сразу же параллельно пиши на них свои проекты, учись на практике и не корми инфоцыган
Аноним 05/08/20 Срд 20:12:46 1769343356
>>1769338
ну python cookbook это само собой тем более шо от бизли, решил узнать шо анон нашел в этой книге, а так спасибо за ответы
Аноним 05/08/20 Срд 20:35:41 1769361357
Slowpoke.png (19Кб, 200x218)
200x218
>>1769018>>1769027
Смотри, есть список
list = [1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20, 21, 22]
Мне во время прогона на первой итерации надо получить такое окно/срез [1,2,3,4,5], на второй [6,7,8,9,10], на третьей [11,12,13,14,15] и так далее.
Окна не пересакаются.
Аноним 05/08/20 Срд 20:38:53 1769363358
>>1769361
for frame in numbered(list, 5, default=0):
----print(frame)

comprende?
Аноним 05/08/20 Срд 20:40:39 1769366359
Аноним 05/08/20 Срд 20:47:31 1769368360
>>1769361
for i in range(0, len(list), 5):
__print(list[i:i+5])
Аноним 05/08/20 Срд 20:50:44 1769370361
>>1769368
---->print(list[i::i+5])

TypeError: 'type' object is not subscriptable
Аноним 05/08/20 Срд 20:52:04 1769373362
>>1769370
Ну так выбери нормальное имя, дурень.
Аноним 05/08/20 Срд 20:55:17 1769377363
>>1769373
Да это ж очередной недовкатывальщик, лишний раз извилину напрячь не хочет, забей
Аноним 05/08/20 Срд 20:55:51 1769378364
Аноним 05/08/20 Срд 20:57:10 1769379365
>>1769368
while len(list):
____print(list[:5])
____list = list[5:]
Аноним 05/08/20 Срд 20:59:30 1769382366
>>1769370
>>1769379
[list66[i:i+5] for i in range(0, len(list66), 5)]
>>1769377
У меня бывают прострелы, что простое вгоняет в ступор.
Всем спасибо.
Аноним 05/08/20 Срд 21:03:00 1769385367
КОК КУКАРЕК УЧИМ НЕ ЯЗЫК А ПОГРОМИРОВАНИЕ!1 ПСЕВДОКОКОКОД!!
@
TypeError: 'type' object is not subscriptable
Аноним 05/08/20 Срд 21:23:53 1769398368
>>1769382
>оправдываться на ссаче
Аноним 05/08/20 Срд 21:39:01 1769405369
>>1769368
>>1769363
>>1769370
Так, а если есть отсортированный по возрастанию словарь (у каждого ключа одно значение типа int, но значения могут совпадать) и мне аналогичным образом надо брать условные 5 значений и получать их ключи, потом следующие 5 и т.д.?
Аноним 05/08/20 Срд 21:43:20 1769407370
>>1769405
Спасибо, уже не надо.
for i in range(0, len(sorted_dict), 5):
dict_slice = list(sorted_dict.keys())[i:i+5]
Аноним 05/08/20 Срд 21:50:51 1769412371
>>1769385
a = list
for elem in a:
print(elem)

Ты определил тип, но на задал начально значение переменной, отсюда и ошибка. Хули тупишь? Ты бы и в жаве и Go говнокодил.
Аноним 05/08/20 Срд 21:52:19 1769414372
>>1769385
Так это ты петух зарезервированные имена для переменных используешь? Ох, мудила...
Аноним 05/08/20 Срд 22:36:05 1769438373
Хочу попробовать поработать с вебом и БД, вопрос, какая самая частая БД для питончика? Или такой нет? То что видел, используют PostgreSQL.
Аноним 05/08/20 Срд 22:36:29 1769439374
>>1769368
Бле, всегда казалось что срез выплюнет ошибку, если значения выскочат за индекс листа - ан нет, работает =.=
Аноним 05/08/20 Срд 22:40:43 1769443375
>>1769438
Лучше над выбором orm и движка задумайся
Аноним 05/08/20 Срд 23:04:34 1769450376
>>1769438
С точки зрения производительности Postgres, возможно еще Percona/MariaDB, но вот этот >>1769443
прав. Сразу ORM и тогда никакой ебли с БД не будет.
Сразу же создаешь таблицы по сути и определяешь связи.
Аноним 05/08/20 Срд 23:25:42 1769464377
Кек, пишу тут незамысловатый серверный код как при перезапуске кода эта срань мне выдает:

OSError: [WinError 10048] Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)

То есть этот петух сделал app.listen(8888) как я его и просил, но после перезапуска сокет 8888 остался занятым. Че за хрень? Как его "почистить"? (это винда если че)
Аноним 05/08/20 Срд 23:52:46 1769480378
>>1769464
а ты сокет закрываешь перед перезапуском?
Аноним 05/08/20 Срд 23:57:19 1769482379
>>1769480
Явно - нет. Раньше вроде без этого обходилось и все работало, а сейчас че-то он не закрылся
Где в винде его вручную ебнуть?
Аноним 06/08/20 Чтв 00:00:33 1769483380
>>1769482
У него есть время, которое он будет занят, что-то около 3 минут. Чтобы пакеты все дошли.
Аноним 06/08/20 Чтв 00:23:15 1769494381
Аноним 06/08/20 Чтв 00:46:25 1769500382
>>1769482
Посмотри, не висят ли питоньи процессы.
Аноним 06/08/20 Чтв 00:50:07 1769502383
Аноним 06/08/20 Чтв 03:29:35 1769530384
image.png (17Кб, 446x324)
446x324
Аноним 06/08/20 Чтв 03:31:13 1769531385
image.png (18Кб, 467x328)
467x328
> None
Охуеть
Аноним 06/08/20 Чтв 07:25:38 1769571386
>>1769531
>ORM
Его нет смысла использовать в программе на пару тысяч строк.
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов