Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: 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.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
старая версия шапки, треды 90-148 и ранее: https://dumpz.org/bASGKD8cCFDf ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Как тестировать методы сервиса апи-гейтвей, если они на той стороне обращаются к другим сервисам? Тесты должны запускаться после того, как сервис задеплоился или до?
Народ, а есть какой-нибудь встроенный способ перекидывать итератор на начало списка? Например, есть список (кортеж, множество, не важно), создаём итератор, функцией next перебираем элементы и в конце нужно перейти снова на 1й элемент. Нигде в руководствах пока не нашёл способ сделать это проще, чем перехватывать StopIteration траем и вручную его назначать на первый элемент.
>>2603772 >Народ, а есть какой-нибудь встроенный способ перекидывать итератор на начало списка? Например, есть список (кортеж, множество, не важно), создаём итератор, функцией next перебираем элементы и в конце нужно перейти снова на 1й элемент
>>2603812 >>2603820 >а есть какой-нибудь встроенный способ Свой класс связанных списков я могу написать со всеми методами и пр. Вопрос был про возможное изобретение колеса. >>2603824 Предложи другой способ, кроме написания отдельного класса >>2603826 Я так-то не фанат подгружать модули ради одной-двух функций.
Видимо, проще и быстрее самому написать такой класс
Захожу через Selenium на сайт с прокси - всё нормально, CloudFlare пропускает.
Захожу на сайт с измененным user agent - всё нормально, CloudFlare пропускает.
Захожу на сайт с прокси и измененным user agent - CloudFlare считает меня за бота и не пропускает.
Почему? Как так, что по отдельности он не триггерится, а если и прокси и фейковый юзер агент, то стопорит. Айпи же вроде вообще никак связан с юзерагентом.
>>2603772 Ты напиши кейс в котором тебе такое может понадобиться? Если это список ты просто можешь счетчик с range использовать скинуть в 0 когда надо.
next подразумевает что у тебя и генератор там может быть из которого ты элемент не получишь второй раз.
>>2603881 >Я так-то не фанат подгружать модули ради одной-двух функций. Ну забудь об этом и подгружай. Целку тут строить из себя не нужно >>2603881 >Предложи другой способ, кроме написания отдельного класса i = i % len(list) Как индекс доходит до длины списка, то снова становится равным 1. Хотя если ноль нужно, то if i % len(list) == 1: i = 0
>>2603887 Кейс простой: у меня в игре задействовано время вообще и месяцы в частности, а также перемещение во времени. Месяцы в списке и смысл в том, чтобы когда в ноябре вызывалась функция МесяцевСпустя(3), то был февраль, а если в марте МесяцевНазад(6), то был сентябрь. >>2603915 >>2603924 >i = i % len(list) о, спасибо за изящное решение! Хотя над копипастой функции из модуля тоже подумаю)
>>2603659 Как забанить всех чсв хуеплётов, чтоб они съебали в свой закрытый чатек в телеге надрачивать друг другу с тишкой, которые строят из себя дохуя интеллектуалов, которые также спрашивали когда-то, условно, чем отличаются футуры от тасок в асинкайо, а теперь преисполнились, но по факту продолжают на работе перекладывать жысоны и пилят кабанчиковые проектики копируя код из гугла/чатгопоты. Рака яиц тебе, желчный профессиоанал.
https://leetcode.com/problems/plus-one/ Подскажите дон где у меня дон тут неправильно дон ? Тесты же изначальные проходит же, но вот на списке [9,9] не получается пройти еже или я задание не так понял епта? Нужно всего лишь прибавить единицу к последнему элементу списка и вернуть измененный список: [1,2,3] + 1 = [1,2,4] [9] + 1 = [1,0] [9,9] + 1 = [9,1,0] Так должно быть?
>>2603969 Этих петухов надо на завод гайки крутить или на судно или в тайгу и тундру, лопату им в руки, кирку и молоток...пусть попробуют тяжелый труд, глядишь и успокоятса. Поймут может чего через облагораживающй тяжелый физический труд и в скором времени говнится перестанут
https://leetcode.com/problems/reverse-bits/description/ Как вообще работает литкод? Какой-то он мудренный в сравнении с кодварс. Как возможно передать в функцию тип ИНТ с лидирующими нулями и потом его еще обрабатывать? Как они это делают? Откуда они знают как решають эту задачу? Я вот учился и везде читал что нельзя чтобы нули были перед интежер, а тут литкод дает задачу где интежер представлен с лидирующими нулями.
>>2604117 Ничего не понял. Я взял их инпут и запустил в иде. И иде выдает ошибку. Говорит откуда тут нули говорит. И рабочий код уже в моей иде не рабочий. Как это объяснишь, сученышь? На завод тебе надо, к мужикам, вежливее стал бы
Чому сраный пайчарм не тромозит на сраном брэйкпоинте?
Вот у меня простыня. Там в середине ошибка из за того что список не того формата в переменной оказался. Решил что пойчарм поможет разобраться со своим хваленым дебагом. Ставлю карсную точку. До места ошибки, запускаю нажатием на пиктограмму жука. Скрипт тормозится всё равно на месте ошибки, а не на месте красной точки.
Гуглинг не помогает. Во первых потому что в пайчарме походу слишком часто интерфейс меняли половина того что находится не актуально. как будто про другую прогу. В официальных гайдах какая-то мммммаксимально общая и пресная инфа типо нажмите на поле - появится красная точка - наслаждайтесь.
>>2604119 Макака увидела string и сломала мозг? Для тупых - 32bit binary string - НЕ значит что на вход подаётся строка. String в данном случае переводится как "последовательность". Это значит лишь то, что инты будут меньше или равны 32 бит.
>>2604131 Ну то есть подаётся именно десятичное число. Я через вот разделение на 2 получил двоичное представление в видео строки. Оно уже перевёрнуто потому что записывал остатки как от деления в столбик Я перевожу его в инт(s,10) Но почему-то не срабатывает у меня теряются нули которые спереди и часть из переносится на правую сторону и в итоге число становится другим не таким как я получил в строке
>>2604154 Я по возможности стараюсь писать как надо, просто когда я учился у нас был си и там вот так писали и я видимо привык и поэтому когда я не знаю как на питоне использовать нужный инструмент я делаю такие циклы
>>2604159 А можно как-то "скипнуть" итерацию только встроенными функциями? В интернете везде пишут что надо itertools подключать, а не хотелось бы из за одного единственного действия во всей программе это делать.
>>2604216 Зачем тебе моя инфа. Я вроде нормально задачу описал. Что на вход что на выход. Мне нужно что то с этим вводными сделать, а ты видимо хочешь применить СМЕКАЛОЧКУ и что-то изменить на участке ранее т.е. изменить вводные.
>>2604223 Ну либо явно указывать элементы, которые должны попасть в итератор, по идее это должно быть экономнее по памяти чем слайсы, т.к. не создаётся список: [n for n in zip(\*((i[0], i[2]) for i in _input))]
есть кто вкатывался в golang после питона? книжки посоветуете? или может каналы? любил учить яп в codewars, но думаю без базиса не выйдет на вид синтаксис плюсы напоминает и из-за этого страх появляется из-за работы с этой вонючей памятью (боже храни garbage collection) наверное кто-то в меня камни будет кидать, что я не в тот тред пишу, но просто гляньте на хабре сколько вакансий с go и сколько вакансий с django (да, я сам в шоке) (да, чаще вакансии включает и python и go, но все же, отношение 1 к 5)
>>2604166 >В интернете везде пишут что надо itertools подключать, а не хотелось бы из за одного единственного действия во всей программе это делать. чел, это норма, любого, кто пилит велосипеды будут бить по яйцам. твой говнокод с костылями будет в сотни раз хуже обычного импорта from python только из-за библиотек и цениться, нативный питон это уровня паскаля, чисто для школоты
>>2604335 Чел, у питона в половине этих замечательных библиотек под капотом обычные алгоритмы из встроенных функций и циклов. А ничего не импортировать наоборот признак элитарности, сразу все понимаю какой крутой кодер писал, тимлид, не меньше.
>>2604338 Многие встроенные библиотеки написаны на C. Поэтому использовать их обязательно. Видишь эти пассы? Но функции то работают, а это значит, что они используют C. Твои решения будут просто в сотни раз медленнее. Буквально
я так жоска обосрался один раз, думая, что одна пупи либа йоба сишно наоптимизирована. месяцами писал убогие байпассы-костыли между своей архитектурой и этой либой, потому что у нас был принципиально разный подход к дизайну. и всё ради скорости исполнения, ведь эта либа наверняка сишная... так, падажжите, что тут у нас.. ёп макарёк, да там же дубовые лупы на питоне, сука! это пуре путхон модуле! выкинул эту рухлядь и навелосипедил свой велосипед
>>2604356 Все встроенные модули это вся та же часть питона, которую просто разделили дабы не слишком сильно захламлять область видимости кучей ссылок. То есть тут даже не стоит вопрос о том, что бы какой-то модуль с гитхаба грузить, где точно неизвестно, что навертели.
Не использовать именно их это значит говнокодить на уровне 9го класса, где тебе двойку поставят за попытку что-либо импортировать, ибо учителя знают только ванильный питон на самом примитивном уровне.
>>2604360 Всё верно. Стоит вопрос только о том чтобы >не слишком сильно захламлять область видимости кучей ссылок
Если разработчики питона так сделали, значит и элитный синьор тим лид так делать должен. Ему не нужно захламлять область видимости ссылками. ведь он может зделат всё на одних встроенных функциях.
Откуда в петухон треде стало столько говнюков как в треде про ксяоми? Раньше в питон треде люди были добрее и отзывчивые терпимые смиренные как в треде самсунгистов. А теперь тут будто сборище ксяомистов. А понял, питон это ксяоми от мира программирования так сказать топ за свои деньги
Стоит браться за написание тг бота по функционалу, чтобы парсил информацию из других соц сетей типа дискорда, если мой уровень это решать задачи 7 kyu на кодварсе? Если нет, то как знания улучшить до этого? Я чето курсы для новичков попроходил и туплю, что дальше делать
Изучаю Backend, и заметил что многие часто хэйтят Django, говорят что для серьезных проэктов он не подходит. Говорят что на Python можно работать только в небольших стартапах (для больших проэктов советуют Java). Это правда? Если да, то можете объяснить почему.
>>2604508 Когда речь идёт о любви/хейте в программировании, то просто игнорь. Это всё уровня споров, кто лучшая вайфу или что лучше, тсундере или яндеру. Дело вкуса, вопрос задачи и просто писькомерство, что я крутой и пиши серьёзные проекты, а ты лах.
Во первых, небольшие проекты крайне востребованы. И всякие инстаграммы написаны на питоне во вторых.
И из-за того, что Java для больших проектов обычно и используется, то и найти работу с ней тебе будет сложнее, потому что тебе придётся устраивать и в крупные компании со всеми их анальными десятью стадиями собеседования, фриланса так же куда меньше.
>>2604508 В таких случаях лучше подобные вопросы задавать утверждающему, а не мимокрокам. Мало ли, вдруг у него на жаве есть какая-то готовая библиотека на случай NN, который ему где-то пригодился, а под джангу этого не было. На жаве любой софт писать сложнее и дольше, хоть оно в итоге и быстрее потом выполняется.
>>2603881 > Я так-то не фанат подгружать модули ради одной-двух функций
Стандартная библиотека обычно вшита в сам exe питона, и по умолчанию уже загружена в оперативку, импортировать оттуда модули почти бесплатно. Не говоря уже о том, что там много оптимизированного кода на си.
>>2603772 В общем случае нет способа перекидывать итератор. Сама суть итератора это один раз пройти по каким-то данных, хоть они с магнитной ленты читаются или из радиоэфира приходят. Перемещения и случайный доступ работают только на структурах данных, где все данные под рукой.
>>2604464 Все эти склейки разных апи это очень непросто, там тысячи возможных состояний и их комбинаций. Тг не подключился, а дискорд подключился, или наоборот. Куда-то нужно складывать промежуточные результаты чтобы не потерялись, нужна база данных. Сами апи далеко не всегда очевидно как использовать, особенно чаты реального времени. Парсить проще всего википедию, а не чаты.
>>2604813 Что непонятно? Сколько раз 000 010 000 встречается в большем массиве. Я не хочу рекурентно это решать. лол. Но боюсь придётся. Хотя я уже это задание отложил минимум на завтра, если ещё время после основного курса останется.
>>2604986 Спасибо, что в очередной раз показал мне какая это бесполезная хуита.
В целом, я уже придумал как решить без рекурсивного поиска всех соседних элементов. Такое решение требует больше кода, но и выполняться будет куда быстрее, динамическое программирование as is.
Но столько сейчас прочитать ещё нужно, на весь февраль делов, что тратить время на 3куи задания много совершенно не охота, зря взялся. Вот можно было бы просто искать массив в массиве то было бы очень просто. Но достаточно просто найти первую однушку, понять расположение, вертикально-горизонтально, прописать, что бы больше эти однушки не брать и посмотреть что бы всё было правильно и ровно
Подскажите, приложения в Джанге - это просто для удобства или есть какие-то правила, как разбивать проект по приложениям? Я просто читал, что типа приложение должно быть как бы полностью автономным и поэтому делал свой проектик, магазин типа, весь в одном приложении. Но сейчас смотрю один видос и там чувак импортирует модели из одного приложения в другое спокойно и ниче типа. Вот у меня есть типа товары, пользователи и отзывы к товарам. Я бы сделал по приложению для каждой из этих сущностей и было бы удобнее, как мне кажется. Или херня? Ну типа отзыв относится к товару и у него есть автор. Не надо так связывать приложения?
>>2605033 Ну я понимаю, что работать будет, но типа как лучше? Если я этот проект буду показывать где-то, это не будет показателем того, что я не понимаю, как правильно делать?
>>2605034 Лучше что бы каждое приложение было автономным. А если что то импортируешь из другого приложения, то лучше скопировать это, а не импортировать
Какая же дрисня это ООП. Сморю иногда работы топовых западных погромистов которые с 4 лет кодирувают и с молоком мамки впитали эту корпоративную религию. И у них там даже в простой элементарной программе уровня калькулятора картина одна - десять тысяч абстрактных общностей, классы наследуют друг друга миллард раз и все вычеслнеия рзмазаны тнким слоем по всем этим сущностям а результаты они передают туда сюда обратно.
Такое впечатление что целое поколение сорвенуется в том как бы написать портянку с максимальным количеством абстракций и чтобы без 10 чесов пердолинга никто в ней разобраться не мог.
Вместо того чтобы просто взять твердую хорошую функцию обобщить несколько асбтракций и запихнуть в неё. Чтобы можно было на одном экране монитора нагляно видеть конкретный участок ПОЛНОСТЬЮ.
Пидоры блядь оопэшные! Аряяя! Питон же изобрели как раз для того чтобы всё было супер просто до тупого просто. Нет не хотим просто хотим, хотим миллион абстракций, а потом будет с умным видом ходить и делать вид что это самый простой и читаемый вариант.
>>2605071 Ну вот у меня есть отзыв у товара, если у меня будет отдельное приложение для отзывов, то надо же будет указывать связь отзыва с товаром и импортировать модель товара. Например. Я прост тогда даже не могу особо представить чтоб в одном проекте были реально вообще независимые приложения.
А то я прост запутываюсь, у меня куча вьюх и сериализаторов для всего говна получается. Вот бы они как-то были распределены поудобнее по разным файлам.
>>2605091 Дл джунов мало, и в выборке по Python Junior попадается много нерелевантных, с датасаенс, аналитикой, тестировщиками и вообще какой-то левой хуйнёй.
>>2605115 Проблемы соевых джунов. Я не был питон джуном, а был мидл дата аналитиком, потом ради бабла решил перейти в фулл питон и прошел собес на питон мидла-фуллкека, пришлось потом ещё фронт учить.
Я так понимаю что список в питоне это ресурсоемкий гибрид, который в конец вставляет за O(1) а в начало вставляет за О(n), а есть ли в модулях более экономные структуры? Например, какой-нибудь модуль, который делал бы массив фиксированной длинный и потом заставал и засовывал бы в него всё что угодно со скоростью света O(1) и вообще все операции по индексам делал бы за O(1). Можно и самому написать, но вдруг есть уже на C ?
>>2605319 >массив фиксированной длинный и потом заставал и засовывал бы в него всё что угодно со скоростью света O(1) и вообще все операции по индексам делал бы за O(1)
Это только через хэшмапу можно сделать, можешь использовать ordered dict.
>>2605319 Обычный dynamic array. Вставка в конец будет O(1) только если хватает capacity, иначе весь массив реаллоцируется в новом месте с удвоенным размером.
> в начало вставляет за О(n) Нахера тебе вставлять в начало? Есть конечно deque, но она редко нужна.
> более экономные структуры Куда ещё экономнее?
> все операции по индексам делал бы за O(1) Так в списке и так O(1) для доступа по индексам. Именно поэтому вставка в начало O(n).
>>2605098 Угу, сначала они просят не велосипедить и пользоваться готовыми модулями со встроенкой, а потом спрашивают вот такую хуйню на собесе. Как называется эта болезнь?
>>2605646 Потому что это как умножать в столбик. Ты не будешь использовать это на работе, но строить ракеты тебя тоже не подпустят, если ты не можешь это делать
>>2605649 А где я должен умножать в столбик, во внерабочее время? И толку мне от навыка умножения в столбик, если я последний раз делал это 30 лет назад и хуй без гугла повторю снова?
>>2605646 Твоя болезнь называется тупость. Это задача на рассуждение, на ход твоих мыслей/действий, от тебя не просят написать какой-то хитровыебанный алгоритм экономный по памяти/времени. И если тебе мало вводных данных, то ты задаёшь вопросы. Меня в яндекс на собесе просили написать свой контекстный менеджер. Я его до собеса никогда сам не писал, помнил только про методы энтер/экзит, и с первого раза без ошибки не написал, т.к. всегда пользовался встроенным контекстлибом.
>>2605684 >твоя болезнь тупость грубий ты >меня в яндекс еще и хвастунишка на завод тебя надо на завод или на стройку раствор лопатой мешать, глядишь уму разуму поучишься у мужиков
>>2605786 Что у тебя анусай-то так на атомы распался, мелкобуквенный? На заводе мизинец отпилил, не соблюдая ТБ? Никакого хвастовства, в яндекс не прошел, чему рад, а на стройке успел в детстве поработать, и на даче заливал цементом крыльцо, поэтому взялся за голову в 20 лет, чтобы там не работать.
Что такое динамическое программирование? На примере списка это когда не создаешь новый список как вспомогательный, а на исходном сопоставляешь элементы жонглируя из позициями?
>>2605948 Т.е. когда чел называет интервьюера больным, который просит маслёнка перевернуть список, это норм. Когда его в ответ называют больным это невежливо. Хорошо, буду знать какие у нас заводчяне-строители двуличные.
>>2605684 >Это задача на рассуждение Какие к чёрту ещё рассуждения? Может мне ещё однонаправленный связный список написать до кучи или циклы без for и while? Вы там прогеров ищете или индусов головного мозга? Хотя, судя по вот этому индусу >>2605125 на собесах и прям всё плохо
>>2606094 Но циклы с элементами перестановками труднее чем готовые функции Там уметь надо отсортировать. А нажать к примеру сорт(про) любой дурак может. Так что индус скорее ты
>>2606094 А что надо спрашивать? Какие типы в питоне есть? Или что такое гил? Или что такое арены, сколько весит инт, что такое опкоды и фрейм обжект? >на собесах и прям всё плохо Без тебя вообще пиздец, никто собес провести и код написать не может. Зато на дваче в /pr/ в питон-треде целая кузница непризнанных гениев, которые не достойны всей этой локальной чушни, сразу фаанг подавай. Ты на работу берёшь человека, который в 4 из 5 случаев будет общаться с командой, ревью проходить или кого-то ревьюить, не бояться писать код в живую на камеру, и самое главное, брать за щеку него ответственность и отстаивать, почему он так написал. И важно не то, как он весь код на однострочники перепишет, а как он аргументирует, что это надо сделать. Я лучше с дотошливой ебанашкой-индусом буду работать, чем с молчаливым закрытым себе_на_уме-прогером, который потом ещё через 3 месяца уйдёт, и за которым придётся всё переписывать.
>>2606325 Задача буквально решается слайсом и максами. Причём, я более чем уверен, что есть модуль, реализующий этот алгоритм. А ещё, по-моему, подобная задача проходится в курсе дискретной математики, но не уверен. Чего тут уметь-то надо?
>>2606413 >А что надо спрашивать? То, что нужно компании, а не тупые задачи из учебника по информатике. Например, если компания игровая, то пусть напишет простенькие крестики-нолики, морской бой или пятнашки в консоли (графику и самотесты прикручивать не нужно, просто голый код). Если компания разработчик ПО, то пусть хотя бы небольшой скрипт-парсер напишет или простенькую приложуху-преобразователь. Хули вы как дети, а? >Без тебя вообще пиздец, никто собес провести и код написать не может У тебя задача отсеять индусов-макак на входе, а не перебирать каждого из 1200 внутри тела функции. Ты прогер или HR тупой? > и отстаивать, почему он так написал Потому что он индус, что тут ещё отстаивать? >Я лучше с дотошливой ебанашкой-индусом буду работать Если ты работаешь с ебанашками, то что это говорит о тебе, как прогере? Ладно бы, если учил, но ты именно работаешь. За язык никто не тянул. >который потом ещё через 3 месяца уйдёт, и за которым придётся всё переписывать. Ну да, хули он с ебанашками не хочет работать и тупеть до их уровня. Лучше перепишем его однострочки в многостраничные функции, а то у индусов мозг взорвется, если они лишний раз мануал откроют
Читаю туториал на официальном сайте. Дошел до 4 главы, до части где объясняется match и что-то я нихуя не понял. Автор будто бы делает отсылки на те вещи которые я еще не изучал, кортежи, маппинги какие-то еще какая-то хуйня. Мне забить хуй на то что я нихуя не понял и читать дальше? Он дальше объясняет это. Просто раздражает когда в объяснении используется материал который еще не известен мне, при чем автор не делает даже малейших попыток хотя бы базово на пальцах объяснить что это за йоба такая которую он использует в примерах и объяснениях.
>>2606610 Вот сейчас читаю про функции. Автор пишет о каких-то символьных таблицах, которые как я понял влияют на область видимости переменных, но я это (вроде бы) понял только потому что я другие языки раньше изучал. Автор объясняя функции вводит еще много разной терминологии которую объяснить не удосуживается. Меня это раздражает и хочется вообще дропнуть туториал
>>2606626 Потому что по питону у меня нет хороших альтернатив. Например у жсников есть облюбленный гайд от Кантора, тогда как даже в шапке треда никаких особенных рекомендаций нет, есть только ссылка на кучу книг и большинство из них по старым стандартам. Приходится есть говно, но хотя бы свежее.
>>2606601 >То, что нужно компании Так компании нужен чел, который умеет думать, а не копипастить стандартную библиотеку. >скрипт-парсер напишет или простенькую приложуху-преобразователь Как компании поможет понять, что он за погромизд, если он импортнёт реквестс и сделает гет-запрос? Это и без кода можно понять, послушав его ход мыслей. Я так в одно жирное место не прошел, хотя тестовое сделал и всё работало. Мне надо было написать парсер литкода с выгрузкой в файл и с минимумом зависимостей. До меня доебались, что не использовал стандартный csv (в требованиях не было), и что в хэдеры засунул много лишнего, типа достаточно было юзер-агента (у меня только с юзер-агентом не работало). >У тебя задача отсеять индусов-макак У меня задача взять человека в команду. Приходят в течение недели 3 человека, ещё 5 зарезервированы на следущую. Кто из первых 3 подходит проекту, его берут, остальные отлетают, даже если из остальных 5 были более умные или опытные. >Если ты работаешь с ебанашками, то что это говорит о тебе, как прогере У меня был опыт работы и с ебанашками и с такими же чсв-хуйланами как выше по треду, которые строят из себя оракулов программирования. Я с ними работаю, и параллельно других менторю, и учу их быть чуть менее ебанашками и не чсв-хуйланами. >Ну да, хули он с ебанашками не хочет работать и тупеть до их уровня Нормальные высказывают тебе/лиду/скрам-мастеру, что им не нравится, и все под всех подстраиваются или выстраивают новую систему. И потом уходят нормально, если по их мнению ничего не поменялось, или поменялось в худшую сторону. Но такие будут терпеть, начнут срываться, делать вид, что всё норм, перестанут эффективно работать и резко захотят уйти. Я в начале пути сам был в такой ситуации, и с многими знакомыми тоже самое было. И виноваты в этом не ебанашки рядом, а они сами. На работу их никто не гнал. Про уровень коллектива, куда они идут, узнают на собесе и за первые 2-3 недели, и никто их не принуждает работать. Никто их не заставляет писать и поддерживать существующий говнокод. Любые предложения по рефакторингу функций/зависимостей/проекта/архитектуры только поддерживаются. Но они считают себя по определению умнее. Им похуй на то, что они работают в команде над всем этим вместе, и что до них кто-то раньше это делал и потом свалил. Они ждут что за ними говно будут подчищать только ультрапомидоры-лиды, а остальные индусы-неофиты недостойны их. И ваще какого хуя на проекте питон 3.8, везде уже 3.11. И хуле у нас фласк, когда везде уже фаспапи. А потом в пулл-реквестях код с проверкой пустого списка через is not None, а не not, в именованных параметрах params, а не kwargs, в дто новое поле добавил, а в миграции нет. Зато с селери работал, а я нет, значит я анскильная ебанашка, а он будущий гвидо.
>>2606617 у меня на работе зп 150к но работа тяжелая типа заводчанина петровича поэтому хочу вкатиться но глядя на такие вот вакансии хочется вздернуться от безысходности особенно после утомления от учебы и решения задач
Селффикс >>2606694 >Я с ними работаю, и параллельно других менторю Вот я конечно гандон, написал и не проверил. На текущем месте в команде, с кем работаю, ебанашек нет, 1 чсв есть. Параллельно кого менторю, 2 ебанашки были, 1 отвалилась, 2 эволюционировала.
Почему он тройку ставит в конец? Ведь True - это единица, значит он просто добавляет к тройке единицу и список бы не изменился, потому что 4 все ещё меньше 5.
>>2606650 >Потому что по питону у меня нет хороших альтернатив. Например у жсников есть облюбленный гайд от Кантора, тогда как даже в шапке треда никаких особенных рекомендаций нет, есть только ссылка на кучу книг и большинство из них по старым стандартам. Приходится есть говно, но хотя бы свежее.
такая проблема, что шарящие ребята не сидят и не мониторят вводные туториалы для нубов, где объясняется что такое переменная. каким образом в шапку должно попадать что-то годное - загадка для меня
я, например, годно прокачался, пройдя "An Introduction to Interactive Programming in Python" на курсере. мне очень понравился этот курс, и я выучил на нём тонну всего. но никогда не слышал, чтобы кто-то рекомендовал этот курс. сам рекомендовал его многократно, пока мне не надоело
зато в шапке указан лутц. я ни разу в жизни не слышал ни одного хорошего отзыва про книжки лутца (сам ни разу не читал) но лутц всегда стабильно в шапке всю историю двача, а годнота, которая мне нравится, нет. поэтому шапка на дваче это такой себе источник знаний
>>2606617 >>2606723 Потому что курсы-двухнедельки сильно обесценили профессию, клепая необходимые отрасли «кадры» огромными миллионными масштабами. При таких скоростях качество «кадров» едет к плинтусу. На нормального программера же надо учиться лет 9–10 (два–три класса школы, пять института, потом два-три года рабочей практики на производстве).
А выпускают таких долбоёбов, которые кроме гугла с индусокодом и метода пузырька нихуя не знают. Ни методов программирования, ни алгоритмов, ни шаблонов проектирования, ни паттернов. Услышали про зарплаты, заучили курс на степике — готов программист-помидор.
Много кто тут в двух словах объяснит абстрактную фабрику, паттерн моста или цепочку обязанностей? А чем функтор от монады отличается? А перечислить топологические алгебры?
А зарплату 300ккнаносек все хотят. Но предложить таким кадрам что-то больше зарплаты кассира на начальном этапе невозможно. Бизнес не поймёт. Кадр не окупает себя, его ещё много лет учить. Тратить на него ресурсы.
То есть, рост зависит только от интеллекта. А его у 80% населения планеты всегда будет не хватать.
>>2606748 нормальными программистами рождаются. остальные 95% просто пользуются их наработками, пусть то рак с двухнедельного курса или сеньёр-помидор с 20летним опытом
>>2606748 >курсы-двухнедельки сильно обесценили профессию, клепая необходимые отрасли «кадры» огромными миллионными масштабами кадры клепают на айти кафедрах в некоторых институтах. а на курсах зашибают бабло на долбоебах. к обучению это никакого отношения не имеет.
ляя написал петик на флаксе, теперь от штанги рвотный рефлекс просто, а мне по этой хуйне еще курс допроходить, бесплатно получил с госуслуг, если дропну должен стоимость курса отплатить
чому все заполонили курсы для вкатунов, а те кто например уже вкатился и хочет поизучать всякие йобы, вроде мультипроцессинга, мро, инит_субкласс и прочие абстракции сосут бибу?!
Имеет ли значение кю на кодеварс для оценки своей программисткости? Или это просто зыбкая вещь в себе, опираться на которую не стоит и которая не дает представления о твоих реальных возможностях для реальных задач? Вот я максимум решал задачи 5 кю, если они легкие конечно. Но иногда жестко туплю даже на 7 кю. Понимаю тут просто проблемы с формированием рейтинга сложности. Но я думал что все это начинающие до 1 кю, а даны это типа профи прогеры. Сегодня узнал что один чел, который работает прогером максимум 4 кю решал, а дальше говорит ума не хватило. И говорит чтоб я там особо не зацикливался на подобных сайтах. А где тогда мне практиковать программирование? И чем определять свой уровень навыков?
>>2607704 Кодварсы и прочие литкоды это дроч алгоритмов, программирование помимо этого состоит из грамотной компановки кода, структуры классов, паттернов и т.д. Причем очень часто случается так, что на реальной работе ты за год максимум пару раз применишь парочку хипов. И это только вершина айсберга, есть ещё архитектура, настройка развертывания, правильная организация хранения данных и ещё кучу всего. Как это попрактиковать? А никак кроме реальной работы. Сначала читаешь книжку или статью, а потом делаешь и желательно, что бы кто то более опытный тебя проверил.
>>2607704 Я бы сказал 4киу достаточно для среднего программиста. 1-2 это уже олимпийский уровень. 3 где-то посредине и зависит от задачи. То есть просто без знаний матана возможно не стоит даже лезть в некоторые задачи или просто тратить на это время.
>>2607768 Ну и когда начинаешь решать задачи 3+киу уровня, то даже не думай начинать велосипедить и пытаться решать костылями. Сразу же гугли алгоритмы, которые подходят для решения этих задач.
Это, конечно, стоит делать и для задач попроще, но на 4-5 ещё можно справиться костылями, на третьем уровне уже жопу себе ими порвёшь
Сап питонач. В джанге существуют сообщения об ошибках формы https://docs.djangoproject.com/en/4.1/topics/forms/#rendering-form-error-messages Объясните, пожалуйста, как отрендерить результат {{ form.non_field_errors }} и {{ form.name_of_field.errors }} в шаблоне? Прямо на уровне хеллоу ворлд. Возможно, проблема в том, что я не могу понять, как вызвать form.errors или состояние form.is_valid() == False, т.к. форма даже не даёт отправить невалидные данные. {{ form.errors.as_data }} возвращает пустой словарь.
>>2608368 Профи бы заебашил квиксорт вместо вставки, а чатик нужно специально об этом попросить, и то он в половине случаев пишет квиксорт с модификациями неправильно.
>>2608399 Король обезьян, ты? Именно на таких примерах можно понять, стоит ли брать чела в команду или придётся тратить время на его обучение.
Но вы можете и дальше устраивать конкурсы на самый странный велосипед, а ты лично ездить на нём без сиденья. Ну а хули эти кнопкодавы сиденьями пользуются, верно? Ведь только без сиденья можно понять зачем оно нужно и как им пользоваться. Руль-то, я надеюсь, уже изобрели? Или поворачиваете наклоном центра тяжести, пока еблом асфальт не рихтанёте? Ну чтоб алгоритм езды на велосипеде лучше понимать.
>>2608741 Кстати, если нужно что-то сделать с несколькими элементами массива (например, сравнить с соседями), я предпочту использовать range(len). Потому что do_smth(s[i - 1], s, s[i + 1]) лучше выглядит, чем do_smth(s[i - 1], elem, s[i + 1]).
>>2608883 использую, когда нужно внутри функции многократно обработать какую-то локальную же переменную. и если при этом нет упора в производительность
>>2608704 Я за две недели в питоне так понимаю, что второе используется, когда нужно че-то сделать с первым и последующим элементом. Типа array = array[i+1] и если это условие будет в цикле for i in array, то цикл будет выходить за пределы и не будет компилироваться. А в цикле for i in range(len(array)) нет. Также можно вместо range(len(array)) юзать for i in enumerate(array).
Если это все хуйня, поправьте, пожалуйста, сам хочу разобраться уже наконец-то
>>2609216 Фор это обертка итератора, если итерировать итерируемые обьекты они возвращают итерируемый элемент. А функция рэндж просто создает "пустой" иетратор из чисел, если нужно просто итерировать определенное кол-во раз. а сам итерируемый о-кт не нужен.
>>2609272 если тебе надо работать только с тем или другим, то ты не юзаешь enumerate, а используешь for x in arr или for i in range(len(arr)) enumerate если тебе нужно и то и другое:
for i, x in enumerate(reasons_to_die): print(f'{i}. {x}')
Увидел такой пример с лямбда функцией. Не пойму как работает x(i) и как она взаимодействует с функциями из списка. Где почитать и посмотреть примеры использования лямбды? Чтобы не простые типа а<10 или а + б. А что-то посложнее, чтобы почувствовать нормально чо это такое
пример отвратный, на таких только запутываться. хороший пример функция sorted, где можно уточнить, что именно сортировать в каждом элементе, передав свою функцию в аргумент key
допустим, есть несколько дат в формате (день, месяц, год) > (1, 5, 1970), (10, 5, 1980), (5, 6, 1985)
а мы хотим отсортировать по году. поэтому: > sorted(dates, key=lambda d: d[2]) даст [(1, 5, 1970), (10, 5, 1980), (5, 6, 1985)]
лямбда это тот же def, просто экономит строчку и не создает переменную с именем функции. можно и так сделать: > def get_year(date): > ____return date[2] > > sorted(dates, key=get_year)
Анончики, какой язык считаете разумным учить в дополнение к питону или как второй язык вместо питона? Очевидные варианты: JS (тоже скриптуха, можно брать фулстак работу), голованг (много бекенд разрабов свитчатся в него и говорят что норм, вакух много вроде как), сишечка (писать расширения для питона например, писать прошивку для умного чайника, да и вообще это чед-язык)... что ещё?
>>2603452 (OP) аноны, я тупенький мб посмотрите, пожалуйста, я не могу понять: делал упражнение, типа, ввод и поиск наибольшего и наименьшего я долго не мог понять, чойта не фурычит, сдался, посмотрел подсказку оказалось, моё решение отличалась лишь одним: я сначала искал наименьшее, а после наибольшее если же сначала искать наибольшее, а после наименьшее, то всё фиксится почему если поменять пикрил if'ы местами, то результат тотчас меняется? скинул код и пример ввода-вывода https://pastebin.com/9tjuR5mg
пробовал рисовать цикл на бумаге, всё равно не понял
>>2610277 при условии, что цикл скушал число 100 после 5, он всё равно считает 5 наибольшим мне просто хочется понять, почему, если я меняю циклы местами, то всё фиксится, какая тут логика
>>2610277 >>2610278 не, я тупой, переставил чета, вообще всё сломалось, он даже при перевороте кушает числа и словно выплёвывает их, не делая их большими и меньшими
>>2610283 Потому что int(i) возвращает целое число, преобразуя строку i, не меняя при этом самой переменной i. input() по умолчанию возвращает тип str, поэтому в i и в smallest/largest В твоем коде сравниваются строки, строки сравниваются лексикографически, поэтому 5 больше 100.
Как узнавать "айди страницы"? то есть допустим, на странице есть id = 'media-{НОМЕР АЙДИ}'. я не понимаю куда мне нужно впихнуть еще один цикл for (или даже не через него) чтобы тупо получить числа от нуля до (допустим) 30. КАК????
>>2610320 да не, по сути, я бы мог и page для id юзать.. но я пишу скрипт, который парсит комикс. Через selenium. Загвостка в том, что я ищу по ID в классе. (точнее, просто по id = 'image-0') . так как там структура такая - /page/1 и page/0 это одна и та же страница... Тот пикрил показывает мой код, типо ссылки генерируются с помощью for цикла. Но я не могу использовать значение page для id, так как на первой странице используется image-0 а не image-1 (соответственно на 2 странице используется image-1) поэтому я и попросил помочь впихнуть еще куда нибудь цикл.
Очень нравится питон своей простотой, но ваки нормальные найти как питон дев нереально. Насколько тяжело после питона вкатиться в PHP? Бтв есть небольшой опыт на плюсах, мб это поможет?
>>2610323 for page in range генерирует значения для page от 0 до значения в range. просто убери page += 1, который прибавляет для всех значений 1, и будет у тебя начинаться с 0
у меня вопрос, а такое, но только в IDE имеется? пробовал дебаг в Visual Studio Code жать, но чёта он сразу [начало->финиш] делает, без возможности по шагам идти
Двач, где сейчас можно бесплатно разместить Джанго приложение на внутреннем поддомене чтобы оно хотя бы недели две покрутилось? Хероку вроде бесплатную подписку отменил?
Тема такая. Дайте подсказку или умные мысли. В unittest в ините setUp выполняется некие sql вещи, которые тестовую бд заполняют. В tearDown откатывается. Естественно это занимает дохуя времени. Хочется хотя бы как-то на уровне старта класса сделать инициализацию. А после завершения работы класса - удалять все. Но вот как обновлять таблицы, которые в ходе теста были изменены? Есть идеи какэто иначе можно сделать?
>>2611260 Либо делаешь всё в транзакции и ролбекаешь. Либо мигрируешь базу, потом делаешь темплейт из нее и перед каждым тестом создаёшь чистую из темплейта и в конце теста дропаешь.
>>2603588 >тестировать методы сервиса апи-гейтвей, если они на той стороне обращаются к другим сервисам? Платина это поднять заглушки вместо других сервисов и генерировать их ответы, не обращаясь к оригинальным тестам. >Тесты должны запускаться после того, как сервис задеплоился или до? Если коротко, то по ситуации и в зависимости от архитектуры и соглашений на конкретной галере. По-хорошему до деплоя надо хотя бы убедиться, что оно тебе ничего не ломает, но, скажем, GitHub Flow какого-то Staging не подразумевает вовсе, они катают всё на живую (не представляю, как! Но ведь катают). А если у тебя банковское приложение, то у тебя только контуры тестирования считать устанешь.
>>2611282 >в транзакции Не получится. Транзакции уже юзаются внутри некоторых тестов. Если только можно теггировать транзакцию и откатывать к ней, но я про такоей в постресе не слышал >мигрируешь базу Примерно так и выполняется сейчас. И это много времени, почти половину времени тестов занимает
>>2603886 По такому описанию вангую, что он заподозорил тебя быстро, но дал ещё несколько попыток. Это логично: никакой бот не страшен, пока он делает что-то 1-5 раз.
>>2604125 Во-первых охлади своё трахание. Глубокий вдох, глубокий выдох... Итак, когда мы прозреваем дзен, видим два наиболее вероятных варианта: либо авторы пайчарма обосрались. Либо (и это более вероятно) обосрался ты и, например, ошибка происходит до стоп-точки. В обоих случаях спасёт запуск пошагово. Возможно, поможет стоп на первой значимой строке. Последнее время использую VS-Code, запустил пичарм, посмотреть ,как оно там работает, но эта сука не нашла системного питона и не смогла создать venv сама. Разбираться влом.
>>2607230 На вкатившихся сложнее делать бабло, они знают, чего хотят и не будут жрать, что дали. Потом, как уже было сказано: вкатавшихся меньше, но, что ещё существеннее, вкатившиеся либо никуда дальше не катятся и сидят формоклёпами на одном освоенном фреймворке, либо раскатываются в таком количестве направлений, что не перечислишь. Смотри, ты сам сказал: > мультипроцессинг > мро > инит_субкласс > прочие абстракции Теперь скажи, сколько народу потенциально возьмёт курс по мультипроцессингу? А сколько возьмёт его на конкретной площадке?.. Вот и выходит, что всё не слава яйцам. Меня более-менее спасает ютуб с разборами интересных кусков и официальная документация. Но я тоже не лезу слишком глубоко, у меня другой профиль. Впрочем, прямо сейчас попался баннер с этим: https://practicum.yandex.ru/async-python/ Так что не сказать, что прям вообще ничего нет.
>>2611596 ну на яндексе курсы норм. но они и рассчитаны не для заводчан и домохозяек, что захотели вкатиться, а для студентов или тех, кто уже вкатился, но и дальше хочет изучать
Как сохранить файл в виндусе в кодировке "utf-8" если в самом файле нет особых символов?
line = 'hello' ....with open('file.txt', 'w', encoding="utf-8") as file: ........file.write(line)
Если открыть этот файл в блокноте там кодировка ANSI будет, если line = 'привет' то кодировку нормально сохраняет в "utf-8", но мне нужно чтобы в любом случае было "utf-8"
Пробовал line.encode("utf-8") и потом сохранять файл в бинарном режиме 'wb' - всё равно ANSI
encoding="utf-8-sig" решает проблему, но меня это сраный символ в начале файла бесит, костыль какой-то. Как заставить эту сраную ОС не решать за юзера в какой кодировке что сохраняеть, если это ЯВНЫМ ОБРАЗОМ УКАЗАНО?
>>2611663 Бля точно. Придется сраный BOM в начале файла оставлять. Потому что технология такая 1 Скрипт сохраняет файл. 2 Иногда пользователь из виндуса вносит туда дополнения через блокнот 3 Скрипт опять открывает файл и читает.
Из за того что блокнот, как оказалось, не может понять что перед ним файл в кодировке utf-8 (если в файле нет особых символов) то после того как пользователь внес туда строку с кирилицей и сохранил он и сохранится не в той кодировке - и когда программа опять пытается открыть в utf-8 получается обсер.
Везде используется подобный простой код для проверки прокси, прокся рабочая чекал в браузере, а вот почему в питоне нифига не работает этот код в чём причина? Всегда Proxy does not work.
>>2611903 >Бля, ну ты посмотри сначала, какой эксепшн тебе кидает. [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:997) Глянул здесь: https://qna.habr.com/q/1166628 С виндой что-то связанно. Попробовал вот так и на линухе работает:
Пришлось выкинуть https из проксей, хотя урл запрашивает ютаб именно по хттпс. Под виндой один хер не работает. Не понятно почему, хотя сейчас нет времени сильнее вникать.
Аноны, а правильно ли я понимаю, что если у молодого питониста с математикой хуёво то дорога в веб? Во всякий там дата анализ даже не стоит суваться если по математике всегда был тройбан?
>>2612056 математика макакам не нужна, асяким дата саентистам примитивных знаний на уровне матриц хватит, матан вообще мимо (матан в смысле матанализа)
>>2612199 А где можно найти задачки до циклов? Мне казалось if while for проходят в первую неделю вката, разве существуют какие-то задачки где даже это знать не надо?
>>2603452 (OP) Получил вот такой скрин от чувака на вопрос о том, как часто для каждого файла исполняется cron. Чувак куда-то съебал и больше не отвечает. Как понять по этим цифрам слева периодичность cron-а?
>>2612326 > # m h dom mon dow command Попробую так пояснить: каждую минуту крон проходит по всем тапскам и смотрит, не нужно ли запустить что-то сейчас. Если у кого-то совпадает время по маске с текущим, он выполняет команду. Т.о. Первая команда выполнится, когда: dom=13, h=10, m=0, т.е. 13-го числа в 10:00, раз в месяц (в любой месяц и в любой день недели), вторая и третья, аналогично, 13-го числа в 10:15 и 13-го числа в 10:30; Четвёртая - когда dow=1, h=10, m = 45, то есть в любое число любого месяца, по понедельникам в 10:45, пятая - по понедельникам в 11:00.
>>2611341 Добавлю, что если у тебя там в поде окажется какой-нибудь инит-контейнер, который ебошит миграции, то только, блджад, попробуй его нормально не проверь в контролируемой среде, ждёт тебя клизма трёхведёрная с патефонными иголками.
>>2611655 >>2611666 лол, трипл-сотона, бг-г и всё такое Лень проверять, но вангую, что, если ты не укажешь вообще кодировку, то скрипт сам разрешит все конфликты. Разве нет? Пробовал?
>>2611602 И это правильно. Ящитаю. Правда, у них есть и курсы для полных нулей (по утверждениям из рекламы).
>>2611363 >>2604125 я так с вскод ебался, со сторонним пакетом, а оказывается нужна была настройка "justMyCode": false может и в пичарме надо такое?
>>2604508 что такое серьезный проект? в свое время инстаграм был написан на джанге кажись
>>2606891 что за петик? а теперь подключи туда авторизацию, аккаунты, кеширование вьюшек, csrf, локализацию... а ведь это во всех проектах есть. и на джанге делается в два счета, без своих костылей
>>2607704 я тоже в свое время остановился на 5кю, звезд с неба не хватаю, но и код пишу кажется приемлемый
>>2607845 вакансии есть, но не для вкатунцов. я пару лет назад искал джуна, людей без вышки даже не смотрел. отсобесил 3 крутых челов, взяли очень умную тяночку, делает сложные задачи, быстро научилась. зачем мне рисковать и брать вкатунца - кота в мешке.
>>2612562 >И это правильно. Ящитаю. обычные курсы реально страдают в плане заданий. даже если они есть, то их мало.
Поэтмоу после прохождения первых курсов, советую заглянуть именно на leetcode и порешать там хотя бы все задания на easy. И решайте не костылями, а сразу же ищите видео индусов с решениями, потому что именно там вы найдете куча простых алгоритмов и техник, которые упустили при прохождения просто курса. Но понятно дело, не просто копируйте, а разбирайтесь, что они там вообще делали и зачем.
>>2613476 Пиздец, тебе дауну конкретно указали где у тебя ошибка, а ты вместо того чтобы подумать над этим ещё и огрызаешься. Ну ты блядь и свинья. Помогай после такого вкатунам бывшим баристам и поварам.
>>2613510 Профит пухлого, что он напрямую работает с хмл файлами, но фичи ограничены. Есть ещё xlwings без ограничений, но он использует com объекткы экселя, нужна шинда и эксель для его работы. Так что можно выбирать, но в большинстве случаев первый, если тебе не нужны какие-то йоба формулы или что-то в этом духе.
>>2613519 Я потому и спрашивал что в этих хитросплетениях хочу не обосраться. Сейчас один модуль подключу а там окажется что есть подводные камни и переделывай.
Мне нужно читать таблицы из файла .xlsx с разных страниц этого файла, потом писать в ячейки и надо чтобы в ячейках с формулами читался финальный результат а не сами формулы.
>>2613566 я так спецом сделал, чтобы посмотреть значения времени в начале и в конце. Потому что не мог понять почему берется ноль милисекунд. Но я сделал ща огроооооооооооооомный список, и тогда время стало показываться. Видимо на моем примере она выполняет все 0 милисекунд
Подскажите плиз, а можно ли округлять посчитанные значения перед добавлением в массив без помощи раунд() или нампи? Типа как в ф строках? Если можно то как?
>>2613590 Чел, вот есть не округлено число. Оно само по себе не округлится над ним нужно провести операцию явно или не явно. Понимаешь? Грамотно составленный вопрос это уже половина ответа. Если тебе не нравится функция раунд можешь свою написать с блэкджеком и шлюхами и без мерзкого банковского округления, а с чотким поцанским школьным арифметическим.
Грамотеи питонисты, расскажите как выполнили бы задание.
Дано
1) json файл типа { путь_к_фаелу : [зависимости] } пикрил 2) путь к одному из таких файлов
Нада
Скопировать все файлы из папки где лежит основной файл, скажем если это assets/content/weapons/rpk16/weapon_izhmash_rpk16_545x39_container.bundle
то надо скопировать все его зависимости которые тоже лежат в папке
assets/content/weapons/rpk16/
И прописать новые зависимости, уже к той папке, куда файлы скопированы. Помимо этого зависимости скопированных файлов надо тоже отыскать в json файле, и прописать новые зависимости.
Скажем решение уже собсна готово, но занимает очень много строк кода, я такое не люблю, я люблю чтоб просто, может есть тут гении которые опишут простейший способ сделать все это ?
Аноны, могу я как-то передать в мап функцию со своими аргументами, без помощи лямбды и ухищрений вроде второго списка с одним элементом. Вот у меня есть функция def func(x, key='None')
В таком состоянии её можно передать в мап map(func, iter) А меня интересует как-то так: map(func(key='foo'), iter) но так разумеется нельзя может есть какие-то премудрости синтаксиса чтобы так можно было?
>>2613954 Ну это то же самое что и через лямбду. Мне просто интересно было есть ли такой синтаксический прием для конкретно таких случаев, без прокси функции (и без хитрости вроде второго списка в map).
>>2613955 Ну партиал более внятное решение. А так можешь выкинуть нахуй устаревший мап и использовать генераторное выражение, оно тоже ленивое как мап. res = (func(x, key='foo') for x in iter)
>>2613958 Охуеть, по-моему всё в питоне можно заменить генераторными выражениями. разница с пам только в паре длиннее на пару символов больше, а по скорости наверное даже быстрее т.к. компрахеншены скорее всего на Си.
>>2613961 Ну тут есть разница. Лист компрехеншен сразу генерирует и создает новый список. На выброс, если тебе не для каких-то последующих действий. А это генератор, который выдает on-demand, как мап. Из них можно собирать пайплайны, в которых даже скобки опциональны. sum(x for x in range(10))
>>2614006 Тут ес че, 3 пукции манифест потому что я пока думаю как лучше, городить замену сразу когда прохожу по зависимостям, или сперва все их занести в массив, а потом уже по нему пройтись, попутно добавляя то что нужно в массив для последующего переноса файлов в другого папку
>>2614007 Кстати ща сижу пукаю с утра и думаю каково хуя я просто не сдампил json файл в строку и не сделал .replace(), так было бы проще, но мне все-же нужны оригинальные ссылки для того чтобы файлы скачать, поэтому пройтись циклом по зависимостям все-равно придется
>>2614006 Хуя ты говна понаписал, портянка километровая для такой плевой хуйни, даже читать не буду - состарюсь пока до середины дойду. Замени это всё говно вот этой функцией, за 2 минуты накалялкал когда ебалом по клаве прокатился.
def copy_key(key, dst): ....shutil2.copyfile(key, dst) ....root = os.path.dirname(key) + os.sep ....for i, d in enumerate(dict[key][Dependencies]): ........if d.startswith(root): ............shutil2.copyfile(d, dst) ............dict[key][Dependencies] = dst + d[len(root):]
>>2614038 Так, ну выглядит работоспособно, запускать я ее конечно буду дома вечером, потому что на работе нету фаелов игры, а вот вопрос, где тут отбираются файлы которые лежат в одной папке с нужным и к ним новые пути зависимостей прописываются ?
>>2614038 Еще тут вопросик от братвы к тебе, в dst передается путь к уже созданной директории ? или copyfile умеет создавать директории ? в некоторых случаях, например в главном примере, один из нужных файлов лежит в директории /textures/ в нужной папке, и структуру файлов надо сохранить, => если копифаелс не умеет создавать папки их надо заранее создать, а я не знаю заранее какие надо папки создавать, в одном случае это /textures/ в другом /zalupures/
>def copy_key(key, dst): key это ключ словаря, dst - папка куда копируем assets/content/weapons/rpk16/weapon_izhmash_rpk16_545x39_container.bundle >os.makedirs(dst, exist_ok=True) UPD - делаем путь без ошибок, даже если этот путь уже есть >....shutil2.copy(key, dst) UPD - заменил copyfile на copy - чтобы копировалось в новую директорию со старым именем файла >....root = os.path.dirname(key) + os.sep Отрезаем от ключа долька директорию где он лежит и добавляем сепаратор системы чтобы не было ошибок дальше при сравнении >....for i, d in enumerate(dict[key][Dependencies]): крутим список зависимостей >........if d.startswith(root): если зависимость лежит в той же папке что и ключ - берем её. тут можно ещё lowercase добавить. я забыл ............shutil2.copyfile(d, dst) >копируем эту зависимоть туда же куда и ключ ............dict[key][Dependencies] = dst + d[len(root):] >меняем путь в зависимости на новый
>>2614048 ну кстати, решение сдампить json с зависимостями и зареплейсить строки еще меньше по сути то, конечно все-равно придется пройтись циклом по зависимостям, но не лишнего дроча, вернее он скрыт
>>2614067 Ты так свою задачу сформулировал, что я так и не понял что тебе вообще нужно было, просто насрал функцию не глядя и не проверяя, прямо в текстовом поле двачика. Так что без понятия чем лучше. Могу просто по своему опыту сказать что всегда есть подводные камни, и всегда лучше работать с адресными объектами словарей и списков, где всё под контролем, чем с текстом.
Как работает функция лоад модуля пикл? pickle.load() вкратце? Как она преобразует бинарный файл в текстовый? Ну в целом какие принципы там работают вкратце? Вкратце!
>>2614231 Там описано что она ПРОСТО преобразует. по ВОЛШЕБСТВУ. как на ютубе. А я думал будет типа математика как она понимает что этот байт это такая буква или цифра и т.д.
Объясните как работает инверсия битов(операция NOT). Она ещё записывается ~(тильдой) Почитал и простыми словами это операция меняет 1 на 0, и наоборот. То есть есть у нас цифра 5 в десятичной системе, в двоичной она будет выглядеть 101. Применив инверсию мы получаем 010, что в десятичной равняется 2. Но у меня почему-то так не работает. Я записываю какое-нибудь число, и оно просто уменьшается на единицу по модулю и меняет свой знак на противоположный. То есть 5 становится не 2, а -6. Пикрил как пример. Что я делаю не так? Или может в питоне биты какие-то другие? Помогите пожалуйста, будьте добры
>>2614274 она работает ровно как ты написал. биты берут и инвертируются. побитно. Ты наблюдаешь отрицательное число, потому что такова форма записи отрицательных чисел.
>>2614292 Везде одинаковое, просто есть signed , есть unsigned. Под этот самый знак отрезается старший бит. Т.е. unsigned 8bit int это от 0 до 255, signed это от -128 до 127. В питоне есть только signed, поэтому своим нотом ты этот знаковый бит тоже хуяришь. Можешь поиграться тут с репрезентациями https://calc.penjee.com/
Джангисты призываются в тред. С 5 версии будет удалена возможность выходить из системы через запросы GET. Пихать logout с логикой POST запроса в представление каждой страницы кажется порочной практикой. Как сделать кнопку выхода из системы одним представлением, при том, что переход по example.com/logout/ возвращает только GET запрос? Отдельную страницу с кнопкой "Выйти" конечно можно наговнокодить, но это же лишний клик.
>>2614685 Ну можно конвертнуть в список и попать элементы или дополнительный счетчик ввести, но с вайлом скорее подразумевается математическое решение.
>>2614889 Ненавижу повторяющийся код. >редирект Так видимо и придётся делать, но костыль жи. Что интересно, при function-based представлении выход происходит около секунды, а при class-based мгновенно, даже промежуточного редиректа не видно.
>>2614933 Какие ещё нахуй уровни байтов? На питоне просто нет инструментов для работы с железом. Это скриптовый язык для всяких задач уровня: если хочу какоть, покакою, а иначе не покакою.
>>2614935 Питон это виртуальная машина, молотящая байткод. Хуяришь к ней обвязочку драйверную, пробрасываешь внутрь свое железо и еби свои байты. Я бы посмотрел на такой цирк.
Такой вопрос. Тем кто сидел на фрилансе. Вот я прочитал уйму книжек, чуток покодил и хочу тоже вкатиться во фриланс по питону. Так вот. Может поделитесь списком типовых заданий, которые обычно нужны заказчику, ну чтобы уже дрочить не абстрактные какие-то надуманные задания а реальные, то есть вопрос, что именно нужно на биржах заказчику, с каких заданий лучше начинать.
написать приложение на flask (ориентировочное время выполнения - 24 часа) Описание приложения: приложение разрабатывается с помощью фреймворка flask, работает с базой данных SQLite, имеет API и веб интерфейсы. Цель приложения: каталогизация и структурирование информации по различным веб-ресурсам. 1. API-интерфейс. Приложение принимает GET и POST запросы: a. POST запрос №1 должен содержать в теле ссылку на какой-либо веб-ресурс. Приложение должно обработать полученную ссылку, разложить ее на протокол, домен, доменную зону и путь. Если в ссылке присутствуют параметры - преобразовать их в словарь. Полученные данные нужно сохранить в таблице базы данных, присвоив уникальный идентификационный номер (uuid). Возвращать пользователю ответ в формате json с разложенными данными и статусом обработки. Если пользователь прислал не ссылку - сообщать ему об этом в ответе. b. POST запрос №2 должен содержать в себе csv файл с перечнем ссылок (формат файла - каждая новая строка одна ссылка). Все ссылки нужно обрабатывать по образцу POST запроса №1, а также обработка должна выполняться в фоновом режиме. В ответ добавить общий статус обработки файла (количество обрабатываемых ссылок, количество ошибок, количество ссылок, направленных на сохранение в БД). c. GET запрос №1 должен выводить все сохраненные ссылки из БД (добавить возможность выборки по доменной зоне, id, uuid). d. GET запрос №2 возвращает последние 20 строчек лога (см. п.2). 2. Логирование. Приложение должно проводить логирование своей работы с ротацией лог-файлов при достижении определенного размера файла (1 мегабайт). Необходимо логировать все полученные запросы и ответы приложения, а также информацию о добавлении в БД новой записи. 3. Веб-интерфейс. Требуется реализовать 3 веб-страницы для приложения. При вёрстке страниц требуется использовать фреймворк Bootstrap5. Постараться выдержать единый концепт оформления страниц. a. Страница 1. Реализовать веб-страницу, содержащую формы для добавления в приложение новых веб-ресурсов. Формы должны добавлять веб-ресурсы как поштучно, так и загрузкой CSV файла. Формат CSV файла тот же, что и для API интерфейса. b. Страница 2. Реализовать веб-страницу с таблицей, отображающую все ссылки из базы данных с разбивкой на страницы (пагинация, по 10 элементов на страницу). Также веб-страница должна содержать элементы управления - поиск по доменному имени, возможность фильтрования по доменной зоне, а также удаление конкретного элемента из таблицы и базы данных соответственно. c. Страница 3. Реализовать веб-страницу, отображающую строки из лог-файла. Отображение должно быть динамическим (при обновлении файла - обновляется и содержимое веб-страницы). Если вы владеете знаниями JavaScript - добавьте интерактивные уведомления на веб-страницах по результату выполнения каких-либо действий. Иначе используйте для коротких уведомлений функционал flask flash. 4. Авторизация (Необязательное, бонусное задание). Добавить в приложение авторизацию пользователей по токенам, дописать необходимые эндпойнты и шаблоны для авторизации и завершения сессии, функционал, описанный в пунктах 1-3 сделать доступны только для авторизованных пользователей. Логировать авторизацию, завершение сессии и попытки несанкционированного доступа. 5. Дистрибуция и контейнеризация. Код приложения должен упаковываться в docker-контейнер и автоматически запускаться при старте контейнера. Приложение должно быть залито на github. В проекте должен быть файл README с описанием проекта, эндпойтами и пошаговой инструкцией по разворачиванию и запуску проекта.
>>2615345 >>2615353 Да точно. Засунул в цикл и сделал кучу "безымянных" экземпляров. Я почему такие тупые вопросы задаю, просто сначала в стаковерфлоу полез и там какие-то заумные гайды люди через getattr() что-то там меняют делают.
>>2615328 на самом деле можешь банально полистать биржы и посмотреть с одной стороны заказы, а с другой стороны исполнителей, что они пишут у себя в профиле и так далее
>>2615626 Ну как раз если ты возьмешь какой-то сириус бизнес, то будет больше ёбли. Ты не полностью сформулировал задачу, так что не ясно, какие фичи в целом нужны. Что это и для чего?
Сам спросил сам ответил, помню где-то же видел такой синтаксис вот так короч работает: WebDriverWait(webdriver, 11).until(EC.presence_of_element_located((By.ID, "LUL"))).click()
А объясните зачем двойные скобки, которые выделил болдом. Почему с одинарными ошибка?
Какого хуя джанга не может закрыть файл лога при ротации??? PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\django\\project_name\\debug.log' -> 'C:\\django\\project_name\\debug.log.1'
Реально ли за полгода вкатиться на 20к обосранных рубасиков куда-нибудь? Просто питон уже хорошо знаю, пишу ботов на нём, душе тепло от него а что-то другое мерзко учить и почвы под ногами не чувствую будто придётся лет 10 учить.
>>2616163 ответить можно за конкретно обозначенное время вкатиться на конкретно обозначенную область за конкретно обозначенное время а не 3 поста подряд тратить своё время на выебоны
>>2616166 ты сначала сказал что конкретно сейчас я ничего не могу, хотя я спрашивал про потенциал через полгода-год. Потом ты сказал какую-то общую хуйню про изучение питона без уточнения какого-либо времени. Почему ЧСВ тебе так мешает не быть говном? Если бы ты адекватно ответил, не пришлось бы тебя брать за яйца с уточнением того что я про конкретное время и конкретную цель спрашивал. Я уже и не говорю что добропорядочный ответ хорошего человека содержал бы ещё конкретные рекомендации насчёт того, стоит ли в область ботоделания вкатываться, какие ещё навыки надо развивать и какие области лучше, но ты просто говно которое хочет повыёбываться на ньюфагах и которому легче 10 постов уклончиво отвечать на вопрос вместо одного нормального уважительного ответа. Твоё самолюбие сейчас не позволит тебе выпизднуть ничего лучше чем "я тебе ничего не должен", но почему-то ты посчитал должным потратить намного больше усилий чтобы насрать сюда бесполезных постов.
>>2616168 Просто боты это такой большущий маркер Я НУБЛО. Ты получаешь что-то работающее, нихуя по сути не сделав. Надо дрочить кор язык, надо дрочить стдлибу, надо дрочить тулчейн, надо дрочить гиты, надо дрочить базы, надо дрочить никсы, надо дрочить алгоритмы и структуры. Ты чайной ложкой зачерпнул из огромной горы песка и бежишь спрашивать, а за сколько я смогу вкатиться? За столко, сколько у тебя выйдет хотя бы минимально поскрестии все эти пласты, не выгорев при этом. Так лучше ответ?
>>2616169 Да, нормальный ответ, спасибо. Базы кое как присобачивал через постгрес или майскьэл, алгоритмы и структуры в унике были, гиты тоже, стдлибу сейчас учу по пунктно. Ботов хочется делать потому что просто опыт был и реально деньги за это платили которые руками чувствовал, других вариантов так просто найти фриланс я просто не встречал и трясусь что можно целый год ебашить а потом узнать что шансов в этой области нет
>>2616171 Я с точно такими же намерениями и знаниями пришел в этот итт тред. Джва года "писал" в стол и для души, игнорируя по этой причине всё что мне было не нужно, но изрядно надрочившись в определенной области - думал что море по колено и горы по плечо. А потом решил всё-таки формализовать и структурировать свои знания, закрыть пробелы. И тут я понял как глубока эта кролечья нора, она бездонна. литерали можно годами просто учить всё на свете и всё равно будет то, чего ты не знал. Но вот без чего точно не стать питухнистом это без знания СТАНДАРТОВ ИНДУСТРИИ - нужно знать алгоритмы O(n), O(log) вот это всё, да не просто знать и глазами пробежать, а глубоко понимать, а для этого нужно глубоко понимать структуру данных и весь подкапот. Я теперь смотрю на сво. старую писанину и понимаю какое это было нубское говно. По этой причине, видимо, тебе так и ответили ИТТ, ты коснулся вершины айсберга и думаешь что схватил бога за бороду, но мы все через это чувство проходили ранее.
>>2616180 >нужно знать алгоритмы O(n), O(log) вот это всё, да не просто знать и глазами пробежать, а глубоко понимать, а для этого нужно глубоко понимать структуру данных и весь подкапот. я просто спрашиваю блять сколько на это времени нужно если чётко по плану учить. Выгорать или нет это уже мои проблемы, мне нужен план конкретный.
>>2616148 про полгода хуй знает, больше от удачи зависит, может за 2 недели залетишь, а может 2 года будешь искать
задрочи базовый синтаксис питона и поделай петики на джанго и фастапи, потыкайся в парсеры, по алгоритмам опять же, для вката достаточно понимания О-большого, рисуй год опыта в резюме и пиздуй штурмовать хед хантер http методы, tcp, udp, всю эту залупу тоже надо понимать, на всех собесах спрашивают
главное гейткиперов ебаных не слушай, да алгоритмы и структуры данных это знать надо, но лучше в них углубляться когда будет возможность применять это на практике, прям задрачивать в стол их можно если ты еще студент и у тебя еще есть возможность сидеть на шее у мамки
>>2616187 нахуй нужны алгосы челику который хочет формошлепить за прожиточный минимум? захочет роста тогда за них возьмется, вкат с них начинать если ты не упругий зубастый студент который хочет в яндекс/фаанг смысла нет
>>2616190 Я думаю, что чтобы его взяли на работу он как минимум должен будет показать свой гихаб, а может просто выполнить тестовое. А там все увидят какой у тебя уровень.
>>2616174 >>2616178 Самое интересное, что эта нейросетка хорошо лобает код на питоне/жабе/жс/голанге/шарпе и прочих высокоуровневых языках. При этом даже на С идёт полнейший посос при отступлении от стандартных задач. Я уже не говорю про кресты, раст и ассемблер. Настоящие программисты на коне, а питух-макаки будут успешно заменены нейросетями.
>>2616412 Так она в любом языке при отклонение от примера из документации обосратьсч может. Не надо затирать про какую-то экскоюзивность низкоуровневых языков.
>>2616417 Нихуя. На питоне и жс вообще полноценный софт крафтит, да ещё и с тестами, если попросить. В экспериментах с С++ однажды ответила, что затрудняется реализовать запрос. Всем отделом проиграли.
>>2616429 Просто питухон более популярный. Тем, обсуждений, библиотек и решений на нем гораздо больше в открытом доступе чем на любом другом другом языке, а эта сетка просто собирает ответы со стакоферфлоу и обсуждений гитхаба. Лол или ты реально думал что ВСЕМОГУЩАЯ НЕЙРОСЕТКА сама какие-то решения и ответы придумывает.
>>2616442 Ващет там чёрный ящик с абстракциями уровня /b/. Сами прогеры не знают, что происходит внутри. Они только делают вход-выход и методы. Как этими методами и данными шаманит натренированная нейросеть, одному Богу известно.
>>2616450 Это обычный нлп трансформер, предсказывающий более вероятное продолжение фразы. Никакой магии там нет, что она чаще всего видела, то и будет выдавать более развернуто.
>>2616450 Хуйню не неси. Внутри твоего черного ящика под названием "нейросеть" просто определенный тип структуры данных, сделанный по образу нейронной сети нервных тканей. Заполняет эту структуру известный программистам метод. Они могут в любой момент достать оттуда объект и посмотреть его связи, если конечно это было бы кому то нужно, но это ни кому не нужно и все данные просто так и оставляют в какой-нибудь двоичной каше.
>>2615333 >ориентировочное время выполнения - 24 часа В прошлый раз, когда эту портянку постили - у многих пригорело, но на самом деле речь не про 1 сутки, а про 3 рабочих дня. Так работет разработка в корпоративной среде.
>>2616679 А может вообще академические часы имелись в виду а не рабочие дни? Не фантазируй, тут просто заказчик фуфлогон был или кидала, во всех тестовых всегда по человечески пишут сколько время дается, а тут значит вон как, догадаться надо. Короче, без явного пояснения - часы это часы, а то что ты предполагаешь - просто твои фантазии.
Как максимально эффективно за один проход (и желательно в две строки) получить список элементов, которые есть в list2 но отсутствуют в list1. Количество и порядок элементов может быть любой, элементы не повторяются, я бы сделал сэт и в нем сравнил, но это уже как минимум два прохода, не говоря про остальные телодвижения.