24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
— Какие книги считаются лучшими? На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых? Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
господа, хочу замутить декоратор методов типа такого:
class Pook: ____@input_event('quit') ____def quit(self): ________self.save() ________sys.exit()
но это исполнится во время импорта и зарегистрирует классовую функцию Pook.quit и будет пытаться вызвать Pook.quit(self) вместо some_object.quit(). мне же нужно, чтобы это работало с bound method-ами на инстансах. чтоб self работал
>>2509445 Если мне за питон платят, то зачем учить твою тухлую жабу? Чтобы лазить по корпоративных канализациях в резиновом костюме? Уж если куда катиться, то в жс - порриджевать, нихуя не делая.
В общем проблема в том, что я использую Anaconda и в отличии от IDLE там нельзя просто так поставить ассоциацию .py файлов с интерпретатором PYthon, так как там используется множество окружений и необходимая среда должна быть активирована перед запуском файла .py. Без написания .bat файла не обойтись. Я никогда этого не делал и не знаю синтаксиса cmd. Я нашел, как активировать нужную мне среду с помощью .bat файла, но я не могу открыть в нем нужный мне файл. Я уже согласен, чтобы задавать его статически через текстовый редактор, но в идеале, конечно, путь к нему должен передаваться в качестве аргумента. Далее нужно как-то зайти в нужную мне папку и запустить нужный мне .py файл в уже активированной среде. Должно получиться что-то вроде прикрепленного кода. Но это не работает, в нужную мне папку оно не переходит, но если ввести эти команды последовательно вручную через консоль, то программа запускается и отрабатывает нормально.
Класс это объект, у которого есть элементы, методы. Когда ты делаешь декоратор у метода, при создании класса его элементы заменяются на другие, но остаётся всё равно один объект-класс с элементами-методами.
Ты хочешь, чтобы у тебя у каждого инстанса был свой собственный метод, а не использовался метод класса. что не совсем вписывается в модель ООП и того, как это работает в питоне
Ты ведь после этого не можешь использовать конструкцию вида obj = Pook() Pook.quit(obj) а это подразумевается
>>2509463 >>2509467 Ну типа могли бы нормальные деньги зарабатывать, а не на яп школьников сидеть и ждать пока какой-то девятиклассник фрилансер вас заменит
На связи парень 29 лет из Сочи, надо как-то поднимать норм бабки, решил для вката взять язык peton, подскажете, сколько времени примерно займет обучение? На курсах слыхал просто бабки вытягивают и учебный процесс больно растянут, реально же самому выучиться? За месяц-полтора возможно? И сколько платить будут? Поначалу согласен на невысокие ставки, но совсем за еду тоже пахать не собираюсь. 60-80к будет?
>>2509723 >просто бабки Сказки. Пердиксы боятся конкуренции и распускают слухи. >реально же самому выучиться Да, но это на год и более, если есть способности >За месяц-полтора возможно Читай выше. За месяц ты даже метаклассы и асинхронное программирование не выучишь >60-80к Без опыта надо готовиться за 20-40к работать с полгода хотя бы.
>>2509728 >метаклассы Это и есть ООП? Т.е. ты, обращаясь к классу, создаёшь объект, который отрабатывает методы, а потом схлопывается, будто его и не было, но оставляет за собой информацию, которая была прописана в методах (либо ничего не оставляет)? >асинхронное программирование Это что за йоба? Это что-то из дата-сайенс? Пример приведи самый простой.
В Админке модели разделены по app, в которых они определены. Можно как-то по-своему из раздербанить? В Main у меня слишком много моделей, хотелось бы разделить их еще
Пытаюсь учить, но очень быстро забываю всё, что-то выучил, вроде понятно, перешел дальше, через 2 дня уже забыл то, что было понятно. Я дурак или что-то делаю не так?
Вот бы был thread для обсуждения того как челикам из Сочи в 29 лет обустроить свою жизнь и отдельный thread где мы обсуждаем язык программирования Python.
>>2509942 >>2509941 Ну что вы за люди-то, а? Какой блджад вебсервер? При чём тут асинхронное программирование? Мы тут серверы пишем и изобретаем велосидпеды или простыми словами пытаемся разобраться в сути? Ссать и срать одновременно - это ассинхронное программирование или ссать, а потом срать (или срать, а потом ссать) - это ассинхронное программирование?
Мне понадобилось полтора года чтобы устроится джуном в ДС, летом дело было. Минимум с текущими требованиями, если не проебываться (как я) и повезет думаю полгода, если не повезет - год. За полтора месяца выучишь ты в лучшем случае разберешься с самим языком более менее (этого абсолютно недостаточно)
>>2509528 Нашел программу Bat_To_Exe_Converter https://bat-to-exe-converter-x64.en.softonic.com/download, которая конвертирует .bat файлы в .exe. Так же она позволяет скрывать командную строку при запуске .py файла, установить иконку полученному .exe файлу. Программа даёт возможность установить ассоциацию .py файлов с полученным .exe файлом, позволяя тем самым запускать .py файлы в нужном окружении Anacond'ы двойным щелчком мыши. После конвертирования .bat файл можно удалять.
>>2510417 Я когда в универе учился и писал курсач кучу книг перерыл и обнаружил, что всякие ученые и преподы которые пишут новые книги тупо копипастят куски из разных книг 60-70-х годов и выпускают это как свою книгу. Причем зачастую копипастят с ошибками. Мне больше всего понравилось как я смотрел книгу, а там аннотация была что этот учёный посвещяет её какому то своему учителю. Я чуть не расплакался, а при беглом осмотре обнаружилось, что произведение состоит из выдранных кусков трёх старых совковых книг, спизженно было всё вплоть до названия разделов и самого текста.
>>2510459 Та я просто проорал, но это печально на постсовковом пространстве во многих областях в той же медицине, протоколы лечения например, наука находится на уровне 60-70 годов прошлого века.
Уважаемые помогите пожалуйста. Я очень много раз пытался ставить себе питон, не для того чтобы писать код, а для прикладных задач. И каждый раз, установив пакет, у меня не получалось достучаться до консоли, команды не принимает, пишет что неверный синтаксис. Не занимаюсь кодингом, но есть нужда в том чтобы скомпилировать софт, все лежит в архиве. Есть ли на данный момент онлайн сервис который делает это за тебя в облаке?
В VisualStudio, когда обращаешься к компоненту через точку тебе сразу предлагают методы и данные, которые к этому классу относятся. В PyCharm'е при работе с .ui файлами ощущение, что ты обращаешься к черному ящику про содержимое которого ничего не известно. Есть ли плагины или какие то другие способы организовать автодополнение текста для графических компонентов в PyCharme'е наподобие того, что есть в VisualStudio?
>>2510594 >при работе с .ui файлами Посмотри плагины в сторе, а также потыркай гугл на тему PyCharm'а и qt5. PyCharm из коробки банально не умеет в эти файлы.
>>2510609 Блин, он это в один поток делает. Это чудовищно медленно, особенно на машине с 64 cpu. Как бэ, я могу и дальше subprocess дёргать, но интересно как сделать это без костылей.
>>2510635 Я вижу что можно открыть через tarfile bytesio объект и дальше работать, меня смущает только, что не окажется ли на моём серваке всё забито питухоном, а потом oom убьёт всё к хуям?
>>2510836 gz - нет, в силу алгоритма, мало какие алгоритмы сжатия в параллель работают, потому что у большинства принцип накопления словаря в зависимости от текущего потока в том или ином виде
>>2511032>>2511033 > gz - нет, в силу алгоритма pigz > мало какие алгоритмы сжатия в параллель работают Практически все современные. Словарь можно шарить между потоками. Словарь можно использовать претрененый. В конце концов можно делать словарь на поток, в больших масштабах невелика потеря.
Просто непонятно зачем чисто аминскую проблему решать с помощью программистов. Ну поперебирай тулзы и какая-нибудь заработает. Программу надо ведь не только написать, но еще и найти баги и поддерживать годами. А хотя понятно. Заебать десяткам людей мозги на Дваче - бесценно и бесплатно.
У меня тут недавно обновилась программа qpress и весь бекап по пизде пошел. скорее всего это потому что Percona - это уже не пара русских пацанов, а <вставьте_обидное_национальное_прозвище> В общем, теперь бекап с помощью mariabackup просто зависает навсегда. Я перешел на сжатие с помощью gzip в конвеере, но как-то медленновато стало работать.
>>2510504 Отвечу на свой вопрос сам, спасибо ЛОРу: with pgzip.open(f"{name}.tar.gz", "wb", compresslevel=9) as fw, tarfile.open(mode="w|", fileobj=fw) as tf: tf.add(f'{self.backup_dir}/backup/.', arcname='backup')
Посоны, помогите! Нужно сделать что бы у пользователя на сайте(Django) появлялись новые комментарии в режиме реального времени. Т.е. при добавлении комментария по постсэйв сигналу у человека на сайте автоматом погружался новый комментарий. С бэк частью всё понятно, вопрос что гуглить и курить что бы реализовать это на фронт части? Мне в голову пришло только отправлять запрос с клиента каждые 30 сек по time.sleep. Но я знаю что есть правильное решение. Помоги плиз, Антончик!
>>2511392 Без шуток. Естественно, собрать его, особенно не зная всех конфигов и хоткеев - квест не легче чем генту установить, после сидения на виндовсе. Но окупается значительно.
Я пару дней пытаюсь разобраться в Python, и уже начитался кучи негативных отзывов про PyCharm, но так и не понял в чем суть претензий. Можете мне по человечески объяснить чем он так плох и какую IDE лучше юзать?
>>2511584 Ищи то, что тебе подойдет. Перепробуй что можешь. У пайчарма проблема, что он сильно громоздкий. Индексация и ревалидация кеша на каждое открытие проекта, причем не быстрое. LSP бывает подвисает жестко. Интеграция с гитом, но очень куцая, бисект и локальное игнорирование файла нельзя сделать. Профилировщик - мне кажется единственная сильная и безконкурентная сторона. Историю гита тоже очень удобно просматривать.
понятно, что никто не сидит и от нехуй делать строчит дифирамбы пичарму, чтобы создать у тебя и других мимокроков впечатление охуенности ПО. и наоборот: кому-то явно нехуй делать, и он сидит говнит пичарм ИТТ почем зря, может на срач рассчитывает, но всем лень/похуй
Пытаюсь сделать кликер в одной браузерной игрушке. Но он сука нихуя не кликает. В этих интернетах пишут что это может быть как-то связано с directx. 10 резных библиотек перепробовал и ни одна не кликает. Сука.
>>2509442 (OP) В пандасе формирую таблицу в необходимом мне виде. usecols="B,E,V,AI,R" Но выводятся столбцы в алфавитном порядке, как в эксель файле. Как сделать, чтобы столбцы шли в том порядке, в каком я прописал в юзколс?
>>2511814 ХЗ как эти кликеры устроены, наверное не опознаёт некоторые элементы управления как кнопки. Ты же можешь функционал кнопки сам реализовать, просто перехватываешь клик-эвент, смотришь на чём был курсор и в соответствии с этим поступаешь. Кликнуть можешь в абсолютно любое место. И тебе не надо явно регистрировать сам объект как обработчик клика.
>>2511568 Чем окупается-то? Красноглазием? Тем, что после настройки вима можно сразу устраиваться middle lua developer? На каждый новый чих весь день сидеть и разбираться, как перенастраивать все плагины?
>>2512087 >if word[ i ] == word[i+1]: Прадумова такое што трэба показваць код праз сэрвісы разметкі. Другая - твае слова мусіць быць даўжэй за адну літару.
>>2510457 >всякие ученые и преподы которые пишут новые книги тупо копипастят куски из разных книг 60-70-х годов Добро пожаловать в рашку, страну воровства и плагиата, в том числе интеллектуальной собственности.
>>2512343 Используй функцию type(), чтобы понять какой тип у переменной. Понимание типа многократно способствует возможности работы с ней. https://pastebin.com/2wKuLfr1
Ладно я дибил мне с английским сложно. Куда бы я не зашел везде какие то троли нахваливают доки к Qt и PyQt в частности. Я извиняюсь, но по сравнению с VisualStudio это полное убожество, я 3 часа менял цвет на лейбле, в документации этого просто нет, одно из основных свойств компонента который кроме вывода текста ничего не делает вообще отсутствует как отдельное поле, это просто смешно. Ответ вместо этого гуглится на левых форумах, какая то сраная html разметка. Цвет устанавливается через метод SetStyleSheet, но самое смешное что в доках он отсутствует в описании QLable, потому что оно не родное, а наследуется от QWidget. Это блядь занавес. Эту хуйню разрабатывают с 95 года, неужели нельзя было за это время сделать нормальную справку по типу VisualStudio? Где искать информацию? На левых форумах? Это наркомания.
Помогите советом инженеру. Написал для работы расчётную программу на питоне - всё отлично, но слишком медленно работает. Затык - в алгоритме нахождение точки пересечения луча и многоугольника (фактически луча и треугольника). Функция ray_polygon_intersection выполняется 98.7% от общего времени работы программы. Возникла идея переписать эту функцию на C++ для ускорения, тем более, что изначально она на нём и была написана - https://ru.wikipedia.org/wiki/Алгоритм_Моллера_—_Трумбора Но вот вопрос, а ускорится ли работа программы? Там в основном ведь работает numpy, а эта библиотека и так на C написана. Понимаю, что очевидный ответ - взять, запустить эту функцию на обоих языках и сравнить, но я совсем не умею с C++ работать, после питона натурально шиза какая-то. Так может, я зря сейчас мучаюсь?
>>2512534 Могу. Но это не решение. У меня в проге лучи кидаются тысячами и всё тормозит. При этом на доисторической программе ЦНИИмаша с похожими задачами лучи бросаются сотнями тысяч - и всё считается очень бодро. Разумеется, никакого распараллеливания там нет, программа 97 года компиляции, может вообще на фортране писалась, чёрт его знает. А может и на С. Я пока не понимаю, как деды из прошлого века меня так обгоняют по скорости.
>>2512545 Ну я всё-таки надеюсь сладить с этой одной несчастной функцией в C++ и интегрировать её прям в питон. Через dll, или как там это делается, надеюсь, не будет очень сложно. Меня питон вполне устраивает, исключая такие вот редкие косяки производительности.
Что занимает больше памяти -- List[Tuple] или Tuple[List] ? Например если у меня есть 100500 измерений по 4 float значений каждое, какой формат выйдет выгоднее?
Аноны подскажите как отсортировать список списков, сразу по нескольким параметрам.
Вот допустим есть список (list_1), он состоит из списков(list_N) их и надо сортировать. list_N состоит из десятков элементов. [ ['23', 'text1', [1,2,3],'Боря', 'хуй', 'пизда', 'джигурда'], ['24', 'text2', [1,2,3],'Боря', 'хуй', 'залупа', 'джигурда'], ['23', 'text1', [1,3,2],'Боря', 'хуй', 'пизда', 'анти джигурда'], ['23', 'text0', [1,2,3],'Боря-лох', 'хуй', 'пизда', 'джигурда'], ]
И так миллион раз. Видно что данные в элементах повторяются но их слишком много. Нужно отсортировать все эти эллементы так чтобы они шли друг за другом масимально "гармонично" что-ли. Чтобы соседние элементы минимально отличаслиь друг от друга.
Очевидно что нужно проходить циклом по каждому элементу и сравнивать его со всеми другими. Но может в питоне есть какое-то особе волшедное решение для таких задач. например диффлиб - который кстати не подошел, он высчитывает "индекс похожести" каким-то своим способом и возвращает не удовлетворительный результат по моему случаю.
>>2512635 Нейронной сетью. Сначала отсортируй руками, потом сделай много рандомных сортировок, обучи модель, чтобы из рандомных делала ту, которую хочется тебе, а потом её используй для сортировки.
>>2512635 невозможно сделать корректно, потому что нет линейной упорядоченности, возможны принципиально разные результаты сортировок, традиционные алгоритмы не пригодны
>>2512734 все можно отсортировать. тебе нужно просто определить операцию сравнения или операцию расстояния чтобы использовать уже определенные операции сравнения чисел.
хуй знает как тебе помочь. у тебя не с сортировкой, а с постановкой задачи проблема. формализуй, что ты считаешь гармонией, и что такое удовлетворяющий тебя результат. сортировка тут это самое простое
Я хочу заебашить курсач. Допустим, у меня есть твиты вет. клиник (которые лечат только кошек и собак) и я хочу с помощью NLP+ML разделить все твиты на "кошачьи" и "собачьи". Допустим, я хочу таким образом классифицировать 100 тыс. твитов.
Итак вопросы:
Первое: можно ли с помощью NLP+ML анализировать текст не только на тональность (позитив/негатив), но и на "кошачьесть", "собачесть", при наличии офк test и validation выборок?
Второе: я правильно понимаю, что если я хочу проанализировать 100 тыс. твитов, то мне вручную для обучения модели придется классифицировать 10-20% от этих ста тысяч?
Огромное спасибо за ответы, это реально поможет перестать мне прокрастинировать, поскольку через гуглинг и чтение документации порой бывает очень сложно найти ответы на фундаментальные вопросы.
>>2513210 Ты не понял оно должно автоматом при запуске приложения в IDE обновлять .py файл с учётом внесённых изменений, без необходимости вообще вызывать консоль.
>Первое: можно ли с помощью NLP+ML анализировать текст не только на тональность (позитив/негатив), но и на "кошачьесть", "собачесть", при наличии офк test и validation выборок?
Да пожалуйста. Мы не против любой движухи. Обеспечишь ли ты ожидаемую людьми точность? Хоть курсяк и не диплом, защищать ты его будешь перед людьми очень хорошо понимающими суть научного метода и метрики достижения научных заслуг, даже если им влом погружаться в nlm. И им не понравится твое издевательство над ними (метриками)
>Второе: я правильно понимаю, что если я хочу проанализировать 100 тыс. твитов, то мне вручную для обучения модели придется классифицировать 10-20% от этих ста тысяч?
Вообще-то, желательно пометить все имеющиеся данные. 10% - это граница чего? Кто ее провел?
>>2513076 Не всё можно упорядочить Попробуй упорядочить комплексные числа. Вот у тебя 4 числа, 1, -1, i, -i по модулю одинаковые, расстояния между ними или 2, или sqrt(2)
А теперь отсортируй их и обоснуй, почему так, а не иначе
from converter import convert_ui convert_ui("MainForm.ui")
Каждый раз после редактирования в дизайнере .ui файла запускаем скрипт и он заново конвертирует нужные .ui файлы без вызова консоли. Благодаря работе с pyuic5 функция автодополнения работает и есть доступ к членам формы через точку
>>2513393 Линейный порядок можно предъявить для любого множества. Более того, по теореме Цермело любое множество можно вполне упорядочить (правда не всегда получится построить такой порядок конструктивно). Комплексные числа можно, например, просто сравнивать лексикографически, или сначала по модулю, а потом уже лексикографически.
>>2513527 в пыхе нет культуры постоянно запущенного кода. после обработки запроса все ресурсы автоматически освобождаются и в следующий раз начинаются вычисления заново. Только представь сколько предварительно вычисленных данных можно хранить глобально в твоем приложении.
несмотря на то, что они пытаются это исправить, нет культуры - нет движения.
>>2513393 >А теперь отсортируй их и обоснуй, почему так, а не иначе а схуяли? я могу выбрать любое правило. Хеширование или еще что-то. Это тебе придется обосновывать почему я не могу это сделать так, а не иначе.
>>2511947 >>2511568 Видал буквально 2 людей кто сумел настроить себе вим нормально и оба были красноглазыми петухами. Остальные без конца ломали себе руки и ноги в попытках на нем работать но сцук каждый повизгивал что ему очень вкусно
>>2513550 Илитно же. Ну знать там двадцать ходовых хоткеев заебись - что-то подкрутить на сервере, а хуевертить какие-то конфиги-плагины и превращать его в НЕХ это очень на любителя.
>>2509442 (OP) А насколько нормально делать вот так? Вдогонку, как понять вообще, что принятое тобой решение не говно? Как бы, с моей стороны, если код делает свою задачу, значит он не говно. Однако всегда находятся чуваки с нюансами и говорят, что вообщет так не принято.
>>2513651 >А насколько нормально делать вот так? А какие альтернативы этому ты представляешь?
>Вдогонку, как понять вообще, что принятое тобой решение не говно? Как бы, с моей стороны, если код делает свою задачу, значит он не говно. Однако всегда находятся чуваки с нюансами и говорят, что вообщет так не принято. В каком сценарии? На роботе будет тимлид; на гитжабе, если код популярный, то кто-нибудь отпишет или даже отрефакторит; пока учишься на стак оверфлоу или реддите можно попросить отревьюить. А там и сам будешь знать, как принято.
>>2513703 > А какие альтернативы этому ты представляешь? Никаких. Я только это смог придумать.
> В каком сценарии? Да в том и дело, что я в основном для себя пишу. Я девопс и иногда, короче, приходится самому делать инструменты. Лида нет, как бы, я один. На питухоне в компании пишу тоже только я. Ну и короче хочется, чтобы никто потом не охуел, разгребая километры скриптов, написанных мной. Они с одной стороны простые и логичные, а с другой стороны, это может я так считаю, а другой припрётся и короче, не поймёт нихера.
>>2513717 >>2513651 except-блок тебе тут не нужен В finally стоит делать закрытие какого-то ресурса а это дефолт блэт для любых операций с файлами/сокетами
>>2513719 А, так можно было. Окей. У меня в finally подчищаются хвосты от работы скрипта, чтобы при следующем запуске не наебнулось говно из subprocess.
Аноны, кто-нибудь сталкивался с тем, что при попытке экспорта датафрейма в xlsx/csv/любой вообще формат, нихуя не происходит. Облазил весь stackoverflow и ничего дельного не нашел
>>2513770 Если тебе так интересно, не сталкивался. Я последние лет 25 не сталкиваюсь с ситуациями когда код ведет себя необъяснимо. Вот когда меня посадили на VAX VMS после ПК - вот это была проблема и растерянность ! А у тебя Гугл есть, декомпозиция задач и отладчик.
Заделал кастомные роли у юзеров, в админке проверяем возможности смотреть/редактировать определенную модель согласно проверке роли юзера. Все бы ничего но у меня юзеры к ролям соотносятся many-to-many через промежуточную таблицу, каждый раз при проверке будут вызываться запрос в БД, что в общем-то пиздец накладно. Как это обойти?
Нужно в нем проверять ключи. Если я например сделаю для ключей отдельную переменную и буду проверять ключи в ней.
dict_keys_var = dict.keys() if 'some_key' in dict_keys_var: pass
Это лучше чем каждый раз обращаться к dict.keys() ?
if 'some_key' in dict.keys():
Ну т.е. если я выполняю dict.keys() в этот момент создается список ключей. А если я это делаю в цикле, то список ключей будет делаться много раз, значит лучше поместить этот список в переменную?
>>2513854 >будет работать Лол ну понятно что будет. Вопрос про оптимизацию. Каждый раз при обращении будет список из ключей создаваться, или этот список - готовый объект в памяти, который уже создался когда-то там вместе со словарем?
>>2509442 (OP) Блять, меня уже трясёт от этого пидорства, помогите разобраться. Есть некий код на питоне, он отлично работает из консоли. Но вот при попытке выполнить этот код из шелл-скрипта - питон просто не выполняет его. Т.е. команда типа "python zalupa.py" просто не работает, а плюс ко всему питоновкая пидорасина ещё и возвращает код завершения 0, без выхлопа. Дальше ахуеннее - кладу код питона в другую соседнюю папку - он работает из скрипта, но при переключении на другого юзера опять такая же хуита. Права на доступ к папке чекал. Просто из консольки работает всегда. Перемещаю другим юзером - уже не работает у первого из скрипта. В этом дерьме есть логи самого интерпретатора? Как это вообще дебажить, если он код 0 возвращает? До выполнения питоновского кода похоже даже не доходит, по крайней мере первые строчки уже не отрабатывают. И я нихуя не понимаю в чём разница запуска из консоли или скриптом, его же запускает один и тот же шелл, под одним и тем же юзером. Окружение? Но какого хуя оно начинает работать в другой рандомной папке? Версии питона менял, если что.
>>2513865 >До выполнения питоновского кода похоже даже не доходит Так доходит или не доходит? Если не доходит - то при чем здесь питухон тред. ты где-то на стороне обосрался. А если доходит - то, ну хуй знает. Расставь по всему коду маркеры и смотри какие сработали, чтобы локализировать "проблему".
>>2513527 Преимущество питона - изобилие библиотек, в том числе C++. И многопоточность.
Для веба преимуществ не видно. Сам питон - язык незрелый, по ООП недоразвитый как php4, страдает несовместимостью версий. Документация никакая. С зависимостями ебля. После php выглядит как мопед после люксового авто. Короче еще лет 10 до уровня пхп и джавы.
>>2513865 У тебя некая проблема с администрированием unix системы. Недавно команду придумал: python -V Ею можно определить работает ли сам и нтерпретатор из-под юзера. Еще прикольная команда есть: which python показывает путь к данному интерпретатору. Ну и дальше там всякие ls -al *.py показывает права доступа к файлам, скрипту например...
>>2513924 >джавы Думаю перекатываться в бэкенд-разроботку из бэкенд-автоматизации и раньше думал про джавуна ней тесты пишу, но после полугода скриптов на петухоне как-то нет желания дрочить фабрики фабрик Или я не прав и джава - охуенно, а я тупой уебан?
>>2513834 Девочка написала лютейшую кашу без понимания зачем она это все собирала, если можно было сделать проще. Это как видел пример кода где чел на питоне работал с циклами на манер С На типе for i in range(0, a): ....list1 Может все таки хоть доку по питону разочек откроют?
>>2513975 Джава имеет за собой поддержку больших корпораций, поэтому её выбирают крупные компании. Однако, для веба она очень медленно пишется в отличие от интерпретируемых языков, дороговата в разработке. Джава хороша как язык в возможностях ООП. Пхп её в этой плане копирует, сохраняя при этом простоту и легкость написания кода под веб.
Короче, для бекенда по размерам проекта я вижу такую иерархию: - java и php - для больших проектов - python и ruby - для средних - js и typescript - для мелочевки одностраничной
>>2513834 Так же эта чушка написала Oneline if condition, но из других ифов это оставила как есть в несколько строк. Для чего она воткнула зип для 3х элементов в которых блять еще и tuples, не ясно не понятно.......... action is not None - тут уже сразу все ясно становится.
Епттваю мать. Тут до каждой строчки можно доебаться. 13ти летнее дите хвастается как может переусложнить 2 + 2 на питоне.
>>2514072 Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
>>2514705 Не создали. Учитывая, что проблема обсуждается часто, то, вероятно, что это из-за философии python. (Поправьте, если не так). Для того, чтобы остановить поток, необходимо подать сигнал завершения. В редких ситуациях можно использовать булёвый флаг name_thread.daemon = True, чтобы поток стал демоном и он завершился с завершением основного процесса - это плохо, если выполняется работа с БД, файлом и т.д, а ресурсы, как сказано в руководстве, "may not released properly"; поэтому так делать не надо, если попадает под эти случаи.
Блин, зарегался на госуслугах на курс по python, дали тест, там задачи для выпускников 8-11 классов, пиздец, я просто нихуя не помню, плюс минус понимаю как с помощью каких то функций или формул это все считается на изи, но я просто нихуища не помню, ни логарифмов ни вообще самых обыкновенных функций даже, просто "решил" задачи методом логического мышления (ну и методом тыка немножк). Мне судя по всему школьный курс информатики и математики не помешает пройти пока жду курс, лол блять. ВКАТИЛСЯ ЕПТЫ
как аннотировать функцию, чтобы она принимала динамический кортеж типов и возвращала итератор с аналогичной сигнатурой? так, чтобы пичарм знал типы распаковываемых переменных
парни, объясните че будет если написать print(type(type(int))) в вариантах ответа "class "type" нету хули от меня хотят то, я гуглил но такого примера не нашел, я понимаю что когда ты пишешь там type(10) тебе выдаст что это int, но тут то хуле мимовкатун
>>2515586 я написал, выдает <class 'type'> но в вариантах ответа этого нет, максимально близкое по смыслу это type'type', это одно и тоже получается чтоли? Я уже специально не правильно ответил, просто хочется на будущее знать.
>>2515570 >>она принимала динамический кортеж типов и возвращала итератор с аналогичной сигнатурой >>так, чтобы пичарм знал типы распаковываемых переменных чиво блять? пайчарм то откуда может знать что у тебя может быть там внутри, если ты это нигде не описал. Сделай дженерики епта.
Почему везде пишут что змiй такой язык медленный, для "лохов" и вкатунов с 5 классами средней церковной школы? При этом это один из наиболее развивающихся языков, новые версии выкатывают быстро, появился нормальный многопоток/процессинг, скорость работы повышается через либы всякие на сях. Все это похоже на утку которую когда то пустили и теперь все ее разносят. Он же явный пример easy to learn, hard to master. Чи не?
>>2515900 А он и не должен меняться, i внутри for и i, которому ты присваиваешь внутри итерации, это разные имена, у второго своя область видимости, и на следующей итерации он перезаписывается i из for.
>>2516279 >Всмыле не попадешь? А ты думал, что все мидлосеньки сразу на такие должности попали? Щас на любую открытую вакансию с нулем опыта откликается по 300 человек, и требования к джуну стали как к мидлу 5 лет назад.
1) берет один или больше типов компонентов с объекта foo 2) все указанные компоненты обязаны присутствовать на объекте
неудачные варианты: > foo.get_components(Spam, Eggs, Qux) > foo.get(Spam, Eggs, Qux) > foo.get(Spam, Eggs, Qux) пункт 2 не используется. кажется, будто сообщаешь функции возможные варианты - "поищи такое, такое и такое, чо найдешь возвращай"
боле-лимение: > foo.find_set(Spam, Eggs, Qux) но слово set в питоне занято другим, а функция возвращает тупли в порядке указанных аргументов
>>2516290 Я вкатился 5 лет назад, недавно специально смотрел собесы джунов, не особо там все и поменялось. При том, что опыт работы над крупными проектами будучи джуном ты не получишь даже если сотни книг перечитаешь.
>>2516305 Ад самага пачатку йдзеш памылковым шляхам. Не пішы ў назве функцыі як яна працуе. Пішы якую справу яна робіць у кантэксце дамэна: гатовіць яешню, ці правярае пошту.
>>2516290 Я в 2019 году свичнулся из аналитика данных в питухон разраба, при этом питон знал на уровне пердолинга датафреймов в пандасе + реквесты + бс4 + склалхимия + паймонго. Всё писал в функциональном стиле, линтерами не пользовался, гитом не пользовался, тесты не писал, с докерами не пердолился. Теперь представь, какой я говнокод писал (да и продолжаю писать). При этом взяли на ставку мидла, и взяли просто потому что на собесах всех больше понравился + был норм опыт работы с БД, неплохо шарю в скле. До сих пор работаю, поменял за это время уже 2 места, на текущем месте уже старший разработчик (сеньерская ставка), зп апнулась по сравнению с аналитиком данных в 3 раза.
>>2516549 У меня был просто опыт в ИТ, в плане именно питон разраба у меня был опыт как у червя-пидора. Мне пришлось с нуля изучать штангу, веб, докеры, редисы и паттерны, которые по хорошему я должен был уже знать, когда меня брали на эту позицию.
Короче, придумал психологическую защиту. Просто представлю, что я изучаю питон для собственного удовольствия, а работа мне не особо и нужна. Можно еще систему файликов на компе автоматизировать, да.
Guyz, кто шарит в celery, почему мой лог вот отсюда не сохраняется в файл который я указал? Вернее все еще хуже - сохраняется но не целиком. Все это запускаю в docker-compose, логи в консоли (StreamHandler) прекрасно вижу, каждые 10 секунд туда высирается сообщение "Hello world!", но почему блэт я не вижу этих логов в файле celery.log, которые указал при конфигурировании логов? Там всего 1 единственная запись - "Celery is ready!", где остальные бля?
>>2516605 Предвижу кукарек не тему уровня логирования. Скажу так: я пробовал ставить какой угодно, всем похую. Я и там и там поставил уровень warning - в файл пишется только первая запись. Пробовал кидать эксепшн в dummy-таске, в файл traceback не пролезает в файл, логгер почему-то просто отвалился, какого хера?
Плюс часто просто шел и гуглил если что-то было непонятно.
Самую базу по питону (синтаксис итп) похуй где учить, я вроде на кодкадеми это делал. Вообще я сумбурно учился, не стоит на меня ориентироваться.
На собесе спрашивали про многопоточность/многопроцессорность/асинхронность много, про алгоритмы немного, вроде какая сложность добавить элемент в лист, сортировку пузырьком на бумажке написать не просили, про тестирование. Про паттерны спрашивали, но на них я уже запинаться стал, про веб мало спрашивали. Показал проекты свои (учебные), вроде все на этом.
Я в любом случае буду гуглить и делать сам, но может подскажите либы и куда копать.
Нужно снимать показания счетчиков и отсылать хозяину хаты. Я это делать забываю. Хочу сделать петухон скрипт, который смотрел бы сегодняшний день месяца и если я на сегодняшний месяц не снял показания срал бы постоянно в трей нотификаторы "Сними счетчики".
Как понимаю, нужна библиотека по работе с виндовым треем и виндовыми уведомлениями. И всё это должно висеть в автозагрузке компа фоном 24/7 и не жрать много ресурсов.
Хочу освоить питон и стать прости Господи программистом на уровне полуднаря правда, ибо тех вышки нема. Все пиздят, что питончик самый простой язык , но я чот сомневаюсь, какие подводные при изучении,? Реально ли попасть на работу в ДС после полугода изучения? С кем придется конкурировать?Если он самый простой, не значит ли, что кроме технарей туда идут и обычные Васяны? Насколько котируется в айти тех вышка?
Мои перки: B2-C1 инглиш, 3 месяца работы ручным макакой(не зашло, бросил), полгода работы it сапортом в неплохой айти компании. Кароче мне тут наверное нужен тот, кто вкатился по сути с нуля в ДС без тех вышки. Есть такие ребята?
>>2517227 Если ты говоришь про дата сайенс, то полгода - мало, если ты не супер гений, но я в этом сомневаюсь.. Сайты парсить, наверное, можно научиться за полгода, но тоже требует усилий.
И для класса B (172...) регулярка отказывается работать пока не заэкранирую бэкслэшем "16-31" -> "16\-31". Жалуется на какой-то range. Хотя на сайтах верификации регулярок все отрабатывает нормально. Чё это за хуйня?
>>2517725 Они сделали костыль в виде soft keywords для совместимости, лул. Это типа кейворд, но его можно использовать в виде имени, чтобы не ломались старые скрипты с такими именами. Но зная что он уже есть, лучше не использовать, да. >>2517967 Ты неправильно понимаешь классы символов. [0-255] это не от 0 до 255, а от 0 до 2 и 5. [16-31] это не от 16 до 31, а 1 и от 6 до 3. Так наоборот нельзя, вот он и ругается. Другие движки может и не ругаются, просто делают не то, что ты думаешь.
>>2517982 Но вообще это переусложнено, эта первая галка должна чуток сократить. А вообще, гугли сразу готовые варианты для айпи, это дохуя частая задача, так что готовых оптимальных вариантов должно быть навалом.
>>2519496 number = int(input("The number is: ")) min_num = min(number / 100, 101) max_num= max(number / 100, 101) print(f"The minimal number is {min_num} and the maximal number is {max_num}")
>>2519496 Когда ты конвертируешь все возможные двузначные строки в инт, у тебя минимум находит некорректное однозначное число, например для '100' минимум по твоему коду будет int('01') = 1
Планирую покупать курс, потому что, во-первых, я - даун, а во-вторых я знаю себя и банально не смогу проебывать обучение, зная, что я за него заплатил. Какие из существующих больше всего котируются?
Ты, очевидно, в новостях прочитал об этом. Но прочитал невнимательно.
"накодить" легко. нужно чтобы предсказатель еще и угадывал с приемлемой точностью. Вот с этим очень большие проблемы. Там в новостях даже не указана точность.
>>2520195 >>2520173 я спРАишвал именно чтобы УБЕР точный был. рандом параша не нужна Чтобы все матчи с точностб 100% бустанул И я не в новостях прочитал, а узнал что фонбет за такое сто лямов дает
>>2520315 вообще я наукоёмкий человек >>2520245 как думаешь когда примерно такую тачку сделают и что это изменит в мире? не наступит ли сразу полный коллапс?
>>2520440 > а что если все этим матчи забигдатить? все мельчайшие параметры? ... то ничего не произойдет. все привлекательные способы заработать на пустом месте давно уже обдуманы людьми.
Пачаны, как такую фигуру описать в Питоне? Типа чтобы за пределами круга выполнялось одной событие (принт), внутри круга и вне красной зоны - второе событие, внутри красной зоны - третье событие.
ебать ты глазастый. я уж пошел гуглить чем искать коллизии точки и фигуры из кривых безье либой bezier вроде прям рилворлдкейсом пахнуло, йопта. всегда выборка значений внутри странного набора простых геометрических фигур оказывается
На самом деле это задание из раздела "Условный оператор" из "Основы Питон" от Яндекса. Там по ходу задания так составлены что процентов 50 норм, еще 40 посложнее и 10 изъебистые.
>>2509442 (OP) Пацаны, тут случилась небольшая оказия. В celery мы из Джанги вытягивание содержимое нескольких таблиц и засовываем их в pandas-датафреймы, что-то типа:
Было бы неплохо эти операции сделать параллельно, т.к. это простой SELECT, но в каждой такой таблице по миллиону строк а в ссаной Джанге все они делаются последовательно. Кто-то может сказать "но чел бля, у тебя ж celery - засунь все в разные celery-таски!", по началу идея вроде здравая но вы учли оверхед на сериализацию/десериализацию? Если celery-таска будет в результате выдавать список с миллионом словарей это пздец, поэтому все это надо сделать в рамках одного таска. Как обычно в Джанге такое решают? Тредов наплодить?
>>2509442 (OP) Нужны советы по следующему вопросу. Я пилю диссертацию параллельно с проектом. Суть проекта заключается в создании симуляции классической настольной игры Монополия для нахождения оптимальных выигрышных стратегий. Проект пишу на Python. Научрук сказал, что прикольно бы было сделать это с использованием машинного обучения. Если с созданием условий для игроков в виде ролла костей, карточек шанса, условий при попадании в тюрьму и прочего я не испытываю проблем, то в части с машинным обучением я полностью проседаю. Я не могу установить отправную точку. Мне нужно сделать хотя бы 4х игроков ИИ, которые будут играть в Монополию и набираться опыта, чтобы с каждой итерацией игры они играли лучше и лучше, но я хз как именно сделать модель. Забить им правило, чтобы они сперва покупали хоть какую-то улицу, а потом пытались собрать сет из них? Но не будет ли это тупо алгоритмом действий? Алсо, не ясно как быть с аукционами и моментом, если игроки захотят поторговаться друг с другом, чтобы получить недостающие улицы которые уже есть у других игроков. Даже начал читать Grokking Machine Learning чтобы как-то разобраться в этой теме.
> Почему Монополия - на самом деле очень плохая игра
>"Все сводится к везению, - говорит Рейнольдс. - Цели в ходе игры не меняются, поле все время одно и то же. Никакой особой стратегии не существует. Добавьте еще то, что приходится долго ждать своего хода, и вы поймете, почему людям так скучно в нее играть
>>2521692 Ну собственно он меня и послал читать книжки по данному вопросу. Есть какая-то проблема в его решении? Я просто не шарю. У меня направление Big Data, и мы поверхностно проходили машинное обучение, так что его применение здесь мне показалось логичным.
Грессер Лаура, Кенг Ван Лун Г91 Глубокое обучение с подкреплением: теория и практика на языке Python. — СПб.: Питер, 2022. — 416 с.: ил. — (Серия «Библиотека программиста»). ISBN 978-5-4461-1699-7
PyQt 5: QTableWidget отобразить значения спискаАноним23/11/22 Срд 21:56:59#358№2521748
Почитал есть метод, который задает значения таблицы поэлементно setItem(). Допустим у меня есть двумерный список, есть способ быстро присвоить значения этого списка таблице не перебирая их в цикле поэлементно?
У меня функция edit 1 в 1 как у молодого человека. Оно как бы работает, подсасывает данные в нужную форму, сохраняет, вот только оно сохраняет мне новый пост, а не отредактированную версию старого.
Что я делаю не так? Пока писал, осенило, что, возмоно, дело в том, что в поле форма нет нкиакого упоминания об id (хотя пост я нахожу по id), может быть где-то тут собака зарыта...
>>2521766 сохраняешь форму, но не пишешь её в базу с помощью commit=False затем присваиваешь старый id, чтобы не создавалась новая запись в бд и затем .save() и ещё в Джанго есть метод update()
>>2521536 >>но вы учли оверхед на сериализацию/десериализацию Ну так посчитай что быстрее будет. Откуда мы знаем что у тебя там за объемы и сложность твоего говна.
Смотрю описание таблиц в PyCharm Pro, вот одна из них. Не могу въехать, почему где-то (abc и id) колонка выделена синим а где- то нет? null / not null это другое - за это отвечает точка в левом нижнем углу, у всех колонок тут например стоит not null. Foreign Key тут также ни при чем, он обозначается ключиком в правом нижнем углу, тут FK нет
>>2522922 И как тебя тайп хинты спасут, еблуша? Они помешают в рантайме сконкатить 2 фрейма, где в первом тип колонки флоат64, а в втором - инт64? И расскажи поподробнее про статическую типизацию, mypy, cython, а то гуглить лень. Выше уже писали про пайдантик. Либо создавай свой датакласс и пиши свой `__post_init__` с кастомной валидацией.
>>2522977 Это я их в рот выебу если они такое у меня будут мутить Потому что я сейчас вынужден разбираться с их помоями, и мне не в кайф в них копаться. Часть я поправлю остальное будет уже на них, если они не будут соблюдать эти конвенции, будут выебаны в жопу ПМом и лидом
>>2522957 >в рантайме Статическая типизация это не про рантайм. Typescript тоже в рантайме не делает нихуя
>>2523018 >Typescript тоже в рантайме не делает нихуя Так он компилится в жс. Что мне мешает всем поставить всем any и в конфиге компилятора уровень проверки минимальный поставить?
>>2523128 for i in range(100, 200+1): # Store i as a string on a separate variable var = str(i) # Split i var_parts = var.split() # Go through the parts for i in var_parts: if i % 17 == 0: sum = sum + i
>>2523018 >Потому что я сейчас вынужден разбираться с их помоями, ты чьмо и кодерок взаимозаменяемый. а датасаентист - учоный и светило. какое твое дело?
Страшие братья, вот я сижу, решаю задачки для совсем чайников и задаюсь вопросом, а хули так сложно? В работе тоже придётся изъебываться так же, как и в задаче с пайтонтьютор?
парни, есть тема в leader-id https://leader-id.ru/events/342770 сам на питоне писал только в школе но интересно изучить. А тут как раз на хакатон наткнулся. был бы рад чтоб меня подтянули (раньше писал на laravel(php)) и хочется найти друзей/знакомых в этой нише
Я так и не понял, зачем нужны классы, если можно создавать функции и внутри них методы. Можно хоть один пример задачи, которую можно выполнить с помощью классов и нельзя с помощью функций.
>>2524983 Сделать ты можешь как угодно, но проще и удобнее будет через классы. Если сейчас не можешь это переварить пока ньюфак, то поймешь потом со временем.
>>2524983 Создай на функциях онли вариант игры shoot-em-up (где кораблик внизу, а сверху на него летят враги). И реализуй на функциях снаряды врагов, снаряды игрока, появление кораблей врагов и их исчезновение при попадании по ним игрока или при достижении нижней границы экрана этими кораблями.
Просто попробуй. А потом это же сделай на классах.
>>2524983 >пример задачи, которую можно выполнить с помощью классов и нельзя с помощью функций Рекомендую пыху, там на каждый класс стдлибы есть по 50 дублирующих его функций засирающих глобальный неймспейс, рекомендую, еще захочешь.
>>2525010 >А потом это же сделай на классах. В следующей серии - поясните за преимущества классов, перенес функции в де факто статик методы, ниче не поменялось, только объявление классов добавилось.
>>2524983 а ты и не поймешь пока не будет работать в коллективе. Вопрос не в удобстве. И нет такой задачи, которую нельзя было бы выполнить без классов.
Классы - инструмент поддержания порядка в большом легаси-говне. Как только будешь это держать в уме, сразу поймешь все ООП и классы.
>>2524983 второй важный фактор - возможность менять программу под изменяющиеся требования кабанчика, который либо сам не знает чего хочет, либо действительно условия ведения бизнеса меняются со временем. К этому относятся все варианты мантры DRY (Don't Repeat Yourself).
Почему программисты такие тупые и объясняют все мантрами - я не знаю
Устроился полгода назад QA Automat эникеем по блату.
Обязанности: - Писать pytest под разные железки для проверки интерфейсов. - Писать простенькие bash скрипты. - Поддерживать инфраструктуру (коммит-хуки, репозитории, CI/CD и не пизди). - Верстать доки по всякой хуйне. - Диджитал подай-принеси.
Куда можно пытаться развиваться? Девопс? Дальше в QA расти?
Не чувствую своей незаменимости, а значит зарплата расти не будет. Прогресс идёт очень медленно потому что работа связана с железками. Любая проблема с железкой тормозит мою работу. Если что-то сломалось мне нужно ждать пока другие люди починят и заменят. Если появилось что-то новое мне нужно ждать пока примут коммиты по поддержке новой ебанины.
>>2525254 Зачем создавать функцию внутри функции, но при этом вызывать её снаружи?.. Ты осознаёшь, что ты делаешь? Пространство имён не просто так придумали, с которым у тебя тотальное непонимание. 1. Один из не самых лучших вариантов - это создать функцию, который передавать какой-либо аргумент. На основе значения аргумента выполнять действия и возвращать результат через return, если это необходимо. https://pastebin.com/utk7iGK7 2. Нормальный вариант - это создать класс, у которого шаблон Singleton, и вызывать методы. https://pastebin.com/ec6uhcHs
>>2524316 На работе у тебя код будет в десятки и сотни тысяч строк... И не всегда с документацией. И не всегда будет в коллективе кто-то, кто смог бы объяснить что здесь, откуда, почему и куда (люди могут умирать или уходиться с работы).
И на работе ты будешь отвечать за деньги кабанчика.
>>2525496 0, Дублируй код / данные на pastebin и аналогичные сайты. Нет желания печатать текст вручную, когда можно обойтись. 1. "Вытащить значения", которые будут сохранены в словаре: https://pastebin.com/4ySvJ9wq > присвоить переменным Подскажи, пожалуйста, а как возможно создавать переменные автоматически и, что самое главное, обращаться к ним, если их название (вышеупомянутая TestValue) может быть произвольным, т.к... пользовательские данные могут быть различные; можно буквально генерировать псевдослучайные данные (см. информацию о random). Я знаю, что можно динамически создавать объекты, если есть класс.
>>2525496 Нужен парсер такого файла. Это я хз какой формат. Бывают стандартные, типа json, toml, для них качаешь библиотеку (или встроенная) и скармливаешь файл конфига. Они тебе в ответ, обычно, выдают dict с конфигурацией из него.
Будучи джуном на работе дали задачку креативную, сделать для фронта доку в swagger, при попытке понять/осознать что там писать, словил кучу нервяков. Есть кто-нибудь кто занимался чем-то подобным и может проконсультировать?
Котаны проблема с кодировкой, энкодами декодами дрочился, читаемого ничего так и не получил, строку с болдом можно удалить и посмотреть что получается на выходе, что-то примерно такое ['СоÑ\x85Ñ\x80аненнÑ\x8bе'], что сделать чтоб эта галиматья нормально отображалась?
>>2525412 >На работе у тебя код будет в десятки и сотни тысяч строк Предположим, что джуна на такое сразу не кинут, но понимаю, о чём ты. Умру за деньги кабанчика. Ну или уволят.
Мне нужно с определенным интервалом парсить несколько сайтов. Я тупо записываю предыдущее время парсинга в переменную и добавляю в глобальный словарь. Всё работает, но недавно вот узнал, что юзать global в принципе - плохая практика. Как тогда сделать правильно и по питоновски?
>>2526068 Блин, ну это колхоз какой-то. Нагромождение хуйни. Это больше кода, чем у меня сейчас. И что делать если if не вызывается? Значит еще больше ифов добавлять. Хуйня какая-то, с записью в глобальную гораздо удобней.
>>2526074 Ну вообще глобалы на свой страх и риск используй. А так, передаешь свой словарь в аргументы, внутри функции его меняешь и его же возвращаешь в самом конце, после всех ифов. И вместо трех вызовов функции сделай цикл нормальный внутри функции.
>>2526040 Есть надежный способ как переделать глобалы на неглобалы. Создаешь класс, все глобалы делаеш аттрибутами класса, все свободные функции соответственно превращаешь в методы. Потом создаешь один экземпляр класса и на нем все что нужно запускаешь.
Гайз выручайте , не пишу на питоне выдали лабораторку. Сколько не читал документацию библиотеки , форумов понять не могу. Ошибка вылетает на 8 строке. Как я понял нужно c помощью скрипта вынуть инфу о блоке в блокчейне с помощью ключа. Так еще сам скрипт который выдали с ошибками
>>2526327 AttributeError: 'str' object has no attribute 'decode'. Did you mean: 'encode'? При попытке изменить на encode получается замкнутый круг. Пробывал загрузить ключ в отдельную переменную тоже не работает.
>>2526317 Сначала нужно функцию вызывать, чтоб в области видимости стали видны её атрибуты (функции), дальше можно без скобок достучаться до её атрибутов (функций).
>>2526336 >Сначала нужно функцию вызывать, чтоб в области видимости стали видны её атрибуты (функции), дальше можно без скобок достучаться до её атрибутов (функций). Выглядит как дерьмовый дизайн, если честно.
>>2526831 А можешь конкретнее сказать что мне нужно? AWS Lambda?
Я в вебе совсем ноль, писал свой клиент-сервер для локалки на плюсах минимальный со своим простейшим протоколом, знаю про всякие udp и прочее, но что там с такими крупными платформами, или с авторизацией - вообще без понятия.
Нужна функция реагирования по событию (чтобы с любого айпишника можно было его отправлять), и чтобы оно само раз в несколько часов по своим таймерам могло отправлять сообщение на айпишник. А это выглядит как то что оно в фоне никак не работает, а только откликается на запросы.
>>2526852 https://aws.amazon.com/free/ На год бесплатный триал. Ну и подобные сервисы довольно дешевые. Чтобы откликаться на запросы машина должна работать 24/7. Не знаю сервисов, которые бы могли поднять машину по запросу, и чтобы она в остальное время спала.
>>2526880 Посмотри на с++ код sfml, там множественное наследование и очень простая логика классов, смотришь и сразу понимаешь что лаконичнее не напишешь и классы тут уместны.
>>2526899 Но ведь функции можно объединять внутри функций.
>>2526904 >Посмотри Посмотрел. Всё равно непонятно зачем нужны классы. Чем они принципиально от функций отличаются? Поясните нюфагу же, ну.
Вот надо мне запилить ОБЬЕКТ который считал бы количество залуп. В каком случае мне нужно делать функцию, а в каком класс. Что такого в классе чего нет в функции?
>>2526917>>2526880 Ты про функциональные объекты с методом __call__ или про обычные классы?
Функции - когда у тебя какая-то операция над данными. Сортировка, там, нормализация векторов, что хочешь.
Классы когда тебе нужно хранить сложный объект с кучей параметров. Пример - дискорд-бот, ты создаёшь экземпляр бота, он логиниться, и он уже может принимать и отправлять сообщения, и при этом он должен в себе хранить соединение, айдишники и прочее, а при отсоединении всё это убрать? И его можно передать в параметр функции, которая используя переданного бота отправляет прогноз погоды на сервер условно говоря. Ты точно хочешь подобную задачу решать без классов? Да хотя бы как ты бота будет передавать в функцию? Как словарь с полями?
>>2526928 >как ты бота будет передавать в функцию? Как словарь с полями? Блин? ну с какими он данными там работает? такие данные и будут передаваться куда следует. Абсолютно точно так же как и с классом же, не?
Я правильно понимаю, что класс это такой обьект ООП, который в себе СОХРАНЯЕТ свое собственное окружение с данными, переменными вот этим всем и может с ним туда-сюда передаваться. И в этом его особая отличие от функций, которые из себя представляют просто алгоритм, а данные для них надо сохранять отдельно. например в глобальной среде, а это не удобно?
>>2526933 Функции и классы - это вообще разные категории объектов, я не понимаю что ты спрашиваешь уже.
Ты можешь практически любую программу написать вообще без классов (если не считать, что строки и списки - тоже классы), но это будет очень невыразительно.
>>2526933 Предположим у тебя есть функция отправить - куда можно передать как изображение (по ulr или набор байтов из файла) так и простую строку. Как ты предлагаешь хранить строки и изображения без классов, и какой у тебя будет код обработки всего этого? Я знаю как это написать в таком виде без классов, но не знаю как написать чтобы код был понятный, его было просто редактировать и изменять и в нём было сложно ошибиться. Совсем не знаю.
>>2526956 >Функции и классы - это вообще разные категории объектов, >вообще разные Ну если они ТАКИЕ РАЗНЫЕ то обьясни нюфагу в чем между ними разница, что может класс чего не может функция? Может они не такие уж и разные?
>>2526957 >Как ты предлагаешь хранить строки и изображения без классов
Ну если так поставлен вопрос, то почему бы не хранить это в каком-нибудь массиве в глобальном окружении. Где тут необходимость классов, не понимаю. Чому так сложно объяснить?
>>2526983 Скучно уже, ты просишь разницу между микроволновкой и радугой показать. >Где тут необходимость классов, не понимаю. Классы необходимы, так как они используются в 99% либ. Ты конечно можешь их не использовать и написать свои на функциях.
>Чому так сложно объяснить? Код напиши того что я предложил, про отправку картинок и текста.
>>2526983 >обьясни нюфагу в чем между ними разница, что может класс чего не может функция Вопрос семантики, удобства разработки и поддержки. Почитай, что такое наследование, инкапсуляция, полиморфизм. Конечно в питоне можно всё то же самое делать и без классов - в конце концов кроме ООП есть множество других парадигм программирования. А вот в джаве без ООП уже никуда
>>2527054 >>2527040 >>2527058 Ладно, скажите хотя бы про локальную видимость данных. Вот в функциях локальное пространство создается при вызове функции и удаляется сразу когда функция возвращает что-нибудь. А в классах как? Локальное пространство класса со всеми переменными и данными сохраняется всегда? Это бы имело смысл и было бы тем отличием, которое я ищу.
>>2526983 >почему бы не хранить это в каком-нибудь массиве в глобальном окружении Тут-то ты и попался, петушок global'овский. Потому что одна из основных идей в программировании это максимальная абстракция и разделение ответственности.
Ты когда в автомобиль садишься, ты же не видишь через панель двигатель, под ногами карданный вал и мост, а под жопой кучу электроники и асфальт?
Никто тебе не мешает, почти как в C, хуйнуть свои данные в массив и делать с ними что хочешь. Сначала одной функцией тебе надо обработать первые n элементов, потом второй функцией m элементов, а потом третьей каждые n+m/3. Вот только проебёшься с указателем и одной функцией зацепишь данные, которые для неё не предназначены, или словишь сегфолт.
Функции это черные ящики, они нужны чтобы что-то получить (или не получить) и что-то вернуть (или не вернуть), при этом у них может быть побочный эффект, который может влиять на что-то в другой части программы. При их вызове ты ожидаешь тот результат, который описан в их интерфейсе. При этом данные, с которыми она работает, не привязаны к самой функции. И функция не хранит состояние этих данных (про замыкание молчим).
Классы это панели управления, под капотом которых черные ящики, они нужны чтобы данные и функции, с которыми эти функции работают, обернуть под единую абстракцию с общим интерфейсом. При создании объекта ты ожидаешь, что объект хранит конкретные данные и имеет конкретные рычаги управления этими данными.
В итоге получается, что ты можешь всё написать на функциях, но данные у тебя хуй знает как будут елозить по программе и не будет отдельных зон ответственности за эти данные, если только переносами не отделишь группы функций и переменных, которые отвечают за конкретное что-то. Читать и тестировать потом такой код намного сложнее. В случае изменения сигнатуры функции тебе придётся править взаимодействие с ней в разных частях кода, если она не разово вызывается, а в классе достаточно метод переписать.
>>2527061 И у класса и у экземпляра класса (объекта) свои области видимости, и существуют они ровно до момента, пока ты на них не удалишь ссылку или живёт процесс. >в функциях локальное пространство создается при вызове функции и удаляется сразу когда функция возвращает что-нибудь. Необязательно, ты можешь возвращать функцию или сделать замыкание или декоратор и тем самым прокидывать данные.
Я учу алгоритмы на питоне и очень много времени трачу пытаясь разобраться почему мой код не работает. Есть ли форумы в которых уместно задавать вопросы типа: вот посмотрите на мой говнокод, объясните почему он не работает?
Я вот полный нуб и понял только, что функции это простые кирпичики программы (которые можно вынести в отдельный файлик-модуль, а потом подключать по желанию), а классы - это более сложные кирпичики программы (которые тоже можно вынести в отдельный файлик).
На хрена мудрить?
Алсо, помню что в html кокодемии нас учили в плане js, что весь код должен в идеале находится в функциях. Вообще весь.
>>2527119 Так выше уже писали про функции, что это просто последовательность команд, которую можно оформить единым блоком, который потом можно вызывать многократно в разных частях программы, но чел начал ебать мозг про "зойчееем квассы када уже есть ункции, ря квассы нинужныы". В жиэсе вообще нет нативных классов, там классы это синтаксический сахар над функциями, т.е. там действительно классы могут быть ненужоны.
Пытаюсь написать минимакс для крестиков-ноликов. Бот во время игры просто выбирает первое попавшееся свободное поле слева направо. Не понимаю почему нормально не работает(. Вот код:
def minimax(board, isMaximazing):
#Когда доступных ходов больше нет, смотрим кто победил if ' ' not in board.values(): score = 0 if isMaximazing: if checkWhichMarkWon(computer): score = 1 elif checkWhichMarkWon(player): score = -1 else: if checkWhichMarkWon(computer): score = -1 elif checkWhichMarkWon(player): score = 1 return score
#Лучший ход для компьютера if isMaximazing: score = -800 for i in board.keys(): if board == ' ': board = computer minimax_score = minimax(board, False) if minimax_score > score: score = minimax_score move = i #Лучший ход для человека else: score = 800 for i in board.keys(): if board == ' ': board = player minimax_score = minimax(board, True) board = ' ' if minimax_score < score: score = minimax_score move = i print(score) return move
def computerMove(): #Скопировать текущую позицию для минимакса new_board = board.copy() move = minimax(new_board, True) #Сделать ход insertLetter(computer, move)
>>2527156 Мне после питона жс показался ещё более простым языком. Его сложность в спецификациях, кучи апи и нагромождении инструментов вокруг языка (babel, webpack и т.п.)
>>2527181 А с питоном так нельзя что ли? Соблюдением pep8/name/type convension и настройкой конфига pylint/flake8/mypy занимается команда в нормальных местах, а не берётся само по себе или из репо тимлида-хуесоса.
>>2527099 Так что конкртено может квас, что не может ункция? Ты можешь на мой ответ ответить или да? Вот в квасе есть семь залуп, а в функции только две с половиной. Есть такое и если есть то что это?!?!?!?!?!?!11111
>>2527267 У тебя вопрос уровня как лучше какать в яму, на корточках или взять стул и в нём очко выпилить. Сри как тебе удобно, но с стулом вероятность провалиться в яму меньше и другие могут с него срать.
#get 'Spurs' value from team column df.loc[df.team=='Spurs'].values[0]
Для ДСера это кажется логичным но для меня - нихуя. Давайте поглядим, что у нас внутри квадратных скобок? df.team=='Spurs' Это ж блять булево значение! Результат сравнения. Но по логике pandas это выражение говорит "найди строчки в датафрейме df где поле в колонке team равно 'Spurs'"
>>2527323 Это не булево значение, а серия (кортеж) из индекса и булевых значений. loc первым параметром принимает эту серию и возвращает отфильтрованный по индексу результат
Когда я запускаю эту программу одновременно много раз, иногда выходит ошибка как на 4-ом пике. Как убедиться перед чтением файла, что другая программа в этот момент его не записывает?
>>2527053 Может все, но хуево. Десктоп, мобилки, фронт (да и то это сложно назвать фронтом, учитывая итоговую компиляцию в жс, да и вообще это просто забавная игрушка на данный момент, даже не серьезно) это смешно. Да и в бэке питон сосет у нормальных языков. Вот и остаются всякий машоб, бигдата и скриптики для сисадминов. Ну и питон полезный язык для не-программистов, как вспомогательный инструмент.
Если есть аналитики в треде, то, пожалуйста, посоветуйте куда смотреть после прохождения начальных курсов по питону. Знакомиться с библиотеками, решать ситуационные задачи? Планирую вкатываться после защиты докторской по медицине занесла нелёгкая, навыки в стат. обработке и визуализации есть, то есть я сейчас стараюсь закрыть область с получением данных, наведением в них порядка и т.д. Может что-то не так понимаю.
>>2519496 Посмотрел твой код и ошалел, не говорю что не правильно потому что не понимаю.) А не понимаю потому что все что там пишешь на этом этапе ты не проходишь и писать и думать я полагаю нужно примитивней на уровне пройденного материала. То же сначала не получилось, не найдя ответа в инете немного посидев прошел задачку. вот код a = str(input()) a1 = a[0] a2 = a[1] a3 = a[2] min1 = int(min(a1, a2, a3)) max1 = int(max(a1, a2, a3)) min2 = int(a1) + int(a2) + int(a3) - min1 - max1 if min1 == 0: print(str(min2) + str(min1), str(max1) + str(min2)) else: print(str(min1) + str(min2), str(max1) + str(min2))
Предыдущий:
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
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, но разницы почти нет)
— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://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.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
старая версия шапки, треды 90-148 и ранее: https://dumpz.org/bASGKD8cCFDf
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущий исходник: https://goonlinetools.com/snapshot/code/#8gd2g1snu3l8i26k0bc6k9