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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Питон тред №95 /python/ 1762623 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #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: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
2 1762630
пасоны, че за лямба?
3 1762632
Подскажите плз, я чет не допираю, как можно отправить словарь в телеграм боте одним сообщением? Юзаю телебот. Я могу типа для каждого элемента в цикле вызывать отправку сообщения, но тогда будет не одно сообщение.
4 1762634
>>62630
злата обуховская
5 1762639
>>62630
У рыбы между клоакой и заднепроходным отверстием.
6 1762642
>>62632
А, ну я наверное могу просто в цикле сначала сделать строку из элементов, а потом вывести её
7 1762663
>>62630
Бессерверные вычисления в амазон веб сервисес
8 1762664
>>62642
блять, тут реально погромисты такого уровня обитают?
9 1762665
>>62664
Да я не погромист, изучаю просто. Не уверен, изучу ли когда-нибудь.
10 1762678
>>62664
Не всегда. Порой захаживает Люд вроде меня. Таких черти и шныри кличут Хозяином, а пацаны - Папой
11 1762681
>>62665

>Не уверен, изучу ли когда-нибудь.


Да хули, сам какой-то вариант придумал уже хорошо.
12 1762686
>>62623 (OP)
Что с tornado? На моей галере половина продукта написано на нем, придется тащить
Каковы перспективы tornado в 2020, приятно ли на нем писать и что в нем с асинхронностью?..
1uprOURnw5wj-0Kt4HL1YhA.png461 Кб, 2328x1342
13 1762694
>>62686
Ну хуй знает... Поддерживай легаси и не бубни.
14 1762698
>>62694
Сурс?
торнадо на uvloop вроде не такое уж и говно
sage 16 1762791
посоветуйте гайд по джанго. мозилла норм?
image.png3 Кб, 200x59
17 1762849
image.png2 Кб, 177x48
18 1762851
19 1762899
>>62755

>medium


>ahmed



обоссывали уже вроде этого ахмеда
20 1762906
>>62899
Ну сам разработчик FastAPI не любит писькомерство. По сути любой бенч это тот ещё черрипикинг.
То что aiohttp без говнокода даёт на клык это факт. То что жанговская ОРМ самая продвинутая тоже факт. То что на Tornado уже меньше и меньше пишут тоже факт.
21 1762966
>>62791
Доки
22 1762970
>>62966
Дай обниму. Хватит кормить уже инфоцыган.
Документация, SO, другие тематические форумы или блоги. Ощущение, что инфоцыгане в продакшен нихуя не выводили. По сути это как аспиранты на кафедрах. Что-то выучили, как-то поняли и стали преподавать
23 1763092
>>62849
>>62851
Ну мне надо было парами, типа как в самом словаре. Ну я уже сделал типа [print(i, dict) for i in dict]
24 1763101
>>62906
Fastapi удобнее в сотню раз из-за pydantic и зависимостей, но зато в aiohttp есть клиент и тестовый клиент. С последним ещё можно как-то сторонней протухшей либой решить проблему в fastapi, а вот что там из сторонних асинхронных клиентов есть сейчас?
photo2019-11-1607-49-00.jpg102 Кб, 1050x1266
25 1763118
>>62970
это потому что случайно доки по django оказались хороши.

в общем случае, все очень хуево.
26 1763170
>>63092
for key, value in dict.items()
27 1763257
Выше картинка была. Это получается, что торнадо, про который я столько наслышен, держит только 11к запросов в секунду? Нам препод говорил, что нода 1 млн держит в секунду.
28 1763300
>>63257
Надо смотреть методику и результат в тех же условиях.
30 1763382
>>63257
Держит то держит, а БД когда упадет без репликации? И это сама держит или с прокси? Яндекс Танк в помощь короче
31 1763388
>>62970
А я вот аспирант. Сижу в ней потому что мне дают халявные 8к стипухи, проездной и общагу
Параллельно работаю фуллстек-макакой. Мне норм
image.png84 Кб, 384x246
32 1763420
>>62623 (OP)
вызывай врача
33 1763563
Так блин, что-то я не вдуплил, как асинхронка тащит
Вот я отправляю некий http запрос и пока он "летит" туда-обратно мне надо еще выполнить какие-то действия, код вроде этого:

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

попросту же "встанет" на моменте с await, event loop будет искать другие задачи, пока результат с await не выполнится, но тем не менее, пока send_request не вернет что-то, выполнение кода дальше этой строчки не пойдет
Я упустил что-то?..
34 1763579
>>63563
await нужен как раз для последовательного выполнения, чтобы не ебаться с коллбеками.
35 1763633
>>63563
Так оно нужно для io задач. Представь, что у тебя таких запросов тысяча, и они независимы друг от друга. Код будет ждать и дальше await не пойдёт, но у тебя там ждут выполнения ещё 999 таких же, и пока ты ждёшь этот, ты можешь другие отправить. Пока отправляешь другие, прилетит ответ на этот и продолжишь его выполнять. А если ты хочешь ещё что-то считать, пока запрос выполняется, то подход надо менять. Есть future_requests, там запросы вроде в отдельном треде дёргаются, главное только не охуеть там коллбеки писать, если они нужны. И вроде как при системных вызовах снимается блокировка интерпретатора, так что ты сможешь дальше выполнять код, а потом по мере необходимости забрать ответ на свой запрос. В принципе, в asyncio можно аналогичные штуки проворачивать, но нахрен он нужен, если у тебя упор на вычисления, а не на ввод-вывод?
36 1763680
вникаю в async, нужно создать десяток соединений, отправить что-то, получить ответ, оставить корутину с соединением активной, делать свои дела дальше. ответы надо же собрать и обработать в том месте, где они были запущенны.

что-то не соображу, как это сделать. если спавнить таски через gather, результаты же придут только когда корутина завершится. как быть?
37 1763692
>>63420
да там и всё ебало покорёжено. только на кладбище этого пидора.
38 1763698
>>63563
promise = send_request()
make_calculations()
result = await promise
result.process()

Наверное должно сработать
39 1763748
>>63563

>Так блин, что-то я не вдуплил, как асинхронка тащит


Ивент луп скачет между корутинами, поэтому они все выполняются параллельно. Считай как потоки на одноядерной машине если утрировать.

>event loop будет искать другие задачи, пока результат с await не выполнится


Типа того. Await "блокирует" только текущую корутину.

>send_request не вернет что-то, выполнение кода дальше этой строчки не пойдет


В этой текущей корутине естественно нет, но это нормально.

make_calculations()
Тут серьезная ошибка. Ты не имеешь права в асинхронном приложение использовать нечто блокирующее, так как это заблокирует ивент луп и все корутины "встанут". Ты должен через редис/rabbitQM отправить задачу процессу воркеру на выполнение каких-то блокирующих вычислений. В самом асинхронном приложение только I/O. Зразумив?
40 1763757
>>63748

>make_calculations()


ебануть её в новый тред и подождать пока закончится.
41 1763759
>>63748

>Ты не имеешь права в асинхронном приложение использовать нечто блокирующее


кек
ТЫСКОЗАЛ?

p.s. создается новый тред или пул тредов, декораторы вроде sync_to_async так и делают, но вообще ничего не запрещает вызывать синхронщину внутри асинхронщины
42 1763779
>>63748

И ты идёшь нахуй.
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. Засовывает туда блокирующую операцию и погнали.
43 1763782
>>63759
Да, но весь смысл теряется. Пока что корутины в питоне уебищные, green events в го мне показались как-то интуитивнее и понятнее
44 1763790
>>63782
ну go нахуй тогда.
46 1763803
>>63680
сам задал, сам отвечу. помазался фьючерами, хуй его знает, правильно ли всё сделал. петяны, чекайте, вот простой пример.

https://pastebin.com/qBBDw7CR

суть в том, что есть долгоиграющие корутины, которые "через некоторое время" уже готовы дать некоторый результат, который так важен в месте старта этих корутин. ну вот как-то так.
47 1763804
>>63790
В 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.
48 1763806
>>63801

>Представьте, вы разрабатываете CLI-инструмент для извлечения размера веб-страницы и хотите поддерживать и синхронный, и асинхронный способы его работы


Спс, поорал
49 1763807
>>63801
ололо, там какой то пидор два месяца переводил с английского блогпост другого пидора, и выдаёт перевод на свою статью? хуябра как обычно.
50 1763808
>>63804

> coroutine asyncio.to_thread(func, /, args, kwargs)


чем это лучше тред экзекьютера?
2020-07-2923-42-06.jpg256 Кб, 1172x572
51 1763815
Питон может быть альтернативой джавы скрипта? С веб не связывался, в основном работал с vb и C++, а тут надо потыкать веб программирование.

Пытался осилить JS, но каждую секунду мне пригорало. Не знаю по какой причине, но я его блять ненавижу. Разве пикрилейтед может прочесть ЧЕЛОВЕК? В общем, поясните за веб и пригодность питона для этого.
52 1763817
>>63815
Это разве не обфусцированный код?
53 1763819
>>63815
учи пехапе
54 1763820
>>63815
>>63817
Это минифицированный код, обрабатывается перед деплоем. Человек и не должен читать, лол.
55 1763821
>>63759
>>63779
Ну шкальники городят треды в асинхронном приложении, смешивая подходы. Профессиональные разработчики отдают задачу в RabbitQM. Пшли вон отсюда.
56 1763822
>>63815
ну если бы ты си или перл застал, то так бы не верещал, щегол.
57 1763823
>>63821
Шта? Ты ещё RabbitMQ на rapsberry запусти, пёс. Совсем уже жангодебилы в край охуели.
58 1763824
>>63808
Да хуй его знает. Может оптимизируют на уровне C. Пока все наработки, не заметил конкретики при описании changelog. Да все ещё письмами обмениваются, решают что в какую версию вносить
59 1763825
>>63821
да, потом у них гостевая книга работает в шести докер контейнерах под кубернетисом в облаке на микросервисах, медленно.
60 1763826
>>63815
Нет. Ты путаешь фронтэнд и бэкэнд. Питон/года/го для бэка, адекватный Vue для фронтэнда. Вот и вся кухня.
61 1763827
>>63815

>веб


На фронте альтернатив жс просто нету. Или ты в танке?
На бэке юзается. Топовые асинхронные фреймворки вроде FastAPI хуярят на уровне с Нодой. Тут Господа сейчас как раз и базарят за асинхронщину
62 1763832
>>63817
Хуй знает. Короче это код, который должен создавать иллюзию 3д т.е. пользователь "вращает" объект мышкой, а на самом деле это скрипт выводит обычные картинки в определенной последовательности.

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

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

С этим скриптом работает всё норм, но я хотел во избежание правовых претензий сделать свой скрипт и увидел это нечитабельное говно. Пытался осилить JS, но понять этот текст я не в силах.
63 1763834
>>63832
дверью ошибся? >>1762464 (OP)
64 1763836
>>63820
А это можно вернуть в удобоваримый вид?
65 1763837
>>63834
Да не в этом дело. Спрашивал-то я про питон, но ушло в джаву.
В общем, ответ мне уже дали.
66 1763841
>>63836
UPD в JS треде уже ответили
67 1763843
Дарова двачане. Собираюсь оформлять вкат в ml. Что скажете по такому набору книжонок.
Лутц 1-2;
Николенко "Глубокое обучение" или Франсуа Шолле "Глубокое обучение"( Еще не решил);
Ну и параллельно матешу подтянуть, хотя итак +- знаю
Что скажете, бояре?
68 1763845
>>63843
Ну и вот лутц тоже под вопросом. Вдруг лучше Byte Of Python, хотя я его поскролил и там вроде совсем база которую я знаю уже
69 1763922
>>63845
Тогда зачем тебе лутц?
Вообще, ты дрочи МЛ, а не пистон, ибо полезнее будет.
71 1763974
>>63951
Демидович и Численные методы были в печатном виде, но сдуру отдал племяннице. А теперь срочно надо кашу в голове структурировать, ух бомбит теперь.
мимопроходил
72 1763994
Подскажите что нибудь по типу питонтютор, хотел там попытать счастья, а проект мертв. Желательно на русском, пасиба
73 1763997
>>63994
В ШАПКУ В СЛЕДУЮЩИЙ РАЗ[/b

https://pythonworld.ru/kursy/free.html
74 1764001
>>63997
спасибо,мил человек.
Шапка у вас душком тянет,согласен
75 1764009
>>64001
Да я перекатывателям отметил ссылку.

На самом деле ищи на Coursera или edx.

Вот как пример. https://www.edx.org/course/cs50s-web-programming-with-python-and-javascript

Слушаешь нахаляву, а нужен сертификат (нет) тогда оплатишь.
76 1764202
>>63951
Сомневаюсь, что "численные методы" вообще имеют какое-то отношение к теме, они совсем про другое. Да и матанализ Демидовича.
77 1764212
Узнал тут про aiopg - асинхронный движок для postgresql
С алхимией будет работать? Я че-то думал что алхимия синхронная сама по себе...
78 1764280
Есть книги по джанге 3 хорошие?
79 1764300
>>64280
В 3ке почти не было невероятно крупных изменений кроме начала ввода асинхронщины, читай по 2ке
80 1764304
>>64300
Понял, спасибо. А там есть советы какие?
81 1764310
>>64304
А то никак книгу себе выбрать не могу...
82 1764319
>>64304
Документация Джанго
83 1764331
Двачеры дайте один простой ответ на один простой вопрос.
Лутц или укус путона?
84 1764341
>>63563
Плюсую. Вот есть у меня io-вызовы вроде:
await asyncio.sleep(4)
await asyncio.sleep(3)
await asyncio.sleep(2)
await asyncio.sleep(1)
Я хочу чтоб все они пошли выполняться вместе и чтобы все результаты были готовы через 4 секунды, а вот в этом куске кода результаты вернутся через 4+3+2+1 = 9 секунд, что не есть гуд
85 1764344
>>64331
Укус лутца.
Ты сравниваешь книгу на 1600 страниц по всему и туалетную брошурку для ньюфага.
86 1764353
>>64341
Ты их собираешь и запускаешь одновременно, учитывая что с gather() ты будешь авейтить до момента, пока выполнится самая медленная корутина
87 1764394
Сап, аноны. По образованию прохраммист, по факту студенческие годы пинал хуи и получил минимум знаний. Сейчас работаю аналитиком 1с, хочу выкатится из этого дерьма. Есть вариант перекатится на питон, чем и хочу воспользоватся. Прошел бесплатный курс от яндекс практикума (20 часов), почитал немного книжку "Как устроен питон" и высрал простенькую реализацию игры "Быки и коровы" без логики компьютера, т.е. только попытки игрока угадать число, сгенерированное компом. Пока нет понимания, как писать хорошо, поэтому хотелось бы пресечь говнокод. Если кто-то может указать на ошибки, как писать не надо, как было бы лучше - был бы очень благодарен. Код тут - https://pastebin.com/gqp3ikpM
Заметил, что многие пишут цикл с условием в 1 строку - это нормально? Не снижает ли это читаемость кода? Так же, реквестирую книжку, где было бы все максимально подробно расписано. Т.е. не просто: вот есть переменная, ты ей присваиваешь значение, все круто. А подробно, что происходит, когда ты присваиваешь значение переменной ( про объекты, счетчик ссылок, когда это все удаляется, перезапись) и прочее. В "Как устроен питон" хорошо написано, но там только основы.
88 1764447
Подскажите, что почитать по генераторам? Никак не вкурю send метод, как с ним работать, полного нормального понимания оператора yield. Помогите.
89 1764472
>>64447
генератор - это просто вызов return с сохранением стека . Сильно помог?
90 1764478
>>64472
Об этом я догадывался. Ебучий пример из лутца не могу выполнить, он работает не так как в книжке.

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

Дальше он делает вот что:
g = gen()
next(g)

>> 0


g.send(10)

>> 10


>> 1



Это в примере, а у меня сенд нихуя не робит, не понимаю, как это понять сукаааааа. Помоги, если можешь
91 1764483
>>64478

>next(g)


>>> 0


Запускаешь генератор, yield отдает тебе и и ожидает что ты ему что-то передашь

>g.send(10)


>>> 10


>>> 1


Закидываешь в генератор 10, х становится 10, выводится, цикл уходит на 2й круг и возвращает тебе 1 и т.д.
tt.png17 Кб, 296x624
92 1764492
93 1764494
>>64492
А теперь внимательно посмотри на свой код и подумай, что могло пойти не так
94 1764496
>>64447
pixamp.com/posts/generatory-v-python/
хз мне понятнее стало
95 1764498
>>64494
Блядь, чувак, ну я в дебаггере посмотрел, там по шагам, x становится равным 10 а потом сразу срабатывает yield i и x принимает следующее значение. Этот пример почти дословно из книжки, и там у лутца другой вывод. Ты лучше объясни, как работает генератор. Вот я вызываю next(g) первый раз, функция отрабатывает до первого yield значения, возвращает его, и замирает на следующей строчке кода в ожидании следующего next. В книге, send возвращает значение которое ему передали, плюс сразу следующее из рэнджа. А у меня нихуя не так. Я блядь заебался, уже 2 часа бьюсь об эту хуйню и никак не могу понять.
96 1764499
>>64496
Спасибо, сейчас взгляну.
97 1764500
Нужно мониторить папку и при появлении нового файла копировать в другую папку, через че лучше делать? Ос? Вачдог?
98 1764502
>>64498

> В книге, send возвращает значение которое ему передали, плюс сразу следующее из рэнджа.


Возвращает только yield, send отправляет 10 в генератор но ты его не выводишь учись смотреть на свой код и искать ошибки в отступах
99 1764503
Обращаюсь к одной кнопке таким образом: driver.find_elements(By.XPATH, '//button')[4]
Как мне к ней обратиться в expected_conditions?
EC.presence_of_elements_located(By.XPATH, '//button')[4]
^вот так вроде не работает
100 1764506
>>64502
Чувак, я в отступы могу. У меня вопрос возник, по этому поводу.

Смекаешь, к чему я? В книжке хуйня какая-то, либо я в глаза долблюсь.
101 1764509
>>64506
Если ты можешь в отступы то поставь уже ебучий отступ перед принтом, как ты блядь выводить 10 собрался, если у тебя принт вне цикла?
102 1764513
Блядь, я еблан, прости, ну сука вишь там написано так было, сразу не догадался. впизду все равно не понимаю
file.png27 Кб, 616x296
103 1764514
>>64506
Энджой йор пиривот.
104 1764515
Люди, которые ставили на сервер что-либо, скажите, как происходит загрузка модулей, например нужен для программы модуль работы с фото, его в папку с проектом засовывают? Или качают на сервере специально пакет, если так, то зачем нужна папка bin и как конкретно в нее устанавливать модули, например, если я уже работаю в виртуальном пространстве
105 1764518
Вопрос по базам данных:
Я делаю приложение на Flask - что-то вроде браузерного просмотрщика медиафайлов. Каталоги, в которых лежат файлы я храню в БД, то есть это одна таблица.
Каталогам можно назначать типы и категории. То есть это как минимум еще 2 таблицы.
Можно назначить любой тип (один), а категорию - только из списка категорий для выбранного типа.
И я не могу понять, как настроить связи и ограничения. Можно конечно не ограничивать поля в БД и проверять уже это в коде напрямую, что категория которую мы назначаем находится в допустимом списке, но хочется поканоничнее это реализовать.
106 1764519
>>64515
pip freeze
pip install -r
107 1764524
>>64513

>все равно не понимаю


Проведи аналогию с каким-нибудь конвейером или еще какой-то хуйней, принцип выше уже писал
108 1764525
Пиздец у меня багет. Ходил на собез на джуна. Ответил на все вопросы по SQL, на сложность алгоритмов, пояснил про питухон. Типы данных, итераторы/генераторы расписал через iter и next, всё как надо; декорирование функций, ООП, логика выполнения кода в ide, как проходит поиск по словарям, хэш функции и прочая хуйня. Ну вообще ответил на всё, что меня спрашивали. Сегодня перезванивают и говорят, мол, НУ МЫ ВООБЩЕТ НЕ ИЩЕМ ДЖУНА ЧЕСТНЫГОВЫРЯ) ДАВАЙ В СЕНТЯБРЕ ОБКАШЛЯЕМ ЕЩЁ РАЗОК ВОПРОСК. Охуенно, спасибо блять.
109 1764526
>>64525
Так а в чем проблема? Если ты с каждого собеса будешь так рваться, тебя не хватит надолго
110 1764528
>>64526
Да проблема в том, что так уже три месяца. Все говорят, ну да, всё заебись, приходи оформляться, и постоянно то весь отдел кадров уходит в отпуск, то руководитель пропадает, то внезапно появляется внутренний кандидат, то вот очередная хуета.
Я вообще не понимаю проблемы, ну если видно что я еблан, ну так откажите сразу, ёбаный в рот. Зачем тянуть резину, заставлять ждать, давать какие-то надежды. Более того, если им не нужны РАБотники, нахуй тогда вообще висит вакансия и зачем меня пригласили на технический собез.
111 1764529
>>64528
А ты приходил к ним через месяц, когда они уже с отпуска возвращались?
Может, ты слишком всратый? Ну внешне на сколько себя оцениваешь?
112 1764530
>>64525
Видимо сегодня этой какой-то ритуал - издеваться над джунами.
Начал активно искать работу уже будучи мидлом. Делал тестовое, если ок, брали. Если нет, то нет. Ни разу не спрашивали про всякие алгоритмы, ооп, хэши и т.д.
113 1764536
мвп протекло?
114 1764546
Помогите пожалуйста, я далек от программирования, но думаю это не очень сложно. У меня есть .txt файл с юрл адресами, в количестве около 1600 штук. Есть второй файл, со всеми юрл адресами сайта, 42к. И есть третий файл, по сути адреса те же, но они уже нихуя не те. программист редиректы не настроил и у нас сайт из индекса выпадать начал Мне нужно: значение из первого файла ищется во втором, если оно находится, то тут же берется эта же строка и ее значение из третьего файла, и все это записывается в отдельный файл, желательно с каким нибудь разделителем.
115 1764548
>>64525
Город?
tt.png10 Кб, 739x245
116 1764558
Долбаеб опять выходит на связь.
11859310562990.webm4,7 Мб, webm,
994x560, 0:10
117 1764560
>>64394

>Сейчас работаю аналитиком 1с

118 1764575
>>64558
Ельд и не должен ничего в Х сам возвращать, если ты не отправил ничего туда, а сам генератор возвращает цифры как положено
119 1764587
>>64558

https://repl.it/repls/DullNearMouse#main.py

Раздели логику, так понятнее будет. нахуй тут n я не вдупляю, но вот твое рабочий говнокод.
За nonlocal сразу под сраку.
Pytest 120 1764595
Есть две папки 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. Как вы решали, если сталкивались?
121 1764597
>>64546
Бамп
122 1764601
>>64546
f1 = open('1.txt', 'r')
f2 = open('2.txt', 'r')
f3 = open('3.txt', 'r')
out = open('file_for_writing.txt', 'w')

капице?
123 1764644
>>64601
r не нужон, салага.
Но вообще это вопрос на однострочник для перла или авк. Но я пробую отсечь эти решения для более активного переката, лол.
124 1764656
>>64548
Екб. А шо?
image.png3,3 Мб, 1600x1068
125 1764660
котаны, подскажите что это за тема\редактор плез
126 1764661
>>64660
Саблайм вроде
Screen Shot 2020-07-30 at 2.42.29 PM.png159 Кб, 1082x710
127 1764662
Всем привет. Убрали куэйщиков и меня посадили на пики точенные править сломанные 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)

Спасибо!
128 1764663
>>64662
забыл сам эелемент:

>video_workshop_carousel_indicators =driver.find_elements_by_class_name('carousel-indicators')

129 1764664
>>64662
>>64663
Поищи плагин для браузера для Селениума, там можно записать действия, может так поможет

>sleep(3)


так лучше не делать бтв, есть специальная хуйня для того, чтобы ждать пока элемент отрисуется на странице
130 1764666
>>64663
>>64662
Разобрался. Оказалось, что тот локейтор почему-то не работал, хз почему. В общем заработало после того как поменял локейтор на css_selector.
>>64664
Спасибо, обязательно посмотрю что это.
131 1764675
Продолжаю свою КУЭ транзицию ебана. Нужно написать простой тест для метода пост в этом классе для статус кода и контента. Нельзя напрямую реквестить линк.

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 ОК и тд. А по бади уже через словарь. Это так делается?
132 1764720
>>64675
Подскажите хоть теги, где погуглить такое. Благодарю.
133 1764748
>>64720
mock, unittest
134 1764764
>>64748
>>64675
В общем запилил такую вот хуиту. Но ничего не работает. Просидел с этим дерьмом уже часа 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()

Какие варианты?
135 1764765
Может за $ кто-то поможет именно объяснить? Можно даже не решать.
136 1764775
На связи веб-макака, пишущая на flask, aiohttp и любой херне, что потребуется заказчику. Работаю полгода, хотел узнать:
а) что нужно для переката в Дата Инженера? Вроде там перспективы по зп и по развитию пизже
б) если оставаться по моему направлению, то что стоит учить, чтобы не отстать от рынка и стать более востребованным?
137 1764779
138 1764781
>>64597
книжку скачай "Эксель для офисных дебилов".
139 1764788
>>64781
Ну и хули ты не можешь решение скинуть, которая наверняка не больше пяти строк занимает, не дебилушка?
image.png5 Кб, 221x142
140 1764816
Сап, есть один скрипт, который открывает через селениум открывает браузер, совершает некоторые манипуляции и принтует в консоль всякую информацию. Но я хочу, чтобы на последней строчке всегда отрисовывалась какая-нибудь строка с актуальной информацией, например, сколько окон запущено и сколько времени прошло со старта скрипта. Накидал пикрил для понимания, как это примерно должно выглядеть.

Чем и как можно подобное реализовать? А то я настолько, дебил, что не могу даже в гугле запрос составить правильно
141 1764833
Есть книги для углубленного пайтона? Что после Лутца читать? Хочу про ассинхрон почитать.
142 1764834
>>64833
Лучано читай, про асинхронку есть в шапке книга
143 1764840
>>64834
Спасибо!
144 1764920
>>64816
вроде curses
145 1764923
>>64816
Есть встроенный curses, есть библиотеки вроде urwid и вообще
https://github.com/vinta/awesome-python#command-line-interface-development
146 1764953
>>64920
>>64923
обнял
147 1764973
Был в курсе про модуль atexit, который позволяет вызывать функции при завершении программы. Мне надо при завершении моего скрипта выводить некую отладочную информацию на экран, я думал сделать это по типу:

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

Но внезапно я выяснил что если скрипт завершается через ctr+C или инвм сигналом, который его "убивает", то нихера не принтится. А у меня мой скрипт завершается именно так (это бесконечный loop). Че делать?
148 1764974
Bmp
149 1765019
>>64973
atexit вызывается при цивильном экзите. Попробуй сигналы обрабатывать.
150 1765051
>>64764

>from src.sample_mock import posts


что такое posts? Я ебу что ты там наговнокодил? Показывай давай нормально.
151 1765055
>>64973

>это бесконечный 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')
152 1765065
В чем отличие промисов (Promise) из жс и футур (Future) из асинхронного питона?..
153 1765124
Может слегка ебанутый реквест, но как реализовать вебсокеты на питоне на низком уровне (то бишь на либе socket и ей подобных)
154 1765180
>>65124
Читаешь спеку и реализуешь.
Я как-то колхозил парсер сервиса на вебсокете на пхп и нашел либу с реализацией что-то в 300-400 строк включая каменты и прочую хуйню. Так что должно быть не особо сложно.
155 1765199
>>65051
posts это метод из класса Блог. отюсда >>64675

Плиз хепл!
156 1765201
>>65199
То есть я попытался импортировать функцию пост из класса Blog.
Но она не импортится.
157 1765204
>>65201
Но суть даже не в этом. Похуй на импорт. Я могу в том же самом файле на крайняк тест сделать.
Смысл в том, чего делать дальше.
158 1765218
>>65201
Метод post из класса Blog? Пиздуй азы учить, братюнь.
Если метод класса, то и вызываешь его Blog.posts(), если инстанса, то через инстанс: new_blog.posts().
Вы вообще хоть что-то читаете про ООП в питухоне? Там же все тривиально.
159 1765226
>>65204
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, пиши обычную логику. Как поймёшь что куда дальше уже смотри или пиши свои тесты.
160 1765231
>>65226
Если у тебя библиотека requests, то status_code нихуя не функция.
assert response.status_code == 200.
Знаешь что лучше сделай? Пиздуй на github fastapi (загугли блеать) и посмотри как они тесты написали. У тебя полная каша в голове сейчас.
161 1765237
>>65218

>Метод post из класса Blog?


Да.
Ок, заработал сам Метод. Спасибо!
Сейчас он возвращает мне то, что в этом методе - return response.json().
А как теперь проверить статус код? Ведь внутри этого метода есть
response, но как я могу достать переменную response из этого метода?
Screen Shot 2020-07-31 at 10.40.04 AM.png243 Кб, 2594x996
162 1765238
>>65237
Всем спасибо за ответы! Дедлайн горит, у меня еще свой проект на стороне. Я на питоне никогда не работал пасаны.
163 1765239
>>65238
Само собой этот код не работает. Потому что у метода posts нет response.status_code.
164 1765242
Запилил пару тестов, работают.

Никак не могу достать статус код, потому что он возвращается в формате Джсон. :(
165 1765245
>>65242
У любого респонса статус код доступен априори
Это свойство любого респонса бля
не говоря уже о том, что ты зачем-то заюзал на объекте метод response.json() а потом жалуешься что "не могу достать статус код"
иди в /web и латай дыры в знаниях
166 1765248
>>64834
презентации от дэвида бизли посмари есть в pdf и на утубе
167 1765249
>>65242
Не смотри что писал касательно main и setUo(), в глаза уже долблюсь

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

По поводу дедлайна успокойся. Так больше ошибок сделаешь.
Screen Shot 2020-07-31 at 11.32.04 AM.png301 Кб, 1192x1424
168 1765254
>>65245
Бро, все так. Только это не мой код. Мне нужно протестировать этот функционал. Конечно же я бы запилил отдельный метод в классе Блог чисто для респонс код. Но такие условия задачи.
>>65249
Спасибо, но как уже писал выше я не могу достучаться до переменной response из свой тест класса.

Вот что на выходе.
Тест test_posts_response не работает и выдает.
AttributeError: type object 'Blog' has no attribute 'response'
169 1765259
>>65254
Пиздец... ты хоть в одном языке видел определение переменной?
Какой метод делает запрос и возвращает результат? Его используй.

r = self.test.<my_func>
assert r.status_code == 200
170 1765274
Есть ли у меня шансы в пограммировании, если функция ниже для меня пиздец как сложна для понимания? Я уже принтами вывел все потоковые значения, понятнее стало на процент. Обычно, если и после этого алгоритм мне не до конца понятен, я рисую блок-схему и разбираюсь. Тут же это в принципе невозможно, и я больше часа сижу туплю над десятком строчек.

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
171 1765276
>>65274
заливай на ideone или pastebin, пидор
172 1765280
>>65274

>Есть ли у меня шансы в пограммировании, если функция ниже для меня пиздец как сложна для понимания?


У меня 4 год опыта работы, и я понятия не имею, что делает твоя функция. Для нее должен быть написан docstring, а в идеале юнит-тесты. Если этого нет, то запускай дебаггер и смотри что она делает. Блок-схемы бесполезны.
173 1765284
>>65276
https://ideone.com/CveeBN
>>65280
Это пример из Лутца, я понимаю что она делает, точнее что она возвращает, там это сказано точнее. Перемешивает последовательность, выдавая список из всех возможных вариантов последовательностей с теми же элементами. Делов в том, что я не понимаю как она работает.
174 1765286
>>65284
Скачай PyCharm, запусти дебаггер и смотри что происходит после выполнения каждой строчки.

Проблема не в том, что ты не умеешь программировать, а в ограниченных возможностях человеческого мозга. Именно поэтому сложные алгоритмы должны иметь хорошую документацию, а в идеале лучше такое вообще не писать, а использовать готовые библиотеки.
175 1765288
>>65284

>Делов в том, что я не понимаю как она работает.


Воспользуйся дебаггером, посмотри что на каждом шагу происходит. если только вкатываешься ясен хуй будет сложно и будешь тупить
176 1765289
>>65284
Да вроде не очень сложно.
Выбираются элементы кроме текущего и рекурсивно прокручиваются, потом в результат добавляется текущий + каждая из этих прокруток.
177 1765303
>>62623 (OP)
Добрый вечер, аноны. Быдло-кодер на связи. Вкатываться в коммерческую разработку не планирую. Программирование не профильное. Пилю небольшие скрипты для себя.

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

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

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

1) Насколько сильно это хреновый подход?
2) Дадут ли регулярки больший профит? И стоит ли лезть в это болото?
3) Как вообще это делать правильно?
Можно просто макнуть ебалом в линк.
178 1765309
>>65303
Да, регулярки это охуенно.
Все твои сплиты и прочее можно сделать регулярками (но не нужно), а чтобы повторить довольно несложные регулярки ты сто раз через жопу провернешься.
Где вписываются базовые методы - юзаешь их, но без велосипедов.
Наверное, баланс приходит с опытом, никто тебе не распишет каждый случай.
179 1765311
>>65259
Этот метод.
def posts(self):
response = requests.get("https://jsonplaceholder.typicode.com/posts")

return response.json()

Я пытаюсь через этот метод узнать status_code, но он не видит эту переменную..
Screen Shot 2020-07-31 at 2.55.21 PM.png40 Кб, 1084x228
180 1765313
>>65259 >>65311
AttributeError: 'function' object has no attribute 'status_code'

Плиз Хелп. Неужели никто не знает? :( Я уже обгуглился.
181 1765319
>>65313
Да ты заколебал. Отоспись, все равно башка не варит уже
f - функция
f() - вызов функции
f.status_code не имеет смысла блэт
182 1765323
>>65311
>>65313
status_code есть у response.
Ты вовзращаешь response.json(), который уже распаршенный текст респонса.
15930125038360.jpg236 Кб, 1080x1080
183 1765341
>>65319
Да я уже по-всякому пробовал и с фукнкцией и с методом. в обоих случая ошибка атрибута. Нет респонс.
>>65323
Я получаю эту ошибку при вызове: AttributeError: 'function' object has no attribute 'status_code'

Если вы знаете правильный вариант, подскажите плиз!
184 1765349
Эх, кроме двача и спросить-то негде!
185 1765352
>>65341
Реально отоспись.

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

return response.json()
188 1765397
>>65385
Там написано людям с Двача не рады. Обоссут там за любой вопрос?
189 1765417
>>65363
return response
В json уже на месте превращай. Если ситуация не позволяет и код править нельзя, то само по себе наличие json-объект ( if response.json() ) говорит о том, что response_code == 200. Сам подумай. Не веришь - читай спеку: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
190 1765465
>>65417
Тебе кто такое сказал? Я могу и 403 вернуть, но с телом ответа.
191 1765467
>>65465
Епт, ну канешн надо проверить валидность тела, а как иначе?
192 1765533
как с помощью asyncio сделать пул отложеных задач, причём выполнятся должна только последняя?
приходет вызов из коллбака, спавнится ждун А. ждун А заканчивает, спавнится новая задача Х.
если во время выполнения ждуна А, пришёл новый вызов спавнится ждун Б, ждун А ничего не делает. после того, как ждун Б закончит, спавнится новая задача Х.
193 1765546
>>65533
celery
194 1765554
>>65546
не, мне для дома, для семьи, в уютный маленький прожэкт.
195 1765656
Нужно распарсить лог спортивного матча, т.е. происходят всякие события и они стандартно описаны таймштампом и текстом.
Я так понимаю, лучше всего токенизировать и потом разбирать, или можно как-то попроще?
196 1765671
>>65309

>регулярки это охуенно


Понимаю. У них же основная проблема - это читаемость. Поэтому стараюсь не лезть без крайней необходимости.

>баланс приходит с опытом, никто тебе не распишет каждый случай


Ну что поделать. Будем набивать с переменным успехом. Спасибо за реплай в любом случае.
FbLVjMB5O4Y.jpg16 Кб, 486x467
197 1765689
>>62623 (OP)
Чики двощ!
Я заканчиваю "Автоматизацию рутинных задач", набрал новых крутых учебников, но в них подход недостаточно проектный. Надо больше чужого кода и практических задачек. Вот по Джанго нашёл Django for Beginners by William S. Vincent, очень нравится. А что есть по чистому Питону для того, кто хочет стать интермидиэйт? С английским я ок.
198 1765703
>>65689
Нет такого подхода. Ну можешь почитать GoF и все.
Или посмотреть какие-то части решений.

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

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

При том неважно будешь ты на питоне это писать или на другом языке. Просто если ты не тупой, твоя задача не просто кодить (ты же не мартышка с печатной машинкой), а именно находить решения и реализовывать их.
199 1765715
>>65703
Ты хочешь сказать, что надо просто работу найти?
200 1765737
>>65715
Ну ты можешь что-то для себя ковырять. Подергать чужие API, посмотреть как люди документации пишут и потом вспоминать это с умилением. Потому что отечественный IT все равно с "душком". Кто-то где-то реализовал хуйню, ее не протестили, потом начинаются костыли и так далее. А ты сидишь как баран и пишешь ебучие заплатки. И молишься чтобы тебя предупредили, когда в проде что-то поменяется.
Пойми одно. Есть проект - людей нагоняют и вроде как пишут документацию, потом галера пустеет и остается только полтора землекопа, которые знают наверное 30% о своем продукте.
Потом когда надо что-то допилить, снова галера заполняется и так пока не придут к какому-то логическому концу или не выдадут новый бюджет для попила и все нахуй с нуля перепишут.
У меня был такой горький опыт.
201 1765766
>>65737
Звучит отстойно.

Аноны, советы по книжкам еще нужны. Пишите, пожалуйста.
202 1765776
>>65766
А ты думал IT в 21 веке это сказочный мир что ли?
Тут блять CoC обсуждают, а не развитие инструментов. Запрещают slave/mastery/blacklist/whitelist.
А ну и выгорание на проекте в течение полугода, так как если ебашить малой группой, то с переработками и иногда без выходных. Бывало спал по 2 часа в течение 3-х недель.
1520648156989.jpg43 Кб, 650x650
203 1765793
>>65776
Я не специалист в компьютер сайенс, но мне кажется, что тебе надо отрастить яйца. Пик релейтед - иногда смотрю на него и вспоминаю, что человек сделан из звёзд, и отчаиваться ему не подобает.

Еще про политкорректность скажу. В Америке если человеку не нравится что-то - он ищет единомышленников. Пишет о себе, проводит встречи, пробивается в медиа и во власть. Негры не хотят терпеть чего-то там - и вот, как видишь, мир меняется, становясь всё более похожим на их мечту. Вместо того, чтобы ныть, ты бы посмотрел на жизнь вокруг и понял, что всё так засрано и бедно, потому что лично ты ничего не делаешь.
204 1765801
Бля, кто-нибудь, добавьте в шапку, что книги по той же Джанге (и по любому фреймворку) это beginner уровень, если хочется осваивать джанго/фласк/торнадо/фастапи - пиздуем изучать доки, шерстить стэковерфлоу и ютубчик. Любая литература по фреймворкам быстро стареет
Тут за тред уже 4й или 5й чел просит какие-то книги по Джанге блять кроме "Two Scoops of Django" с его best practises ничего нормального нет, остальное слишком старое
205 1765816
Как заставить какую-то функцию вызываться по интервалу? Например каждые 10 секунд?.. без неэффектитвного (треды будут слишком часто переключаться почем зря) мультитрединга это сделать невозможно?
206 1765870
>>65816
while True:
твоя функция
time.sleep(10)

Или я чего-то не понимаю.
207 1765873
>>65793
Не хочу в полемику углубляться. Разработчики не делятся по полу/национальности и расе. Раньше всех все устраивало. Пришли люди с улицы и сказали все переделать. Потом скажут что Julia ущемляет права женщин, а маскот Python является фаллическим символом и ваще патриархальный.
И мейнтейнеры будут заниматься полной хернёй вместо решения проблемы с GIL и оптимизацией встроенных библиотек.

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

>>65801
Ну напишут. Кто-то читает что ли? Тут даже заходят с вопросами, которые разжеваны на SO
208 1765876
>>65816
Не хочешь постоянного переключения - ебни отдельный процесс под функцию, хули
209 1765878
>>65870
А если твоя функция занимает 100 секунд?
210 1765879
>>65878

>А если твоя функция занимает 100 секунд?


Значит нужно ее оптимизировать.
211 1765881
>>65878
Сделать ее асинхронной

мимо
212 1765887
>>65417
Спасибо. Да я тоже так подумал, когда читал по API.
Я запилил такую вот логику в обход, это норма или идиотизм?

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

>>65465
Каким образом?
213 1765892
>>65887
return Response(json.dumps({'error':'ID is unknown', 'comment'':'I am calling police'}), status=403, media_type='application/json')

Я так вебсервис писал, ибо нехуй. Если возвращается ошибка, то ее надо обозначать через статус коды.
Тогда я делаю контракт (через документацию), что при успешном запросе статус 200, а при неуспешном все от 400. При этом, если статус не 500 и выше, то можно получить тело ответа.
ЭТО НОРМА. Я так работал с ИС, которая возвращала всегда 200, даже если ошибка была. Это полный ад.
То есть я ОБЯЗАН парсить тело ответа и определять там есть ключ 'error' или нет. Это банально лишние операции и больше ошибок.
214 1765904
>>65881
Что это значит? Объясните тупому.
215 1765913
>>65904
https://habr.com/ru/company/ruvds/blog/475246/

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

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
217 1765924
>>65919
Чет ты коляску какую-то пилишь.
assertEqual(first, second, msg=None)
Test that first and second are equal. If the values do not compare equal, the test will fail.
Нахрена ты булевые ввел?
218 1765925
>>65919
ну и опять же
assertIsNotNone(x)
если None, то сразу непройденный тест. За тебя уже давно все придумали
219 1765931
>>65925
>>65924
Спасибо. Поправил. Мне подсказали, что мне нужно использовать mock юнит тест. Как уже советовал добрый Анон выше.
А еще меня забанили в группе Питонщиков на пару дней. :(
220 1765932
>>62623 (OP)
Где я могу научиться писать нейросети? Кто-то может научить меня писать нейросети?
221 1765935
>>65932
Я научу. И писечку пососу. И за ручку отведу, в кресло сеньора посажу
222 1765937
>>65935
А можно? Я спасибо скажу, обещаю
223 1765947
>>65932
1-3 курс, линейная алгебра и матанализ
224 1765948
>>65931
Ну не совсем. Смотри доки

>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 использовать.
225 1765989
>>65947
нахуй не нужны для них.
226 1765994
>>65948
Нашел вот такую ботву. Сам не знаю, что это такое, но вроде что-то похоже.
Только в моем случае нельзя посылать прямой запрос.
https://stackoverflow.com/questions/57663308/how-to-mock-requests-using-pytest
Как думаешь, это то?
227 1766002
>>65994
Ты долбоеб? Что там нельзя послать в твоём блядь случае я чё телепат нахуй? Скажи мне пидорас тупорылый, я телепат нахуй ты думаешь или чё?
228 1766003
>>65994
Не слушай поехавшего.
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 в данном случае не требуется. Тебе просто надо пройти тесты с разными входными данными, которые тебе выдали. Все.
229 1766005
>>65994
Короче. Объясняю с точки зрения погромиста.

Вот написал я охуенную приложуху, но у меня еще нет ни БД, ни сервиса. Проебывается БД админ например и второй программист ответственный за вебсервис. А я в соответствии с графиком заебашил свою часть, но при этом чтобы реально сказать "я сделал, дальше ебитесь сами" я должен подготовить тесты, в том числе с mock. Т.е. я должен буду описать логику поведения своего говнокода, так чтобы возможные ошибки не повлияли на общую работспособность, когда все соберут воедино. Как-то так.
230 1766008
>>66003

>Тебе просто надо пройти тесты с разными входными данными, которые тебе выдали. Все.


Благодарю! Означает ли это, что при получении экспектед бади я могу сказать, что статус код будет 200?

Алсо. Поясните почему или зачем метод возвращает именно return response.json() метод?
231 1766011
>>66005
Вообще мне тоже кажется, что я велосипед изобретаю. Проверил бади, если получил правильный ответ, по идеи статус код похуй же.
232 1766015
>>66003

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

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')
233 1766016
>>66015

>AssertionError: <MagicMock name='get().json()' id='4436669720'> != 'OK'



Он почему-то не запрос возвращает, а какую-то ботву.
234 1766018
Ботва блядь, как же я в твой ротик мелкий срал ахуеть.
image.png4 Кб, 275x144
235 1766022
Сап, змеи.
Решили с другом на Питоне сделать бота в вк, чтобы он выполнял различные функции. Уже 5 скриптов есть (пикрил) еще будет функция удаления всех диалогов+хотим вынести в отдельное десктоп-приложение.
Но нужно наполнение. Подкиньте идей годных.
159634162837.png54 Кб, 1118x642
236 1766072
Как пофиксить этот кусок кода чтобы работало?
237 1766074
>>64525

>НУ МЫ ВООБЩЕТ НЕ ИЩЕМ ДЖУНА ЧЕСТНЫГОВЫРЯ


Серьезные люди ищут не джуна а Шинку.
238 1766216
>>66072
PS: это колаб если что
239 1766593
Вопрос такой - есть картинка, собственно скриншот из фильма. Как получить, к примеру, 7 основных цветов на картинке.
В жопе мозге понимаю что взять - посчитать массив цветов и отсортировать. Но вот не пойму с какой стороны подойти. Ткните носом, плз. Чую что через имажмагик, но понять не могу с какой стороны начать
240 1766622
>>66593
смотри либу pil
241 1766625
Че такое "инъекция зависимостей". Вот чувак высирает уже вторую статью про нее на Хабре:
https://habr.com/ru/post/513510/

Но я не могу никак вдуплить: что такое инъекция зависимостей и нахрена она собственно нужна? Определение в гугле путанное
242 1766630
>>66625
это короч когда ты отдаешь управление зависимостями для твоего кода внешней хуйне(фреймворку). в общем случае такой подход называется inversion of control. внедрение один из способов мутить ioc. еще есть лукап и фабрики.
мимо жабамразь
243 1766633
>>66625

>что такое инъекция зависимостей



Это когда рантайм твоего языка ломают к хуям через, например, механизм рефлексии или кодогенерации и ебут инкапсуляцию в рот, без скрыто инициализируя приватные поля, оправдывая это программированием через конфигурацию и возможностью легкой замены классов как перчаток.
244 1766690
>>66625
И что этот чел намутил, интересно? В чем в целом профит той еботни, что он понаписал?
245 1766698
>>66633
Ты вечерний прием галоперидола забыл
246 1766732
Анон как мне прогнать pytest над данными лежащими в файлах?
Суть такова: есть 1 рабочий конфиг для этого скрипта, хочу прогонять тесты с его использованием, ожидаемый результат собираюсь поддерживать в отдельном файле, синхронизируя по мере обновления конфига.
Наговнякал вот такую говнину https://pastebin.com/CHp29rCM
Она работает, но выглядит поуродски.
Можно ли как то сделать загрузку данных красиво через фикстуры? А не костыли прикрученые сбоку как у меня?
247 1766792
обрабатываю пост запрос в restx и хочу передать args['imageData'] в celery задачу объект файла, как правильно его сериализовывать? либо арет на json is not seriazable или шо рекурсия когда пытаюсь в ручную через pickle декодировать
image.png99 Кб, 865x566
248 1766800
>>64341

>Я хочу чтоб все они пошли выполняться вместе и чтобы все результаты были готовы через 4 секунды, а вот в этом куске кода результаты вернутся через 4+3+2+1 = 9 секунд, что не есть гуд

249 1766801
>>64496

>https://pixamp.com/posts/generatory-v-python/


Спасиб, мил-человек, хорошая статья.
мимокрокодил
250 1766823
>>64341

В питоне многопоточность не многопоточность в смысле что долбить больше одного ядра в соточку нильзя. Только через процессы.
251 1766910
на чем графоний делоть? только шоб бесплатно
252 1766930
>>66910

> на чем графоний делоть? только шоб бесплатно



https://www.panda3d.org/
253 1766932
>>66930
сорян, я имел в виду интерфейсы пользовательские рисовать
255 1767193
Зашел на c++ ресурс с задачками для проганья. В категориях "сложные" и "хардкорные" какой-то проходняк лежит кек
256 1767305
>>67193
легкоатлетические разряды со времен СССР тоже понизились.
что ты хотел этим сказать?
257 1767361
Пистоны, кто-нибудь разбирается в discord.py, нужно сделать бота, который будет отвечать на каждый пост. Желательно, чтобы он еще заходил как обычный пользователь.
pythonassert.png30 Кб, 716x605
258 1767610
Почему условие ложно? Пытаюсь найти строку в списке, в списке элементы - int, строку, соответственно, тоже конвертирую в int. Спасибо.
259 1767613
>>67610
У тебя список туплей, а не интов.
260 1767614
>>67610
Проверка список.count(элемент) тоже возвращает 0.
261 1767631
>>67613
Благодарю. нашел громоздкое решение, но работает
262 1767638
>>67631
Какое там решение, tuple(el) in list или (el,) in list
263 1767734
>>62623 (OP)
Сосач, почему оно не хочет писать русский текст без пикчи?? endcode utf-8 не работает
image.png3 Кб, 586x50
264 1767767
>>67734
Решено
265 1767798
>>63092
dict = {
1 : "2",
3 : "4",
4 : "5"
}
string = dict.__str__()
266 1767801
>>64394
Ну, игру уже написал, осталось монетизацию прикрутить.

Мне вот книжка понравилась - хз тебе такое надо или нет https://automatetheboringstuff.com/2e
267 1767808
>>64546
Охуенно интересно делать без примеров строк - ты совсем ебобо?

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 файла.
268 1767815
>>65689
Если найдёшь чего, то маякни - я б тоже почитал
269 1767817
Привет, котаны.

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

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

Это я не дорос просто до задач или что?
270 1767867
271 1767885
>>67817

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


Если ты задаешься таким вопросом, значит пока что не нужны. Необходимость в них появится когда твоя программа разрастется до тысяч строк процедурного говнокода. Понимание когда именно использовать классы приходит только с опытом.
272 1767893
>>67817
На курсере ебанутая система, хуй найдёшь инфу, что курсы платные, я так проебался, добился рефанда. Спишут через неделю, отвязывай карту
image.png28 Кб, 442x318
273 1767895
Тайперы на месте? Это уродливо или так можно делать?
274 1767896
>>67895
очевидно что декоратор для класса не нужен, но вы понели.
275 1767944
>>67893
а что означает "доступна финансовая помощь" ? многие курсы как будто бесплатные, но я не разобрался в условиях.
Что на самом деле?
276 1767954
>>67896
нет мы нихуя не поняли
ты хочешь спросить про typing.Generic?
277 1767959
>>67893
Спасибо за совет, бро, но если меня просят привязать карту = идут на хуй )) потому что отвязывать карту ещё потом заебёшься и если забудешь, то спишут ~3К за месяц.

>>67885
>>67867
Спасибо

>>67944
Можешь подать заявку что ты нищий стузиозус и часть(или всю) оплаты за тебя заплатят.
278 1767971
Есть набор точек вроде
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]

существует?
279 1767973
>>67971
first = points

канешн
фикс
280 1767975
>>67973
Блять, Абу да ты заебал моё [ i ] прятать. Ну что ты за мудила, а?
281 1767979
>>67971
>>67973
>>67975
for x, y in points:
....print(f'{x} {y}')
282 1768004
Как запустить питоновского демона на unix?
В поваренной книге питона есть рецепт, как запилить демона через os.fork, но вот как оперативно его запускать/останавливать? Это по хорошему надо делать через systemd для единообразия а не питоновсеими командами. Я в линухе пока не особо шарю
283 1768007
>>67979
Ты ж в курсе, что ты вытащил только одну?
И это наводит на дальнейшие размышления: наверняка есть генератор, который позволит за раз отдавать нужное количество объектов, например нам нужно вытаскивать не 2, а 4 точки за раз и проводить над ними одну и ту же операцию
284 1768050
Многие пишут, что обязательно необходимо изучать Python по Марк Лутцу, т.е. "Изучаем Пайтон". Действительно ли так? Или он больше как справочник подходит?
285 1768054
>>68050
В шапку
286 1768086
>>67979
Норм, работает. Оно как tuple принимает x,y - я верно понимаю?

points = [(1, 2), (3, 4), (5, 6)]
for (x, y) in points:
print(x, y)
287 1768087
>>68086
это же не то шо ты хотел, а так оно распаковывает из кортежа в переменные х и у соответственно
288 1768093
>>68087
Так я и не он :) кортежи то просто выдернуть, а что в такой форме работает я не знал
289 1768158
Аноны, какое портфолио должно быть у junior'а?
290 1768170
>>67971
Сам написал генератор для этой херни. Как приду домой, скину сюда, мне все равно не нравится, как получилось
291 1768232
Сап дващ, какие курсы проплатить, чтоб через месяц 300к получать? Сам 30лвл, вышки нет.
292 1768236
Все волосы на жопе поседели, пока пытался применить один шаблон ко всему проекту в жанге. Всю ночь ебался, пока наконец не додумался перед ссылкой на этот шаблон удалить /. Пиздец просто.
293 1768281
>>68232
толсто
294 1768312
>>68236
Типичные будни жангодауна
295 1768318
>>68312
Кек)
296 1768407
>>68170
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

Чем не устраивает?
297 1768408
>>68407
Импорт мой лишний, сам тестил кое-что. Можно и в более наглядном виде и по PEP8
points = [(1, 2), (3, 4), (5, 6)]
generator = iter(points)
298 1768411
>>68408
проебался. блять. там итератор на выходе. Короче ты понЕл
299 1768437
>>68407
>>68408
>>68007
>>67971
ну я в прошлый раз не зометил шо тебе нужна пара координат
глянь ето
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('----------')
300 1768438
>>68437
можно попробовать еще класс генератора напейсать, но у мну пока не получилось, сам нуб еще, методы init next iter надо реализовывать
image.png54 Кб, 469x426
301 1768443
>>68437
и да, глянул ща фукнцию зип, он юзает генератор списков, значит моё решение в помойку если у тя будет миллион точек
302 1768471
>>68443
а не, я тупанул, там же yield, так шо всё зоебис
303 1768491
>>68170
>>68007

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

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

Думал кстати делать raise StopIteration внутри блока except в надежде что тогда внешний цикл увидит это и прекратится, чтобы обойтись без ебучих флагов, но нихрена - лишь ошибка: RuntimeError: generator raised StopIteration
304 1768493
Всем привет, вопрос от новичка:
Когда нужно использовать в коде конструкцию

if __name__ = '__main__':
...

?
305 1768494
>>68491
Также неплохо было бы добавить "дефолтное" значение для "пустых" ячеек. Например при вызове: 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)
306 1768502
>>68494
напишешь как решишь, интересно
307 1768505
>>68491
>>68494
>>68502
https://ideone.com/vFZV0D
Вот вроде как нормальная доработанная версия. iter напрямую больше нет нужды вызывать, отсутствующие значения тоже заполняются. Можно делать что-то вроде:
for u, x, y, z in numbered(range(255), 4, default=0):
print(sum((u, y, z)))
308 1768530
>>68505
А у тебя задача какая?
Из цикла можно просто через break выйти без флага, а сам цикл while True.
309 1768549
хочу сделать бота для бесед (подчеркивание, бесед), но код (мне нужен конкретно его суммон) из гайдов 2017-ого года (ибо новее гайдов нету) устарел. заранее спасибо
310 1768567
>>68549
И что ты хочешь, чтобы кто-то за тебя написал?
Кури доки.
311 1768570
>>68567
ИТТ каждый третий такой
"Хочу готовое решение, нихуя не умею, в ангельский не умею, вот".
Бич питона. Даже не знаю, где ещё такой идиотизм есть. Видимо только только с питоном, спасибо инфоцыганам. Коллега без знания всего хвастался торговым ботом, который построен на if-else и жаловался, что питон медленный, лол. Все хотят здесь и сразу. Сразу стать миддлом и 150кк в наносекунду.
Про архитектуру приложений и паттерны никто и не слышал. Думали тут как на пехе, просто добавь воды говнокод
312 1768572
>>68570

>Про архитектуру приложений и паттерны никто и не слышал.


Слышал только про паттерны PIDOR и MVC. Я успешен?
313 1768577
>>68570
Анончик, подскажи, я видел многие намекали что if-else типа хуевая структура организации кода, а как реальные пацаны пишут тогда? Во что она эволюционировать должна? Я максимум до чего дорос - тернарный if.
314 1768578
>>68577
Он о том, что бизнес-логика, построенная на ветвящихся if - однозначный признак говнокода
315 1768627
>>68572
Ну для жангодебила хватит, пиздуй DRF макакой работать или CRUDы дрочить. Через пару лет завезут кривую асинхронки и комбайн снова начнет работать, а потом начнутся очередные бенчмарки без проксирования с черрипикингом, где жанга ПОЧТИ догонит ноду и не совсем Go, мхех
316 1768632
>>68577
Да хоть свитч сделай (обещали в 3.9, лол. Таки дошло до Гвидо) через dict/enum.
Один хуй когда логика более чем "if my_date != date.today(), и состояний объекта может быть на цикл более чем 5 if-else уже нужен рефакторинг, иначе будет спагетти-код, ещё и сам запутаешься.
Ты думаешь многие советуют из-за ЧСВ? Просто сами столкнулись в своем/чужом коде с таким. Лучше заранее соломку подстелить.
В начале можешь хуячить и так. Правда потом обиднее лезть в старый код, вспоминать какая была первоначальная идея и снова писать тесты.
Это реально обидно и времени ещё больше отнимет.
317 1768706
>>68632
switch давно реализуется через dict вида:

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

Че там этот Гвидо подвозить собрался?
318 1768715
>>68570

>Думали тут как на пехе


В 2005 году. Современный боевой пых - это джава с динамической типизацией, ООП, SOLID, паттернами и прочим.
319 1768717
>>68706
Сахар.
320 1768726
>>68715

>ООП, SOLID, паттернами и прочим


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

мимо жсмакака
321 1768727
>>68706
Нихуя ж себе - надо записать!

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

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
322 1768730
>>68726
Когда мне кстати кто угодно начинает предъявлять за solid, я сразу же понимаю что это attention whore с двумя извилинами. Это что-то на уровне предъяв за 5ю нормальную форму БД
323 1768776
>>68727
Ты просто вернул словарь весьма странного содержания вот и все
Switch что через словарь что в том же си обеспечивает быстрый доступ к процедуре и порой лучшую читаемость через параметр case. В твоем случае case в любом случае должен быть вычислен до доступа к словарю. И тут внезапно вычислять его таки надо через if. Switch тут бесполезен
Хотя в твоем случае ты вообще не туда воюешь. Тебе надо банально решается математически. Вот у тебя есть окружность и 1722 равных по величине сектора. Ты серьезно собрался хуярить 1722 if-а либо 1722 case-а? Вот тут мы и подходим к вопросу, что огромное число if-ов говорит о тупости прогера в первую очередь
324 1768781
>>68572
кста а есть репозиторий на паттерн PIDOR?
325 1768789
>>68776
Самое очевидное что у меня на уме на жанный момент это разновидность бинарного поиска: берем середину окружности (средний сектор, если быть точнее) и проверяем больше или меньше значение deg, отрезая таким образом половину вариантов. Повторяем по новой пока не получим единственныф сектор
Призываются математики, способные решить задачку без циклом лишь на бумаге...
326 1768803
>>68789
Либо: создаем массив элементов Decimal от 0 до 360 с шагом base = 360 / n (n - число секторов). Все ответы у нас уже в руках то бишь. Ищем index элементов, между которыми попадает deg
Но это по-прежнему решение от дауна-прогера. Уверен, математически это будет легче
327 1768808
>>68776
Да это понятно что метод каличный, я не понимаю что за хуйня [True] после словаря идёт? Это можешь объяснить, пожалуйста?
328 1768832
Двач помогай. Кинули таску для перехода на другую должность. В итоге требуется -
С помощью Python разработать программу,которая выполняет следующие действия:
1.Открывает браузер
2.Осуществляет переход на google.com
3.В поисковой строке вводит слово "новости", после чего выполняется поиск по заданному слову
4.На открывшейся странице выполняется переход на раздел "новости"
5.Вывести в терминале заголовок случайной новости в пределах первой страницы

Получилось только сделать первые два пункта. Как дальше работать со страницей в браузере понятия не имею,подскажите как гуглить эту задчку
329 1768838
>>68832
На какую еще должность ты там переходить собрался?

selenium епта
330 1768840
>>68838
надо на питоне онли
331 1768842
>>68808
Поиск по ключу True, что в большинстве случаев бред само по себе
Кто это навалял? Чтоб код работал надо при каждом новом значении deg инициализировать новый словарь. If и то профитнее
332 1768850
>>68840
pip install selenium
333 1768900
>>68850
капец ты душный
334 1768903
>>68627
Учи жангу чтобы не быть батхёртом, чел
335 1768980
>>68900
Тебе дают все ключи в руки, ты же как и сказано в >>68570
хочешь на все готовенькое
Slowpoke.png19 Кб, 200x218
336 1769018
>>62623 (OP)
Анон, напомни, пожалуйста, как решать следующие задачи.
Есть список (например, из 22 элементов), есть окно (например, из 5 элементов, т.е. длина списка не делится нацело на длину окна).
Надо окном извлечь все элементы из списка, включая последние два, которые это окно полностью не заполняют. Как это сделать?
337 1769027
>>69018
Вчера писали же: >>68505
338 1769111
>>68842
теперь понял, спасибо
339 1769192
>>68726

>мимо жсмакака


ясно
340 1769226
>>69192
Что тебе ясно, ребёнок?
341 1769237
>>68493
Когда ты хочешь, чтобы модуль по разному себя вел, когда ты его импортируешь из другого модуля, и когда ты запускаешь этот модуль как самостоятельную программу. Код в блоке после строчки "if __name__ == '__main__':" будет выполняться только, когда ты запускаешь данный модуль как основную программу, а когда ты импортируешь этот модуль из другого модуля, этот код выполняться не будет
изображение.png4 Кб, 350x92
342 1769238
Через какой dunder метод реализуется такое поведение?

https://www.codewars.com/kata/5571d9fc11526780a000011a/discuss
343 1769245
>>67817

>прошёл курс на курсере бесплатный от вшэ


И как оно?
344 1769246
345 1769248
>>69245
Как первый курс, когда ничего не знаешь - ОК (если жопа не сгорит на тестовых заданиях), если есть основы - такое себе.
11.png43 Кб, 1109x321
346 1769263
>>68980
ладно.был не прав. и вправду через селениум делается. но все равно не могу доделать таску. застрял на том,как рандомно вывести заголовок новости в консоль.
подскажите хоть как примерно это реализовать?
сорян за скрин кода,а не в pastebin
347 1769274
>>69238
пока только в голову пришли вложенные классы и properties
348 1769276
>>69263
Зарплату будем на всех делить?
349 1769309
>>69276
мне мне 100% те 0%

// мимокрокодил
350 1769316
Привет, друзья

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

Почему код из __init__.py не исполняется неявно при исполнении модуля?
351 1769317
>>69263
Получи список заголовков, а потом выбирай с помощью функции choice из стандартного модуля random
352 1769318
>>67817
automating boring stuff
годнота штоле? уже второй в треде про это пишет
353 1769322
>>69318
мне нравится
354 1769325
>>69318
Хорошо для хоббистов или всяких тыжпрограммистов, можно найти решения для типовых задач. А так ничего особенного.
355 1769338
>>69325
>>69318
Каждому питонисту в том или ином виде стоит ее прочитать. Но всерьез думать, что это сделает тебя YOBA-разрабом - быть дауном
Для более глубокого погружения стоит читать Python Cookbook от Бизли (ебана, уже полгода работаю на галере, но иногда таки возвращаюсь к этой книге, действительно набор годных рецептов есть). А так - начинай потом хуярить доки фреймворков, которые тебе нужны и сразу же параллельно пиши на них свои проекты, учись на практике и не корми инфоцыган
356 1769343
>>69338
ну python cookbook это само собой тем более шо от бизли, решил узнать шо анон нашел в этой книге, а так спасибо за ответы
Slowpoke.png19 Кб, 200x218
357 1769361
>>69018>>69027
Смотри, есть список
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] и так далее.
Окна не пересакаются.
358 1769363
>>69361
for frame in numbered(list, 5, default=0):
----print(frame)

comprende?
359 1769366
>>69363

>numbered


Што?
360 1769368
>>69361
for i in range(0, len(list), 5):
__print(list[i:i+5])
361 1769370
>>69368
---->print(list[i::i+5])

TypeError: 'type' object is not subscriptable
362 1769373
>>69370
Ну так выбери нормальное имя, дурень.
363 1769377
>>69373
Да это ж очередной недовкатывальщик, лишний раз извилину напрячь не хочет, забей
364 1769378
>>69373
Спасибо.
365 1769379
>>69368
while len(list):
____print(list[:5])
____list = list[5:]
366 1769382
>>69370
>>69379
[list66[i:i+5] for i in range(0, len(list66), 5)]
>>69377
У меня бывают прострелы, что простое вгоняет в ступор.
Всем спасибо.
367 1769385
КОК КУКАРЕК УЧИМ НЕ ЯЗЫК А ПОГРОМИРОВАНИЕ!1 ПСЕВДОКОКОКОД!!
@
TypeError: 'type' object is not subscriptable
368 1769398
>>69382

>оправдываться на ссаче

369 1769405
>>69368
>>69363
>>69370
Так, а если есть отсортированный по возрастанию словарь (у каждого ключа одно значение типа int, но значения могут совпадать) и мне аналогичным образом надо брать условные 5 значений и получать их ключи, потом следующие 5 и т.д.?
370 1769407
>>69405
Спасибо, уже не надо.
for i in range(0, len(sorted_dict), 5):
dict_slice = list(sorted_dict.keys())[i:i+5]
371 1769412
>>69385
a = list
for elem in a:
print(elem)

Ты определил тип, но на задал начально значение переменной, отсюда и ошибка. Хули тупишь? Ты бы и в жаве и Go говнокодил.
372 1769414
>>69385
Так это ты петух зарезервированные имена для переменных используешь? Ох, мудила...
373 1769438
Хочу попробовать поработать с вебом и БД, вопрос, какая самая частая БД для питончика? Или такой нет? То что видел, используют PostgreSQL.
374 1769439
>>69368
Бле, всегда казалось что срез выплюнет ошибку, если значения выскочат за индекс листа - ан нет, работает =.=
375 1769443
>>69438
Лучше над выбором orm и движка задумайся
376 1769450
>>69438
С точки зрения производительности Postgres, возможно еще Percona/MariaDB, но вот этот >>69443
прав. Сразу ORM и тогда никакой ебли с БД не будет.
Сразу же создаешь таблицы по сути и определяешь связи.
377 1769464
Кек, пишу тут незамысловатый серверный код как при перезапуске кода эта срань мне выдает:

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

То есть этот петух сделал app.listen(8888) как я его и просил, но после перезапуска сокет 8888 остался занятым. Че за хрень? Как его "почистить"? (это винда если че)
378 1769480
>>69464
а ты сокет закрываешь перед перезапуском?
379 1769482
>>69480
Явно - нет. Раньше вроде без этого обходилось и все работало, а сейчас че-то он не закрылся
Где в винде его вручную ебнуть?
380 1769483
>>69482
У него есть время, которое он будет занят, что-то около 3 минут. Чтобы пакеты все дошли.
381 1769494
>>69226
Что ты дурачок.
382 1769500
>>69482
Посмотри, не висят ли питоньи процессы.
image.png17 Кб, 446x324
384 1769530
image.png18 Кб, 467x328
385 1769531

> None


Охуеть
386 1769571
>>69531

>ORM


Его нет смысла использовать в программе на пару тысяч строк.
image.png20 Кб, 926x570
387 1769643
язык вкатывальщиков и джунов
388 1769646
>>69643
скорее дата сатанистов и девопсов ну и прочих кому надо два раза ударить хуем по клаве и сделать скрипт
389 1769667
Знает кто инструмент для анализа кода на не обработанные эксепшоны? Код анализатор ака mypy/flake, только для поиска необработанных ошибок.
390 1769670
Хочу заниматься беком. Прошел пару курсов по основам питона, научился во всякие типы данных, классы, функции и прочие основы основ.
Думаю что делать дальше, как перейти от консольных программ по типу "посчитай сколько в телефонной книге Ивановых не считая Иван Ивановичей" к чему-то серьезному. Джангу/фласк учить или задрочить стандартную библиотеку чтоб от зубов отскакивало или что еще?
391 1769673
>>69667
Единственное что приблизительно похожее находил это https://github.com/terrencepreilly/darglint DAR401, но это совсем не то.
392 1769760
>>69670
Учи фреймворки(синхронные и асинхронные), пиши сервисы с ними и всё будет ок. Параллельно с этим основные библиотеки выучишь.
langfuck.jpg75 Кб, 726x811
393 1769829
Ананасики, выручайте. Проблема в интегрированном переводе стандартных форм в джанге. Как видете половина текста по-русське, вторая на ангельском. Как чинить?
394 1769856
>>69829
Добавь переводы. У неё есть поддержка gnu gettext.
395 1769870
Есть словарь вида
dict1 = {'a' : (1, 2), 'b': (1, 5)...}
Надо отфильтровать словарь по определённому условию, например, если первый элемент значений в промежутке от 1 до 10.
Пробую:
dict2 = {key:val for key, val in dict1.items() if val[0] >=1 and val[0] <=10}
Пробую len(dict2), а он мне 0 выдаёт.

Что не так?
396 1769878
>>69856
Как это сделать? Объясни тупому, пожалуйста
397 1769895
>>69870
[0] там точно нужно ?
398 1769896
>>69870
По сути всё правильно.
Должно работать, где-то ты обосрался.
399 1769898
>>69895
а, да, туплю ))
Может переберешь просто словарь первый в цикле и через условие прогонишь? Добейся чтобы так работало, потом засунешь уже в такую форму
400 1769902
>>69870
С типами значений словаря все ок?
401 1769908
>>69902
>>69896
Если убрать условие, то он возвращает целый словарь, как и надо.
Если написать {val[0] for key, val in dict1.items()}, то он возвращает первые элементы.
Вроде по отдельности работает, а вместе не очень.

>С типами значений словаря все ок?


Ключи - str, значения int'ты или float'ы
402 1769912
>>69908
Это явно у тебя что-то.
https://ideone.com/YwGlj1
функция.PNG5 Кб, 365x105
403 1769914
Есть вот такая функция. Задание, доработать что бы можно было вызывать с ещё одним параметром - кратностью (величиной шага), который по умолчанию будет равен 1.
Параметр то добавить я могу...
Не понимаю, что от меня вообще хотят.
Что эта функция должна делать в конечном итоге?
404 1769968
>>69914
ну добавь и запихни в range после hight чтоб было range(start,stop,step). Функция выглядит как пустышка абсолютная которая циклит до ручного интерапта.
405 1769969
>>69914
Откуда задание? Явно из контекста вырвал.

Есть диапазон 0,1,2,3,4,5.
Тебя просят просто ввести число из него? Похоже что так. Какой дальше алгоритм знаешь только ты... Потому что... вырвано из контекста
406 1769970
>>69829
>>69856

удивительное говно. Меняю текст в файле с переводами django.po, конвертирую его с помощью fmtmsg в djnago.mo и изменения на странице появляются, но при этом как на половину была форма переведена, так и осталось
407 1769971
>>69870
https://docs.python.org/2/library/itertools.html#itertools.ifilter

Уже придумали и сделали за тебя.
Снимок.PNG88 Кб, 1089x357
408 1769979
>>69968
>>69969
Спасибо кто отозвался.
Эта функция из игры крестики-нолики, она должна принимать номер "поля" (списка из 9 элементов) и возвращать его. Глава про написание своих функция и их взаимодействие.
За ней следуют эти задания.
При чём тут шаг который по умолчанию равен 1...
409 1769993
>>69979
Ну в range шаг по умолчанию и так равен 1, я хрен знает что за секретная у тебя такая книга, что ты только куски показываешь. видимо все действия приведут к единому приложению.
410 1770007
>>69993
Книга - Программируем на Python, автор Майкл Доусон
411 1770018
>>70007
Ты полный долбоеб. ask_number из игры "отгадай число" и к "крестикам-ноликам" отношения не имеет.
https://skobki.com/python-zadachi-i-resheniya-glava-6-funktsii-igra-krestiki-noliki/
412 1770031
>>70018
Эта функция как из первой, так и из второй игры.
Страница 185 в вышеупомянутой книге.
image.png756 Кб, 650x616
413 1770037
>>69670

Prepare your anus! Fight!

lvl 0. знать о docstring, pep8, стандартные либы, особенно всякие collections, asyncio, functools, socket, queue и т.д.
lvl 1. ознакомься с попурярными алгоритмами (сортировка и поиск) и структурами данных, как они устроены, поделай свои связанные списки, деревья, но глубоко не залезай, оно тебя сожрет
lvl 2. базы данных, postgres, советую задрочить индексы, потренеруйся с сложными запросами, всякими join и прочим
lvl 3. сделай 5-10 полноценных проекта на django, django-rest, django-channels, интернет магазин там какой нибудь, https://github.com/Hexlet/ru-test-assignments
lvl 4. git, docker, travis и покрыть тестом свой же код pytest, unittest (ради зелененьких бейджов в гите, ы)
lvl 5. читаешь "карьера программиста", много вопросов покрывает для собесов
lvl 6. пиздуешь по собесам, нарабатываешь скилл прохождения, корректируешь скиллы, решаешь задачки на leetcode

и да, не советую говнокодить в git, проекты тут должны быть как ебаный алмаз, даже самые простые типа ЕБУЧИЙ-ТУДУ. как минимум должно быть внятное README, без всякого говна в репозитории, скрытых папок типа .idea и прочего дерьма. переменные окружения держи в env...
короче советов дохуя можно дать, тебе главное нарабатывать свой опыт, наступать на грабли. учится и кодить, кодить и учится.
414 1770041
>>70018
Более того, я и не собирался её "дорабатывать" для крестиков-ноликов.
Первое задание указано безотносительно какой-то игры. Просто доработать функцию. Этой функции можно указать дефолтный параметр step = 1.
Я не могу понять, какую задачу такая функция должна выполнять и что они вообще хотят.При чём тут вообще шаг, если функция просто запрашивает аргумент - целое число для переменной response. до тех пор пока он не в заданном диапазоне. При чём тут какой-то шаг!?
415 1770056
У меня есть словарь, который представляет querystring в url-запросе, с помощью чего его можно оперативно преобразовать в query строку?
416 1770058
>>70041
Надо посмотреть оригинал, что там долбоебы напереводили.
>>70056
Ищи в urllib3, очевидно же.
417 1770181
Работающие питонисты, у вас много баб в разработке сидит? Как они себя ведут? Скрепляют коллектив или наоборот дезорганизуют?
418 1770198
Аноны, занимался кто скрапином пикч с помощью Селениума? На сайте все пикчи в блобах, причем просто так их не откроешь, решил копировать URI изображения, а потом пихать обратно из base64 в пикчу, но какого-то хуя оно вместо первого пика выдает второй, если выполнить в браузере тот же ЖС код, который преобразовывает пикчу в б64 - выдаст или первый пик, или его же, но с небольшими краями. Что делаю не так, или как лучше сделать?

https://ideone.com/40MBo4 - код
https://mangaplus.shueisha.co.jp/viewer/1007477 - сайт что пытаюсь парсить
419 1770208
>>70198
Я тупой, оно брало flex высоту и по ней обрезало изображение, если задать ручками то вроде норм
420 1770222
>>70198
Ебать там передовой вротэнд, надо будет поковырять.
421 1770281
>>62623 (OP)
Какой пэт проект заебашить, чтобы он был максимально полезен при устройстве на работу?
422 1770284
>>70281
Думай сам, хуле
423 1770315
>>70284
Ну хотя бы направление? Джанго или как-то в опен сорс проект попробовать заехать или еще че-то?
424 1770319
>>70315
микросервисный бигдата блокчейн по торговле криптопирожками у вокзалов с машинным обучением
425 1770322
>>70319
Спасибо)
426 1770330
>>70322
Без шуток, если нахуяришь как можно больше хипстерских технологий и оно будет работать, тем охотнее жадный кабанчик пустит тебя приностить ему бабки.
427 1770371
>>70041
Это сраный учебник. Просто для тренировки может быть.
428 1770376
>>70222
Да пиздец, наворотили хуйни, чтобы просто так сохранить пикчи нельзя было, в итоге ебаная читалка просто шакалила картинки, которые у них же в нормальном качестве. Добавили разрешение пикч - все равно у некоторых шакалит, ууу, сука.
429 1770391
В чем суть реализации чата для двух человек через вебсокеты? Хотелось потренить вебсокеты неважно на каком питон-фреймворке, но че-то не въезжаю как вебсокет ставит коннект между двумя пирами? Коннект же между сервером и клиентом только
430 1770414
>>70391
ну ёпта, дай каждому клиенту свой сервер))
431 1770506
Помогите с сигналами. Не отправляет почту, если указывать адрес из модели, если указывать обычный емаил - норм.

ошибка из дебага "sequence item 0: expected string or Unicode django"

user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=LABELS['user'])

@receiver(post_save, sender=MyModel, dispatch_uid='active')
def active(sender, instance, kwargs):
if instance.note and MyModel.objects.filter(pk=instance.pk, user=instance.user, note=True).exists():
email = EmailMessage(
subject='%s Тема' % settings.EMAIL_SUBJECT_PREFIX,
body=('%s измененна ' % (instance.pk)) + (instance.message),
to=[instance.user],
)

email.send()
post_save.connect(active, sender=MyModel, dispatch_uid='active')
432 1770532
>>70391
Кто послал запрос на соединение, тот и клиент.
>>70506
Так у тебя instance.user - это же модель, не? Может тебе надо указать что-то вроде to=[instance.user.email]?
433 1770551
>>69970
>>69829
Проблему решил. Оказывается в джанге кривой русский перевод в стандартных формах аутентификации, хуй знает чем это объяснить. Чтобы починить частичный перевод нужно найти проблемные строки msgid на английском и закопипастить их заново, затем сконвертировать файл с переводом в бинарик с помошью msgfmt -- и вуаля. Надо им ишью зарепортить, охуели блядь.
434 1770558
Какая у вас бд на бэке идет чаще всего, postgre?
435 1770570
>>70532

>instance.user.email


Благодарю, юзер и емаил в основном совпадают.
436 1770725
438 1770855
Для меня тут пару дней назад стало откровением что range не является итератором, а является итерируемым объектом
Разница-то сука ключевая (но большинству как и мне скорее всего не придется с этим столкнуться): если создать объект через obj = range(10) то по нему нельзя будет пройтись, вызывая next(obj) - с другими итераторами все работает, например с itertools.cycle
sage 439 1770975
Планирую конкретно в data science, big data и нейросети углубляться, какие направления и полезную литературу посоветуете?
440 1771018
У меня тут немного ебанутая мысль но все же: как замутить структуру по типу словаря, в которой ключ сссылается на другой ключ, либо на None? Очевидно что это можно сделать "в тупую" просто продублировав строки вроде
{"key1": "key2", "key2": "key1"}
По-другому никак?
441 1771040
Как выбрать курс по питону для вката в data science? Язык русский или англ. Базу питона норм знаю.
442 1771047
>>71018
По-другому никак, но вероятно строки и так будут лежать в одном месте в памяти, так что это оно и есть.
443 1771171
>>70037
писать на django в 2к20? ты ебобо?
445 1771234
>>70975
Сначала учишь pandas наизусть (это означает, что ты должен будешь знать все методы наизусть, а не открывать стак каждый раз)

Потом всякие skikitlearn'ы и прочие тензерфлоуы
Но ключевой библиотекой будет pandas
446 1771237
>>71234
Нихуя ты жоский. Нормальные люди сначала смторят доку и стак каждый раз, и через время знают все методы наизусть.
447 1771309
>>71171
А че такого?
п.с. сам-то я на джанге не пишу, но интересно что тебе так не приглоянулось в нем, для своих задач норм же
15917385397670.png246 Кб, 684x369
448 1771327
>>62623 (OP)
Так, значится... У меня небольшая идея по написанию "чата с незнакомцем": юзер заходит на основную страницу ресурса и коннектится с другим таким же юзером, теперь у них двоих приватный чат, где они могут общаться и даже пересылать фотки хуев, если надо. Это то, что происходит на фронте

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

А теперь мякота: КАК это намутить? Вот подобие каркаса, который я накидал:
https://pastebin.com/ibjYWSZj
я выбрал tornado, но это вообще не суть, принцип бизнес-логики везде должен быть один; MainHandler принимает post-запрос в котором лежит рандомно сгенерированная на фронте строка, кладет ее в общий пул waiting и начинает каждые 0.1 секунды вытаскивать из этого пула рандомное значение (гениально, правда? пиздец, если быть точнее, белый человек сделал бы асинхронную очередь и ожидал бы данные через await (учитывая конечно что в пуле будет точно лежать тот самый идентификатор тоже)) когда значение таки подберется, мы помечаем строки-идентификаторы как занятые, убираем их из пула waiting и запиливает вебсокет-соединение: по одному на каждого юзера (то есть юзер отсылает данные на сервер через вебсокет, серв читает сообщение и пересылает его в другой "спаянный" вебсокет второму юзеру, и наоборот)

Норм? Че пофиксить?
449 1771333
>>71327
Также я вот тут писал про ебанутый вид словаря: >>71018
Он конечно же нужен, чтобы хранить там парные соединения для вебсокетов. Идентификатор1 ссылается на Идентификатор2 и наоборот, каждый из них можно легко найти по нему же как по ключу. Когда удаляется один ключ, удаляется и второй. Чтобы установить идентификаторы достаточно установить лишь один из них как:
pool = PairedConnections()
pool[idn1] = idn2
Операция pool[idn2] = idn1 выполнится самостоятельно
Конечно же надо учитывать, что соединение может быть "в состоянии ожидания" и ссылаться на None. В таком случае пары у нее нет

Вот код основанный на питоновском словаре, судя по тесту в конце вроде работает:
https://ideone.com/U9VZ03
450 1771340
Продолжаю писать ебучий скрапер с >>70198 , столкнулся с тем, что оказывается с недавнего времени развороты на 2 страницы представляются 2 разными изображениями рядом друг с другом, а не одним большим. Какой самый простой способ проверять является ли одно изображение продолжением второго? Единственное что приходит в голову - какая-нибудь простенькая нейронка на каком-нибудь тензорфлоу, но никогда особо этим не занимался.
451 1771391
>>71340

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


Мне кажется это будет не простая, а ебейщая нейросетище
452 1771397
>>71340

>Какой самый простой способ проверять является ли одно изображение продолжением второго?


Считаешь разницу RGB между соседними пикселями (один пиксель на одном изображении, второй на другом), усредняешь значение для всех пикселей на границе изображений. Если разница небольшая, то изображения являются продолжением друг друга.
453 1771463
>>71391
Да хуй знает, я для универа простые на тензорфлоу делал, а тут вроде просто классификация изображений, по ним материала дохуя везде, главное обучающую выборку сделать.

>>71397
Спасибо, анон, попробую так сделать.
454 1771476
>>71397
А ты хорош!
15943201959020.jpg202 Кб, 858x877
455 1771597
Пагни, всем Спасибо за помощь этому посту который заебал всех. Вроде все всех устроило пока.
Сделал тупо по mock библиотеке и замокал класс. Тупо, но что хотели, то получили.

>>64675
457 1771717
>>71716
Я тупой, проебался:
https://stackoverflow.com/questions/63314181/selenium-python-upload-a-file-in-window

> Селениум может перейти в мобайл -> десктоп, но не наоборот

458 1771719
>>71717
pyautoit
459 1771724
Господа, какую orm выбрать, чтобы потом работу найти? SQLAlchemy пойдет?
460 1771746
>>71717
Тоесть у тебя всплывает окно операционной системы, в которую ты хочешь ввести символы с помощью инструмента для работы с браузером, я все правильно понимаю?
461 1771750
посоны, что заюзать для генерации excel файла? openpyxl норм?
462 1771804
Зачем писать python -m? Что такого этот -m дает?
463 1771814
https://ideone.com/4ANhcl
Пацаны, я тут провел исследование насчет дейтвия try/except и if. Если эксепшнов мало, то try/except блок быстрее примерно на 20%, а если же эксепшны вылетают постоянно, то отсос try/except составит в 1200% и более епта. В примере выше for через if выполнился за ~2 секунды, а тот же for через try за 25 с...
464 1771816
>>71804
да забей это хуйня, если запускаешь скрипт из той же директории то не надо, -м дает возможность исполнить скрипт импортировав как модуль,
python zalupa/govno/pizda.py
python -m zalupa.govno.pizda
вот эти 2 хуйни делают по сути одно и тоже
465 1771824
>>71814
интересно, а если не сохранять данные об эксепшоне в е, а просто экцепт:пасс будет такая же разница?
466 1771838
>>71824
Разница в 1.5 с. Ни о чем
467 1771844
>>71838
Не ну в целом то оно конечно понятно, там же внутренности по сути поднимаются, а не просто пару проверок на истиность, но цифры действительно внушительные
image.png4 Кб, 717x84
468 1771864
Прочитал как "отрезки пенисов длиной не более". Я обдвачевался?
469 1772074
как опеределить количество запросов, которые моя борда сможет обработать? пошел по пути к успеху из пасты
470 1772092
>>62623 (OP)
Как перейти к созданию ботов? Я недавно начал изучать питон, какие-то основы понимаю, но вот мне сказали что для ботов нужно учить библиотеку, я открываю нужную библиотеку с описанием модулей типов етц и нихуя не понимаю. Может есть какой-то промежуточный этап?
471 1772100
>>71804

могу назвать 2 случая когда очень полезно

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

python -m http.server --bind 127.0.0.1 5000

даст нам по бырому вебсервачок для этой папки.
472 1772130
>>72074
Жиметром потести
473 1772144
>>71397
Анон, я может не так понял, но как именно усреднять значение на границе? Т.е. я вычисляю разницу двух изображений, а на втором просто беру 1 из выбранных сторон и делю каждый пиксель на высоту изображения? Сначала подумал сложить все пиксели, поделить и вывести средний цвет с обоих сторон, но чет хуйня какая-то выходит
474 1772168
>>72130
Нихуя, спасибо, анончик. Добра и апельсинок тебе.
475 1772181
>>72074
Можешь, пожалуйста, рассказать о проекте? Тоже хочу борду для теста запилить.
476 1772193
Как получить список всех инстанцов класса?
При создании класса я даю ему имя второго класса, с которым он должен быть "связан" вроде этого:
def __init__(self, name, pair_name=None):
----self.name = name
----self.pair = self.__class__.getinstance(pair_name) # как-то надо достать экземпляр с определенным именем, но как?
477 1772198
>>72193
Тебе список или экземпляр по некоторому параметру? Если второе, то делай словарь и пихай туда экземпляры при инициализации.
478 1772226
>>72144

>Анон, я может не так понял, но как именно усреднять значение на границе?


Допустим, у тебя есть две части изображения, каждая шириной в 1000 пикселей. Из верхней части тебе нужно извлечь нижний ряд пикселей:

row_1= upper_part[-1]

Из нижней, наоборот - верхний ряд пикселей:

row_2 = lower_part[0]

row_1 и row_2 имеют shape (1000, 3), поскольку ширина картинки 1000 пикселей и пиксели записаны в RGB. Дальше просто считаешь разницу между каждым соседним пикселем и усредняешь значение при помощи Numpy:

value = np.abs(row_1 - row_2).mean()

Полученное значение сравниваешь с некоторым порогом. Если больше него, то изображения не являются продолжением друг друга, если меньше - являются. Сам порог можно либо подобрать руками, либо при помощи машинного обучения, что в данном случае очень просто, поскольку можно написать скрипт для создания датасета.
479 1772295
>>72226
Понятно, значит я примерно правильно понял, просто подумал что надо сравнивать не с каким-то пороговым значением, а со средним значением пикселей на одной из границ. Ну тогда у меня какая-то хуйня немного получается, может быть из-за того, что все пикчи черно-белые.
Тестил вот на пикчах отсюда https://mangaplus.shueisha.co.jp/viewer/1007310
Вот код - https://ideone.com/bQZb4O
По результатам выходит, что среднее значение у страниц, которые должны быть 1 большой не обязательно является минимальным или максимальным. Так для пикч со ссылке выше получается: 1-2: 63.64, 2-3: 89.55 - должны быть одной страницей, 3-4: 132.97, 4-5: 53.21, 5-6: 45.22, 6-7: 107.68, 7-8: 119.89
8-9: 120.21 - должны быть одной страницей, 9-10: 108.46, 10-11: 65.11, 11-12: 21.20, 12-13: 81.72, 13-14: 82.43, 14-15: 158.41, 15-16: 158.08, 16-17: 82.90, 17-18: 118.89, 18-19: 92.19
480 1772319
Сделал я
sum(i for i in range(int(8e9)))
чтобы посчитать гипотетическое количество количество соединений, которое получится, если каждый житель Земли установит приватное соединение с каждым другим жителем. Комп пидарюга подвис на хуялион минут. И дело тут не только в Питоне (ну и в нем канешн тоже). Как это задачу решить математически "на бумаге" без циклов? Это реально?
481 1772322
>>72295
С кодом ты явно перемудрил, и все можно было сделать намного проще.

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


Скорее всего слишком много шума и мелких деталей. Нужно упрощать картинки. Снизить разрешение, немного размыть, и прогнать через Otsu threshold чтобы остались только два цвета. Что конкретно сработает сразу не скажешь - надо экспериментировать. Я бы для начала поискал, занимался ли кто-нибудь подобной проблемой.
482 1772330
>>72319
n*(n-1) / 2
=
1.PNG61 Кб, 647x1003
483 1772445
Код полностью скопирован из книги. Но результат видно на скрине.
Подскажите пожалуйста, почему текст из файла не прочтён и почему выдаёт ошибку.
484 1772448
>>72445
Потому что либо автор еблан, либо ты не умеешь копировать
Интерпретатор даже говорит тебе в какой строчке ошибка и как ее пофиксить (только не говори, что не знаешь ангельского...)
Ты файл заново не открыл (пытался открыть, но таки не открыл). Прочитай код заново и сравни код посимвольного чтения файла с чтением целиком
485 1772451
>>72448
Прост на будущее: юзай менеджеры контекста для открытых файлов
with open("read_it.txt", "r") as text_file:
----do_stuff()
Загугли. И читай логи интерпретатора, он тебе сам расскажет, как фиксить ошибки
1.PNG12 Кб, 643x260
486 1772463
Спасибо кто ответил.
Я исходил из того, что код в книге не может содержать ошибку, до сих пор не понимаю, как такое возможно.
Действительно, проанализировав я понял, что предыдущий кусок кода закрывает файл, а новый его не открывает.
Я изменил строку
open("read_it.txt", "r", encoding='utf-8')
на
text_file = open("read_it.txt", "r", encoding='utf-8')
Теперь результат такой.
На сколько я понимаю, кодек utf-8 по какой-то причине не может что-то декодировать... До этого мог, а теперь нет.
487 1772464
>>72451
Спасибо за совет про менеджеры контекста. В будущем...
А этот код писал не я, я его только копирую и анализирую с помощью книги.
488 1772479
Получилось. Оказалось что текстовый файл по дефолту кодируется не в utf-8.
489 1772480
>>72479
Ебля с кодировками она такая
490 1772553
Почаны-фрилансеры-питонеры, какие задачи, в основном, решаете во фрилансе? Насколько, по-вашему, рынок пресыщен предложением со стороны исполнителей?
1.PNG7 Кб, 444x251
491 1772590
скажите, почему если методу .read передать 1
программа не выводит на экран первую букву?
Если передать 2, выводит первую букву, вместо первых двух и т.д.
Это типа как индексация, первый символ нулевой?
492 1772625
>>72553

>Насколько, по-вашему, рынок пресыщен предложением со стороны исполнителей


Как ты блять думаешь, если сейчас уже мамашки в декрете питон знают и рвутся в айти?
493 1772644
>>72590
Видимо, у тебя что-то с файлом, может, кодировка необычная, или что. Он же у тебя напечатал что-то, это тире или точка, посмотри, может это и есть первый символ в твоем файле.
494 1772646
>>72590
Попробуй применить стандартный модуль pathlib
495 1772723
>>72625
Ну это-же сегмент индусского быдлокода. А какие мидлы, например, задачи решают?
496 1772934
>>72723
А на фрилансе лычек и нет
изображение.png133 Кб, 505x556
497 1772943
498 1772951
>>72590
ебани readline
499 1772996
>>72723
Перекатываются на Julia и Go.
500 1773034
https://www.youtube.com/watch?v=z7WIm0iZcOU

Всем, кто любит орать про бенчмарки которые "показали однозначное превосходство ФреймворкаА над ФреймворкомБ"
501 1773054
>>73034
там же правильный комент

"Молотком стена красится медленнее, чем кистью, я проверял, вывод - молоток не нужен. Именно так выглядят подобные холиварные статьи. "
502 1773126
Вечер в хату, Уважаемые господа. Пришел я в этот трудный час с просьбой или за советом . есть проблема. Power bi пик1 выдает карточку с общим количеством секунд по таблице-n . а мне хотелось бы видеть это в днях-часах-минутах . код для перевода из секунд в нужный мне формат я нашел (пик3). и встает вопрос как подружить power bi и скрипт? пик5 код карточки в power bi. желаемый результат пик6. Заранее благодарю за любой ответ
503 1773140
Сап програмач, ньюфаг на связи.Нужна помощь, если можно пожалуйста.
Посчитать лимит символов для левой части
Если левая часть меньше лимита символов, добавить пробелы
Если левая часть больше лимита символов, отобразить первые n символов, где n — лимит символов
На следующих строках отобразить всё остальное, но максимум n символов на каждой строчке
Суть в том что это доработка программы-магазина которая выдает чек.На пике 1 показан код где нужно внести изменения по заданию, а на втором результат который сейчас.Собственно буду благодарен любым подсказкам как это можно сделать ньюфагу, или чаво можно почитать чтоб понять что делать.
504 1773238
>>73140
max = WIDTH - len(right)
left = left.ljust(max, " ") if left < max else left[:max]

# Идея такая: если меньше максимума то добиваем пробелами (ljust сделает это справа, можешь поменять на rjust). Если больше, то делаем срез строки

Дальше сам
505 1773339
Перекат нужно.
506 1773504
Решил вкатиться в питон и купил https://www.piter.com/collection/bestsellery-no-starch-press/product/izuchaem-python-programmirovanie-igr-vizualizatsiya-dannyh-veb-prilozheniya-3-e-izd
Расскажите насколько я проебался, не взял вашего лутца, или еще какую тру книгу.
507 1773537
>>73504
Я думаю классная книга. Автоматизацию рутинных задач не читал?
508 1773542
>>73537
Нет, но она у меня в закладках тоже есть.
509 1773545
>>73504
впринципе для обучения пойдет, я коенчно не читал первую половину книги, так как прочитав одну книгу по питону, у остальных можешь половину скипать, так как там азы все время пишут
но я видел проэкт с игрой из этой книги и он написан просто ужасно, такое чувство что автор не питонист, а какой то джавист в смеси с еще какой то функциональной хуйней,
а вот с автоматизацией мне понравилась книжка, правда первую половину я опять же не читал, а вторая начинается с регулярочек, который при первом знакомстве могут показаться той еще ебалой,
лутц это конечно пиздец рофлан поминки тем кто решился его читать, основная идея книги это повторение мать учения видимо, впринципе очень подробно, но пиздец как скучно
510 1773561
>>73545
Первую часть про совсем язы я тоже пропущу, наверно. Я не программист, но приходилось делать всякие штуки типа парсера текстовых файлов/xml/выгрузка данных из бд когда я загуглил как сделать мне нужное на оракле, то просто охуел и не встал, оказалось проще написать скрипт на коленке 50 строк со сторонней библиотекой. В том числе и на том же питоне. Короче всякие такие одноразовые дрочилки, которые были нужны по работе.
Но все, что я делал, было без понимания. Тупо копипаст со стаковерфлоу и прочих готовых примеров. Есть у меня желание в будущем, если получится, пойти по карьере программиста. Если не получится, то хоть для себя поучу, чтобы эффективнее решать свои мелкие задачи.

По поводу регулярок - я давно себе зарубил на носу, что если решил какую-то проблему решать регулярками, то у тебя уже две проблемы.
Стараюсь их не использовать, если нет острой нужды. Мне читабельность и реюзабельность важнее, чем скорость и меньший объем кода. Даже с онлайн-тулзами отладка этой шняги у меня частенько занимала непозволительно много времени.
511 1773580
>>73561
Я не твой собеседник, но хочу заметить что раньше тоже блевал от регулярок, но потом открыл для себя онлайн тестеры вроде https://regex101.com/ и re.VERBOSE, блять, я хз как вообще люди живут без этой штуки - это просто О-ХУ-ЕН-НО упрощает понимание регулярок и что важнее - читабельность кода.
изображение.png9 Кб, 710x145
512 1773581
>>73580
для примера сравни:

([a-zA-Z0-9._%+-])?([a-zA-Z_ ])(\d{1,20})([a-zA-Z._%+-])?(\.[a-z]*)

и скрин.
513 1773585
>>73581
Я regextester и rubular раньще юзал.
А как тут сделать автогенерацию комментов к коду? Чет не вижу.
514 1773597
>>73585
Ебать у тебя вопросы.
515 1773601
>>73597
Может не так выразился, на https://regex101.com/ есть автогенерация коммента к регулярке, чтобы как на скриншоте было?
516 1773610
>>73585 аргумент ре.вербосе к функции компайл позволяет писать коментарии вместе регуляркой
517 1773647
>>73601
Чел, это мои комменты если что...

На regex101 там автокомменты справа, но они не то чтобы очень информативные, если честно.
ползите 518 1773716
519 1785002
tuple
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 23 февраля 2021 года.

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

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