Главная Юзердоски Каталог Трекер NSFW Настройки

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 530 88 208
Питон-тред №170 /python/ Аноним 11/06/24 Втр 07:14:20 3187471 1
image.png 1434Кб, 1024x1024
1024x1024
Тред, посвящённый языку программирования Питон, #170

Предыдущий: >>3136432 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq

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

#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
https://github.com/yakimka/python_interview_questions - интересная подборка, масса разнообразных тем и вопросов, для продолжающих, всё на русском

— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.

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

— А как учить джангу? Нахожу книги по джанге 1.х, можно их использовать?
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.

— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.

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

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

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

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

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

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущая шапка: https://goonlinetools.com/snapshot/code/#154ln61u1e2e5b4kfv6w8r
Аноним 11/06/24 Втр 10:46:17 3187556 2
Добры перакат. Малайчына!
Аноним 11/06/24 Втр 10:52:27 3187561 3
>>3187556
Катись нахуй, драник
Аноним 11/06/24 Втр 11:29:07 3187615 4
Ни нормального ООП, ни нормальной функциональщины.
Ни в пизду, ни в Красную Армию питон ваш.
Одним словом - учебный язык людей, не осиливших С.
Аноним 11/06/24 Втр 12:22:26 3187686 5
python-жмых-1.jpg 256Кб, 1080x1080
1080x1080
python-жмых-2.png 18Кб, 797x148
797x148
Пиздец у вас в шапке. Книги 2017 года считаются свежими.
Аноним 11/06/24 Втр 18:34:27 3188296 6
>>3187615
>не осиливших С
Но ведь в Си нет ни ООП, ни функциональщины...
Аноним 11/06/24 Втр 18:46:50 3188305 7
>>3188296
>в Си нет ни ООП
Да вы затрахали, есть конечно, просто не делается искаропки. Схлопывание хвостовой рекурсии тоже вроде реализовали первыми в си
Аноним 12/06/24 Срд 12:25:23 3188968 8
1.mp4 19318Кб, 360x640, 00:00:59
360x640
База треда:
Python - язык для школьников и data science.
Работы в разработке на питоне нет.
Питон - плохой язык, который учит плохому.
Аноним 12/06/24 Срд 17:24:49 3189242 9
image.png 337Кб, 1712x344
1712x344
image.png 116Кб, 1113x410
1113x410
Не понял
Аноним 12/06/24 Срд 17:31:55 3189250 10
,fvg
Аноним 12/06/24 Срд 17:32:51 3189253 11
hbhb
Аноним 12/06/24 Срд 17:51:32 3189275 12
Аноним 13/06/24 Чтв 18:19:20 3190564 13
>>3187471 (OP)
аноны, используют ли хадуп и прочие библиотеки для больших данных в питоне?
имею в виду, не в теории возможность их использовать вместе, а на практике в компаниях?
или хадуп это чисто под жаву
Аноним 13/06/24 Чтв 18:50:57 3190598 14
>>3190564
Кликхаус ставь. Хуйня это все дедовская.
Аноним 13/06/24 Чтв 19:19:15 3190617 15
>>3190564
Буквально сегодня через пайспарк перекладывад данные в хадупе.
Аноним 13/06/24 Чтв 21:28:28 3190749 16
Аноним 14/06/24 Птн 12:02:26 3191176 17
111.png 70Кб, 1773x574
1773x574
Подскажите почему всегда отрабатывет else, даже если проверяемый файл и значение size в нём не меняются.
Аноним 14/06/24 Птн 22:52:30 3191728 18
image.png 143Кб, 1914x1045
1914x1045
да я ламер не утруждайся в оскорблениях
Аноним 14/06/24 Птн 22:53:36 3191729 19
>>3191728
Почему код в окне вывода дублируется?
Аноним 15/06/24 Суб 13:34:39 3192036 20
>>3188968
>Работы в разработке на питоне нет.
Работаю джуном.
>Питон - плохой язык, который учит плохому
Например? Что тебе в нем не нравится?
Ну может внем хуево реализовано ооп и нет строгой типизации это да. Но в целом удобноый язык без ебучих {} после каждого чиха. На мой взгляд отделять блок функции или класса табом гораздо лучше чем плодить {эти { ваши {скобки}}}
+ дохуя библиотек и готовыми решениями.
15/06/24 Суб 16:48:47 3192219 21
>>3192036
>отделять блок функции или класса табом
Невидимым символом, ага.
Петухон давно пора сжечь и обоссать.
Аноним 15/06/24 Суб 17:58:41 3192276 22
>>3192219
Бля поставь видимыми
И будет тебе
def foo():
\treturn 'хз что тебе не нравится'
Так то отделять отступами это как раз по человечески. Ты ж не отделяешь абзацы в тексте скобачками. Это фича блин, язык становиться более читаемым. Меня больше возмущала отсутствие строгой типизации по началу.
Аноним 15/06/24 Суб 19:44:51 3192456 23
Причина отсутствия постинга?

>>3191728
Это, бля, что?
Аноним 15/06/24 Суб 20:16:20 3192477 24
Как выполнить какую-то тяжелую оперцию (типа запрос к апи) не блоча основной поток? Пробывал asyncio.run() но нихуя
Аноним 15/06/24 Суб 21:52:31 3192593 25
>>3192036
Даже Гвидо сказал, что это было ошибкой. Нельзя делать популярным язык с экспериментальным синтаксисом.
Аноним 15/06/24 Суб 22:03:06 3192601 26
>>3192036
>и нет строгой типизации
Хуевый ты джун, в питоне строгая типизация.
Аноним 15/06/24 Суб 22:04:49 3192603 27
>>3192593
>Нельзя делать популярным язык с экспериментальным синтаксисом
Си когда-то ровно таким и был. Если бы все придерживался твоих охуительных принципов, мы бы до сих пор писали на каком-нибудь монстре типа фортрана.
Аноним 15/06/24 Суб 22:39:54 3192618 28
как запросить code review у анона

какую форму заполнить
Аноним 15/06/24 Суб 23:43:18 3192662 29
Аноним 15/06/24 Суб 23:49:45 3192666 30
>>3192276
>Это фича блин, язык становиться более читаемым
Ага, то-то от нее куча народу бомбит
Менее читаемым он становится
Аноним 15/06/24 Суб 23:51:54 3192669 31
>>3188305
Ну таким образом ООП и в ассемблере есть и вообще везде, просто не из коробки
Речь то и идёт про из коробки
Аноним 15/06/24 Суб 23:53:34 3192671 32
Аноним 16/06/24 Вск 00:37:40 3192696 33
>>3192666
>Ага, то-то от нее куча народу бомбит
Утята, не способные выбраться за пределы си-подобного синтаксиса с нее бомбят
16/06/24 Вск 01:16:42 3192715 34
>>3192666
Всё так. Но петухонщики восторгаются, хотя не могут освоить даже -тся/-ться. Жаль, что Scala пошла по той же кривой дорожке.
>>3192696
Я начинал с Паскаля, он куда лучше этого убожества. И при этом C-like выдержал проверку временем, его базовые идеи прижились.
Lisp ещё лучше, но он не для всех.
Аноним 16/06/24 Вск 01:49:10 3192725 35
>>3192715
>И при этом C-like выдержал проверку временем, его базовые идеи прижились.
Да и Питон, как видишь, чувствует себя отлично. Haters gonna hate.
Аноним 16/06/24 Вск 02:08:42 3192732 36
>>3192603
Тогда все языки были экспериментальные. Сейчас почти все языки общего назначения используют сиподобный синтаксис, даже, прости г-споди, php, и это удобно, гораздо легче читать программы, даже если языка не знаешь. И тут вдруг питон вылез со своими отступами.
Аноним 16/06/24 Вск 02:09:28 3192734 37
>>3192666
Объективно это дело привычки.
Но если принимать во внимание другие области человеческих ремесел, где есть запись информации по определенным правилам: письменность, математика, ноты. Везде блоки информации разделяют отступы, а не скобочки. Таким образом можно сказать, что для человека запись без скобочек лучше, а если тебе бомбит - значит синдром утенка.
Аноним 16/06/24 Вск 02:51:00 3192747 38
>>3192734
Хотя ноты наверное не корректно сравнивать, ноты это по сути график, но во всех других случаях скобочек нет и разметка идет в виде отступов. Документы, поэзия - веками отступы использовались без дополнительной разметки - всё это наглядно демонстрирует что скобочки человеку для разметки и читаемости не нужны, лишние символы.
Аноним 16/06/24 Вск 03:36:39 3192760 39
>>3192734
>>3192747
У тебя инвалидные аргументы. В математике никаких отступов нет, там как раз сплошные скобочки.
В музыке тоже нет отступов, а специальные обозначения для блоков как раз есть. См., например, реприза.
Текстовый документ - это неструктурированные данные, плюс там ещё есть и другие способы выделения: разные шрифты, жирный, полужирный, италик, подчёркивание, заглавные буквы. Давай всё это ещё в программирование притащим.
Аноним 16/06/24 Вск 07:39:58 3192789 40
Аноним 16/06/24 Вск 10:19:15 3192882 41
>>3192760
В математике формулы, уравнения и их решения мы компонуем в последовательные блоки по точно таким же правилам как и обычный текст. Для того чтобы разделять мат.записи, формулы и прочее между собой мы скобочки не используем, мы просто следующую формулу или решение с новой строки пишем и всё.
То, что в математике в скобках пишется и в прочей разметке в точно такой же степени и в Питоне в скобочках пишется, речь не об этом не о разметке математических действий например, а о разметке именно синтаксической. В математике нет ни каких специальных скобочек для синтаксического разделения.

>Текстовый документ - это неструктурированные данные
Текст в точно такой же степени структурирован как и код языка программирования. Точно такие же буквы складываются в обозначения неких абстракций, абстракции идут друг за другом и формируют логику. Если ты этого не понимаешь, то так себе ты погромист.
Аноним 16/06/24 Вск 11:10:02 3192910 42
Стикер 585Кб, 250x250
250x250
Экспериментировал с запросами на простых форумах всё просто. На бордах тоже ничего сложного по идее не должно было бы быть, на всех WebKitFormBoundary и парсеный-нераспарсеный пейлоад за счёт него выглядит очень по разному. Примерно как ниже показал.
Но вот не знаю как правильного его отправить, навскидку глянул советуют не как дату, а вот как-то так отправлять post(url=url, files=files).

В моем случае всё еще отягощается вот такой пургой с кучей спецсимволов, борда с которой я вожусь не сосач если что.
------WebKitFormBoundaryY1APBYjD
Content-Disposition: form-data; name="e063dvnw♾1of⛵i8k☿4g9z⛢b5txypl"/☰C0x@9☁57⛶Q4bmP
Мало того в конце всё ещё интересней, подсчитывается хэш всей этой пурги name="hash", ошибка в символе приведет к несовпадению хэша. Разбирать как это всё хэшируется пока нет желания. Хотел просто поприколу продублировать запрос, да вот не знаю как правильно прицепить пейлоад. Из того что эксперементировал ничего не вышло. Может что посоветуете?

task: post
board: b
thread: 120234

------WebKitFormBoundaryNaIR1AUuHyKekGAZ
Content-Disposition: form-data; name="task"
post
------WebKitFormBoundaryNaIR1AUuHyKekGAZ
Content-Disposition: form-data; name="board"
b
------WebKitFormBoundaryNaIR1AUuHyKekGAZ
Content-Disposition: form-data; name="thread"
120234
Аноним 17/06/24 Пнд 13:37:54 3194041 43
>>3192036
> нет строгой типизации
обычно принято говорить сильная-слабая типизация

В питоне сильная типизация. Для сравнения, в JS слабая типизация.

Ещё есть статическая-динамическая типизация. В питоне динамическая. Надеюсь ты не тот статикошиз, что тут по тредам бегает.

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

Ещё принципиальный минус, что нет декларации типов. Легко сделать ошибку из-за этого, читаемость страдает. Вот в JS есть декларации.

Ещё минус в области видимости. В питоне минимальная область видимости это функция, так внутри питон устроен. Сейчас все пришли к тому, что удобнее, когда может быть область видимости блок, внутри цикла, if-else и т.п. В том же JS так уже давно. Но в питоне это жёстко встроено, хрен уже переделаешь

бесскобочность спорное решение, и плюсы есть, и минусы. Пожалуй я бы предпочёл, чтобы они были. Если ставить скобки в стиле Java, они уже не перегружают код.
Аноним 17/06/24 Пнд 13:44:20 3194045 44
>>3192696
Когда пишешь обычный код, отступы вместо скобочек норм, привыкаешь. Но вот этот подход ломает возможность в коллбэках функции-классы определять. На самом деле ограничивает. И косяки иногда бывают из-за отступов, стандартная история, это когда вложенные if, а потом else, который может легко слететь при рефакторинге

В общем сомнительная фича языка
Аноним 17/06/24 Пнд 13:48:03 3194047 45
>>3192732
>Сейчас почти все языки общего назначения используют сиподобный синтаксис,
У го другой синтаксис

А php старый язык, его создавали тогда, когда в мэинстриме были си-подобные языки, в то время это C/C++/Java, причём делали не из расчёта на то, что серьёзно что-то будет, не продумывали. Его писали на Си, поэтому идеи тоже взяли от си, как проще
Аноним 17/06/24 Пнд 19:04:51 3194476 46
>>3194041
>В питоне сильная типизация.
Обьясните простыми словами в чем смысл такой классификации, что она на самом деле отражает и для чего нужна. В википедии написано что эти понятия придумали независимо друг от друга два дида-основателя и их трактовки что называть сильной типизацией разнятся, так что когда кто-то говорит "слабая\сильная типизация" надо во-первых уточнить что он имеет в виду, чью трактовку, а потом спросить зачем он это вообще сказал.
Аноним 17/06/24 Пнд 19:22:32 3194506 47
>>3194476
>простыми словами
В жыесе ты можешь сложить число с строкой, интерпретатор автоматически сделает приведение типов. В питоне получишь TypeError.
Аноним 17/06/24 Пнд 20:40:07 3194644 48
>>3194506
Но в питоне я могу сложить целое число с флоат, разные типы, не такая уж и "сильная" получается типизация.
Аноним 17/06/24 Пнд 21:04:55 3194677 49
>>3194644
>Но в питоне я могу сложить целое число с флоат, разные типы, не такая уж и "сильная" получается типизация
А есть языки в которых нельзя? По-моему в традиционных языках во всех можно. Более спорный момент, что должно быть результатом выражения
3/2
а именно 1 или 1.5
но числа это своя специфика вообще, всегда

А вот прозрачное переделывание строки в число и наоборот это уже явный признал слабого типа.
Аноним 17/06/24 Пнд 21:23:01 3194695 50
>>3194677
>А есть языки в которых нельзя?
Ada. И если ты думаешь что это какой-то забытый язык, то нихера, критические системы для космоса, авиации и прочего транспорта пишутся буквально на 4х языках: си, кресты, ада и ассемблер. Ада только в США правда.
Аноним 17/06/24 Пнд 21:30:32 3194707 51
>>3194695
>си, кресты, ассемблер
Это всё ассемблер и его синтаксический сахар.

>ада
Ну судя по всему какое-то невероятное говно без задач, которое сделали только по заказу министерства обороны сша, когда какому-то сапогу пришло в голову что у армии должен быть свой супер мега язык. ПОТОМУЧТО.
Аноним 17/06/24 Пнд 21:34:48 3194714 52
>>3194707
>Это всё ассемблер и его синтаксический сахар.
Вебмакака детектед.
Аноним 17/06/24 Пнд 21:38:00 3194716 53
>>3194695
>Ada
Ну давай всё-таки современный мало-мальски массовый язык. Современный, это который после 1985-90 года взлетел, а не говно мамонта из 60х
Аноним 17/06/24 Пнд 22:55:00 3194799 54
>>3194677
>Более спорный момент, что должно быть результатом выражения 3/2

Ничего он не спорный. Мы же к определенному типу данных применяем определенный алгоритм. Если этот алгоритм называется деление без остатка, то мы и получим тип данных который ждем. А вопрос "типизации" насколько я понял сформулирован таким образом "как себя ведет язык если всунуть другой тип данных туда где ожидается не он". Но это всё равно хуйня какая-то и глупость, если из этого правила есть куча исключений. Впрочем похуй.
Аноним 18/06/24 Втр 00:07:37 3194877 55
>>3194716
>Ada
> First appearedFebruary 1980
а он, оказывается, не такой уж и старый, я думал, что его ещё до C разработали, в эпоху кобола
Аноним 18/06/24 Втр 20:09:35 3195774 56
изображение.png 37Кб, 758x411
758x411
Всем ку гайз. Это я - олд. Олды на месте.

Начал тут питонировать, и встал вопрос. На каком основании классы "не видят" друг друга, если они объявлены внутри другого класса? Почему так?!

При этом, если эти классы не являются "подклассами" другого класса (т.е. объявлены не внутри класса, а просто в файле - хз как правильно сказать), то все нормально - они могут "видеть" друг друга. Что я делаю не так?!

Прошу строго не судить - питонирую не так давно.
Аноним 18/06/24 Втр 20:28:33 3195793 57
>>3195774
По той же причине по которой ты из внутреннего класса не сможешь достучаться до обычного атрибута, объявленного в классе Video.
Классы тут не при чём.
Аноним 18/06/24 Втр 20:31:04 3195798 58
for1.png 223Кб, 1920x1080
1920x1080
Сап прогачам! Недавно вкатился в питонирование, и до нынешнего момента вполне успешно постигал тонкости этого занятия.
Сейчас же полнейший затуп. Решаю задачу по циклу "for". По условиям задачи дается список из чисел, нужно его перебрать и разделить на простые и составные числа, и записать их в новые списки primes и not_primes, соотвественно. Написал рабочий код, который, приводит совершенно не к тому результату который требуется (все на скрине). Вобщем уповаю на вашу помощь! Сам уже три час над этим колдую и ничего не выходит(((
Аноним 18/06/24 Втр 20:39:37 3195812 59
>>3195798
if i % j == 0: break; else: is_prime = False
поменять на
if i % j == 0: is_prime = False

Если хочешь делать break из цикла, чтобы не выполнять лишние итерации, то перед break'ом надо сначала занести число в список 'not_primes'

>>3195793
Да блин, это пипец. Хочу сложить все в один класс, чтобы было красиво, но не получается. Как поступить? Отказаться от "вложенных" классов и все классы делать "внешними"? Я не понимаю...
Аноним 18/06/24 Втр 20:55:38 3195842 60
for2.png 219Кб, 1920x1080
1920x1080
>>3195812
Ага, так и думал, что где-то в этом месте проблема.Спасибо! Стало лучше, списки выводятся, однако в списке простых чисел какая-то ересь все равно. Все числа, кроме 3 и 15 продублированы по нескольку раз, а число 2 так вообще не вывелось.
Аноним 18/06/24 Втр 21:16:22 3195867 61
>>3195842
У тебя сейчас алгоритм следующий:
1) взять некоторое число i (от 2 до 15)
2) если число i не является простым (т.е. когда срабатывает условие i % j == 0), то добавить его в список 'not_primes' и перейти к следующему i (т.к. внутренний цикл 'for j ...' прерывается командой break)
3) при этом, число i будет добавляться в список 'primes' каждый раз, когда текущее число j не является делителем i (т.е. когда условие i % j == 0 не срабатывает) - из-за этого некоторые числа в списке 'primes' повторяются несколько раз, и из-за этого в 'primes' попало число 9, которое не является простым (проверили 9 % 2 - 2 не является делителем 9, добавили 9 в 'primes', проверили 9 % 3 - оказалось, что 9 - не простое число, добавили 9 в 'not_primes', перешли к следующему числу - 10)

+ ты убрал проверку значения переменной 'is_prime' и сейчас никак ее не используешь

Как должно быть:
1) Берем некоторое число i и в самом начале считаем, что оно простое, пока не доказано обратное, т.е. is_prime = True
2) Среди чисел j таких что (j = от 2 до i): смотрим, есть ли такие числа j, что j является делителем i.
3) Если хотя бы раз выполнилось условие i % j == 0, то выходит, что число i не простое: is_prime = False
4) Если мы смогли пройти весь внутренний цикл 'for j...' и условие i % j == 0 не выполнилось ни разу, значит число i простое - is_prime осталось True
5) Проверка значения переменной is_prime должна проходить вне внутреннего цикла 'for j...' (т.е. после него)

P.S.:
1) Проверять от 2 до i нет смысла, т.к. делитель числа i не может быть больше половины числа i (т.е. разумно проверять только от 2 до i // 2)
2) Если было установлено, что число i не простое (is_prime стало False), то можно делать break из внутреннего цикла 'for j...'
Аноним 18/06/24 Втр 21:40:28 3195887 62
>>3195812
Вот так можно через Video.Data, но не знаю сработает ли для тайпхинтов.

Фигню делаешь, скорее всего. Так на Питоне обычно не пишут.
Создай отдельные вынесенные классы и инжекти их в init.
Аноним 18/06/24 Втр 21:51:29 3195892 63
for3.png 205Кб, 1920x1080
1920x1080
>>3195867
От души, чел! Вот про проверку is_prime вне цикла 'for j...' 'это ты в точку попал. Я этот момент в глаза продолбил!
Все, теперь все запахало как нужно!
Аноним 18/06/24 Втр 21:56:24 3195898 64
>>3195887
> Вот так можно через Video.Data
Интерпретатор все равно ругается на тайп-хинты для аргументов и возвращаемого типа. Внутри тела метода уже можно использовать Video.Data, но это хуйня какая-то - если поменять имя класса Video на другое, то придется и в тело метода вносить правки.

Короче, действительно надо эти классы вынести и не ебать мозга.
Аноним 18/06/24 Втр 21:58:49 3195899 65
>>3195898
зачем вообще писать на питоне с типами? все преимущество языка в том что в нем нет типов
Аноним 18/06/24 Втр 22:04:23 3195907 66
>>3195899
Хз, я как питонист видимо еще не дорос до уровня, на котором используют такое преимущество, как отсутствие типов. А тайп-хинты я для себя прописываю, чтобы понимать что происходит.
Аноним 18/06/24 Втр 22:05:48 3195910 67
image.png 129Кб, 718x727
718x727
>>3195899
Как определять тип входящего параметра будешь? По запаху?
Аноним 19/06/24 Срд 03:20:28 3196085 68
>>3195910
Зачем пихать неизвестно что во все дырки?
Вот у меня есть какой-нибудь класс и метод который что-то делает с каким-нибудь типом данных.
Если в этот класс прилетит рандомная хуйня, которую там никто не ждет и так исключение высрется, это же ошибка.
А если у нас тут полиморфизм, то чекаем тип или есть прекрасные именные атрибуты, например.
Почему все так ноют про эти типы? Я думаю это всё из за того что в питухон приходят из других языков со своим уставом и вот так привыкли делать, а надо по-другому, надо ПИТОНИЧЕСКИ.
Аноним 19/06/24 Срд 11:39:53 3196332 69
>>3195899
>зачем вообще писать на питоне с типами?
Чтобы было удобно читать и понимать код. Чтобы в IDE ты мог навести на тип и посмотреть, как он определяется, это про сложные типы, конечно. Чтобы ты в принципе понимал, что нужно пихать в функцию, какой тип

Декларации крайне полезны

Это промежуточный вариант между статической типизацией с массой своих минусов и динамической
Аноним 19/06/24 Срд 12:20:09 3196406 70
>>3196332
Это мега бесячка, когда написано str, а тебе прилетает int
Аж трясёт от такого!
Аноним 19/06/24 Срд 14:44:39 3196564 71
>>3196406
>когда написано str, а тебе прилетает int
Меня вообще удивляет, как вы так код пишете, что у вас контракты нарушаются внутри кода, ладно если внешние апи какие-то долбите.
Аноним 19/06/24 Срд 15:18:53 3196602 72
Заставляют переучиваться с джавы на питон и переписывать автотесты, как же не хочется...
Аноним 19/06/24 Срд 15:26:45 3196611 73
>>3196564
Действительно. Это как надо по клаве лицом кататься чтобы такое напитонировать.
Аноним 19/06/24 Срд 15:40:56 3196624 74
изображение.png 37Кб, 1355x236
1355x236
изображение.png 91Кб, 1440x884
1440x884
Почему тут срабатывает __init__ метод класса В?
Если я правильно понял, super() это сокращение от super(__class__, self).
Вызываем конструктор класса Х().
Интерпретатор ищет метод __init__ сначала в Х (согласно MRO). Не находит, идет в класс А.
В классе А срабатывает __init__, который в свою очередь вызывает super(A, self). self в данном случае это объект класса Х, поэтому поиск идет в MRO объекта от класса Х, но после класса А, т.е В?
https://www.online-python.com/d6fB4AJEiS
Аноним 20/06/24 Чтв 02:14:51 3197352 75
>>3195910
Я не знаю, я пишу на языке с типами, это скорее тебя нужно спросить, зачем ты выбрал питон
Аноним 20/06/24 Чтв 02:16:40 3197354 76
>>3196332
Это никакой не промежуточный вариант, это и есть попытка сделать типизацию в языке, который для этого не предназначен. Может лучше тогда взять язык с типами?
Аноним 20/06/24 Чтв 06:54:32 3197380 77
Сап, погромач
Вопрос общий и нубский, говорю сразу. Не вкатун, делаю по фану, но перфекционизм ебет

Есть задача - читать некий текстовый файл (10+ мб) с периодичностью 0.5-1сек и собирать по 3 похожие строки с ключевыми словами в объекты для последующего использования.

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

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

С одной стороны, 2 цикла получается, делающие почти одно и то же. С другой стороны, не должно быть проблем с тем, что какие то данные для объекта проебаны по той или иной причине

Как вообще это делать правильно то в итоге? Для текущей задачи допустим похуй, но если надо весь файл потом чекнуть, создавать из него массив выглядит тупо
Аноним 20/06/24 Чтв 06:59:15 3197381 78
>>3197380
>фильтрую их в цикле по ключевому слову
Ах да, забыл уточнить, что каждый объект должен состоять из данных из 3х строк, которые идут всегда в одном порядке, но между ними дохуя левых строк
Аноним 20/06/24 Чтв 08:19:34 3197398 79
>>3197380
>читаю последние 50кб файла
Не понял, почему читаем именно последние 50кб. Или ты читаешь файл кусками по 50кб от начала до конца?

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

В общем, чтобы было понятнее, нужен отрывок исходного кода.
Аноним 20/06/24 Чтв 10:25:21 3197451 80
>>3197380
Правильно будет наверное конкурентности навернуть. Один тред читает (кусками) файл и складирует их в очередь. Второй тред таскает из очереди кучки строк и обрабатывает их.
Аноним 20/06/24 Чтв 10:48:15 3197468 81
>>3197380
keyword, result, tmp = "huy", [], []
with open('my_file.txt') as f:
....for line in f:
........if keyword in line:
............tmp.append(line)
............if len(tmp) == 3:
................result.append(tmp.copy())
................tmp.clear()
....if tmp:
........result.append(tmp.copy())
print(result)
Аноним 20/06/24 Чтв 11:43:52 3197555 82
>>3197468
ну вот я так и делаю. Только у меня 3 условия if keyword in line, потому что у меня 3 варианта ключевых слов. В принципе, поскольку порядок строк не меняется, я в теории могу потом по полученному массиву проходится каждые 3 элемента и получать свои 3 строки и разбивать их на объекты
Но что если какая то строка проебется или еще че

>>3197398
>почему читаем
Ну мне же нужны только свежие строки. Я не хочу читать весь файл из 110к строк или больше. Ну верней хочу, но этот функционал будет позже и в ручном режиме. Сейчас мне надо реализовать автоматическое чтение каждую секунду на предмет новых строк (конечно я не читаю каждый раз, я проверяю размер сперва)
Аноним 20/06/24 Чтв 11:54:01 3197567 83
>>3197555
>Только у меня 3 условия if keyword in line, потому что у меня 3 варианта ключевых слов.

keywords = ("huy", "pizda", "djigurda")
if any(kw in line for kw in keywords):
....print('this')
Аноним 20/06/24 Чтв 12:12:07 3197595 84
>>3197567
Это понятно. Ну в общем как я понял, ответ заключается в том, что лучше сперва фильтровать строки в массив, а уже потом работать с этим массивом, а не пихать все в массив или наоборот сразу обрабатывать строки при парсе файла

А то у меня щас как у тебя в прошлом посте, только в условиях сразу разделяются строки на нужную инфу и присваиваются переменным временного объекта, после чего при наличии всех переменных создается объект класса и добавляется в итоговый массив. И мне кажется это не надежно
Аноним 20/06/24 Чтв 12:19:02 3197608 85
>>3197595
Чел это всё индивидуально. Главное помни что у тебя файл открыт всё это время не пихай туда ничего что не касается этого файла и извлечения информации из него. Нашлось три строки делай break файл сам закроется и уже дальше продолжай.
Аноним 20/06/24 Чтв 12:57:49 3197669 86
>>3196624
Супер при множественном наследовании идет по цепочке MRO.
Аноним 20/06/24 Чтв 13:06:16 3197698 87
>>3197555
>Ну мне же нужны только свежие строки.

Тогда запоминай на какой строке остановился и при следующем чтении читай с того места.

def read_file(file_path, start_position=0):
....keywords = ("huy", "pizda", "djigurda")
....result, tmp, last_position = [], [], 0
....with open(file_path, 'r') as f:
........f.seek(start_position)
........line = f.readline()
........while line:
............if any(kw in line for kw in keywords):
................tmp.append(line)
................if len(tmp) == 3:
....................result.append(tmp.copy())
....................tmp.clear()
............last_position = f.tell()
............line = f.readline()
....if tmp:
........result.append(tmp.copy())
....print(result, sep="\n")
....return result, last_position

file_path=r"C:\Users\Karasik\Desktop\111.txt"
result, pos = read_file(file_path)
input("\n добавь в файл строку с ключевым словом и нажми клавишу")
read_file(file_path, start_position = pos)
Аноним 20/06/24 Чтв 14:36:10 3197842 88
>>3197608
Не не, я закрываю файл в функции чтения, когда получаю 50кб последних строк, только потом передаю их в парсинг целиком как есть. Если длина файла не меняется, то и чтение не происходит. Но тут я кстати не уверен, насколько надежно это работает

>>3197698
>запоминай на какой строке остановился
Да, этот вариант я тоже рассматривал. Но тут же получается, что при каждом запуске будет 1 раз читаться весь файл. В принципе, наверно это не проблема. Но в чем преимущество от чтения с конца заданного кол-ва байт?

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

Типа будет же функция, парсящая весь файл и собирающая вообще все строки в файл проги для подсчета и хранения статистики по запросу (нажатию кнопки). И логично, что при поиске новых строк для текущих функций проги мне надо будет добавлять их в этот файл на лету наверно тоже. Не делать же мне при каждом запуске проги сверку статистики в файле проги с файлом в котором я ее собираю. Или делать?
Аноним 20/06/24 Чтв 15:14:31 3197909 89
>>3197842
Когда ты читаешь файл с определенной точки, ты не читаешь байты которые были до этой точки. Записывай дату изменения своего файла чтобы знать менялся он или нет. записывай положение курсора чтобы читать только новые байты.
Аноним 20/06/24 Чтв 15:30:55 3197935 90
>>3197909
Это я понимаю. Но в таком случае, мне же нужно будет сохранять готовые данные в постоянный массив (между тиками чека файла) и убирать оттуда устаревшие? В принципе, получается на этом этапе устаревшие данные можно сохранять в свой файл для статистики. Звучит логично

Потому что щас получается у меня все просто срабатывает заново каждые 0.5сек (кроме чтения, если длина файла та же)

>Записывай дату изменения
Из метаданных? Это не работает, я пробовал. По всей видимости файл остается открыт владельцем какое то время после записи
Аноним 20/06/24 Чтв 16:28:42 3198062 91
>>3197935
Может, стоит проверять контрольную сумму файла чтобы отслеживать факт его изменения?

мимо нешарящий в погроме, где-то слышал про такую штуку, как контрольная сумма
Аноним 20/06/24 Чтв 17:51:43 3198219 92
>>3198062
Ужывай функцыю hashlib.md5()
Аноним 20/06/24 Чтв 18:04:43 3198236 93
Аноним 20/06/24 Чтв 20:29:57 3198467 94
>>3198236
from hashlib import md5

...
kantrolnaja_suma = md5(binarny_fajł)
Аноним 20/06/24 Чтв 20:37:46 3198476 95
Аноним 20/06/24 Чтв 21:44:49 3198529 96
>>3198467
>>3198476
Если ты прочитал файл и запомнил положение указателя tell(), а потом снова открыл файл и после этого положения появились ещё байты, то очевидно что файл дописали. Нет блядь хочу каждый раз читать 10мб файл целиком и высирать хэш.
Вот кто тупее мовный клоун или тот кто его слушает?
Аноним 20/06/24 Чтв 21:48:21 3198535 97
>>3198529
Ужывай функцыю hashlib.md5()
Аноним 20/06/24 Чтв 22:55:29 3198608 98
>>3198529
А як у файле змянілі некалькі байтаў? Пацерлі і дапісалі столькі ж новых? Прапанаваны табой мэтад не ўлічвае гэты варунак. Яго можна ўжыць у якасці аптымізацыі перад выклікам md().
Аноним 20/06/24 Чтв 23:03:54 3198613 99
Насколько продолжительный должен быть опыт питонирования, чтобы использовать следующую букву в письменной речи?

> ў
Аноним 22/06/24 Суб 13:43:53 3200132 100
Запускаю из питона js-код вот так:
context = execjs.compile(combined_code)
Собственно более простой у меня так и работал. Но есть те в которых есть объект window, естественно из браузера запущенный через хтмл всё работает. А как сделать чтоб всё это запускалось из питона.

Понятно есть жуткие костыли в виде селениума. Но можно без этого может как-то адаптировать код? Я хз.
Аноним 22/06/24 Суб 18:00:08 3200523 101
>>3198529

А как в файле изменили несколько байтов? Потерли и дописали столько же новых? Предложенный тобой метод не учитывает это условие. Его можно применить в качестве оптимизации перед вызовом md()
Аноним 23/06/24 Вск 01:58:25 3201039 102
>>3200523
Анон которому это надо писал выше, что сейчас читает последние 50 байт файла и вообще, похоже что у него в файл только дописывают, непонятно откуда набижали желающие каждый раз весь файл целиком читать чтобы хэш считать. Хэш считать это вообще самый последний варик, если ни каких других не осталось. Все софтины которые я видел как могут изьябываются чтобы полностью файл не прочитывать, а то это же пиздец. Представляю анон наслушается советчиков и у него скрипт будет каждую секунду 10мб файл перечитывать. который просто дописывается.
Аноним 24/06/24 Пнд 07:36:00 3201858 103
Чем больше изучаю питон - тем больше проигрываю в голос с этого недоязыка.
По пунктам.
1. ООП нормального нет.
2. Приватных методов и аттрибутов нет, есть какая-то нелепая хуета с запеканием имен.
3. Скорость говно говна
4. Зачем-то сделали возможность добавлять на ходу свойства и методу экземплярам класса. Результат - дичайший жор памяти. Если хочешь нормально - юзай __slots__. Вопрос - а какого хуя сразу не сделали __slots__ изкаропки? А хуй его знает.
5. Какие-то невнятные рывки в сторону ФП с костылями.
Аноним 24/06/24 Пнд 09:00:13 3201897 104
>>3201858
сначала подумал ты про джаваскрипт
Аноним 25/06/24 Втр 03:56:39 3202864 105
>>3202648 →
>2. Приватных методов и аттрибутов нет, есть какая-то нелепая хуета с запеканием имен
В крестах есть приваты, но (по крайней мере по гугловому стандарту) их все равно надо префиксить всякой хуйней. Вот незадача.
Аноним 25/06/24 Втр 04:05:12 3202866 106
>>3202864
>префиксить всякой хуйней
Например?
Аноним 25/06/24 Втр 07:56:19 3202919 107
>>3201858
сунул тебе пипиську, обтекай.
Не те задачи написал. Каждый язык решает свои задачи. Если хочешь писю быстро-быстро сувать в шлюху процессор - юзай с++ или си
Аноним 26/06/24 Срд 14:16:16 3204154 108
Не нашел нейротред

Я ищу датасет для обучения простого классификатора. Планирую давать ему спектрограмму аудио и чтобы говорил пол человека.

На самом деле, все уже готово. Откопал весь код (но не модель и датасет) на собственном гите.

Никогда не искал датасеты в интернете. Вот нашел, допустим, что-то:
https://www.kaggle.com/datasets/rohansahana/gender-voice-detection

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

Так что. Там где-то написано, как эти файлы получились и я просто в глаза долблюсь? Или это общеизвестное знание?
Аноним 26/06/24 Срд 16:23:20 3204271 109
>>3204154
>ищу датасет
Ты явно даже не понимаешь что это такое. "Датасет" может быть чем угодно. Реквест "ищу датасет" читается как "ищу хз чё"

>нигде не написано, как получился csv
Ну хуй знаю открой код да посмотри или спрости в репозитории где софт взял, правда тебя там скорее всего на хуй пошлют, сопли нуфагам вытирать тотлько ИТТ любят.

>Не нашел нейротред
Попробуй следующий раз искать не жопой, на дваче отдельная доска для этого есть.
Аноним 26/06/24 Срд 16:55:37 3204312 110
>>3204271
>Ты явно даже не понимаешь что это такое. "Датасет" может быть чем угодно. Реквест "ищу датасет" читается как "ищу хз чё"
Я буквально следующим предложением уточнил.
Мой классификатор должен по аудиозаписи понимать, мужской голос или женский.

>на дваче отдельная доска для этого есть
Если ты про /ai/ то там в основном готовые юзают


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

А тебе спасибо за охуенную любовь к вытиранию соплей ньюфагам, ну прям охуенно помог.
Аноним 27/06/24 Чтв 18:21:17 3205421 111
люблю я ваш питон, всё на нём можно делать. Был бы девушкой отдался бы разработчику.
Аноним 28/06/24 Птн 13:26:37 3206252 112
140301121415.jpg 180Кб, 2000x1500
2000x1500
Проблема такая, открываю в Вижиал Студио много всякого кода из разных папок, но постоянно нужно прописывать или прямой путь к файлу или через костыль.
Потому что по умолчанию папка проекта например c:\Studio и он все результаты работы прёт туда и она же является путём по умолчанию для всякого такого
with open('image.png', 'wb') as out_file:
out_file.write(pic)


Можно как-то настроить VS чтоб если файл image.png находится рядом с кодом, то оттуда же брался и путь.

Если честно давно заебала эта тема, хочешь скрипт проверить по пути с\хуй\пизда и надо его вручную раз за разом забивать или использовать свою функцию. Если открываешь *.py двойным кликом, то естественно пути указывать не надо, а вот в VS надо. Подскажите можно как-то пофиксить?
Аноним 29/06/24 Суб 11:14:07 3206993 113
1000014584.jpg 28Кб, 821x428
821x428
>>3206252
Если у тебя есть директория проекта C:\Studio, то ты и не должен ничего снаружи открывать и ничем снаружи пользоваться. По хорошему ты должен иметь виртуальную среду на уровне своего проекта созданную через venv или poetry, чтобы все зависимости находись внутри .venv а скрипты запускаемые в этом проекте тоже были в корне проекта или в поддиректориях с файлами __init__.py
Аноним 29/06/24 Суб 15:03:38 3207165 114
Кто-нибудь работал с aiogram?
Аноним 29/06/24 Суб 15:11:35 3207179 115
Аноним 29/06/24 Суб 21:30:56 3207612 116
>>3187471 (OP)

Посоны я слегка тупой и на питоне на досуге всякой хуnтой страдаю, самоук во все поля.

Решил вот скачиватель видосов с ютаба для Андройда на питоне запилить.
Короче суть в том что для конвертов видосов yt-dlp использует ffmpeg, который, как я понял, он не может на андройде с нихуя просто так юзануть.

Ну я поседел попердел в chatgpt, погуглил чё как, наткнулся на вот это:
https://github.com/ArqiesAr/FFmpeg-Kit-Python
Я так понял, что надо скомпилять ffmpeg под нужные архитектуры и с помощью враппера потом его запускать.
Или же не нужно и там уже на этом гите всё что нужно есть?

Ну в принципе я вообще нихуя не понял и методом рандомного тыка перепробовал всякое.
Скачал с этого гита /com/ с /android/ffmpeg-kit-android-lib/src/main/java/com/, запихнул в свою папку с сурс кодом.
Нихуя.

>from jnius import autoclass
>from jnius import

>FFMPEG = autoclass('com.sahib.pyff.ffpy')

выдаёт ошибку:

FFMPEG = autoclass('com.sahib.pyff.ffpy')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\...\Python\Python312\Lib\site-packages\jnius\reflect.py", line 209, in autoclass
c = find_javaclass(clsname)
^^^^^^^^^^^^^^^^^^^^^^^
File "jnius\\jnius_export_func.pxi", line 22, in jnius.find_javaclass
File "jnius\\jnius_utils.pxi", line 79, in jnius.check_exception
jnius.JavaException: JVM exception occurred: com/sahib/pyff/ffpy java.lang.NoClassDefFoundError


В конце описания он там пишет:
Building (Skip this part, its for myself lol)
Run android.sh at project root directory to build ffmpeg-kit and ffmpeg shared libraries.


Что (вроде) ничего самому строить не надо. Короче я вообще хз.
Что в этом сраном FFMPEG = autoclass('com.sahib.pyff.ffpy') должно находится то блеать?
.so либы, *.class джава классы? Пиздец, помогите тупому. Умоляю.
Как какать?
Аноним 29/06/24 Суб 23:45:48 3207714 117
>>3207179
Пока не вкурил корутины.
http://pastie.org/p/3zdWJUzKslXseQgD7vC0lD
Вот тут я совсем ересь делаю, или не совсем?

Что я хочу:
Управлять ботом в тг через другого бота. Хочу, чтобы бот остановился, если прочитает в файле единичку.
Для этого корутина должна остановиться.

Я беру корутину, в ней запускаю корутину с ботом, а затем бесконечно проверяю файл. Если надо - останавливаю корутину с ботом.
Проблема в том, что бот не останавливается от task.cancel(). Только от task.result().
Так можно?
Аноним 30/06/24 Вск 00:10:43 3207732 118
>>3207612
>Как какать?
Это ж Kivy.

Скачивалку он решил сделать. Ха!
Пиши лучше CRUD-ы и не выебывайся.
Из-за редкости этой штуки, нагуглить ничего нельзя.
Аноним 30/06/24 Вск 00:42:29 3207746 119
>>3207732

По сути, как я понял, надо всего-то обмазаться ффмпеговскими либами или джава классами и уметь их вызывать с питона.

Но поскольку я в гитхабе умею разве что склонировать гит и запустить setup.sh, думал может тут кто шарит и сразу своим прошаренным оком поймёт что да как там надо тыкать, чтоб нужные библиотеки высосать.
Аноним 30/06/24 Вск 08:28:40 3207827 120
>>3207714
Да можно, добавь ещё try except вокруг result()
Аноним 30/06/24 Вск 23:57:48 3208406 121
Проверка абу пидор или нет.
Аноним 01/07/24 Пнд 00:03:30 3208412 122
>>3208406
О бля отправилось. Кароче есть свежие книжки хорошие на русском? Читал Eric Matthes - Python Crash Course на ангельском, и чет чем дальше тем больше понимал что какое то туманное говно в голове образуется(остановился на 18 главе), возможно дело не в языке. Спрашиваю чтобы 600 страниц говна не читать. Пока зырю автоматизацию рутинных задач, но чет она старая, может чет новее есть. С меня тонны нефти.
Аноним 01/07/24 Пнд 09:53:51 3208591 123
>>3208412
Тебе не нужна свежая, потому что ничего значительно не изменилось с момента выхода той книги.
Аноним 01/07/24 Пнд 14:55:19 3208860 124
Аноним 02/07/24 Втр 10:32:32 3209598 125
Аноны, подскажите что именно прочитать. При запуске скрипта появляется вопрос "Ввести данные вручную(1) или автоматически(2), по умолчанию автоматически" и юзер должен ввести ответ или просто нажать enter. При любом ответе должны получится две переменные
Аноним 02/07/24 Втр 10:32:50 3209600 126
Как можно добавить в каждый элемент списка кортежей [(val1, val2, val3), (val4, val5, val6), (val7, val8, val9)] значение val10, чтобы получилось [(val10, val1, val2, val3), (val10, val4, val5, val6), (val10, val7, val8, val9)], не разбирая каждый элемент в цикле? Что-то типа zip бывает для таких случаев?
Аноним 02/07/24 Втр 13:32:18 3209763 127
>>3209600
Кортеж - неизменяемый объект, лалка.
list1= [(val1, val2, val3), (val4, val5, val6), (val7, val8, val9)]
list2 = [tuple([val10] + list(x)) for x in list1]
Аноним 02/07/24 Втр 22:19:47 3210212 128
>>3201858
>ООП нормального нет.
define нормальное ООП

> Приватных методов и аттрибутов нет
define "приватные методы и аттрибуты"

> Скорость говно говна
По сравнению с чем?

> Зачем-то сделали возможность добавлять на ходу свойства и методу экземплярам класса?
Динамическая типизация ради этого и затевалась

> Какие-то невнятные рывки в сторону ФП с костылями.
Двачую, за лямбды по рукам бьют
Аноним 02/07/24 Втр 22:24:56 3210215 129
>>3210212
>Двачую, за лямбды по рукам бьют
Кто и почему?
Аноним 02/07/24 Втр 23:30:09 3210254 130
>>3210212
>define "приватные методы и аттрибуты"
методы и аттрибуты к которым ты не можешь получить доступ снаружи класса
Аноним 04/07/24 Чтв 15:18:00 3211684 131
Делаю телеграм-бота.
Сейчас прикручиваю к нему апи.
Как мне защитить хостинг от бомбардировки запросами, если вдруг его кто-то найдет?
Ничего секретного я пока хранить не планирую, однако, как сделать так, чтобы на запросы только я получал ответ?
Аноним 05/07/24 Птн 11:24:49 3212320 132
Аноним 05/07/24 Птн 14:40:28 3212585 133
Есть некая функция которая принимается в себя объекты классов. Нужно проверить, есть ли в классе функции, которые вызывают остановку эвент лупа. Может ли пистон в такой уровень рефлексии?
Аноним 05/07/24 Птн 18:28:52 3212791 134
>>3208412
>книжки
>>3208412
>600 страниц говна
>>3208412
>(остановился на 18 главе

Нет смысла задрачивания книжек.
Достаточно туториала по базе https://www.w3schools.com/python/
Ну и по концепциям основным чтобы понимание было.


Книжки дрочить можно когда устроишься на работуа такое вообще вряд ли случится, если быть честным
Аноним 05/07/24 Птн 22:16:13 3212971 135
image.png 43Кб, 639x394
639x394
>>3212585
>есть ли в классе функции, которые вызывают остановку эвент лупа
"остановку" в смысле просто авейт?
Аноним 06/07/24 Суб 12:32:05 3213249 136
>>3212971
Молодец, Анон. Просто взял и сделал
Аноним 06/07/24 Суб 13:44:15 3213288 137
>>3212971
Нет, не то, нужно проверить есть ли в коде класса или функциях/методах, которые он вызывает asyncio.get_event_loop().stop() в любом виде
Аноним 06/07/24 Суб 19:57:30 3213674 138
image.png 145Кб, 647x1288
647x1288
>>3213288
Как-то так наверняка можно
Аноним 08/07/24 Пнд 17:12:03 3215381 139
image.png 1296Кб, 1500x1545
1500x1545
Заебали в вакухах писать "автоматизация на питоне". Да что это значит, блять?
Написать однострочник чтоб упаковывать в архив и перетаскивать на сетевую шару? Что?
Аноним 08/07/24 Пнд 18:21:41 3215461 140
>>3215381
>вакухах
Чел, думаешь у тебя есть шансы устроиться куда-то, если ты:
не оканчивал вузик
не олимпиадник
не имеешь коммерческого опыта по спецухе 1, желательно 2 года

?
Аноним 08/07/24 Пнд 21:48:15 3215744 141
>>3215461
Знаю большое количество таких людей, вопросы?
Аноним 08/07/24 Пнд 21:58:24 3215751 142
WOJAK-POINTING-[...].png 148Кб, 1080x967
1080x967
>>3215744
>Знаю большое количество таких людей, вопросы?
Вопросов нет, есть сомнения.

500 - 1000 откликов на вакуху как бэ.
Аноним 08/07/24 Пнд 22:42:51 3215790 143
>>3215751
1. Один кандидат-вкатун откликается не на одну вакансию.
2. Качество как минимум половины из этой тысячи - супер хуевое.
3. Всегда можно накрутить.
Аноним 09/07/24 Втр 09:14:21 3215963 144
>>3215461
1. Оканчивал вузик.
2. Школу закончил без троек.
3. Имею коммерческий опыт от продажи пк и сборок их до построения скс-ок на виланах, линуксового админства, телефонии, виртуалок, контейнеризации, сиайсиди пайплайнов, написания ванлайнеров на баше.

Я просто спросил до какой степени копать питон чтоб этого хватило дево-псу.

Где твой бог теперь?
Аноним 09/07/24 Втр 13:00:11 3216140 145
>>3215963
>Я просто спросил до какой степени копать питон чтоб этого хватило дево-псу.
Ну если ты девопс, то очевидно же, что подразумевают под автоматизацией - написание скриптов для всех девопс-задач (разворачивание, CI/CD, инфраструктура, облака, логирование, и т. д.)
Аноним 09/07/24 Втр 14:43:07 3216207 146
Смарите, надо извлечь кое-что из xlsx файла. Строчек не так много, всего 100к, но ебейшее количество колонок.
Делаю через openpyxl, все очевидные и гуглящиеся оптимизации включены. Скорость терпимая, но на 35к в несколько раз замедляется, хотя там нет никаких отличий на вид, память не течет.
И хуй знает, как его профилировать или дебажить, как даже найти, на какой строчке начинается. Весь код внутри, сводится к:
for i, row in enumerate(sheet.iter_rows(values_only=True)):
pass
Аноним 09/07/24 Втр 15:20:10 3216256 147
>>3216140
для всего этого есть ямлики, ансибл, терраформ, там своя логика и свой синтаксис. плюс можно немного это всё прикостылить башем. Видимо, подразумевается, что костылить нужно питоном.
Аноним 09/07/24 Втр 22:25:23 3216734 148
>>3216256
>Видимо, подразумевается, что костылить нужно питоном.
Да.
Аноним 10/07/24 Срд 08:20:34 3216921 149
>>3216207
Ты строки извлекаешь целиком или проходишь каждое значение ячейки? И как открыт у тебя файл? В load_workbook указано read_only=True?
Аноним 10/07/24 Срд 08:22:46 3216923 150
Аноним 10/07/24 Срд 08:25:47 3216927 151
>>3216923
Мы вам даже не перезвоним.
Аноним 10/07/24 Срд 11:20:58 3217110 152
130713550.webp 10Кб, 630x630
630x630
>>3216927
>Мы вам даже не перезвоним.
Аноним 10/07/24 Срд 13:55:15 3217310 153
Есть готовый скрипт где-нибудь, который бы читал хэш файла с одной машины раз в 5 минут, и при его изменении копировал бы на другую машину?
Аноним 10/07/24 Срд 14:39:52 3217343 154
>>3217310
На Баше 1 строчка:
f() { cp --update src.txt dest.txt; sleep 1800; f; }; f
Аноним 10/07/24 Срд 16:04:26 3217407 155
>>3217343
Твой скрипт сегфолтнится, чел
Аноним 10/07/24 Срд 16:21:21 3217423 156
image.png 59Кб, 804x613
804x613
>>3217343
А нахуя мне Баш, если тред по Питухону то?

>>3217407
>сегфолтнится
Расшифруй.
Аноним 10/07/24 Срд 16:26:20 3217436 157
Аноним 10/07/24 Срд 17:15:16 3217491 158
>>3217407
Да вроде не должен.

>>3217423
>А нахуя мне Баш, если тред по Питухону то?
Потому что такие задачи обычно делают через баш скрипты.
Аноним 10/07/24 Срд 17:21:09 3217494 159
>>3217491
>Да вроде не должен.
>бесконечная рекурсия
Ты даже не спавн процесса делаешь, а в одном процессе стек дрочишь. Разве не?
Аноним 10/07/24 Срд 17:40:34 3217509 160
>>3217494
Да, ето так...
Но если запускать раз в несколько минут, то на несколько дней хватит. Жить можно.
Аноним 10/07/24 Срд 20:42:49 3217692 161
>>3216921
Да, целиком. Я же писал, что с оптимизациям.
Покопался там в кишках модуля и добрался до xml парсера отдельных элементов, чтобы вылавливать только нужные, но проблема где-то ещё глубже. Так что сдал как есть, пусть себе тормозит, лол. Тем более, что дальше снова разгоняется, как оказалось. Какая-то проблема с конкретным файлом.
Аноним 10/07/24 Срд 20:54:34 3217694 162
>>3217491
>Потому что такие задачи обычно делают через баш скрипты.
Мля, я приду в тред немецкого и спрошу, как будет "люблю тебя, моя любимая, любовною любовью люблю любовь любви", а мне скажут - ээ нет, чувак, обычно под любовь французский заточен, на-ка тебе на нём перевод.
Я в Пейсон тренд пришёл, нахуя ты мне Баш свой пихаешь?
Аноним 10/07/24 Срд 22:18:58 3217762 163
>>3217694
Да никто не обязан тебе отвечать так, как ты хочешь.
Мне вот пахую ваще.
Можешь спасибо сказать, что Баш, а не Повершелл.
Аноним 10/07/24 Срд 22:58:17 3217785 164
>>3217762
Так и я не обязан тебя нахуй не посылать, верно ведь?

>>3217310
Алсо, бамп.
Аноним 11/07/24 Чтв 00:47:15 3217851 165
>>3217785
Верно и справедливо.
Аноним 11/07/24 Чтв 10:35:30 3218032 166
Вопрос про Джангу. Делаю сайт про походы. У меня календарь, на котором даты походов должны быть окрашены в определённый цвет. Я создал класс Date и класс Hike, Date вторичная модель для Hike, foreign key - category. Через API получаю список дат в JS скрипте, прохожусь по ним в цикле, ячейки календаря, содержимое которых совпадает с датами, делаю активными. В чём проблема? Заказчик попросил, чтобы при наведении на активную дату появлялось всплывающее окно, попап, так называемый. В этом попапе фоном должно быть фото, которое является полем Hike. Как мне его получить в JS скрипте? Если я пишу в скрипте dates.category, то я просто получаю id похода, к которому привязана дата. Помогите пожалуйста, с меня как обычно, нихуя.
Аноним 11/07/24 Чтв 10:40:48 3218038 167
>>3218032
Быстрофикс.
Не dates.category, а dates.category. Dates - это конкретная дата, которую я получил в js скрипте, category - ключ, через который дата связана, с походом. А вот у этого похода есть поле photo, вот его мне бы получить в скрипте.
Аноним 11/07/24 Чтв 10:44:13 3218042 168
>>3218038
Блять, ну вы поняли. Не dates.category, а dates, в квадратных скобках i,category.
Аноним 11/07/24 Чтв 10:46:22 3218047 169
>>3218042
Если что, поле Hike нужно для другой страницы.
Аноним 11/07/24 Чтв 10:53:02 3218057 170
Аноним 11/07/24 Чтв 19:00:15 3218709 171
>"pyinstaller" не является внутренней или внешней командой,
В рот ебал Питухона. Версия 3.12, сегодня утром работало, сейчас - нет. Что делать то? Вин 10
Аноним 11/07/24 Чтв 19:38:25 3218753 172
>>3218709
>Что делать то? Вин 10

переходить на Линукс.
Аноним 12/07/24 Птн 01:50:44 3218940 173
>>3218753
Да говно ваш Линупс.
Аноним 12/07/24 Птн 14:37:21 3219389 174
Аноним 12/07/24 Птн 15:51:04 3219462 175
>>3187471 (OP)
Подскажите, пожалуйста. Есть множество файлов Excel, из которых нужно собрать данные в общую таблицу в другом файле. Перед тем, как брать данные, нужно обновить каждый файл Excel (там сводные таблицы). В самой программе это делается через Данные - Обновить всё. Каким образом это можно реализовать в Python, желательно с помощью библиотеки openpyxl?

Пытаюсь делать что-то типа:

wb = load_workbook(shab)
pivot_sheet = wb["Лист1"]
pivot = pivot_sheet._pivots[0]
pivot.cache.refreshOnLoad = True

Ошибок не выдается. Но программная среда зависает. Python отжирает 12 Гб памяти. В итоге ничего не происходит, приходится снимать задачу через диспетчер задач.
Аноним 12/07/24 Птн 20:57:44 3219685 176
>>3219462
Специфичная задача. Нужно искать тех у кого есть опыт с таким.
На фрилансе за 500 рублей наверное сделают.
Аноним 12/07/24 Птн 23:58:45 3219820 177
Какой есть простой способ IPC с питоном? Нужно из другой хуйни вызывать код на питоне и получать ответ от него.
Тупо запускать скрипт с аргументами каждый раз большие накладные расходы. Надо при старте запустить его и дергать при необходимости.
Аноним 13/07/24 Суб 00:51:52 3219833 178
image.png 45Кб, 1072x413
1072x413
Аноним 13/07/24 Суб 01:12:14 3219838 179
Аноним 13/07/24 Суб 01:14:39 3219839 180
>>3219462
Для выполнения этой задачи на Python можно использовать несколько библиотек, включая openpyxl и pandas. Однако, для обновления сводных таблиц в Excel, библиотека openpyxl не подойдет, так как она не поддерживает выполнение макросов или обновление сводных таблиц. Для этого нужно использовать pywin32, который позволяет управлять Excel через COM-интерфейс.

Вот общий подход к решению задачи:

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

python
Копировать код
import os
import pandas as pd
import win32com.client as win32

def update_excel_files(file_paths):
excel = win32.gencache.EnsureDispatch('Excel.Application')
for file_path in file_paths:
workbook = excel.Workbooks.Open(file_path)
workbook.RefreshAll()
excel.CalculateUntilAsyncQueriesDone() # Дождаться завершения всех вычислений
workbook.Save()
workbook.Close()
excel.Quit()

def collect_data(file_paths, output_file):
all_data = []

for file_path in file_paths:
df = pd.read_excel(file_path, sheet_name='Sheet1') # Укажите имя листа или используйте другие параметры
all_data.append(df)

combined_df = pd.concat(all_data, ignore_index=True)
combined_df.to_excel(output_file, index=False)

# Путь к файлам Excel
excel_files = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx'] # Укажите ваши файлы
output_file = 'combined_data.xlsx'

# Обновляем файлы Excel
update_excel_files(excel_files)

# Считываем данные и собираем в одну таблицу
collect_data(excel_files, output_file)
Объяснение:
Обновление файлов Excel:

Используется win32com.client для запуска Excel и открытия каждого файла.
Метод RefreshAll обновляет все связи и сводные таблицы в книге.
Метод CalculateUntilAsyncQueriesDone обеспечивает завершение всех вычислений перед сохранением.
Save сохраняет изменения, а Close закрывает файл.
В конце Quit завершает работу Excel.
Сбор данных:

С помощью pandas открываются обновленные файлы.
Данные из всех файлов объединяются с помощью pd.concat.
Объединенные данные сохраняются в новый файл Excel.
Этот подход позволяет автоматизировать процесс обновления и сбора данных из множества файлов Excel. Убедитесь, что у вас установлен pywin32 и pandas:

sh
Копировать код
pip install pywin32 pandas
Также имейте в виду, что для выполнения этого скрипта необходимо, чтобы на компьютере был установлен Microsoft Excel.
Аноним 13/07/24 Суб 01:20:23 3219842 181
>>3219833
Надо отправлять параметры и получать ответ. Сигналы вроде в одну сторону.
>>3219838
Сложна для такой задачи.

Вроде какие-то хитрые пайпы были, чтобы гонять через stdin/stdout, потом гляну, если хороших вариантов не будет.
Аноним 13/07/24 Суб 01:27:37 3219845 182
>>3219842
>Вроде какие-то хитрые пайпы были, чтобы гонять через stdin/stdout, потом гляну, если хороших вариантов не будет.

ну можно так, без всяких хитрых пайпов, просто читать из стандартного ввода и писать в стандартный вывод
Аноним 13/07/24 Суб 01:30:25 3219846 183
>>3218032
Для реализации всплывающего окна с фото похода при наведении на активную дату, вам нужно будет получить дополнительную информацию о походе вместе с датами. Вот пошаговый подход к решению этой задачи:

Изменение API для передачи дополнительной информации:
Убедитесь, что ваше API возвращает не только даты, но и дополнительную информацию о походах, к которым эти даты привязаны. Например, фото похода.

Обновление модели и сериализатора:
Обновите ваши модели и сериализаторы Django, чтобы включить эту информацию в ответ API.

Изменение JS для обработки новой информации:
Обновите ваш JavaScript код, чтобы обрабатывать полученные данные и показывать всплывающее окно с фото похода.

Шаг 1: Обновление API
Обновление сериализатора
Предположим, у вас есть сериализатор для модели Date:

python
Копировать код
from rest_framework import serializers
from .models import Date, Hike

class HikeSerializer(serializers.ModelSerializer):
class Meta:
model = Hike
fields = ['id', 'name', 'photo'] # Включите здесь нужные поля

class DateSerializer(serializers.ModelSerializer):
hike = HikeSerializer(read_only=True) # Включаем сериализатор Hike

class Meta:
model = Date
fields = ['id', 'date', 'hike'] # Включаем связанный поход
Теперь ваш сериализатор будет возвращать информацию о походе, включая фото.

Обновление представления
Теперь обновите ваше представление, чтобы использовать этот сериализатор:

python
Копировать код
from rest_framework import generics
from .models import Date
from .serializers import DateSerializer

class DateListAPIView(generics.ListAPIView):
queryset = Date.objects.all()
serializer_class = DateSerializer
Шаг 2: Обновление JavaScript
Теперь, когда ваш API возвращает дополнительную информацию, обновите ваш JavaScript код для обработки этих данных.

Пример JavaScript кода:

javascript
Копировать код
fetch('/api/dates/')
.then(response => response.json())
.then(data => {
data.forEach(item => {
let date = item.date;
let hike = item.hike;
let photo = hike.photo;

// Найти ячейку календаря по дате
let cell = document.querySelector(`[data-date="${date}"]`);
if (cell) {
cell.classList.add('active');
cell.addEventListener('mouseover', () => showPopup(cell, hike));
cell.addEventListener('mouseout', hidePopup);
}
});
});

function showPopup(cell, hike) {
let popup = document.createElement('div');
popup.classList.add('popup');
popup.innerHTML = `
<div class="popup-content">
<img src="${hike.photo}" alt="${hike.name}">
<p>${hike.name}</p>
</div>
`;
document.body.appendChild(popup);
positionPopup(cell, popup);
}

function hidePopup() {
let popup = document.querySelector('.popup');
if (popup) {
popup.remove();
}
}

function positionPopup(cell, popup) {
let rect = cell.getBoundingClientRect();
popup.style.top = `${rect.top + window.scrollY}px`;
popup.style.left = `${rect.left + window.scrollX}px`;
}
Шаг 3: CSS для всплывающего окна
Добавьте стили для вашего всплывающего окна:

css
Копировать код
.popup {
position: absolute;
background: white;
border: 1px solid #ccc;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
z-index: 1000;
}

.popup-content {
padding: 10px;
}

.popup-content img {
max-width: 100%;
height: auto;
}
Этот подход должен обеспечить, что при наведении на активную дату появится всплывающее окно с информацией о походе и фото.
Аноним 13/07/24 Суб 13:03:46 3220003 184
>>3219839
Спасибо. Как я понимаю, с пакетом Мой офис и без excel работать это не будет?
Аноним 13/07/24 Суб 14:20:24 3220029 185
64070132.jpg 430Кб, 1299x1811
1299x1811
Что скажете про книжку?
Аноним 13/07/24 Суб 15:06:03 3220070 186
>>3220029
Автор канадский соевый либераха.
Аноним 13/07/24 Суб 15:27:34 3220086 187
Аноним 13/07/24 Суб 16:18:33 3220117 188
>>3220086
Лучшая по Питону из мне известных. Через неё вкатился 3 года назад.
Аноним 14/07/24 Вск 11:13:28 3220746 189
Может, про пет-проекты поговорим? Кто что делал, что лучше писать сейчас, с чем возьмут на работу, и всё такое. Я вот сайт сделал, на джанге, но там больно уж простой бэкенд, просто обьекты из базы данных загружаются в шаблоны, и там уже обрабатываются. Поэтому сейчас сижу и думаю, чтобы ещё написать.
Аноним 14/07/24 Вск 11:14:13 3220747 190
Аноним 14/07/24 Вск 15:00:52 3221014 191
Аноним 14/07/24 Вск 16:18:24 3221150 192
Посоветуйте хостинг для сайта на джанго. Почитал отзывы, везде ругательные, не знаю, что брать.
Аноним 14/07/24 Вск 17:58:03 3221203 193
>>3221150
>не знаю, что брать.
yandex cloud
Аноним 14/07/24 Вск 19:19:39 3221247 194
>>3221150
>Почитал отзывы
База срака, ты?
Аноним 14/07/24 Вск 20:16:41 3221274 195
Аноним 14/07/24 Вск 20:23:36 3221283 196
>>3221150
Типа шаред хост как диды?
Аноним 14/07/24 Вск 21:37:47 3221355 197
>>3221203
Для джанго не подойдёт
Аноним 14/07/24 Вск 21:43:02 3221358 198
>>3221150
Попробуй beget, вроде в зашкварах не замечен
Аноним 14/07/24 Вск 22:03:08 3221368 199
>>3221358
>Попробуй beget, вроде в зашкварах не замечен
такое можно сказать про любой топ 10, таймвеб спейсвеб евробайт
Аноним 14/07/24 Вск 23:27:49 3221432 200
Аноним 15/07/24 Пнд 15:38:23 3221923 201
Можно ли сделать так, чтобы в админке джанго отображался календарь, в котором можно выбрать сразу несколько дат? Допустим, юзер заходит в админку, создаёт мероприятие, у мероприятия есть поле "даты", он нажимает на это поле, появляется календарь, в котором можно выбрать сразу все даты мероприятия. Как это сделать, хотя бы в двух словах скажите, плиз.
Аноним 15/07/24 Пнд 15:48:24 3221928 202
Хой, питоны, имею графическую софтину на kivy, работает в цеом заебись (памяти жрет скромно, процессор и видеокарту тоже щадяще жрет), но:

1. Как я понимаю, отрисовка в kivy реализована примерно как эдакий SVG, и при обновлении любого виджета обновляется вообще вся графика. Из-за этого анимации пиздец съедают видевокарту и проц, и чем больше графических инструкций, тем хуже. В простое нагрузки нет, но у меня всегда на экране есть одна анимация, в итоге все весьма хуево. Можно ли как-то изолировать отрисовку одного этого конкретно виджета, чтобы его обновление не триггерило перерисовку всех других? Он один хуй находится в статичной менюшке, его ничего не может перекрывать или типа того.

2. У меня есть в проге весьма тяжелые вычисления, которые должны крутится в реальном времени и потому не терпят никаких подвисаний программы. Чего смог упростил, где смог использовал numpy, некоторые вещи вынес в отдельный процесс, а сами вычисления крутятся на отдельном потоке (что не дает прироста производительности, но они должны крутиться независимо от потока kivy, иначе возникает дессинхронизация), и было бы заебись как-то может обойти GIL или вроде того, чтобы графический поток и логический не разделяли ресурсы одного ядра (опять ж, условная анимация или перемещение внутренних окон может нехило сожрать проц). Повесить эти вычисления на отдельный процесс задача сложная и хуевая, там вычисления связаны с БД, а с БД связаны графические виджеты (для синхронизации данных в БД и того что на экране показано), если это и возможно сделать, то очень тяжело (хотя я слышал про shared memory, может, это решение? В любом случае не хочу с IPC дрочиться, на самом деле). Че делать не знаю.
Аноним 15/07/24 Пнд 16:44:28 3221951 203
>>3221923
Наверное можно, но я скорее всего не стал бы, если в гугле похожих примеров нет.
Проще взять кастомный виджет откуда-нибудь, да хоть на жквери. И впендюрить его заместо джанговского.
Аноним 15/07/24 Пнд 18:07:51 3222012 204
Раз уж заговорили про джангу, такой вопрос. Предположим, в админке я выбираю первую дату мероприятия и последнюю. А дальше что делать? Как мне сделать, чтобы в календаре, который выводится на странице, выбрались не только первая и вторая, но и даты между ними?
Аноним 15/07/24 Пнд 18:08:33 3222014 205
>>3221951
да, наверное ты прав.
Аноним 15/07/24 Пнд 18:09:10 3222016 206
Аноним 15/07/24 Пнд 18:09:54 3222017 207
>>3221014
круто. сам писал? а что использовал? сколько времени ушло?
Аноним 15/07/24 Пнд 18:11:09 3222018 208
Аноним 15/07/24 Пнд 21:57:47 3222144 209
>>3222017
>круто. сам писал? а что использовал? сколько времени ушло?
не писяль, я как идею для плимеля скинюль.
Аноним 15/07/24 Пнд 22:36:57 3222155 210
>>3222144
спасибо) а зачем таким языком странным отвечаешь?
Аноним 16/07/24 Втр 08:12:19 3222260 211
>>3222155
Выпячивает свою глупость, потому что ему нравится это приложение, но сам он не умеет ничего писать
Аноним 16/07/24 Втр 21:35:14 3222972 212
>>3222260
> но сам он не умеет ничего писать
а ну покази што сям умеешь, или пяздя ти дуряяяяяяяяяяяяяяк!!
Аноним 19/07/24 Птн 23:44:01 3225542 213
Хой пистоны. Имею алгоритм кубического сплайна, простая числодробилка на чистом пистоне, встроенные типы используются, изначально был первый вариант, я хотел его ускорить и написал второй, но он блядь оказался раз в 8 медленее и я не понимаю почему:

1: https://pastebin.com/Ak8W3g5p
2: https://pastebin.com/raPVjreG

Почему второй настолько медленнее?

Про numpy не пишите, у меня малые наборы данных, так что он пососет даже в сравнении с чистым пистоном. Изначально он и был на numpy.
Аноним 19/07/24 Птн 23:47:08 3225543 214
>>3225542
А, я дурилка. Забейте.
Аноним 21/07/24 Вск 16:25:19 3226841 215
Пацаны, здарова.

Работаю ручным тестером, хочу освоить автотесты и пойти работать за 300к наносек, подскажите, пожалуйста, с чего начать изучение питона? Какие книжки посоветуете?

Когда-то в вузе лет 5 назад на базовом синтаксисе его освоил (типа вывести четные числа от 1 до 100. И то писал говнокодом.

Сейчас хочу с нуля освоить питон до уровня, который позволит писать автотесты (в идеале хочу понимать ООП, паттерны проектирования, киссдрайсолид и вот это вот всё).

Какая книга доходчиво может объяснить всё это с помощью питона, учитывая, что я туповатая свинота?
Аноним 21/07/24 Вск 17:30:48 3226915 216
>>3226841
на сайте питухона есть куча референсов на книги под любые нужды
Аноним 21/07/24 Вск 17:39:40 3226928 217
>>3226915
там всё на английском вроде, я этот язык знаю на уровне кэт дог хеллоу
Аноним 21/07/24 Вск 18:39:51 3227041 218
>>3226928
как ты тогда собрался вкатываться в ойти, если не можешь читать документацию даже ?
Аноним 21/07/24 Вск 19:37:04 3227115 219
>>3227041
я уже три года в куа ручником тружусь.

всё изучал с гуглом (транслитом), осваиваю супер-быстро, просто нужна инфа с простыми сравнениями, например.

документацию читать я могу, но хуево, т.к. там есть некоторые языковые приемы, которые 99.9 разрабов сами не знают и идут в гугл переводить, а значит они такие же как и я, а значит английский знать для изучения не обязательно, хз че вы все доебались с этим пунктом
Аноним 21/07/24 Вск 20:39:27 3227167 220
>>3227115
>99.9 разрабов сами не знают и идут в гугл переводить
я хуй знает где ты такое видел, В1 вполне хватает, чтобы осилить документацию.
Аноним 21/07/24 Вск 21:12:43 3227183 221
>>3227167
А какая разница, переводишь ты её сам или жмешь ПКМ->Перевести страницу на русский?

На выходе результат если будет один и тот же, зачем лишний раз переводить самостоятельно?
Аноним 22/07/24 Пнд 20:22:01 3228203 222
Есть ли у анончика список вопросов для джуниор/миддл разраба на джанге и фастапи? Пролистал, что предлагает интернет, там какой-то простецкий кал.
С меня как всегда нихуя :3
Аноним 22/07/24 Пнд 23:29:39 3228329 223
>>3228203
>фастапи
Как пробрасывать зависимости, чтобы фастапи не лез в конструктор этой зависимости?
Аноним 23/07/24 Втр 07:58:08 3228392 224
Аноним 23/07/24 Втр 12:34:26 3228589 225
Аноним 24/07/24 Срд 02:08:49 3229344 226
Аноны, если сайт обмазан дичайшими перделками, всё так переливается элементы пагинации появляются плавно и исчезают и постоянно зависают, красиво то как ммммм. С этим говном только селениму может совладать?
Аноним 24/07/24 Срд 10:36:29 3229539 227
>>3229344
>С этим говном только селениму может совладать?
недавно этой темой интересовался, и вроде как если сайт не отдает готовый хтмл, там типа надо чтобы броузер запускался и дергал кнопки
https://pptr.dev/
>Puppeteer is a Node.js library which provides a high-level API to control Chrome or Firefox over the DevTools Protocol or WebDriver BiDi. Puppeteer runs in the headless (no visible UI) by default but can be configured to run in a visible ("headful") browser.


а так селениум вроде тоже такое может, запуск headless browser
Аноним 24/07/24 Срд 15:26:20 3229898 228
>>3228329
Наверно ты имеешь ввиду мидлварь который использует сервисный слой
Аноним 24/07/24 Срд 15:34:13 3229901 229
>>3229898
Нет, я имею ввиду, как надо регистрировать зависимости, чтобы Depends() не лез в аргументы, если это функция, или инит, если это класс.
Аноним 24/07/24 Срд 17:50:07 3230013 230
Здарова, положняк такой: надо хранить адреса и соответствующие им значения. Адрес - 2 байта (нужно 2048 адресов), значение - 1 байт, надо уметь производить слияние двух таких фреймов данных (по адресам). Количество адресов динамично, имеют хаотичный порядок.

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

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

Какую структуру стоит использовать? У меня используются словари, и в целом все нормально работает, но проблемы имеются и я хочу от них избавиться.
Аноним 24/07/24 Срд 18:39:00 3230044 231
>>3229539
>>3229344
Аноны. Как определить точнейшие координаты элемента на экране внутри окна браузера? Всё время какую-то хуйню находит. Я помню лет 10 назад над этим вопросом бился так и не победил, просто распознование изображения прикрутил и забил.

Но вот прошло 10 лет, все сайты с адаптивной версткой везде подгрузки, js и анимации. Неужели это всё ещё задача не имеющая общего решения?

Может дело в том что я работал с Хромом, может в рпере или лисе координаты нормально находятся?
Аноним 24/07/24 Срд 22:00:48 3230208 232
>>3230044
>Аноны. Как определить точнейшие координаты элемента на экране внутри окна браузера?
Имею в виду в Селениуме конечно же.
Аноним 24/07/24 Срд 23:47:42 3230256 233
17218533314690.png 117Кб, 480x270
480x270
Здарово, решил посчитать свои деньги. Поэтому пошёл вкатываться в питон, чтобы написать программку. Сейчас осваиваю сам язык, а затем буду изучать библиотеки для гуи/парсинга/графиков. Так-же пока думаю о том как будет выглядеть само приложение. Надо и данные с МосБиржы подгружать для котировок, вести историю закупок активов, считать чистый и номинальный доход без вычета инфляции и ндфл, календарь дивидендов и купонов, оценивать диверсификацию портфеля и его актуальную стоимость на данный момент и.т.д. Есть какие-нибудь книжки по архитектуре самих программ? Жду ваших советов мужики.
Аноним 25/07/24 Чтв 01:03:14 3230301 234
>>3230044
Селениум поддерживает Xpath. Xpath уникально идентифицирует DOM-элемент на странице. Чем не решение?
Аноним 25/07/24 Чтв 01:04:41 3230303 235
>>3230301
>HTML-элемент на странице
Прошу прощения, я технически неграмотная скотина, тем более во фронтендерских делах.
Аноним 25/07/24 Чтв 03:27:04 3230321 236
>>3230301
Мне нужно знать координаты элемента на экране. В пикселях. Все методы селениума и js, в нем не работают и выдают левые результаты.
Аноним 25/07/24 Чтв 10:22:58 3230441 237
1000014578.mp4 1333Кб, 1078x1920, 00:00:08
1078x1920
>>3230256
Привет, кожаный


1. Изучение Python:
- "Python Crash Course" by Eric Matthes
- "Automate the Boring Stuff with Python" by Al Sweigart

2. Для GUI:
- PyQt или Tkinter - популярные библиотеки для создания графического интерфейса

3. Для парсинга:
- Requests и BeautifulSoup для работы с веб-страницами
- pandas для работы с данными

4. Для графиков:
- matplotlib или plotly для визуализации данных

5. Книги по архитектуре программ:
- "Clean Architecture" by Robert C. Martin
- "Design Patterns: Elements of Reusable Object-Oriented Software" by Gamma, Helm, Johnson, Vlissides

6. Для работы с API МосБиржи:
- Изучите официальную документацию API МосБиржи
- Используйте библиотеку requests для отправки запросов

7. Для хранения данных:
- SQLite для локального хранения данных
- pandas для работы с данными в памяти

8. Советы по разработке:
- Начните с простого прототипа и постепенно добавляйте функциональность
- Используйте объектно-ориентированный подход для структурирования кода
- Разделите логику на модули (например, модуль для работы с API, модуль для расчетов, модуль для GUI)
Аноним 27/07/24 Суб 15:23:05 3232766 238
image.png 14Кб, 437x141
437x141
image.png 12Кб, 770x100
770x100
Есть форматтер который можно сконфигурировать так, чтобы он чейнинг как на пикрил1 не превращай в пикрил2? Ruff и Black именно так и делают...
Аноним 27/07/24 Суб 20:55:59 3233149 239
Стикер 0Кб, 128x128
128x128
Аноны, подскажите какой-нибудь хостинг где можно бесплатно ПОИГРАТЬ С ПИТОНОМ. Имею в виду сервер, который мне разрешит загрузить свой код, который оттуда сможет например запросы делать и курится там автономно. Такое вообще бесплатно бывает?
Хостинги же дают всем желающим место под сайт с доменами второго-третьего уровня yousite.zapupa756547567.1gb.ru где ты можешь что угодно делать как в песочнице. А вот с питоном как? Это всё таки не сраный CMS он процессор нагружает, какую нибудь рассылку делать может. Я думаю это на бесплатных тарифах запрещено? Поясните плз за это вот всё и ссылочку. Мне нужно для обучения и экспериментов.
Аноним 28/07/24 Вск 08:42:32 3233402 240
>>3187471 (OP)
Как научиться грамотно пользоваться стандартной библиотекой? Пишу уже лет 5 на языке (но не работал, лол, сторожем работаю), до этого на сишке по приколу писал, сейчас такой проектикт нихуевый по масштабу есть. Речь про всякие itertools, collections, functools. Решаю все свои задачи в лоб, без библиотек, тупо циклы, ветвления, и этим, конечно, можно написать что угодно, но я понимаю, что те же задачи можно решить элегантнее, быстрее.

Например, с байтовыми данными я работал через int.to_bytes и from_bytes, а потом научился пользовать struct и прям круто стало. Освоил next, filter, enumerated, defaultdict, и применяю, когда уместно. Next прям нравится для поиска.
Аноним 28/07/24 Вск 13:25:14 3233587 241
>>3233402
Твой вопрос примерно звучит так: делаю 5 лет всякую фигню, пишу простые скриптики. Но хочу быть крутым программистом и писать крутой код. Вот просто хочу и всё. Что для этого нужно?
Ну учиться нужно. Опыт нужен.
Аноним 28/07/24 Вск 15:28:52 3233694 242
>>3233149
Pythonanywhere вроде до сих пор не сдох
Аноним 28/07/24 Вск 19:56:16 3234036 243
>>3233402
>Освоил next enumerated
Ты это должен был сделать в первый день изучения языка, это буилд-ин функции, самые базовые т.е.

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

>defaultdict
У словаря есть метод setdefault, который делает то же самое, но в некоторых случаях медленнее defaultdict на несколько микросекунд, что в большинстве случаев не важно.

Садись два.
Аноним 29/07/24 Пнд 11:03:29 3234390 244
Запустил multiprocessing.Process в main(), он с нуля всё приложение стартанул в своем инстансе. ОС виндоус.
Пошел смотреть пишут, что в ЮНИКС используется метод fork который с текущей точки процесс делает, а вот в виндоус spawn, который с нуля запускает всё приложение? Не расточительно ли это? Может я что-то не так понял? Может он только имена импортирует и на самом деле это не так "тяжело" как кажется?
Я знаю тут сидят мудрейшие из людей, с глубочайшим пониманием подкапота и всех вещей, не раз мне поясняли по хардкору. Поясните за это молю.

А мультипроцес мне нужен чтобы gui от логики отделять, если что.
Аноним 29/07/24 Пнд 16:57:27 3234657 245
>>3234390
Если ты не запускать новый процесс каждую минуту, то какая нафиг разница.
Аноним 29/07/24 Пнд 18:11:13 3234753 246
>>3233587
Я писал и пишу сложные большие вещи, но делаю это, как написал, хуевым способом.

>>3234036
Понял, полезного мне не скажут.
29/07/24 Пнд 18:45:32 3234776 247
>>3233402
На РАБотку устройся, там у более опытного челика будешь моментами спрашивать, а не стоит ли этот велосипед заменить на функцию A из стандартной библиотеки.
Еще очевидное решение, но ты можешь свой йоба-проект подрефачить, посмотреть и подумать, где можно упростить свои велосипеды.
Аноним 30/07/24 Втр 00:56:39 3235163 248
Имею класс, он наследуется от словаря. Чтобы его создать, приходится сначала создать словарь и передать этот словарь в конструктор моего класса. Как итог - замедление раза в 2 из-за лишнего копирования. Выглядит примерно так:
MyDict({k:v for ...})

Можно ли как-то без создания этого транзитного словаря, который создается лишь чтобы быть скопированным далее?
участок 30/07/24 Втр 01:27:25 3235172 249
аноны открыл я тут видосы по питону, начал смотреть.
вещает хрен: задача определить на каком этаже такой номер квартиры. 20 квартир на парадную, пятиэтажка.

пример он в обучалке показывает через целочисленное деление :
apart_number = 12

entrance_number = (apart_number - 1) // 20 + 1
print(entrance_number)

а потом еще 20 квартира у него находится во втором подъезде.

почему именно так? нет ли более логичного способа решить задачу?
Аноним 30/07/24 Втр 10:01:29 3235301 250
>>3235163
Не будет там никакого копирования если ты специально глубокую копию не делаешь, просто ссылка передаётся
Аноним 30/07/24 Втр 14:48:28 3235539 251
Стикер 63Кб, 500x500
500x500
>>3235163
>>3235301
Вы серьезно? Пиздец с кем в одном треде сижу.
Аноним 30/07/24 Втр 14:58:29 3235547 252
Аноним 30/07/24 Втр 16:21:46 3235610 253
Привет анон, тут помогут с вопросами по питону от самых маленьких?
result = 4 / 2
if isinstance(result, int):
Почему не работает? Функция не коллит заданный выше var.
Помогите лучше понять синтаксис пистона.
Аноним 30/07/24 Втр 16:23:42 3235612 254
>>3235610
Оператор / дает в результате число с плавающей точкой. Для целочисленого деления используется //
Аноним 30/07/24 Втр 16:27:27 3235616 255
>>3235610
Так, я кажется разобрался. Как удалить пост?
Всё работает, просто результат 4/2 в питоне - не целое число. Результат деления питон показывает как 2.0 почему-то, лол.
Аноним 30/07/24 Втр 16:28:07 3235617 256
>>3235612
>Для целочисленого деления используется //
Спасибо антоша, вот этого я ещё пока не знал.
Аноним 30/07/24 Втр 16:31:27 3235624 257
>>3235616
> Как удалить пост?
На этой борде никак.

А что ты сделать собирался?
Аноним 30/07/24 Втр 16:32:30 3235626 258
>>3235610
Так это получается не рабочий скрипт, потому что при / результат всегда будет floating point, а при // всегда будет integer.

Есть ли какой-то рабочий вариант как проверить результат деления? Типа проверять последнюю цифру результата деления, если 0 то целое число, если не 0 то не целое?
Аноним 30/07/24 Втр 16:34:16 3235628 259
>>3235624
>А что ты сделать собирался?
Ничего, я просто изучаю питон с нуля. Пробую делать практические задания чтобы лучше разбираться в синтаксисе языка.
Аноним 30/07/24 Втр 16:37:45 3235632 260
>>3235626
У float чисел есть функция is_integer. Она делает эту работу. Аккуратно! У целых чисел этой функции нет, и будет исключение.
Аноним 30/07/24 Втр 17:04:53 3235666 261
Как стоит делать - делать проверки на ошибки через if, или дать им происходить и обрабатывать дальше в except?
Аноним 30/07/24 Втр 17:18:06 3235683 262
>>3235666
Бросать ошибки наверх. Можно делать проверку в иф и бросать ошибку. Представь у тебя функция вычисляющая квадратный корень. Ты делаешь в ней проверку на неотрицательность аргумента, чтобы что? Очевидно что проверять пользоательский инпут должен код отвечающий за него, а не эта функция. Поэтому код принимающий ввод пользователя должен проверять что число неотрицательное и передавать твоей функции. А функция должна посылать исключение для отрицательного числа, чисто как контракт из бизнес логики, которая может работать только в определенных границах. Фактически приложение будет работать без исключений, но будет защита от хрупкости при рефакторинге, если кто-ибудь уберет из кода инпута проверку неотрицательности.
Аноним 30/07/24 Втр 17:18:48 3235685 263
>>3235301
Тогда схуев MyDict({...}) на четверть медленнее чем просто {...}?
Аноним 30/07/24 Втр 17:28:27 3235700 264
4365.png 1Кб, 211x40
211x40
>>3235632
Спасибо, всё работает.
Аноним 30/07/24 Втр 17:55:29 3235719 265
>>3234753
>Я писал и пишу сложные большие вещи
>Освоил next enumerated
Ебало сложных больших вещей представили?
Аноним 30/07/24 Втр 18:08:10 3235730 266
>>3235685
Человеческий фактор. Только что создал 200 миллиардов экземпляров класса с наследованием от словаря и без оного, передачей в обоих случаях конструктора словаря в аргумент. Разницы 0.1 микросекунда, ты очевидный бариста вкатун с курсов, который в душе не ебет что делает, просто повторяет шаблон с урока или с чата гпт, без понимания процесса. Таким образом ты садишься жопой на горлышко бутылки в другом месте. Кто знает может ты даже не знаешь что такое наследоваться. Попробуй перезагрузить компьютер.
Аноним 30/07/24 Втр 18:15:01 3235743 267
>>3235719
Представь, имея самые базовые конструкции можно наговнокодить хоть прошивку космического корабля.
Аноним 30/07/24 Втр 18:19:10 3235759 268
>>3235743
>Представь
Самомнение, выше гор. Мне ничего представлять не нужно, каждый первый школьник так говнякает. Говнокод называется.
Самое смешное что в тебе не капли рефлексии нет, ты свое невежество защищаешь.
Аноним 30/07/24 Втр 18:20:26 3235762 269
>>3235759
Ты это сам придумал. А я сам и назвал то, что пишу - говнокодом.
Аноним 30/07/24 Втр 18:21:03 3235764 270
>>3235762
Тогда ладно. Но знай свое место.
Аноним 30/07/24 Втр 18:22:56 3235766 271
>>3235764
Самонение выше гор.
Аноним 30/07/24 Втр 18:34:16 3235785 272
>>3235766
Ты прав. Вижу ты парень смышленый, а я зря быканул.
Аноним 31/07/24 Срд 00:42:40 3236111 273
image.png 25Кб, 1039x330
1039x330
Пукнул в тред.
Аноним 31/07/24 Срд 21:03:20 3236903 274
chrome2024.07.3[...].png 26Кб, 424x432
424x432
Посоветуйте как модифицировать класс чтобы можно было надевать сандали без носков.

Делать метод nadet_obuv_bez_noskov(obuv) или пихать ещё один параметр noski=True не очень хочется.
Аноним 31/07/24 Срд 22:22:00 3236960 275
>>3236903
if obuv != "sandali": self.__nadet_noski()
Аноним 01/08/24 Чтв 04:46:59 3237100 276
Пытаюсь вкатиться в докер.
Хочу сделать образ со своим маленьким проектом на postgres+python.
Похоже, postgres не работает. Я пока даже не понял, как прозвонить его порты. Ошибка connection to server at "127.0.0.1", port 5433 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?

Что мне засунуть в докерфайл, чтобы этого избежать?
Аноним 01/08/24 Чтв 14:35:12 3237446 277
>>3236903
На каждый тип одежды в классе прикид заводишь массив того что уже надето.
>>3237100
mac, linux, win? docker создаёт свою виртуальную сеть, внутри которого живут приложения. Для разработки можешь замапить порт 5432 на localhost флагом -p, потом сделаешь всё в compose, чтобы они в одной сети были.
Аноним 01/08/24 Чтв 18:32:30 3237569 278
>>3235743
Короче просто возьми какой-нибудь учебник по питону, не для начинающих, где все эти конструкции изложены, специфичные для питона.

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

Собственно только так.

enumerate это уж совсем какая-то база-база. next вещь сомнительная, лучше научить свои генераторы реализовывать, если ещё не умеешь (раз enumerate что-то продвинутое по твоей оценке, то легко), всякие контекстные менеджеры, и чтобы руками из создавать, и там через contextlib.contextmanager. Это пример вещей, специфичных именно для питона
Аноним 01/08/24 Чтв 19:47:54 3237637 279
>>3236903
При объявлении класса не нужно ставить скобки если он не наследует никакой другой класс.

F-строка не объявляется если не используется {}
Аноним 01/08/24 Чтв 22:04:29 3237701 280
>>3237637
>F-строка не объявляется если не используется {}
Такую хуйню за меня проверяет линтер, мне проще рефлекторно ебашить f''
Аноним 01/08/24 Чтв 22:49:49 3237730 281
Что лучше использовать для объединения однородных констант в одну, чтобы меня при этом не отхуесосили за говнокод? Например, есть описания полей в моделях, и я хочу вынести все эти описания в одну общую константу в виде пар ключ-значение.
Тупо словарь или лучше какие-то более извращенные варианты?
Аноним 01/08/24 Чтв 23:55:56 3237743 282
>>3237730
разумнее сделать какой-нибудь класс для этого, чтобы обращаться не как
consts['const_1']
а
consts.const_1

BTW, в модуле collections есть namedtuple, как раз позволяет подобный фунционал.
const_class = namedtuple('const_class', ('var1', 'var2'))
consts = const_class(var2=1000, var1='var-1')
lдальше можешь обращаться как
consts.var1
при этом плюс в том, что тут read-only, как раз получается как константы настоящие.

Минус в том, что это более тормозное решение, надо с этим аккуратнее быть.
Аноним 02/08/24 Птн 17:44:07 3238453 283
scr.jpg 155Кб, 808x429
808x429
Записался, короче, на курсы чтобы мамка мозги не ебала, пока жду. Linux устанавливать или нафиг не нужон?
Аноним 02/08/24 Птн 18:47:14 3238523 284
>>3238453
На домашний пк вместо винды. Винду удалить.
Но если нет желания, то нет смысла. Будешь с Линуксом возиться больше, чем с программированием.
Аноним 02/08/24 Птн 19:07:31 3238545 285
>>3238453
А оно тебе надо? У тебя нет никакого бэкграунда судя по вопросу про линукс и записи на курсы. Отсидишь 30 часов слушая про математику, алгоритмы и прочий кал, а в конце поймёшь, что нужно ещё 60 часов сопутствующего говна изучить, а потом ещё и ещё. Будешь вечно что-то гуглить, читать, садить зрение, спину, станешь жирным и нервным. А что по итогу? Работы нет, учить очередную нейросеть или рисовать админку на джанго за 40к оклад нахуй надо.

Быть плиточником, автослесарем, электриком, токарем, да заниматься любой рукастой работой гораздо интереснее чем питонить. Серьезно чел, посмотри на рост недвижимости, посмотри как круто красить тачки в мастерской, варить металлоконструкции, ты всегда будешь подтянутым, сильным, через пять лет ты будешь работать на себя или будешь начальником, а не червём пидором, которому будет ебать мозги тупая шалава из менеджмента на созвоне
Аноним 02/08/24 Птн 19:12:40 3238551 286
>>3238545
>рисовать админку на джанго за 40к оклад нахуй надо.
кем надо быть? Никогда не получал соротыгу. Максимум 22к на донной дно работе.
Аноним 02/08/24 Птн 19:37:45 3238578 287
Аноним 02/08/24 Птн 23:41:14 3238865 288
Допустим у меня есть миллион объектов размером +- 1кб, которые мне нужно постоянно хранить в памяти (или же восстанавливать из базы данных, если вдруг исчезнут.
При этом они структурированы по id пользователей от 1 до 100к и по id файла от 1 до 100 (или же допустим что это неупорядоченные интовые переменные).
Как мне лучше все это хранить?
На вскидку приходят:
Словарь со словорями с объектами
Таблица связей user_id - file_id так как у нас типичная связь многое ко многим.
Что из этого лучше?
Аноним 02/08/24 Птн 23:42:48 3238867 289
>>3238865
>При этом они структурированы по id пользователей от 1 до 100к и по id файла от 1 до 100 (или же допустим что это неупорядоченные интовые переменные).
У 1 пользователя может быть до ста файлов и у одного файла может быть до 100к пользователей
Аноним 03/08/24 Суб 22:19:26 3239792 290
>>3238865
>Что из этого лучше?
Миллион это мало. Словарь. В чем вообще проблема. сидишь с линейкой, если память позволяет - словарь. если память не позволяет - бд, но с бд можно очень легко обосраться и даже не понять. Так что если ты нуб - сиди на словаре до упора. пока память есть.
Аноним 04/08/24 Вск 11:58:44 3240043 291
Когда и где использовать weakref? Делаю модуль событий, чтоб связывать объекты БД с их графическим отображением, типа, поменяли title у объекта в БД - и сразу же поменялись данные в виджете. Вот только приходится бинды все руками самому потом удалять (если удалять виджет, например), я правильно понимаю, что именно тут мне может помочь weakref? Типа, не останется ссылок на объект, и бинды CPython сам подчистит. Или не?
Аноним 04/08/24 Вск 12:01:42 3240050 292
>>3240043
Проблемы то в целом нет самому unbind дергать, но я однажды могу просто забыть, будет утечка, не круто. Потом хрен найду.
Аноним 04/08/24 Вск 15:23:10 3240215 293
>>3221928
Короче, вторую проблему решил рефакторингом и переписыванием всякой тяжелой ебанины на Cython. Но че с этим делать:
> 1. Как я понимаю, отрисовка в kivy реализована примерно как эдакий SVG, и при обновлении любого виджета обновляется вообще вся графика. Из-за этого анимации пиздец съедают видевокарту и проц, и чем больше графических инструкций, тем хуже. В простое нагрузки нет, но у меня всегда на экране есть одна анимация, в итоге все весьма хуево. Можно ли как-то изолировать отрисовку одного этого конкретно виджета, чтобы его обновление не триггерило перерисовку всех других? Он один хуй находится в статичной менюшке, его ничего не может перекрывать или типа того.
Ваще хуй знает. И нагуглить не получается никак. Тут разумисты сидят, может все же подскажут. OpenGL там как-то дергать или че...

Еще другой прикол.
У меня есть цветовая схема в программе и возможность ее настройки прям в режиме реального времени. Это охуенно удобно для разработки, цвета подбирать, да и красноглазым понравится. Все хорошо, кроме того, что если я меняю, например, цвет текста у Label, то какого-то хуя он меняется и у Button, хотя в цветовой схеме они имеют различные значения, ссылаются на разные ColorProperty. Связано это с тем, что Button наследуется от Label. Если поменяю цвет Button, то цвет Label останется неизменным, но поменяются и все наследники Button, хотя параметр color ссылается на другой ColorProperty. Он бинды не сбрасывает при изменении параметра color или че? Срань какая-то.
Аноним 04/08/24 Вск 21:24:19 3240768 294
>>3240215
>Ваще хуй знает. И нагуглить не получается никак. Тут разумисты сидят, может все же подскажут. OpenGL там как-то дергать или че...
Итак, решение было нащупано и найдено. Внезапно. Если кому еще это надо:

У класса Window есть render_context. Нужно будет переписать у App функцию _run_prepare, добавив туда добавление нового контекста и canvas для этого контекста, а так же переписать ему функции update_viewport и on_draw, и новую - on_draw2 (для нового контекста). Сделать это надо перед добавлением root виджета. Выглядит это примерно так: https://pastebin.com/jJFdXJgC

Дальше, в виджете, который вам надо отрисовать изолировано, используйте это во время инициализации:
self.parent.canvas.remove(self.canvas)
Window.canvas2.add(self.canvas)

Как видите, виджет остается в Layout, в котором и находился - значит, он будет как и прежде на своем месте, изменение размеров или перемещение - это все будет работать, как и прежде. Просто рисоваться он будет изолировано.

И это для отрисовки (нужно дергать руками - сделайте бинды на то, что у вас меняется в анимации или еще где, и вызывайте):
Window.on_draw2()
Window.dispatch("on_flip")

Так отрисуется только то, что находится в этом втором canvas.

Думаю, можно это масштабировать, сделав список контекстов или словарь Widget: RenderContext у класса Window.

Что будет, если удалить этот виджет? Ничего хорошего. Если у вас возможны ситуации, при которых он удаляется, то переназначьте у Window так же и класс remove_widget.
Аноним 04/08/24 Вск 21:45:04 3240778 295
>>3240768
Возможно, кстати, можно создать контекст и вне класса окна. Но тут хз.

А еще не знаю, насколько решение переносимо. Запускал только на винде. Седьмой.
Аноним 05/08/24 Пнд 01:32:12 3240853 296
>>3240215
>>3240768
Ничего не понял. Разве нельзя тот отдельный элемент просто наследовать от другого экземпляра Window, чтобы был просто другой инст.
Аноним 05/08/24 Пнд 02:09:12 3240861 297
>>3240853
Любой объект, используемый в ui, должен быть наследован от Widget, так нельзя, как ты пишешь. Да и окно это, ну, окно.

У меня там ошибка кстати. Еще надо idle у EventDispatcher переписать, а то рассинхрон будет с обновлением графики.
Аноним 05/08/24 Пнд 13:25:38 3241106 298
Аноны, как вы свои программы передаете друзьям, коллегам, однокашникам и прочей живности, которая не тыжпрограммист.
Я раньше использовал pyinstaller но он в режиме одного файла блокируется защитником виндуса, да и этот "один файл" на самом деле просто самораспаковывающийся архив, который засирает временные файлы и требует время на распаковку каждый раз во время запуска. 10 раз программу заспустил и у тебя temp 1 гигобайт весит. Надо в скрипт добавлять функцию которая поддитрает. В общем хуйня какая-то, а кучу файлов передавать некрасиво.
Какие ещё есть популярные решения и такие же одноклеточные как pyinstaller - одну строчку вбил и готово.
Аноним 05/08/24 Пнд 13:31:51 3241110 299
>>3241106
> Аноны, как вы свои программы передаете друзьям, коллегам, однокашникам и прочей живности,
Браузером
Аноним 05/08/24 Пнд 15:42:36 3241177 300
>>3241106
>10 раз программу заспустил и у тебя temp 1 гигобайт весит
Не замечал за ним такого. Алсо, пусть просто накатят python, епт, там установка в одну кнопку.
Аноним 05/08/24 Пнд 15:53:52 3241193 301
>>3241177
>пусть просто накатят python
Чеееееел. В 90% случаев никто этого делать не будет. А если начнут, то заебут "я тут нажала и оно перестало работать".

>Не замечал за ним такого.
Плохо смотрел. Когда пайинсталер запаковывает в 1 файл программу, при её запуске в temp распаковывается архив примерно в 2-3 раза больше по размеру. Если например у тебя в программе cv2 и pyautogui используются то такая программа будет весить 60 метров и при каждом запуске будет высирать временных файлов на 180 мб.

Причем при каждом запуске новая папка высирается. а старая не удаляется сама.
Аноним 05/08/24 Пнд 15:56:17 3241195 302
>>3241193
Я бы точно заметил это со своим фимозным диском на 256гб.
Аноним 05/08/24 Пнд 16:08:40 3241211 303
>>3241195
Но ведь ты и не заметил. Или просто такие скрипты делал которые не требовали запаковывать зависимостей хотя бы на 60 мб.
Аноним 05/08/24 Пнд 16:10:56 3241215 304
>>3241211
60 точно было от numpy, scipy, kivy, еще до кучи мелочевки. От numpy и scipy я правда отказался и теперь exe по 30. Ну я просмотрел пути сейчас и нет там в temp ничего от pyinstaller.
Аноним 05/08/24 Пнд 16:22:25 3241228 305
>>3241215
Чел. Если у тебя пайинсталер запаковывает в 1 файл, это просто архив который каждый раз распаковывается во временные файлы в директорию начинающуюся с _mei. Если не знаешь где у тебя временные файлы добавь print(sys._MEIPASS) Эта переменная появляется после запаковки пайинсталера в режиме 1 файл.
Аноним 05/08/24 Пнд 16:32:35 3241239 306
>>3241228
Запаковал, запустил, смотрю папку. У меня он удаляет их сам, они не остаются. Python 3.8.7, windows 7, pyinstaller 5.6.2
Аноним 05/08/24 Пнд 16:47:26 3241249 307
>>3241239
>windows 7
Вижу что вы человек культуры.

У меня была старая версия pyinstaller,обновился, кстати последняя 5.13 видимо в этом всё дело было. Впрочем это так то и не было особой проблемой - удалял файлы из скрипта. Да и то что при каждом запуске 180 метров распаковывается это в любом случае неудобно.
Аноним 05/08/24 Пнд 16:51:19 3241251 308
>>3241249
У меня на новых версиях pyinstaller не собирается kivy, ну или это из-за multiprocessing, не стал особо разбираться, остался на старой просто.

> Вижу что вы человек культуры.
У меня фимозное железо, о чем я выше и упомянул.
Аноним 05/08/24 Пнд 17:01:00 3241258 309
>>3241251
У меня на виртуальной машине с 2 гигами и 1 ядром вин10 стоит и вроде бы даже нормально работает.
Аноним 05/08/24 Пнд 17:04:27 3241262 310
>>3241258
Да и кстати однофайловый pyinstaller вин10 считает вирусом, а если не запоковывать в 1 файл - то нормально.
Аноним 05/08/24 Пнд 17:10:00 3241274 311
>>3241258
Ну... В любом случае мне как минимум лень перекатываться, даже если это имеет какой-то смысл помимо обновлений безопасности. Хотелось бы, наверное, новые версии пистона потрогать? Читал, что там с GIL боряться.

>>3241262
Почему так, как думаешь?
Аноним 05/08/24 Пнд 17:13:13 3241277 312
>>3241274
>Почему так, как думаешь?
Наверно потому что это самораспаковывающийся архив без цифровой подписи, хотя антивирусы на него не ругаются, но я ещё не пробовал обновленный pyinstaller может с ним такого нет (вероятность этого крайне мала)
Аноним 07/08/24 Срд 08:52:02 3242903 313
photo5469923314[...].jpg 87Кб, 1074x1074
1074x1074
После установки webdriver для selenium перестала создаваться папка venv для новых проэктов. Не знаю вот, баг или фича? Интернет молчит
Аноним 07/08/24 Срд 11:21:51 3243022 314
Сделал я значит телеграм бота.
Хочу теперь людям его показать.
Купил хостинг за 200 р/месяц.
postgres нет - ладно, переписал на mysql.
Теперь вопрос - как запустить скрипт-то?
На панели управления есть shell-клиент, там можно запустить, но как только выйдешь, все вырубится.
Допустим, я упаковал все, связанное с запуском в script.sh, но когда пытаюсь его запустить, говорят, что нет допуска.

Дополнительно. Как обеспечить, чтобы бот, в случае чего, не упал на полдня, если сервер перезагрузится, пока кто-нибудь меня не ткнет?
Мне приходит в голову разве что проверять, что bot.py запущен специальным скриптом через CRON раз в пять минут
Аноним 07/08/24 Срд 11:29:14 3243028 315
>>3243022
>Допустим, я упаковал все, связанное с запуском в script.sh, но когда пытаюсь его запустить, говорят, что нет допуска.
Так, с этим разобрался. Я раньше с линуксом много не работал, лол.
Аноним 07/08/24 Срд 13:57:50 3243142 316
Аноны, вот у меня гуи в отдельном треде от логики.
Как теперь по всем понятиям сигналы в логику посылать и чтобы пацаны не засмеяли.
Например, делаем словарь где ключ это строка, а значение это Event() (ну или другой сигнал), а потом под кнопки в гуи этот словарь подкладываем? Например вот у нас кнопочка старт туда добавляю d["вычисления поехали"].clear()
Так нормально? Просто сигналов много, а в словаре они компактно собраны и их можно удобно перекидывать по тредам.
Ну как?
Аноним 07/08/24 Срд 14:08:50 3243149 317
>>3243022
>На панели управления есть shell-клиент, там можно запустить, но как только выйдешь, все вырубится.
Тоже понял. Надо было nohup прописать
Аноним 09/08/24 Птн 08:32:14 3244363 318
image.png 2370Кб, 2560x1600
2560x1600
Расширяю так сказать кругозор, саморазвиваюсь, повышаю квалификацию на замедленном сайте.
Аноним 09/08/24 Птн 16:05:30 3244691 319
У меня есть бот. Нужно, чтобы он работал постоянно, но после загрузки на сервер обнаружил, что он вырубается раз в несколько часов. Вопрос: как обеспечить бесперебойную работу сервиса?
Обнаружил, что на линуксе существует крон. Придумал две идеи:
Раз в две минуты кроном запускать скрипт, который проверяет, что бот запущен, и если бот не запущен, то запускает (не знаю, может ли на линуксе меняться pid у процесса. Как вообще большие мальчики решают эту проблему? Мне приходит в голову только ботом раз в минуту класть в файл текущее время. тогда если в файле не текущее время, чекер, запускаемый через крон, будет знать, что надо запускать файл).
Идея 2. Кроном запускать бот раз в час на один час. Тогда отпадает необходимость что-то проверять, зато регулярно у бота будут обрываться диалоги.

Вопрос, как лучше всего обеспечить бесперебойную работу?
Аноним 09/08/24 Птн 16:08:32 3244696 320
>>3244691
А, нагуглил. Демон нужен
Аноним 09/08/24 Птн 18:29:18 3244885 321
Аноним 10/08/24 Суб 08:58:17 3245264 322
>>3244696
Когда заебешься писать сервисы для ботов, посмотри как работать с докером
Аноним 10/08/24 Суб 11:31:18 3245337 323
У меня где-то память течет, посоветуйте профилировщик. Приложение у меня многопроцессное, scalene выдает какую-то хуйню.
Аноним 10/08/24 Суб 19:38:54 3245898 324
>>3245337
может ты просто не можешь понять его вывод?
Что делает приложение?
Ты уверен, что правильно понимаешь следующие концепции:
- классический memory leak в смысле кучи в Cи.
- RSS и как с ним работает cgroups
?

Технически, у этого профайлера больше звезд https://github.com/bloomberg/memray
Аноним 10/08/24 Суб 20:02:56 3245914 325
>>3236903
Надо просто не выёбываться, а носить сандалии с носками.
Аноним 10/08/24 Суб 20:18:53 3245925 326
>>3245898
> Ты уверен, что правильно понимаешь следующие концепции:?
Забыл освободить память или забыл удалять какие-то объекты из списка - какая в целом разница, если итог одинаков?

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

За профилировщик спасибо, думаю, понадобится однажды. Мне по CPU нравится профилировщик yappi.
Аноним 10/08/24 Суб 23:53:22 3246080 327
0-ejtCHBALII.jpg 41Кб, 500x360
500x360
>>3236903
Бтв. я >>3236903-постер.
На проде проблему решили написав контекстный менеджер для "обуви".
Аноним 11/08/24 Вск 01:19:37 3246122 328
Решил поиграться с докером и docker-compose (я не тот анон, у которого постгресс не взлетел). Хотел сделать модно-молодежно, фастапи и nginx поднимаются в двух контейнерах внутри одного compose, фастапи вообще наружу не торчит, красота.

Но! Тогда получится, что в мой фастапийный репозиторий протекут конфиги nginx а нахера они там нужны. И еще, если у меня два пет-проекта хостятся на одной vpsке, и сейчас там на входе стоит nginx и по маске урла раскидывает запросы на разные порты, то как это все организовать в докере? Не ставить же мне nginx за вторым nginx где первый роутит запросы между разными сервисами, а второй чисто обслуживает конкретный сервис. Какой-то оверхед получается, не?

Как правильно это все организовать?
Аноним 11/08/24 Вск 23:01:31 3246785 329
image.png 30Кб, 979x518
979x518
Untitled.png 40Кб, 1710x770
1710x770
Flask не дружит с serveo.net? Или проблема в поддержке https?

>app.run(ssl_context='adhoc', port=8080)

>ssh -R 80:localhost:8080 serveo.net (в CMD)

чек пикрил: Serveo запрос принимает, но сама страница не грузится, хотя при заходе через localhost:8080 всё отлично работает.
Аноним 12/08/24 Пнд 00:28:30 3246829 330
Как же охуенна nuitka, пиздос. Pyinstaller буквально сосёт по всем фронтам.
Аноним 12/08/24 Пнд 06:29:54 3246861 331
>>3246829
Попытался нуиткой свой проект собрать, через полчаса выключил нахуй компиляцию на половине, побоясь для своего некроноута температур в 80 градусов с ебанутой нагрузкой. Так и не понял, какого хуя он всякие нампаи компилировал, если я их не использую.
Аноним 12/08/24 Пнд 08:30:49 3246885 332
>>3246861
Понятно, что он ищет все вхождения модулей. В фреймворке, что я использую, есть импорт numpy, но он происходит только при условии запуска на андроиде или ios. А я под винду собираю. Наверное можно как-то их сборку запретить.
Аноним 12/08/24 Пнд 16:49:17 3247367 333
>>3246829
Чем конкретно лучше?
Аноним 12/08/24 Пнд 17:14:51 3247393 334
>>3247367
1. Вес конечного файла
2. Нету ложных детектов
3. Нормально работает с NET
Аноним 12/08/24 Пнд 18:29:14 3247453 335
>>3247393
>1. Вес конечного файла
Это всё так же просто архив как и с пайинсталлером?
Аноним 12/08/24 Пнд 19:21:41 3247495 336
>>3247393
>Вес конечного файла
Там и так копейки, если всякие пандass'ы не тянуть.
Аноним 12/08/24 Пнд 19:59:27 3247521 337
>>3247393
>2. Нету ложных детектов
Погоди пока понапишут вирусни
Аноним 13/08/24 Втр 21:04:28 3248443 338
какой фреймворк сейчас в ходу у python?
что стоит учить для веб разработки
Аноним 13/08/24 Втр 22:04:13 3248500 339
Аноним 14/08/24 Срд 11:35:25 3248853 340
Пытаюсь вкатиться в программирование. Анончики , помогите с циклами. пиздец руки опускаются. На курсах обьясняют простые вещи, а домашки пиздец сложные задают.Есть может туториалы какие годные? А то во всех обучалках обычный перебор, а на практике каките-то неебейшие дроби в степенях n...
Аноним 14/08/24 Срд 15:18:03 3249078 341
>>3248853
А че там в циклах непонятного? Ты уж скажи хоть, чего именно не понимаешь.
Аноним 15/08/24 Чтв 14:52:51 3250049 342
изображение.png 4Кб, 280x95
280x95
Аноним 15/08/24 Чтв 17:12:43 3250159 343
85bd58eb7c28d38[...].jpg 92Кб, 475x775
475x775
Что думаете про mojo, братья?
Аноним 15/08/24 Чтв 20:27:58 3250306 344
Аноны, посоветуйте лучший сборник вопросов и ответов для подготовки к техсобесу. А то их тысячи, и хуй знает какой лучше.
Аноним 16/08/24 Птн 02:15:31 3250523 345
>>3250306
Лучше сборника не нашел, но тут в основном базовые вопросы.
https://github.com/yakimka/python_interview_questions

А так проходи собесики на интересующие тебя вакансии, выписывай вопросы оттуда к себе, ищи ответы на них в свободное время, и по кругу, пока не будет от зубов отскакивать.
Аноним 16/08/24 Птн 12:25:54 3250705 346
Nuitka реально хороша, мой kivy проект пакует аж в 11мб standalone. Еще б я понял, как от библиотек TIFF, WEBP, OGG, OPUS избавиться - выиграл б еще мегабайта 2. Они не идут с SDL2 по стандарту (TIFF и WEBP точно), пересобирал kivy, изменяя pyx и pix файлы, вырезая импорт библиотек звука, видео, и все равно линкуются... ох уж эта мания к снижению размеров, мде
Аноним 17/08/24 Суб 12:31:22 3251228 347
image.png 1397Кб, 750x1000
750x1000
Есть много устройств (аудиокарт).
Все их нужно по-особому конфигурировать набором команд вида:
set amixer {key} {value}

Многие {key} управляют обобщённым свойством, например громкостью или гейном микрофона.
Другие {key} уникальны для устройств и просто нужны "чтобы работало".

Но для одних устройств громкость выставляется так:
alsamixer set MasterVolume 100
А для других громкость выставляется так:
alsamixer set VMuxerDACZalupaZhopa 100

И там и там управляем общим свойством - громкостью.

Хочется публичный интерфейс который бы сам переводил и репамил эти особеости установки параметров под каждое устройство, а я бы просто делал "audiocard.set('volume=100')"

Как лучше обрабатывать и хранить конфиги, чтобы был доступен публичный интерфейс с human-readable {key}-{value}, а под капотом для каждого переводилось в device-friendly {key}-{value}?

Может либы есть под это?

Пока думаю придётся писать класс с вложенными словарями и намедтуплами.
Но вообще проблема "сделать переводчик с человеческого на драйверный" должна быть распространена.
Аноним 18/08/24 Вск 12:16:17 3251749 348
>>3187471 (OP)
Аноны, возможно ли как-то скомпилировать питоновский проект в установочный файл для Линукс (deb) или чтобы программа сразу запускалась без установки? Для винды все элементарно, а вот с GNU/Linux не знаю.
Аноним 18/08/24 Вск 14:29:16 3251859 349
>>3251749
> в установочный файл для Линукс (deb)
Можно.

>чтобы программа сразу запускалась без установки
Что ты понимаешь под установкой?
Разбросать файлы в локациям по PATH? Создать ярлык?

Зависит от того, что нужно, и где нужно. Какой Линукс, какое окружение и т.д.
Аноним 18/08/24 Вск 14:59:25 3251892 350
Аноны, поделитесь мудростью.
Вот есть у нас в приложении некие пути, которые всегда зависят от того, откуда запускается приложение. И уже на основе этого базового пути подставляем относительные пути для файлов приложения.
Например приложение запускается из D:\my_app\run.exe
Это у нас базовый путь, потом от него делаем относительные пути.
D:\my_app + \images\pic.jpg
D:\my_app + \config\settings.ini
D:\my_app + \output\log.txt

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

Т.е. нужно:
1) сначала получить базовый путь D:\my_app
2) потом собрать все пути какие есть в приложении
3) нужно чтобы этот объект с собранными путями был виден где угодно, передавать как аргумент и таскать везде объект с путями слишком некрасиво.

Какая питоническая мировая практика коммерческой разработки на лучших галерах по этому поводу?
Аноним 18/08/24 Вск 15:08:57 3251897 351
>>3251892
В корневой папке сделать BASE_DIR = pathlib.Path(__file__).resolve().parent
затем просто
import BASE_DIR
my_path = BASE_DIR / pisechki.txt
Аноним 18/08/24 Вск 15:23:53 3251904 352
>>3251897
А как быть если мне надо в ручную указать особый base_dir, который может отличаться в зависимости от разной среды и прочего. Т.е. мне нужен объект куда я передам base_dir, он там сделает все пути и уже оттуда я буду пути дергать.
Аноним 18/08/24 Вск 15:38:52 3251913 353
>>3251904
Ну т.е. запускаю приложение оно в main смотрит где находится получает base_dir и ещё некоторые переменные и на основании их делает пути. И все пути должны быть в одном месте. Т.е. если у меня путь к картинке в 10 местах неудобно потом его переделывать.
Я вот думал класс сделать для путей, но боюсь изобрести велосипед.
Аноним 18/08/24 Вск 19:21:20 3252071 354
image.png 478Кб, 1356x723
1356x723
Почему все советуют Лутца? Он же конченный совершенно.

Во-первых, книга на 1500 страниц -- это же пиздец. У человека пропадет любое желание что-то делать уже на половине.

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

Т.е. как учебник, он собрал все антипаттерны.
Аноним 18/08/24 Вск 20:10:23 3252080 355
>>3252071
кто все? Шапка питон-треда, которая лет 7 сколько я ее помню, в этом состоянии?

Никто не советует. Тягомотина - пиздец.
Просто он довольно подробный. Можешь держать по другой и сверяться по тем или иным вопросам.
Но за последние 10 лет появилось много чего получше.
Аноним 18/08/24 Вск 20:24:09 3252083 356
2980970095bc368[...].png 84Кб, 300x198
300x198
Интересно, что же советует мудрый Лутц по этому вопросу: >>3251913
Аноним 18/08/24 Вск 20:59:27 3252088 357
>>3252083
1) Абсолютный путь к корневой директории вычисляешь своим хитровыебаным способом с переменными
2) Путь к картинке всегда задаешь относительно корневой директории
3) Коннкатинируешь 1 + 2

все
Аноним 19/08/24 Пнд 17:14:12 3252510 358
>>3252088
Вопрос был не в том что надо сделать, а в том как это реализовать по феньшую.
Аноним 21/08/24 Срд 21:25:38 3253798 359
>>3246122
Незразумела навошта табе асобны кантэйнер з nginx. Я звычайна піхаю проксі у вобраз з прыладай, на ім жа статычны змест. Асобным кантэйнерам у мяне толькі база звестак, каб можна было абнавіць прыладу і пакінуць старыя дадзеныя. Але для малых праектаў табе непатрэбны проксі ўнутры кантэйнера. Разам з FastAPI ужывай сэрвер кшталту uvicorn у адным кантейнеры. Такім чынам будзе толькі адзіны проксі на VPS.
Аноним 21/08/24 Срд 22:03:17 3253805 360
Господа, посоветуйте как обмануть систему и по минимуму использовать JS для веб-UI. Возможен ли бэк на фласке/Фаст-апи, а фронт на FastUI, или Flet, или Jinja. Или без JS невозможно? Пет- проект, красота неважна.
Аноним 21/08/24 Срд 22:07:12 3253807 361
Аноним 22/08/24 Чтв 01:54:23 3253853 362
>>3253805
Советую смириться и затерпеть джаваскрипт. Тебе же это как разрабу в плюс будет, потому что познакомишься с другим ЯП, немного иной концепцией программирования, будешь лучше понимать других разрабов.
Мне на проекте сказали, что фронта у нас нихуя нету и в ближайшие месяцы не появится, поэтому сиди, разбирайся с реактом, потом сделаешь вот эту, эту и эту хуйню. Ну я с основами разобрался, ознакомился с концепцией хуков, чувствую себя лучше. До этого там же на jQuery писал, тоже полезный опыт.
Так вот, имхо, полезнее зажав нос разобраться в классическом фронтенд фреймворке, чем вникать в какую-то мертворожденную залупу, которая никогда не достигнет даже минимальной популярности, и в итоге сдохнет. Знакомый флаттер-разраб сейчас страдает потому что нихуя вакансий нету.
Аноним 22/08/24 Чтв 06:06:30 3253871 363
Аноним 24/08/24 Суб 15:57:19 3255419 364
image.png 13Кб, 250x436
250x436
Это уже слишком?
Аноним 24/08/24 Суб 18:27:54 3255631 365
Сап, аноны
Я джавист с 3 года опыта работа в индустрии (IT отдел банка), но меня дико заебал бездушный энерпрайз. Вот думаю вкатиться в машинное обучение/искусственный интеллект. Как я понял, пайтон в этой области это go to.
Что посоветуете почитать, чтобы можно было быстро выучить минимально необходимый технический стек: базовый пайтон + основы машинного обучения, фреймворки и т.д. В сети очень много академической литературы, не хочу с этим заморачиваться.
Аноним 24/08/24 Суб 20:03:42 3255755 366
>>3255631
https://roadmap.sh/ai-data-scientist
От себя посоветую на каггле базовые курсы пройти по пандасу и рисованию графиков, они прям хороши, учат делать все в python-way.

мимо готовился вкатиться в ДС, но пошел пилить бэкенд раньше чем нашел работу в ДС
Аноним 24/08/24 Суб 22:08:43 3255835 367
>>3255755
Спасиб.
Блин, но вот многовато придется учить.
Мне уже 27 лет даже как-то стремно пытаться перекатиться в совсем другую область. С другой стороны, я одинокий инцел и свободного времени много.
В любом случае, спасибо за ссылку, это то, что я хотел.
Аноним 25/08/24 Вск 03:35:00 3255921 368
>>3255835
>Блин, но вот многовато придется учить
Оно так только выглядит. Я думал, ты по верхам попробуешь эти темы закрыть, вкатиться и дальше уже въебывать, как учил Антон Назаров.
Если у тебя дохуя свободного времени - можешь попробовать еще курс DLS от МФТИ. Бесплатный, идет в режиме учебы 2 семестра, ебашить надо, но вроде толковый. Но я бы сейчас охуел с того чтобы почти год куда-то там вкатываться без гарантий, когда я уже в колее бэкендера. Занимало бы это не год, а, хз, 3 месяца, я бы еще подумал.
Аноним 25/08/24 Вск 14:50:35 3256139 369
Помогач, начал учить, есть вопросы.
Не получается правильно посчитать сумму передаваемых аргументов.
add_item("kek", 10) почему-то считает два раза.

https://pastebin.com/sC7vJNZu
Аноним 25/08/24 Вск 17:03:37 3256173 370
>>3256139
Когда процесс заходит в функцию и делает setdefault он устанавливает 30 как значение. Далее прибавляет к 30 те же самые 30. Следующий раз когда он заходит в функцию он пытается выполнить setdefault, но т.к. значение ключа уже есть он ничего не делает и идет дальше и прибавляет к 60 ещё 20.

setdefault лучше всего подходит для изменяемых типов данных, а неизменяемые типа числа как у тебя чаще всего особо смысла нет так использовать

def add_item(b, c=1):
....if b not in a:
........a.setdefault(b, c)
....else:
........a += c
Аноним 25/08/24 Вск 17:05:51 3256174 371
>>3256173
>a += c
a b += c
Макаба тут квадратные скобки зажевала, ну ты понял.
Аноним 25/08/24 Вск 19:15:55 3256217 372
6914268596.jpg 73Кб, 700x988
700x988
Аноним 25/08/24 Вск 20:59:51 3256252 373
>>3256217
Все книги НОРМ. Книг неНОРМ не существует в природе. Любая книга проходит через издательство/переводчиков, где они решают публиковать/переводить её или нет. Потом ещё есть рецензенты, которые исправляют косяки/подсказывают. Книга проходит через десяток рук, прежде чем опубликоваться. Неужели ты думаешь, что кто-то публикуешь хуйню. Типа, зачем издательству это? Чтобы не было продаж?
Аноним 25/08/24 Вск 21:16:19 3256265 374
>>3256252
Обычно книги apress какое-то пустое говно, а manning годные

мимо
Аноним 25/08/24 Вск 21:30:14 3256271 375
>>3256173
От души, пару часов мучился.
Аноним 25/08/24 Вск 21:34:26 3256272 376
>>3256252
Я читал плохие отзывы о книгах от Packt на Амазоне.
Аноним 25/08/24 Вск 21:35:08 3256273 377
>>3256272
Добавлю, что не о всех! Судя по всему, там и годноту издают, но раз на раз не приходится.
Аноним 29/08/24 Чтв 07:13:44 3258609 378
>>3246829
Поставил нуитку скомпилировал файл и вот что заметил.
Если перехватывать исключения, например сис эксептхук, там не будет писаться строка где исключение случилось, только блок кода, например метод и _репр_ исключения.
Понятно что это из за компиляции в си, но неудобно для отладки же. Или я что-то не понял.
Аноним 30/08/24 Птн 03:12:34 3259473 379
>>3187471 (OP)
Огромное спасибо за шапку и коллекцию книг!

Есть ли в интернете подобным образом оформленные тематические сообщества? На любом языке. Гугл будет совать платные книги и курсы, реддит полагаю выпилит ссылки на книги, у SO формат вопрос-ответ.

Последнее время постоянно борюсь с желанием выкачать интересующие тематики просто на всякий случай.
Аноним 30/08/24 Птн 18:27:35 3260224 380
>>3259473
Ну и нахрена тебе эти книги нужны. По каждой библиотеке есть отличная документация. Все кратко и по делу от создателей технологии. А в книгах всегда воды много.
Аноним 30/08/24 Птн 21:32:35 3260420 381
scale1200.jpeg 73Кб, 780x429
780x429
>>3259473
>Гугл будет совать платные книги
О бомже мой! Какая наглость! Как посмели авторы требовать денег за свой труд! Какие ироды, не могут уже и бесплатно поработать, ишь ты!
Аноним 31/08/24 Суб 05:22:59 3260533 382
>>3260224
Ну там база. Фундамент. В доках к библиотекам не пишут про отступы и вызов функции из соседнего файла.
Аноним 01/09/24 Вск 00:48:21 3261241 383
>>3260533
Импорт это базовый синтаксис, про него в доках всё написано. Про стиль, как желательно делать отступы и прочее говно написано в ПЕПе и это живая тема без правил, если есть необходимость какая-то, то ты можешь вообще всё по-другому у себя в проекте организовать.
Аноним 01/09/24 Вск 10:03:40 3261327 384
>>3256252
Доброе утро, блеать!
Теперь издать книгу стоит копейки! Их даже не печатают. Сразу в электронном виде продают.
Конечно, дохуя развелось посредственных книжонок.
Аноним 01/09/24 Вск 17:59:09 3261580 385
>>3260420
>Как посмели авторы требовать денег за свой труд!
Если хотя-бы часть денег уйдет на уход за его могилой, то я и не против.
Аноним 02/09/24 Пнд 00:17:57 3261907 386
image.png 522Кб, 780x811
780x811
Аноним 03/09/24 Втр 09:32:35 3263080 387
Сап питонач, нужна помощь потому что на стакэксчейнже как решить проблему не нашёл а самостоятельно в голову решение не приходит. Необходимо в текстовом файле изменить строчку-флаг. Условно:
>kthrho = 0.2
Заменить на
>kthrho = 0.4
При этом заранее неизвестно чему может равняться этот флаг, поэтому просто поиск строчки "kthrho = 0.2" не работает. Создавать новый файл с новым флагом тоже нельзя из-за особенностей задачи.
Аноним 03/09/24 Втр 11:06:30 3263159 388
Почему питон так плох в режиме однострочников? Почему на перле можно написать огромный код и запустить perl -e "..", а python -c ".." начинает ругаться на какие-то отступы, какие могут быть отступы в однострочнике, вы совсем поехали там?
Аноним 03/09/24 Втр 11:10:18 3263163 389
Посоветуйте минимальную среду для Linux, банально замену ipython чтоб можно было функции отлаживать. Типа слева пишешь код, справа видишь в консоли результат. Какие вообще подходы? Сейчас если хочу протестить regexp или математику, то открываю ipython (но он не может в функции). А если пишу код, то пишу в vim и в соседней вкладке терминала запускаю. Что можно оптимизировать?
Аноним 03/09/24 Втр 14:25:22 3263324 390
Аноним 03/09/24 Втр 14:30:00 3263328 391
>>3263080
А в чём сложность-то? Читай файл, детекти эту твою строчку, заменяй, пиши в файл... ну или регулярка

sed -i 's/^kthrho = .*/kthrho = 0.4/' файл.txt
Аноним 03/09/24 Втр 14:33:31 3263331 392
>>3263159
Держи, на первое время должно хватить:

;;;
Аноним 03/09/24 Втр 14:34:52 3263334 393
>>3260224
В книге могут быть примеры и подводные камни. Плюс какие-то недокументированные фичи. Это если книга хорошая.
Аноним 03/09/24 Втр 14:36:27 3263336 394
>>3259473
>Последнее время постоянно борюсь с желанием выкачать интересующие тематики просто на всякий случай.
Не надо бороться, правильное желание.
Аноним 03/09/24 Втр 23:49:53 3263871 395
>>3263080
Ебать особенность, ебать задача. Пиздуй в озон работать.
Аноним 04/09/24 Срд 00:11:53 3263882 396
497926987015b3e[...].jpg 26Кб, 279x318
279x318
>>3260224
>По каждой библиотеке есть отличная документация
Бля меня всегда улыбают люди, которые при каждом чихе уповают на документацию. Типа просто читайте документацию там же всё понятно)))))

Это те же самые люди, которые свои собственные проекты не документируют никак, типа просто читайте код моего проекта там же всё понятно)))))))

Ну типа, сколько ты своих собственных проектов задокументировал?
Прям с примерами, подробно расписываешь?
Чтоооо яяяя???? Это другие должны, я никому ничего не должен!!!
Аноним 04/09/24 Срд 06:01:37 3263920 397
image.png 56Кб, 791x479
791x479
Пикрыл сработает, если нужно отправить инфу на сервер, но не получить респонс?
Аноним 04/09/24 Срд 22:37:08 3264621 398
>>3263920
Не работает, в переменная создаётся только после того, как там всё упаковалось.
Аноним 04/09/24 Срд 22:38:58 3264623 399
>>3247521
>понапишут вирусни
>на python
мощно
Аноним 06/09/24 Птн 08:29:59 3265615 400
17231616097790.jpg 495Кб, 811x811
811x811
А пыясните как тяжело давался переход на классы? Как я понимаю классы это как функция только они могут стать частью конструктора другого класса, в этом суть ООП, так? То есть если что-то масштабное без них не обойтись.

Как вообще с классами быть, в фотошопе есть стерка, а есть маски, так вот в самом начале я волевым усилием пересел на маски, ну потому как так правильнее. Может так и с классами сделать?
Аноним 06/09/24 Птн 09:17:58 3265634 401
i(19).jpg 93Кб, 1242x1080
1242x1080
>>3265615
>Как я понимаю классы это как функция только они могут стать частью конструктора другого класса
Хз. Я ООП не знаю. Мне казалось, классы - это шаблоны для функций, то есть буквально "классы функций". А то что в классе можно написать явную функцию, то это просто следствие того что можно написать обобщение. Если есть общее - то можно прийти к какому нибудь частному.
ООП это про обобщение функционально го программирования. Вот на чистом С, есть функции. И когда делаешь что-то больше hello world, можно заметить, что некоторые функции схожи некоторым принципом. То есть они работают практически одинаково, за исключением некоторых частных изменений. И само собой разумеется, возникает потребность сделать некоторый "класс" таких функций. То есть объединить все эти функции одной какой-то конструкцией, чтобы все они представляли её частный случай. Например класс "фигуры", который бы содержал способ отрисовки фигур при помощи линий. И из этого класса можно получить функции для отрисовки квадрата или треугольника. А можно получить и другой класс, например "прямоугольники" (не сложно ведь немного изменить класс так чтобы он рисовал только прямоугольники. Класс это как бы "функция функций". Полиморфизм и инкапсуляцмя по-проще. Полиморфизм, это способность делать операцию универсальной относительно типов (зависимой от типов). Например, в С, 2/4 =0, если 2 и 4 - целые. А вот если 2 и 4 - флоаты, то результат будет другой (0.5). А операция одна.
Инкапсуляция подразумевает разделение программы на "зоны видимости". То есть одна часть программы, может ничего не знать про реализацию функции max(), но использовать её. Инкапсуляция есть и в не-ООП языках, например слова static и extern в С позволяют сокрыть что-нибудь от зоны видимости файла.

>Как я понимаю классы это как функция только они могут стать частью конструктора другого класса
Нет. Полно проектов которые пишутся на С, чисто в функциональной парадигме. OpenGL, Xorg, Links2, Doom 1, ядра операционных систем. ООП - просто один из подходов. Строго говоря, писать в парадигме ООП можно и на ассемблере. Как кто-то говорил: "в начале появилось ООП, а потом программирование". То есть мыслить категориями классов и объектов, можно и на машинном коде перфокарт. Другое дело, что на ассемблере, нет встроенных способов создать функуию, не говоря уже о классах. На ассемблере есть только команды и макропроцессор, даже циклов и условий нет. Приходится и функции и стековые фреймы, и циклы изобретать самостоятельно. Чем больше таких "изобретений", тем больше код становится нечитабельным и непонятным. Вообще-то говоря, код на ассемблере в принципе нечитабельный. Это нужно привыкнуть к асм-байтоёбству, чтобы в последовательности команд, окначивающихся на jz видеть "цикл". Поэтому и существует условно ООП поддержка со стороны языка, чтобы смотреть на код и видеть ровно то, что подразумевает парадигма. Чисто для удобства.
Аноним 06/09/24 Птн 09:44:17 3265656 402
Аноним 06/09/24 Птн 10:01:57 3265677 403
>>3265656
Никак. Я безработный. А что, в чем я не прав? Можно заняться аутизмом, и сказать что функциональное программирование и ооп никак не связаны, но толку то от этого? На практике все равно связаны, точно так же как связано структурное и функциональное программирование.
Но это всё какие-то тупорылые доёбы для аутистов. Не думаю что на собеседовании на это будут обращать внимание. Тем более, я помню чела который устроился в IT, указав в ряде языков программирования html. А что никто не доебался что на html программы не написать?!
Аноним 06/09/24 Птн 10:05:36 3265678 404
>>3265677
Да это траль не обращай внимание.
Я вот вообще никакие собесы не прохожу, тупо дрочу питон в своё удовольствие. Мне как бы классы не особо нужны, функций хватало, но охота понимать и их.

>>3265615 -кун
Аноним 06/09/24 Птн 10:30:30 3265715 405
>>3265615
Если я пишу с нуля, то никаких классов. Если начинают возникать сущности с внутренним состоянием, то тогда уже да.
Аноним 06/09/24 Птн 10:31:21 3265717 406
>>3265656
> как вы собесы то проходите...
Я самозанятый, сам у себя собес по блату прошел через постель
Аноним 06/09/24 Птн 10:36:10 3265720 407
>>3265717
Так самозанятый это просто раб у охуевшего в край кабана. Самозанятость это просто ширма для серого найма. От собесов и остального корпоративного бытия не избавляет.
Аноним 06/09/24 Птн 12:30:37 3265833 408
>>3265720
Не у одного кабана (это действительно подмена трудовых отношений), а у многих. Не нравится какой-то кабан, шлешь нах его. Завтра на его месте пара других. Мелкие проектики, иногда что-то крупное.
Аноним 07/09/24 Суб 00:33:04 3266421 409
Python. Есть функция трансформации T(n: int) -> int выполняется 60 секунд (долго!). N - список значений n. Требуется вернуть список трансформированных значений N (т.е. T(n)), но только тех, где T(n)>0. Предложи решение, которое удовлетворяет следующим критериям:
1. в одну строчку
2. эффективно с точки зрения времени выполнения
3. не использует map() / filter()

Это задача для HH, плюс мне интересно, так что полного решения не прошу.
Однако подскажите кто-нибудь.
Я додумался вот до чего:
Для экономии времени в голову приходит только сделать из N множество, получить словарь, set_N set_n_item: T(set_n_item) и с помощью итератора представить ответ, обращаясь к этому словарю каждый раз.
Только нужно либо
а) создать и заполнить словарь set_N и использовать его в одной строке
либо б) использовать генератор или что-то в этом роде, чтобы set_N заполнился один раз, а затем я мог получать в итераторе значения результата
либо в) Вся эта муть с множеством ни к чему, просто внутри итератора я должен проверять, нет ли уже в итераторе нужного ключа.
Итак, подскажите пожалуйста, в какую сторону копать?
Аноним 07/09/24 Суб 01:32:54 3266455 410
>>3266421
А. Готово.
Оцените говнокод:

b = [max(l) for l in [list(row) for row in list(zip(*[(lambda n, T, N:[T if n_item == n else -1 for n_item in N])(nn,T(nn), N) for nn in set(N)]))[::-1]]][::-1]
Аноним 07/09/24 Суб 04:59:18 3266486 411
>>3266455
b = [max(r) for r in list(zip(*[(lambda n, T, N:[T if n_item == n else -1 for n_item in N ])(nn, T(nn), N) for nn in set(N)])) if max(r) > 0]
Обновление
Аноним 07/09/24 Суб 18:33:06 3266943 412
>>3187471 (OP)
Какие идешки нынче в моде и топовыми считаются? Раньше вроде какую-то конкретную в шапке советовали Дажо насо юзает, а теперь почему-то ее вырезали
Аноним 07/09/24 Суб 20:18:06 3267058 413
maxresdefault(3).jpg 101Кб, 1280x720
1280x720
>>3266943
Какие идешки!? ты охуел мальчик? открывай блокнотик и топ топ топ пальчиками. Ребёнок дауна, идешки ему подавай.
Аноним 08/09/24 Вск 00:49:29 3267241 414
image.png 31Кб, 570x400
570x400
Аноним 08/09/24 Вск 08:23:01 3267317 415
изображение.png 270Кб, 1920x1080
1920x1080
>>3187471 (OP)
как фиксить модуль установлен
Аноним 08/09/24 Вск 10:15:34 3267365 416
>>3267317
Ты запускаешь глобальный питон, а надо туториал энв
Аноним 08/09/24 Вск 15:08:35 3267556 417
>>3265615
Я раньше тоже долгое время писал не используя классы.
Это было из за того, что я был самоучкой, в классах не видел смысла тем более что весь нужный мне функционал я мог реализовать через функции, а в классах эти self cls и прочая лишняя шляпа.
Но в один прекрасный момент, по прошествии лет я осознал - вот я знаю дохуя вещей, от туда, отсюда, отовсюду, всё по верхам и как следствие не знаю ничего толком. Я понял что чтобы овладеть делом, нужен академический подход. Взялся за литературу, методично прошел с самых основ и вкатился в классы.

И я пожалел что столько времени тянул. Человек существо которое мыслит абстракциями. Классы очень помогают формализовать через код эту нашу мыслительную особенность, структурировать логику. И я считаю что именно в этом их главная суть и вообще главная цель ООП.
На старый код мне теперь больно смотреть, хочется всё переписать с классами.
Я иногда пишу как раньше, но только когда нужно быстро сделать какой-то небольшой скриптик или маленькое приложение.
Аноним 08/09/24 Вск 16:46:04 3267629 418
>>3267556
>Человек существо которое мыслит абстракциями.
Вообще если наука когда-нибудь ответит на вопрос чому людям нравится музыка, песни и в целом любая информация которая упорядочена в гармонической форме - тогда человечество приблизится к пониманию сути сознания.

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

Такой кайф когда твой код упакован в прекрасные гармоничные блоки и всё работает как часы. Это буквально как песня. Функциональное погромирование тоже хорошо но это как рэпчик, причем русский. Кому-то нравится.
Аноним 08/09/24 Вск 17:09:20 3267641 419
Решил переехать с Pycharm на Sublime text.
Есть кто пишет в редакторе кода, а не в IDE? Почему решили так поступить?
Аноним 08/09/24 Вск 17:33:26 3267676 420
>>3267641
>кто пишет в редакторе кода
В каком редакторе кода? Ты имеешь в виду в проприетарном текстовом редакторе, коим является Sublime text?
Ну я пищу в Нотепаде++.
Всё это дело привычки. Пробовал в IDE - НИУДОБНА. А в нотепаде всё настроено, по одной клавише всё собирается, запускается. Грузится всё молниеносно, никакого лишнего функционала. Синтаксис подсвечивается хорошо, навигация по функциям, по файлам. Всё есть. Плохо чтоль? Хорошо!
Наверное главное преимущество IDE в управлении окружением и в дебаге, который замораживает среду в момент исключения и можно посмотреть в памяти все переменные что в них и откуда взялось. Но менеджить окружение лично мне не нужно, дебаг очень классный но всё равно это не пересилило удобство и привычку.
Аноним 08/09/24 Вск 17:42:09 3267681 421
>>3267676
Да я вот и задумался, чтобы перейти, потому что тоже неудобно.

Тогда еще один вопрос. Сегодня над ним продолбался весь день, но так и не смог найти ответ. Я пробовал правда не в нотпад++.

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

И второй вопрос, про автокомплит и документацию по аргументам. Сейчас вроде как показывает, но не для все методов, а только тех модулей, которые непосредственно есть в проекте, а не импортируемые из вне
Аноним 08/09/24 Вск 17:53:51 3267689 422
>>3267681
Эти твои вопросы - индивидуальная настройка конкретно твоей среды.
Аноним 08/09/24 Вск 18:31:12 3267711 423
>>3267629
>чому людям нравытсо музыка
Бо яна праўдзіць твае спадзяванні, калі паўторваецца запамятаны матыў. Праз гэта вызваляецца дапамін і робіць табе прыемна. Калі клясы робяць табе прыемна, ты праграміст-наркаман.
Аноним 08/09/24 Вск 19:10:24 3267749 424
>>3267641
Перешел на Zed с VSCode. Понравилась, такой приятный редактор. VSCode почему то надоел, да и телеметрия не нравится, хотя нахрен я кому нужен.
Аноним 08/09/24 Вск 19:20:16 3267764 425
>>3267749
И как переход дался? Тяжело было выучить шорткаты? Пока для меня это боль (именно шортакты). Хотя в целом работать комфортнее
Аноним 08/09/24 Вск 19:40:44 3267788 426
>>3267764
Да я пока пару дней как юзаю. В принципе 10-ку важных шорткатов можно сказать запомнил. Сначала хотел на Vim, но это что то совсем забористое. Искал какой нибудь легковесный бесплатный редактор, поробовал Sublime, Notepad++, Geany. В одном коменте увидел рекомендацию на Zed, пересел на него. Понравился простой приятный дизайн, напомнил Atom, ну и шустрее конечно чем VSCode, Недельку-две поработать и мне кажется освоишь полностью. Хотя многих расширений из коробки как в VSCode не хватает, ну да ладно, не страшно.
Аноним 08/09/24 Вск 19:46:29 3267789 427
>>3267788
Да я задумался, потому что пишу на пайтоне, а сейчас решил ради интереса посмотреть, что там на с++. А под него как оказалось нет адекватной IDE.

У тебя проект большой? Просто у тонны кода, и в IDE все же удобнее перемещаться по проекту, если надо поправить какой-то метод, класс. Но вроде как не критично.
Аноним 08/09/24 Вск 21:20:39 3267851 428
>>3267789
я больше сетевик, у нас на серваках проги и виртуалки крутятся. Там в основном Java, XML и немного Python. Стоит обычный Notepad, на нем правим скрипты. Просто для своего рабочего проекта, мне что то захотелось что-нибудь "стильно, модно, молодежно", решил вот Zed попробовать. Для веба и скриптов пойдет, а вот как с ним в Легаси работать даже не знаю.
>что там на с++. А под него как оказалось нет адекватной IDE.
Eclipse, Clion, Visual Studio - не нравится?
Аноним 08/09/24 Вск 21:25:27 3267862 429
>>3267749
>да и телеметрия не нравится

Вместо VSCode можешь использовать VSCodium. Это то же самое, но без телеметрии и собрано не микрософтом.
Аноним 08/09/24 Вск 21:27:06 3267868 430
>>3267851
Eclipse точно нет, не понравился, когда учился на джаве еще.
Clion — платный же. Но по сути, тоже будет, что и pycharm.
Visual Studio — пробовал несколько раз, но тоже что-то постоянно в нем мешало.
Аноним 08/09/24 Вск 21:50:56 3267890 431
господа величайшие, есть кто работал с телеботом? нужна помощь с кодом, я хз к кому обратиться.
Аноним 09/09/24 Пнд 00:43:43 3267961 432
FApf.gif 490Кб, 498x391
498x391
>>3187471 (OP)
Год учил джаву, началась тряска что дажва это сложно и вообще там суровые банки. а там суровые проверки и васькам там не место. короче испугался, страх овладел мной и я решил может начать быстро учить пайтон где не суровые банки и может быть будет проще.

Я совсем долбоеб или в этом что-то есть?

В целом у меня тряска сильная, нужно делать выбор, а с этим у меня всегда траблы ибо корзинка.
Аноним 09/09/24 Пнд 02:47:21 3267994 433
>>3267961
>Я совсем долбоеб или в этом что-то есть?
Да, совсем. Бесят люди, которые наслушаются всякую хуйню, слухи в интернете, что кто-то чёто спизданул, приходят и просят их обнадёжить/подтвердить/развенчать/отговорить. А вот хуй тебе! Блять мало ли в интернете ёбанных шизиков. Я же не обязан переубеждать каждого шизоида, которому чёто мерещится. В следующий раз нахуй пишите, откуда конкретно у вас та или иная инфа. Просто "какая-то бабка нашептала" это не ответ. Если ссылаетесь на какую-то инфу, то приводите источник. Например "по данным infoq" или "по данным ютуб блогера немчинского". А так, мне вот ответили анонимные васяны с двача - иди нахуй. Кто тебе ответил, у того и спрашивай.
Аноним 09/09/24 Пнд 08:44:10 3268068 434
>>3267961
Ты совсем долбоёб, поздравляю. Скорее всего ты ничего не выучил в принципе, раз не понял, что программирование везде одинаковое
Аноним 09/09/24 Пнд 08:54:52 3268081 435
>>3267961
Чувак, вернись к Джаве. Это просто инструмент для работы. Не бойся всяких проверок и прочей хуйни. Тебя СБ вначале только проверят (если конечно пойдешь в Банк работать) и на этом все.
Аноним 09/09/24 Пнд 09:10:45 3268094 436
>>3268068
>, что программирование везде одинаковое
Разве? Я сам не эксперт. Но мне показалось что "программирований" как минимум два:
1)то где известны входные данные и по ним получаются выходные.
2)то где полный набор входных данных неизвестен.
Вот компьютерная игра: мы ведь там нажимаем на кнопки, следовательно мы в определённые фрагменты программы подаём новые данные, которые при запуске у неё не было.
Что подразумевают под "программирование везде одинаковое" я не понимаю. Разное ведь!
Аноним 09/09/24 Пнд 09:29:10 3268117 437
>>3268094
> то где полный набор входных данных неизвестен
Ну и какой набор данных в компьютерных играх не известен?
> Что подразумевают под "программирование везде одинаковое" я не понимаю. Разное ведь!
Веб макаки крудошлёпы наверное имелись в виду.

мимо
Аноним 09/09/24 Пнд 09:49:54 3268132 438
>>3268094
>Разве?
ЕСТЕСТВЕННО! Везде плюс-минус одинаково. Типы-хуипы, классы-хуясы, циклы-хуиклы. От того что возьмёшь питон или джава, от этого классы или циклы исчезнут? Цикл фор он блять и в Африке цикл фор! Конечно, в тонкостях отличия есть.

Везде один и тот же ёбанный принцип:
1) Объявить хуйню - функцию/класс/тип/объект
2) Дать ему функционал - циклы/условия/события
3) Протестировать хуйню
4) Задокументировать хуйню
5) Двигаться к следующей хуйне

Если ты допустим делаешь ёбанный сайт, он же не превратиться в спутник или марсоход?
Аноним 09/09/24 Пнд 09:52:19 3268135 439
>>3268081
>Ну и какой набор данных в компьютерных играх не известен?
Как это "какой"?! Набор действий игрока неизвестен.
Игры, как и любые другие интерактивные программы, ожидают от пользователя ввод дополнительных данных, исходя из которых они выполняют один из своих внутренних функции.
Простая игра: на ввод ей подаются данные об уровне, действия игрока, а на выходе она выдаёт "картинку", которая отражает состояние уровня.
Нажал кнопку "вверх", программа среагировала, и перевела персонажа вверх. А нажал бы "вниз" результат был бы другой. Получается что своими действиями ты задаёшь данные программе, ведь на уровне ядра есть только системный вызов read, и нет никаких "дополнительных интерактивных вызовов". Так что технических различий между "подачей данных во время выполнения" и "подачей данных в начале игры" никаких нет. Но можно заметить что это принципиально разные виды программ. Ведь во втором случае, мы получаем результат ещё даже не дождавшись окончательного ввода, а после окончательного ввода мы ничего не получим. В первом же случае наоборот, после окончательного ввода мы получим результат, а до него ничего не получим.
Аноним 09/09/24 Пнд 09:53:03 3268136 440
Аноним 09/09/24 Пнд 09:59:48 3268143 441
>>3268132
>Везде плюс-минус одинаково. Типы-хуипы, классы-хуясы, циклы-хуиклы
На ассемблере циклов нет. На С нет классов. А на Make нет.. о боже... последовательности действий. Ведь make - декларативный язык.
Вот так незадача.. Что-то не клеится.
Если уж сводить все к одному, то можно все свести к ассемблеру и последовательности команд. Вот только в тот момент когда ты напишешь на ассемблере свой "мультиплексер", для параллельных процессов, то тебе уже придётся мыслить в категориях "другого программирования".
Почему ты так задрочен на ООП. Программировать ведь можно и вовсе без понятия "последовательность действий", на декларативных языках.
Так что ты меня не смог убедить что "программирование везде одно". Звучит просто как чванство технаря, который привык гайки крутить и думает что весь мир одна большая гайка которая крутится
Аноним 09/09/24 Пнд 10:09:45 3268151 442
Аноним 09/09/24 Пнд 10:12:20 3268154 443
>>3268143
Ну и кому он нахуй нужен, этот ассемблер! Да и вообще, не пизди. В ассемблере и в makefile циклы есть! Общего смысла не меняет. Ну окей, нет классов. Есть функции. От того что ты заменил классы на функции, программирование стало более низкоуровневым, пропали какие-то абстракции, всякие там штучки-дрючки, синтаксический сахарок. Люди стали больше текста писать. Там по сути всё тоже самое и осталось.
Аноним 09/09/24 Пнд 10:12:33 3268155 444
>>3268135
> Нажал кнопку "вверх", программа среагировала
Потому что это действие известно и ожидается?
> А нажал бы "вниз" результат был бы другой
Потому что это другое известное действие, которое ожидается?

Пишешь такой бэкенд, пришёл гет запрос, программа среагировала.
Пришёл другой гет запрос, результат был бы другой.
Аноним 09/09/24 Пнд 10:33:00 3268169 445
>>3268154
>В ассемблере циклы есть!
Где? jz это не цикл, это команда. Сама по себе она цикл не создаёт. На ассемблере циклы нужно самому пердолить, возвращаясь в начало каждого цикла, вычитая значение из регистра, и потом выполнять jz. Целых три команды вообще то. Это не цикл. И даже условных конструкций нет: нужно целых два goto чтобы из реализовать.

>>3268155
>другое известное действие, которое ожидается
Ну так ты таким образом "подкидываешь" ей данные во время её действия. Игрок буквально висит на вводе и бесконечно вводит новые данные, которые меняют результат пока программа ещё не завершилась. В то время как неинтерактивная программа, просто выдаёт результат.
Хотя я так подумал, можно конечно всё то что пользователь вводит просто приплюсовать к началтным данным. Ведь наверное, игра может и сама в себя играть. Но хз, умозрительно рисуются разные концепты.
Аноним 09/09/24 Пнд 10:42:29 3268175 446
>>3268169
Выше ссылка с инструкцией loop для х86. Она сама проверяет условие.
Аноним 09/09/24 Пнд 14:53:19 3268387 447
>>3267868
Ну тогда в Zed поработай там посмотришь, зайдет или нет. Так то тебе по сути нужен блокнот и терминал. Эти все ide и редакторы кода очень схожи. Ну может VSCode - чемпион так как удобен огромным количеством расширений под каждую технологию.
Аноним 09/09/24 Пнд 18:17:30 3268609 448
>>3187471 (OP)
Привет, ребята.
Нужен совет.
Я нахожусь в Германии и у меня есть примерно 1 год, что бы найти чем я буду заниматься. (выбрать профессию). Я хочу рассмотреть программирование, т.к почти всю жизнь провел за пк и мне хотелось бы и работу свою связать с пк. Из успехов - за год я выучил B2 немецкого с нуля, думаю это тоже +- неплохой результат. То есть стремление учиться и желание есть, вроде как не совсем тупой.

В Германии я думаю пойти на Асубилдунг (это что-то между технарём и универом) - т.к мне что бы туда попасть нужно что бы работодатель меня выбрал и грубо говоря согласился меня учить, после чего со мной заключают контракт на 3 года когда я работаю рабом за примерно 1000-1200 $ 3 года.(в это время 20 % времени я буду в колледже учить базовые предметы и 80% уже работать на предприятии как и все(джуны)). Конечно, хотелось бы закончить образование посильнее, но для него нужно будет еще 2 года учиться(язык, сдавать Абитур(как у нас ЕГЭ/ЗНО), документы готовить), только что бы поступить и потом еще 4-5 лет учиться. В общем это очень тяжело приезжему без идеальных знаний языка на уровне. Поэтому выбрал пусть через техникум с зп 1200 3 года и потом после завершения учебы сразу 2500(по меркам Германии это конечно смешно, но всё же). Дальше рост вплоть до 4к с этим образованием(через в общей сложности 5 лет после начала учебы) - я думаю в мире айти это не очень большие деньги и хорошие условия, тем более для Германии, но увы.

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

Так ли это? Какие у вас вообще есть советы для новичка? В принципе, на данный момент я готов каждый день тратить примерно около 4-5 часов на программирование(потому что нужно учить ещё немецкий/английский). Возможно, кто-то из вас тоже вкатился достаточно позно и у него есть какие-то советы. (сейчас мне 27).

Пока решил изучать по книге Эрика Мэтиза на русском языке, что бы вникнуть во всё.
Что бы попасть на эту учёбу 3 годичную, т.к я иностранец, то для моего рюзему будет огромным плюсом написание каких-нибудь своих программ.

В общем то вопрос, имеет ли смысл вкатываться на 3 года за 1200 (этого будет хватать только на еду и оплату жилья) и через 5 лет расчитывать на 3-4 $. Или вы посоветуете другие варианты, возможно имеет смысл выучить немецкий до С1, устроитсья на обычную работу которая будет приносить 1500 в месяц и сасомтоельно учить программирование и через 3 года условно уже самому получив какие-то знания, пытаться устроиться на работу? Есть ли в этом смысл?
На первый взгляд, 3 летняя учёба пусть за 1200 но зато структурированная + с набором опыта выглядит достаточно неплохо. Но есть проблема, после подписания контракта в случае чего нельзя будет сменить компанию на этот период.

В общем буду рад любым вашим советам и опыту) Всем добра
Аноним 09/09/24 Пнд 18:34:57 3268629 449
>>3268609
>3 летняя учёба пусть за 1200 но зато структурированная + с набором опыта
В принципе этот вариант вполне приемлем если готов вести аскетичный образ жизни и перетерпеть эти 3 года. Так то время быстро пройдет, может и задачи будут интересные. Если хочешь связать свою жизнь с компами то можно выбрать этот вариант. Главное начни а там по-любому будут "окна" и возможности для дополнительного заработка.
Аноним 09/09/24 Пнд 23:04:12 3268762 450
Можно ли технически эксплуатировать уязвимость в зависимости, которая лежит в requirements.txt, но при этом никак не используется в коде приложения?
Нас безопасники дрочат только по очевидным проебам в пентесте, но вот задумался, стоит ли почистить старые зависимости, которые уже не используются в проектах.
Аноним 11/09/24 Срд 01:31:56 3269681 451
>>3268609
Перекатился в Германию
@
Чтобы сесть на жопу и сычевать за пекарней.

Вышел бы лучше на нормальную работу, пробзделся, немецкую траву потрогал бы.

Я бы на твоем месте реализовывал бы второй вариант. Учить ЯП в свободное от более реальных дел время и дальше. У тебя же учебная нагрузка и так большая будет, тут если только один ЯП учить - большие сомнения что ты был бы проф.пригоден через год, учитывая что ты полный нуфаг, а тебе там кроме ЯП ещё кучу всего надо делать и учить.
Аноним 11/09/24 Срд 09:15:30 3269784 452
Аноны, подскажите пожалуйста. Какие дашборды используете вместо платных Tableu и Power BI. Нашел список бесплатных альтернатив и думаю попробовать Apache Superset. У кого есть опыт работы с таким или другим опенсурсом. Поделитесь опытом. Благодарю.
Аноним 11/09/24 Срд 09:37:02 3269817 453
>>3268609
Единственное что имеет смысл делать в Дерьмании это работать, потому что там зп выше. А так это такая же блинолопатия, так что нах ты там сидишь без работы - я в душе не ебу.
Аноним 11/09/24 Срд 13:12:58 3269986 454
разрабатываю калопровод на drf + react + postgre, пока что просто в докере запускаю на manage.py runserver
как и на чём надо деплоить?
nginx + gunicorn?
и как вообще со статикой будут дела обстоять, надо ебаться или нет?
Аноним 11/09/24 Срд 15:08:37 3270076 455
>>3269817
Да оно так кажется, что выше)
Обычный чел на обычной(почти всегда, тяжелой, т.к без перфект немецкого никуда не возьмут) - работе в месяц будет получать 2000-2200 евро.
800 уйдет на квартиру в лучшем варианте, зимой 1000
На продукты - 500, что бы 3 раз в день кушать, без ресторанов и прочего
Заправить машину - 200
Оплатить интернет/телефон/какие-то расходники еще 100-120
вот и получается что ты тратишь 800кв 500еда 200машина(до работы), 120 техника = 1620. Вот и получается что получишь ты в месяц в лучшем случае 380 евро на руки, которые сможешь "потратить на себя" - при этом будешь вьебывать за эти деньги целый месяц на ишак-работе.
Деньги вроде бы не маленькие, но учитывая что ты в Германии и тут все очень дорогое - то сам понимаешь, на что их хватит(толком ни на что).

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

Без образования( моё тут не катируется - юр.фак) - всю жизнь тут будешь подай-принеси за 2000-2500(максимум)
Аноним 11/09/24 Срд 18:33:20 3270220 456
>>3270076
Я конкретно про IT. Мне знакомый который во Франции пентестером работает, говорил что если работать в IT то лучше не в рабсиие.
Аноним 12/09/24 Чтв 16:16:21 3270876 457
>>3268609
Ты бы ещё поваром захотел стать потому что ты всю жизнь ешь или электриком потому что всю жизнь используешь электричество
Аноним 12/09/24 Чтв 17:08:51 3270956 458
>>3270876
Я буквально по этой причине электриком стал. Хз че не так.
Аноним 12/09/24 Чтв 21:52:20 3271213 459
Аноним 12/09/24 Чтв 21:56:27 3271217 460
Аноним 13/09/24 Птн 15:53:04 3271863 461
Аноны если есть пиксельный кликер, его можно сделать для нескольких окон сразу что бы слал клики ? типо для каждого окна отдельно ? Ну грубо говоря я запущу 3 окошка с играми и для каждой он будет кликать по пикселям, делая эти свои снимки экрана.

Как это будет в коде выглядеть, типо вот скрип выделяет окошко нейм, а для нескольких будет просто в цикле перечисление окошек и для каждого запуск функции с кликами ?
Аноним 13/09/24 Птн 19:20:18 3272080 462
>>3271863
Всё можно. Только клики обычно это высокоуровневые сигналы апи, а у приложений бывает свое поведение, например приложение если не на переднем плане может не принимать клики по своей логике.

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

>в цикле
Лучше конечно сделать потоки или запускать каждый клик в субпроцессе, тогда они не будут друг друга тормозить. А если ты в одном цикле запустишь, то пока одно окошко будет обрабатываться другие его будут ждать.
Аноним 14/09/24 Суб 15:36:53 3272783 463
Кто знает по бесплатным дедикам, там вообще выход в интернет есть?
На pythonanywhere.com залил простой кусок кода:
response = requests.post('https://api.myip.com', json={'key':'value'}, timeout=3)
print(response.json()['ip'])
Ошибка. На компе работает нормально, локально там код тоже запускается, а в инет выход вообще есть?

В этой теме полный ноль, понятно если деньги закинуть то все будет, но хотелось тупо потестить что да как.
Аноним 14/09/24 Суб 15:41:00 3272789 464
Аноним 14/09/24 Суб 15:52:40 3272797 465
>>3272789
Я бы для чего-то простого использовал облачные функции или gitlab CI. Ну или гитхаб.
Но если опыта нет, то много времени потратить придётся, скорее всего.
Аноним 14/09/24 Суб 16:11:51 3272809 466
>>3272080
> сделать потоки или запускать каждый клик в субпроцессе
Ясно спс, а можно же написать скрипт который будет запускать другой скрипт для каждого из нужных мне окошек ? такое возможно в питоне ?
Аноним 14/09/24 Суб 20:43:56 3273014 467
>>3272783
Дэдзік - гэта dedicated server, разумееш, гэта сапраўдны кампутар, што стаіць у спецыяльным памяшканні, займае месца. Табе ніхто яго не дасць. Забудзся на гэта. Выканаць свой гаўнакод ты можаш на розных пляцоўках, напрыклад на https://replit.com/@ploomum/SadRespectfulMoto працуе.
Аноним 15/09/24 Вск 13:41:24 3273330 468
ssssss.png 11Кб, 894x122
894x122
Как сменить цвет этой белой рамки в Spyder или это в Винде можно сменить?
Аноним 16/09/24 Пнд 11:37:45 3274203 469
172509512612329[...].jpg 33Кб, 700x709
700x709
Поясните тупому. Есть aiogram, есть бот, я хочу чтобы:

Пользователь отсылает сообщение. Этот апдейт обрабатывается одним хендлером, а потом передается дальше и обрабатывается другими.

Типа:
@Хендлер(без фильтра)
функция ответить_1(): {
бот.ответ("я тя услышал")}

@Хендлер(фильтр_текст "привет")
функция ответить_2(): {
бот.ответ("и тебе привет")}


В итоге если пользователь послал "привет", бот отвечает "я тя услышал" а потом "и тебе привет"
Если сообщение, например "а у коня хрен 30 см", бот пропустит приветствие, но все равно ответит "я тя услышал"

Пробовал с разными роутерами, с небом, даже с аллахом, все равно апдейт отрабатывая по хендлеру уничтожается. Кажется, я просто чего-то не понимаю.
Аноним 17/09/24 Втр 01:03:16 3274766 470
Сап двач
Я вообще не разбираюсь в этом вашем кодинге, но мне моча ударила в голову, чтобы реализовать такой прикол
У меня есть локальная LLM через LM Studio, есть яндекс станция
По идее существуют навыки яндекс алисы, с помощью которых запрос можно перенаправить на нейронку
Но у меня ваще ниче не получается
ЛЛМ запускается в локальном сервере, выяснил, что можно запустить в интернет через ngrok, но тоже чето не получается
Вот кусок кода со стороны нейронки, который работает:

import openai
from flask import Flask
from flask import request
import json
# Set the base URL and API key for the OpenAI client
openai.api_base = "http://localhost:1234/v1"
openai.api_key = "not-needed"
# Create a chat completion
response = openai.ChatCompletion.create(
model="Orenguteng/Llama-3.1-8B-Lexi-Uncensored-V2-GGUF", # this field is currently unused
messages=[
{"role": "system", "content": ""},
{"role": "user", "content":""}
],
temperature=0.7,
max_tokens=1024,
)

# Print the chatbot's response
if 'choices' in response and len(response['choices']) > 0:
print(response['choices'][0]['message']['content'])
else:
print("Нет ответа")

Помогите пж доделать эту херь
если что у меня есть Яндекс облако, в котором могут быть сохранены функции для алисы
Аноним 17/09/24 Втр 08:43:42 3274814 471
>>3274203
Что тебе непонятно, долбоёб? У тебя первый хендлер без фильтра, он принимает любые сообщения.
Аноним 17/09/24 Втр 11:00:19 3274868 472
28b2c1cdc78e315[...].jpg 32Кб, 807x574
807x574
3400/10-8

340000000000.0

почему так?

почему не 0.000000000034 ?
Аноним 17/09/24 Втр 11:10:27 3274876 473
>>3274868
fix
3400/10-8

340000000000.0

почему так?

почему не 0.000000000034 ?
Аноним 17/09/24 Втр 11:11:29 3274877 474
fix да бля
3400/10-8

340000000000.0

почему так?

почему не 0.000000000034 ?
Аноним 17/09/24 Втр 12:57:25 3274954 475
А в чем смысл такого поведения импорта модулей?

Если сделать import math, то надо чтобы функцию использовать явно указать названии модуля откуда она, типа math.sqrt()
а если сделать from math import * и таким образом все функции импортировать, то уже не нужно
Наверное в этом есть какой-то смысл, просто я не понимаю
Аноним 17/09/24 Втр 13:59:41 3275002 476
>>3274954
Вообщем явное "import math" лучше не явного "import ".
Но если импортировать надо много то можно использовать "import
".
Аноним 17/09/24 Втр 14:07:14 3275007 477
Аноним 17/09/24 Втр 16:06:49 3275102 478
Столько разных методов для строк, чисел. Понимаю, что просто тупо зубрить их сейчас это идиотизм, но если пробежаться глазами по всем, то потом, когда они понадобятся, то уже не вспомнишь, что был такой-то метод, который сейчас в твоей ситуации будет полезен и будешь костылями решать проблемы.

Я вот не зная о .replace() два цикла нагородил, чтобы пробелы из строки убрать
Аноним 17/09/24 Втр 16:09:15 3275105 479
>>3274814
Нихуя. Вешаем на два роутера: первый без фильтра, второй с фильтром.

Если сообщение не подходит под фильтр - то оно принимается первым. Если подходит - вторым. Только вторым. А мне надо чтобы оно прошло через первый тоже.

Так что ты сам долбаеб и тебе даже вопрос мой не понятен.
Аноним 18/09/24 Срд 00:57:51 3275523 480
Чят, а вы что спрашиваете на собесах мидла/синьки? У нас работа с даткой, поэтому веб и асинхронщина не интересует, гоняю по чистому по питону, и кажется что у меня скучные поверхностные вопросы.
Сначала вопросы про принципы ооп; вопросы про всякие конструкции, декораторы, итераторы, контекст менеджеры, зачем это нужно, как сделать свой, какие дандер методы и проч; какой нибудь вопрос-наебка с мутабельным дефолтным аргументом; поверхностная скука про GC и GIL; и так в полчаса укладываюсь без лайвкодинга.
Если мидлов по этому еще интересно гонять, то синьки скучают, говорят что "ой тут теория а хрычка не предупреждала ну я не помню я не знаю". Грустно их после этого сливать и думать, что это их проблема что они даже на поверхностные вопросы не могут ответить или это моя проблема, что я никак иначе не могу оценить знания и спрашиваю скуку.
Так вот, чего бы спрашивать ИНТЕРЕСНОГО? Метапрограмминг не предлагать.
Аноним 18/09/24 Срд 13:12:49 3275746 481
Аноним 18/09/24 Срд 20:04:40 3276116 482
>>3275102
На двух циклах это типа

def test(string):
temp = []
result = ""
for i in range(len(string)):
if string != " ":
temp.append(string)
for i in range(len(temp)):
result += temp
return result

?

На самом деле я хз, всё можно сделать Своими руками

Но я слышал что использование методов по типу replace() немного ускоряет/оптимизирует код.
Однако, в работе этих методов всё-равно нужно разбираться
Аноним 19/09/24 Чтв 06:20:28 3276390 483
>>3191176
Ну а у даты какой тип? Может там пустой лист, а ты его на None проверяешь>>3191176
Аноним 19/09/24 Чтв 08:59:22 3276418 484
Screenshot 2024[...].png 400Кб, 1340x1824
1340x1824
Screenshot 2024[...].png 120Кб, 682x654
682x654
Пытаюсь разобраться с сериализацией в yaml.
Когда дампаю в ямл, возникают какие-то ебучие записи, начинающиеся с двух восклицательных знаков, которые при десереализации выдают ошибку.
Откуда эта хуйна берётся?
Как сделать, чтобы её не было?
Аноним 19/09/24 Чтв 10:01:53 3276451 485
>>3276418
Сам нашёл. В строке 35 нужно метод to_dict вызывать, раз уж я его сделал.
Аноним 19/09/24 Чтв 12:27:20 3276536 486
изображение.png 27Кб, 1423x107
1423x107
изображение.png 66Кб, 861x613
861x613
Аноны, а посоветуйте литературу по дизассемблу этого вашего Пайтона, а то я чёт не особо вникаю в это ваше высокоуровневое программирование!! Например:
Пик-1, я хочу понять, что делает компьютер, когда работает этот генератор. И что вообще такое этот ваш генератор?? Хочу посмотреть, куда прыгает компьютер, когда этот ваше генератор работает, хочу посмотреть где хранится старое значение месаги, в каком регистре сохраняется адрес на новую область памяти, когда шифр Цезаря "начинает свою работу", и что происходит со старым значением месаги????
Пик-2, в общем, цель такая, чтобы понимать эти ваши высокоуровневые "фишки", и читать эти ваши высокоуровневые "тексты" так же, как пик-2, в котором всё чётко и ясно разложено по полочкам.
Поэтому прошу совета насчёт лит-ры по дизассемблу Пайтона, либо что нужно делать, чтобы дойти до понимания этих ваших высокоуровневых "текстов".
Аноним 19/09/24 Чтв 17:50:54 3276775 487
Читаю про dsa немного и понять не могу это всё просто абстракция над обычными листами, массивами и тд?

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

Ещё в статье какой-то писали так, что linked листы чуть ли не базовый тип, прям база база, это знать надо, а в другой по питону пишут, что они не нужны в питоне, можно только по приколу разве что самому(!) их сделать, если тебе интересно ковыряться с этим
Аноним 20/09/24 Птн 12:16:48 3277318 488
изображение.png 52Кб, 750x414
750x414
изображение.png 13Кб, 460x126
460x126
изображение.png 58Кб, 823x412
823x412
изображение.png 13Кб, 479x121
479x121
Ну и как этот ваш Пайтон хранит строки?? Кто-нибудь может мне это объяснить?
Это не набор последовательных ячеек памяти, это какая-то "разнобойная" мешанина из ячеек памяти!! Причём удивительно то, что букву 'l' он хранит всего в одной ячейке (пик 3-4).
Как я понимаю, что каждый элемент строки он сохраняет куда попало, а затем берёт указатели на эти все "куда попало" и, мб, схороняет их в массив, оттого, мы можем обращаться по индексам к элементам строки.
Аноним 20/09/24 Птн 12:29:26 3277324 489
изображение.png 61Кб, 798x474
798x474
изображение.png 62Кб, 788x512
788x512
изображение.png 15Кб, 463x155
463x155
изображение.png 83Кб, 821x675
821x675
>>3277318
Пик-1 - так яснее.
Пик-2-3 - та же хрень, если строки разбить на элементы и сделать из них список.
Причём, если делать таким образом список, состоящий из цифр, то этот список он хранит последовательно, только одна ячейка для одного элемента списка занимает 48 байт, Карл (пик-4)!!! Что он туда сохраняет? Тайны Массонской ложи? Гей-порно в 48р???
Аноним 20/09/24 Птн 14:59:15 3277399 490
изображение.png 147Кб, 1154x1175
1154x1175
изображение.png 92Кб, 1351x699
1351x699
изображение.png 17Кб, 477x186
477x186
изображение.png 168Кб, 1257x1175
1257x1175
>>3277324
А теперь, аноны, ещё более удивительные вещи:
1) Если выводить алфавит, то тут можно утверждать, что символы идут последовательно, с разницей в 48 байт (пик-1).
2) Теперь, если собирать рандомную строку и нашего алфавита (строки a), а затем сравнить адреса элементов рандомной строки и исходной, то окажется, что каждый элемент этих разных строк имеет каждый один и тот же адрес (пик-2-3).
3) Если поступить так: из алфавита, состоящего из букв нижнего регистра, вычесть алфавит в верхнем регистре, то разница между адресами каждого элемента будет 1536. Зная, из предыдущих двух пунктов, что символ занимает 48 байт, то поделив 1536 / 48, мы получим 32!!! 32 символа это разница в таблице ASCII между 'a' и 'A', что и показывает последняя строчка (пик-4) - это разница между 'a' и 'Z' в таблице ASCII, точнее 7 это все символы между 'a' и 'Z' плюс сама 'Z'.
Аноним 20/09/24 Птн 15:09:10 3277403 491
изображение.png 137Кб, 539x832
539x832
изображение.png 11Кб, 534x228
534x228
>>3277399
Вот об этом (пик-1) 3-й пункт моего предыдущего поста.
Теперь мне думается, что строка в Python это не последовательно расположенные ячейки памяти, а тупо массив указателей на вшитую в Python таблицу символов. Зачем и почему хз!! Зачем пиздят в учебниках и в тырнетах о том, что строка это последовательно расположенные ячейки памяти - хз!!! ЕБУЧИЙ ЗАГОВОР!!!!!!
Если строка в Python это массив указателей на вшитую в него таблицу символов, то как тогда выглядят слайсы? Получается, что слайсы выглядят типа пик-2?
Аноним 20/09/24 Птн 18:50:35 3277567 492
>>3277399
Так вроде питухон строковой объект каким-то особым образом хранит чтобы он в памяти лишнее место не занимал. Типа если ты создашь массив каждое значение в котором будет строка "huy" у тебя памяти не хватит, а так они все будут ссылаться на одну и ту же строку. Но это не точно, мне эта тема вообще не интересна была я краем уха что-то такое читал когда пытался невпихуемые питонические типы данных как-то запихнуть в память. В итоге просто взял бд
Аноним 20/09/24 Птн 21:33:25 3277687 493
изображение.png 65Кб, 1176x475
1176x475
изображение.png 15Кб, 485x156
485x156
>>3277567
>Так вроде питухон строковой объект каким-то особым образом хранит чтобы он в памяти лишнее место не занимал.

Ну вот, если в первом варианте сбора рандомной строки можно было ссылаться на непонимание работы ссылок, то даже в этом вариант (пик-1-2), когда рандомная строка никакого отношения не имеет к исходной строк, подобные элементы (т.е., например, буква 'a' в исходной строке и буква 'a' в рандомной строке) разных строк "занимают" одну и ту же ячейку памяти.
Поэтому действительно, строки это просто массивы указателей на таблицу символов. Конечно, наверняка, это как-то по-другому называется, но я хз куда копать - везде пишут, что это последовательные ячейки памяти. Так-то, конечно, массив это последовательные ячейки памяти, но это не просто массив символов, как это пытаются представить в книгах и тырнетах, а именно массив указателей на ячейки определённой таблицы символов.
Аноним 20/09/24 Птн 23:22:39 3277756 494
изображение.png 37Кб, 1032x234
1032x234
>>3277687
Забавные штуки позволяет делать этот ваш Пайтон.
Короче, логически строки это действительно массивы указателей на объекты (в данном случае символы), но со своими приколами. Указывают разные элементы строки на один и тот же участок памяти, потому что это фишка Пайтона (называется интернирование), которая позволяет экономить место, типа чтобы не плодить одни и те же объекты (одни и те же буквы, например) в памяти, Пайтон одним и тем же элементам присваивает один и тот же адрес, который указывает на один символ.
Аноним 21/09/24 Суб 00:11:13 3277787 495
>>3277756
Диды основатели знали что делали. Если так сделоли, значит это оптимальное сочетание сложности алгоритма и занимаемой памяти, не бухти.
Аноним 21/09/24 Суб 05:03:57 3277835 496
>>3267556
Тебя спросили что такое классы,но ты и тут обосрался
Аноним 21/09/24 Суб 05:05:29 3277836 497
>>3277756
Выколи глаза, еба говнокод
Аноним 21/09/24 Суб 08:59:21 3277847 498
>>3277787
Да я и не бухчу!

>>3277836
Не бухти, а лучше покажи пример не говнокода.
Аноним 21/09/24 Суб 11:24:29 3277927 499
>>3276536
Ты для начала изучи основые, матчасть вообще и базу по языками и всему прочему, что и для чего. А потом такие глупые вопросы сами собой отпадут.
Дизасемблерщик хуев.
Аноним 21/09/24 Суб 12:35:43 3277992 500
изображение.png 70Кб, 2228x591
2228x591
>>3277927
Ты чего так сильно возбудился то, педик??
Услышал где-то, что дизассемблят только компилируемые языки, а интерпретируемые нет?
Педик, посмотри на пик! Видишь, справа на картинке, педик? Это называется байткод Пайтона. Но, если считать дизассемблом изучение этого байткода, то это просто шутка какая-то, потому что сам этот байткод написан на другом языке (скорее всего на Си). Чтобы понять внутреннее устройство Питона нужно читать именно тот код, который есть суть байткода Пайтона, педик, шурупишь??? Вся эта магия "лёгкости" Пайтона, на самом деле, неимоверный труд линкеров и лоадеров, чью работу и можно изучить и понять, если задисассемблить не в "потешный" байткод, а в настоящий ассемблированный код. Ну либо читнуть исходники этого байткода.
Вот я и спрашиваю, педик, где можно читнуть эту литературу, в треде, где люди должны были заинтересоваться внутренним устройством языка, на котором кодит весь этот тред. Педик!
Аноним 21/09/24 Суб 13:24:16 3278014 501
>>3277992
> где люди должны были заинтересоваться внутренним устройством языка, на котором кодит весь этот тред
Те кто интересуются кодом интерпретатора в ужасе от гвидокостылей сваливают на другие языки.
Питон не тот язык в потроха которого лезут.
Аноним 21/09/24 Суб 13:45:35 3278025 502
>>3277992
Шизик, твой слог читать невозможно, таблетки прими.

Питон - это язык для того, чтобы напохуй что-то написать быренько, всем похуй как это работает, все поебать что там внутри происходит, интересуютя этим только разработчики интерпретаторов этого говна, которые все пытаются там ускорить это неускоряемое говно с GIL'ом.
Никто в серьез не пишет на питоне что-то большее, чем прототипы и небольшие приложения.
Ты пытаешься косить под умного, будучи совсем глупым, еще и с надменным стилем написания "в этом вашем". Думаешь ты пришел в этот тред и все такие удивились что ты смог на си написать какую-то залупу из 10 строк? Уебок, тут сидят дяди которые на си десятки лет писали и видели миллионы строк кода на ассемблере. А на питоне пишут, потому что это быстро и удобно для определенных целей. Лично мне вообще похуй как там че питон делает внутри, абсолютно, я даже не задумывался об этом никогда, как и пологается при использовании языков такого высокого уровня. Если я захочу побыть байтослесарем, я пойду на С++ напишу что мне нужно, вот там да надо знать все как внутри работает, потому что у языка абсолютно другая целесообразность применения. А тут нет. Короче иди нахуй дауненок.
Аноним 21/09/24 Суб 13:52:44 3278031 503
>>3278025
>Никто всерьез не пишет на питоне что-то большее, чем прототипы и небольшие приложения.
>даже не задумывался об этом никогда, как и пологается при использовании языков такого высокого уровня.

Ты сам себе противоречишь, педик!!!
Как ты собираешься писать прототипы, чтобы потом реализовывать их, допустим, на Си, не понимая, как эти прототипы устроены внутри?

>Никто в серьез
Всерьёз, глупый школьник!
Аноним 21/09/24 Суб 15:51:15 3278133 504
>>3278031
Боже... болезненный, ты из какой дурки-то сбежал?
Аноним 21/09/24 Суб 16:29:55 3278168 505
>>3278133
Педик, какие-нибудь вразумительные аргументы будут?
Давай так, чтобы мне понять, можно ли с тобой вести продуктивную беседу, ответь, пожалуйста, на вопрос:
Какая величина больше - километраж увиденных и опробованных твоею мамкой больших, чёрных хуёв;
или, как здесь, >>3278025
>видели миллионы строк кода на ассемблере
увиденных дядьками строк на ассемблере?
Аноним 21/09/24 Суб 17:01:32 3278190 506
>>3278168
Какие тебе аргументы, ты несешь дичайший бред сумашедшего. Нахуя мне с тобой вообще дальше разговаривать, иди со своим лечащим врачом разговаривай лучше, анскил.
Аноним 21/09/24 Суб 18:28:00 3278235 507
>>3278190
Понятно! Только абсолютные шлюхи могут вырастить так возбуждённых педиков, как ты.
Аноним 21/09/24 Суб 18:45:10 3278243 508
Как можно на этом нетипизированном говне что-то написать сложнее 100 строк, это пиздос
Аноним 21/09/24 Суб 19:26:06 3278278 509
Аноним 21/09/24 Суб 22:39:22 3278419 510
>>3278278
Это "писать типы" на деле просто "писать типы" больше никакого от них толку нет, кроме лишней писанины, интерпретатор тебе ошибку не выдаст и не ругнется даже никак. Я заебался сейчас после рефакторинга небольшого отлавливать баги и не состыковки кода.
Мое приложение упало раз 15 прежде чем я пофиксил все недочеты.
И большая часть из них была, типа перенес функция в класс - забыл дописать self функция падает, тоже самое и с переменными класса.
Немного поправил функцию которая должна возвращать строку с путем, она в некоторых случая стала позвращать Path из-за чего падало все непредсказуемо, бля ну это пиздос, такихх ошибок может быть тысячи, которые в статически типизированном языке тупо невозможны в рантайме и все вылезут на этапе компиляции, либо на этапе подсфетки кода в редакторе, но в питоне ты их заебешься отлавливать в рантайме. Я уже 10 раз пожалел что начал на питоне свою хуйню писать. Хотя там либа только для питона нужная мне. Но уж лучше запускать питон субпроцессом для доступа к данным сервиса через эту либу из статически типизированного языка, чем отлавливать кучу рантайм багов. Ну его нахуй короче. Питон это язык для программ не больше 400-600 строк.
Аноним 21/09/24 Суб 23:47:47 3278466 511
>>3278419
>интерпретатор тебе ошибку не выдаст и не ругнется даже никак
Чел... типы не интерпретатором проверяются
Аноним 22/09/24 Вск 03:15:54 3278509 512
Это как надо говнякать спагетти и кататься ебалом по клавиатуре, что у тебя блоки кода начинают срать во все стороны произвольными данными.
Никогда не понимал этих нытиков, которые что-то сложнее хело ворлд не могут написать без святой типизации, которая им сопельки вытрет. В питоне есть аннотация типов, что тебе ещё нужно, чорт. А если ты забываешь self дописать, ну что поделать - обосрался с синтаксисом, скил ишуе.
Аноним 22/09/24 Вск 10:28:22 3278603 513
>>3187471 (OP)
В pandas команда df['date'].astype('datetime64') юзает же формат YYYY-MM-DD по умолчанию? Формат явно прописать можно?
Я знаю как это делать через pd.to_datetime, мне интересно именно по методу astype.
Аноним 22/09/24 Вск 11:22:30 3278644 514
>>3278509
Да нет, просто язык говно by design. Такое же говно было и с джабаскриптом, который по итогу превратился в строго типизированный тайпскрипт потому что все поняли что анрил что-то сложное писать на говне без типов. Вообще питон изначально довольно говенный язык, просто баблишко и влияние корпораций решают, а так же простота использования и вката. Любая обезьяна которая еще вчера бегала с камнем в руке сейчас может выучить питон и гордо называть себя "РАЗРАБОЧИКОМ" очка тут в питоне это и плюс и минус, простота использования оборачивается другой стороной медали в виде сложности написания реальных приложений сложнее пары сотен строк.
Если один человек может допустить кучу багов отловимых только в рантайме, то сколько сможет допустить комманда разработчиков? И вопрос тут не скила, а вопрос безопасности языка. Для меня питон такой же небезопасный как и си, си даже может будет побезопасней, все таки типизация какая никакая там есть, нету эксепшенов и есть goto, который в случае ошибки может перекинуть нас на блок освобождающий ресурсы, главное соблюдать все правила, но с питоном хоть тут и невозмоно мемори лики, очень легко выстрелить себе в ногу и пока ты не прогонишь все бранчи своего приложения в рантайме ты никогда не поймешь есть ли там баг или нет. Единственное отличие в том, что на питоне куча высокоуровневых либ котоыре в пару десятков строк могут тебе сделать то, что ты хочешь, где на си или даже С++ тебе бы пришлось писать кучу бойлерплейта и сотни или тысячи строк. Поэтому питон должен оставаться в своей естественной среде в виде скриптового языка для консольных утилит, которые можно написать на коленке.
Аноним 22/09/24 Вск 15:30:35 3278748 515
>>3278644
Всё о чем ты разнылся это всего-лишь помощь в дебаге и отладке, которую дает типизация. В питоне если ты не можешь что-то больше 100 строк написать не обосравшись с типами у тебя есть аннотация типов, которая используется IDE, который тебе каждое использование переменной проверит и если она используется не соответсвенно заявленному типу - подсветит ошибку.
Аноним 23/09/24 Пнд 16:33:31 3279577 516
image.png 889Кб, 3070x1726
3070x1726
питон рили такой простой язык?

ни разу не погромировал, читаю ща питон не для погромиздов. уже смог ужать код из начала книги в четыре строчки на зависть индусам
Аноним 23/09/24 Пнд 18:43:47 3279691 517
>>3278243

Представь мое ебало когда внезапно все

if N

Начинают давать false, когда N==0. Это пиздец.. Пришлось пробежаться по всему коду и заменить на

if N!=None
Аноним 23/09/24 Пнд 19:11:24 3279707 518
>>3279577
Я тоже его начинал как не-программист, да и сейчас уровень у меня околонулевый.
По началу реально просто. Условные конструкции, циклы и функции идут как маслице - все очень дружелюбно, просто и понятно.

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

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

Плюс довольно хуевый дефолтный упаковщик pyInstall, который 20 строк кода пакует в екзешник, который может весить и 5 мегабайт и все 80. Как будто он всю ветку зависимых библиотек полностью засовывает, лол. Еще и работает через раз. Правда там и другие упаковщики есть, я пока еще не все варианты опробовал.

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

Вообще я питон даже не как язык программирования воспринимаю, а как компьютерный мультитул, в том числе и для домащенго пользования. Переводить pdf-ки в docx, компрессия фоток, API, какая-нибудь несложная считалка которая автоматом дописывает текст для типовых отчетов, или наоборот программа, которая ищет в сотне текстов какое-нибудь слово, и выводит по 2 предложения до и после, что-нибудь такое. Недаром в репозиториях лежит 130к библиотек для него.

До этого немного писюкал на паскале в школе с очень смутным пониманием, в университете С++ блядский, который я вообще не вкуривал и делал как-то по аналогии информацию тогда просто не умел искать нормально и все. Питон первый язык от которого не тянет блевать. Только regex гумозный, надо будет его как-нибудь задрочить, набить руку просто.
Аноним 23/09/24 Пнд 19:57:37 3279720 519
image.png 794Кб, 3070x1726
3070x1726
я немношк туповат поэтому написал комментарии.

гордитесь мною.
Аноним 24/09/24 Втр 07:02:14 3279864 520
>>3279720
выколи глаз, pep8 тебе в помощь
Аноним 24/09/24 Втр 15:21:03 3280118 521
чет в шапке не нашел, есть годные курсы по python django? udemy или еще что
Аноним 24/09/24 Втр 21:07:44 3280518 522
Снимок экрана 2[...].png 191Кб, 1919x1032
1919x1032
Обновлял кто пайчарм до 2024.2.2 версии на 12 винде?
Не видит установленные пакеты.
Кеш валидировал, в %APPDATA% и %LOCALDATA% всё удалял, полностью сносил и заново ставил - не помогло.
Аноним 24/09/24 Втр 22:49:58 3280577 523
>>3280518
Хуясе, я думал это только у меня траблы с пайчармом, потому что на 7 винде сижу. Спасибо Билу гейтсу за вскоде, который без лишних вопросов цепляет pip из терминала.
Аноним 26/09/24 Чтв 19:09:48 3282251 524
>>3279577

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

И все программирование состоит из этих базовых конструкций, никакой магии нет. В любом языке, сделать то, что у тебя на пикче элементарно. А вот сделать из этого сложные системы -- это уже задача.
Аноним 27/09/24 Птн 23:36:11 3283539 525
image.png 428Кб, 2560x1440
2560x1440
просто оставлю это здесь
Аноним 27/09/24 Птн 23:52:14 3283546 526
>>3279577
Это ты еще про генераторы не читал сокрощальщик
def matrixA_by_matrixB(A: list[list[float]], B: list[list[float]]):
return [[sum([row_element*column_element for row_element, column_element in zip(row, column)]) for column in [[row[j] for row in B] for j in range(len(B[0]))]] for row in A] if len(B) == len(A[0]) else None
Аноним 28/09/24 Суб 01:25:29 3283586 527
Аноним 29/09/24 Вск 13:42:24 3284502 528
1727606467.png 84Кб, 797x724
797x724
Помогите, я даун. Надо вспомнить питон, решил почитать стандартную либу, поделать каких-то простых задач и решил написать функцию, чтобы соединить n многострочных текстов в один ряд, с вертикальным центрованием по самому высокому.
Блять, у меня реально опухоль в мозгу или сифилис мозга, я не знаю. Как это сделать как нормальный белый человек? Почему я могу придумать только какое-то дерьмо на 100 строк. Это же точно решается аккуратно и нормально строк за 10. Придумал два варианта, оба ублюдское говно.

https://www.online-python.com/TckJHlmwvb
Аноним 29/09/24 Вск 16:59:26 3284683 529
Аноним 04/11/24 Пнд 18:28:01 3315826 530
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов