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.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
>>2546731 Фиксировать версии зависимостей, минимально обновлять только то что тебе необходимо, менеджить venv за тебя, и ещё пара свистоперделок. Это примерно как npm/cargo, полноценная среда управления проектом. Pip тупой как пробка, умеет только устанавливать, не видит конфликтов в зависимостях, версии непрямых зависимостей будут гулять.
Я не понимаю, как вкатиться в ООП. Вся документация, гайды и туториалы, что я видел, ограничены вот этой абстрактной хуетой Class Animal. Где-то можно найти что-то более приближенное к реальности? Например ооп на примере работы с апи.
>>2546746 >Где-то можно найти что-то более приближенное к реальности? Например ооп на примере работы с апи. В любом проекте на гитхабе, который сложнее одного скрипта.
>>2546746 > на примере работы с апи Каким апи? Когда ты джангу используешь, создаёшь там всякие модели-формы, это апи? Для http апи создаёшь сессию, создаёшь объект-запрос, получаешь объект-ответ, это достаточно ООП?
Если что, в питоне вообще всё объект, любые числа, функции, классы, у всего есть type(), dir(). У любого класса есть --mro--, где хранится вся цепочка наследования.
Я знаю что всякие гоуту конструкции это неправильно, а как правильно сделать если например проверяешь какие-то загруженные из инета строки в try, что-то не так прогрузилось и срабатывает except. Так вот как сделать чтоб трай сделал например 3 захода и тогда уже выскочил на finally. Обработать именно этот пример "browser.get('sosach')" не варик, это в примере одна строка а на деле много запросов. Только закидывать этот весь код в цикл на 3 захода и если получилось после первого раза то брейк, так правильно?
try: browser.get('sosach') except Exception as ex: print(ex)
>>2546756 >Есть готовые решения. https://github.com/jd/tenacity А в чём разница этого и трай-эксепт с той же функцией, я глянул быстро будто какой-то велосипед изобретен вместо трай-эксепт.
>>2546758 Это декоратор. Ты берешь свою функцию и навешиваешь его на неё, получая этот функционал без велосипедных трай-экспетов. Там куча разных опций и вариантов.
Посоны объясните как работать с этим джисон. Вот например получаю: driver.get('https://stackoverflow.com') logs = [json.loads(log['message'])['message'] for log in driver.get_log('performance')] И вывожу простыню: print(logs)
И вот сколько примеров не перерыл, не могу получить простой вывод например юзерагента. Что-то вроде print (logs['User-Agent']). Как из этого logs выдрать параметры юзерагент?
>>2546775 >не могу получить простой вывод например юзерагента А что ты пытаешься получить-то? Либо сериализуй, либо обращайся как с обычными словарями. Первое более тру, второе - более скриптово.
>>2546779 >А что ты пытаешься получить-то? Либо сериализуй, либо обращайся как с обычными словарями. Первое более тру, второе - более скриптово. Хочу получить значение User-Agent, то есть принт должен вывести "Mozilla/5.0 (Windows NT 6.1; Win64....."
Проблема в том что в таких сложных респонсах от сайта он имеет кучу вложений, как DOM-дерево, например здесь простой джисон: response = requests.post('https://api.myip.com', json={'key':'value'}) print(response.json()['ip'])
Ну и вот такое обращение вполне работает. Я хочу так же получить значение юзерагента, но он находится по пути уровня 'method' > 'User-Agent'. Не знаю как еще нубски описать не в корне короче. Перерыл кучу примеров и везде то в файл всю простыню сохраняют, то все значение получают. Как получить одно конкретное и какой синтаксис этой строки не понятно.
>>2546785 >Не знаю как еще нубски описать не в корне короче. Если знаешь точное расположение ключа - доставай как есть: response[0]['blah']['blah']['User-Agent']
>>2546785 >>2546808 Там скорее всего есть методы для доставания из этого самого реквеста, надо курить документацию. Хотя нахуй его доставать, его скорее самому ставить надо, а вот доставать можно уже респонс. Что это вообще, селениум какой-то?
>>2546810 Так положение этого значения всегда фиксировано, по идее будет [0]['params']['headers']['User-Agent'] если не туплю надо только обязательно в try-except обернуть, потому что ключам может и не быть, заголовки headers заполняет клиент по своему желанию
>>2546874 Скажи мне, начал обмазываться poetry и столкнулся с тем, что в vscode после инициализации и переключения на env через ctrl+f5 скрипт запускается хорошо, но через эту ебучую кнопку пишет "module %name% not found". Проблема явно в том, что кнопка не одупляет, что я нахожусь в окружении проекта poetry. Я недавно с пайчарма слез.
>>2547456 poetry использует обычные virtualenvs. по-дефолту он их где-то в жопе создает но можно указать чтобы делал в каталоге с проектом. Просто найди где созданный им virtualenv для твоего проекта(poetry shell и там which python, например) и укажи python из каталога venv_path/bin в качестве интерпретатора для проекта. с vs code не работал(для питона по крайней мере)
Как понять, что пора перестать рефакторить свой проект? Он используется в работе, и я единственный разработчик, но к сервису нет никаких требований по части быстродействия - то есть оно все работает и так, я только докидываю функционал. Но почему-то постоянно хочется взять и переписать уже существующее говно. Вот сегодня 4 часа после работы сидел и по фану рефакторил кусок говнокода.
>>2547911 Детище твоё, ничего необычного. Я от нехер делать в скрипте по перекидыванию данных из БД в БД сделал навигацию по коммитам и историю зачем-то, хотя по времени мог написать свой проект. Только какой неясно.
>>2547963 Нет, не актуален. Западное финансирование аутсорса всё, западные платформы нас забанили, на вакансии в России пизданутый конкурс, нужны только синьоры с многолетним коммерческим опытом.
>>2546424 (OP) Объясните, что учить Джанго или Джанго Рест? И там, и там можна написать апи, но лучше ж для этого подойдет Джанго Рест, не? Та и редко случаются проекты, где на бекенде нужно писать темплейты, вот эти формочки создавать, обычно просто апи делаешь, а остальное фронтенд
>>2547963 Другой вкат актуален, если у тебя группа годности А-В. Если ещё есть права категории С, то вообще здорово. Найдёшь работу, найдёшь, если ты мужчина, а не мальчик
>>2547973 >на вакансии в России пизданутый конкурс Сейчас более-менее берут, при условии, что работать из России
Сап, как написать на пайтон программу в которую загружаешь данные и он распределяет их по значениям, данные из ексель таблицы. В чем суть, нужно чтобы он распределял по отделениям - сколько и в каких отделениях людей, контрактник или призывник и сколько их, прочий и офицеры
>>2548076 Выглядит как очень просто, строк на 20, если питон умеет экселевский файлы открывать. Найди как их открывать, покажи какое внутреннее представление твоих данных и какой вывод тебе нужен, я могу накидать примерный код.
>>2547963 Ваканский стало сильно меньше. Причем ещё весной было норм. Летом тоже был выбор. А последнюю работу искал больше месяц и по факту был только один оффер реальный, я даже не выбирал. В местных вакансиях как правило или платят мало или проект мутные и всё это вместе плюс безумные требования типа ездить в офис к 9-и утра. Во второй половина ваканский требуют релокейта во всякии армении/грузиии/сербии/кирпы. С другой стороны украина сидит без света, и выехать не могут, а там была куча аутсорсеров и им ищут замену. Но тут нужен счет в каком-то банке не под санкциями(вроде счет в белорусском банке вариант) и не все вообще готовы готовы работать с РФ по политическим или юридическим причнам. Сам с дуру бросил стабильную работут тут работу в сентябре и истал работу целенаправленно тоже в РФ. Но приходится работать на барена. Короче всё сложно, а джунам вообще совсем бида, наверное.
>>2547981 Да они похожи оч, и чего там "учить" вообще можно по ходу разобраться благо доков и инфы в инете полно и исходники вполне читаемые, прыгаешь по коду фреймворка в IDE, быстрее чем инфу искать даже. Последние несколько лет, в основном работал с DRF. Но смотря что за проект, иногда вся эта возня с фронтом это оверкилл, особенно, если один проект делаешь и это не какое-то мега веб приложение. Прошлой зимой делал что-то вроде новостного сайта, так забабахал всё на шаблонах прост и норм.
>>2548187 пузырь с первого занятия по компьютер сайнсу на втором добавят оптимизацию - флаг и в конце скажут забыть про это говно и пользоваться тем что есть в языке
Объясните пожалуйста тугодуму. По шагам как эта функция высчитывает частоту символов? Зачем нужно переводить список во множество? После того как список переведен во множество, оно ведь считает все равно по списку? Зачем нужно множество? Чтобы потом сравнить с посчитанным в списке? Но как ничего не могу сообразить. ИЛИ ЭТО ВОЛШЕБНОЕ СВОЙСТВО ФУНКЦИИ МАКС, в которой реализовано что-то типа цикла, которое последовательно сравнивает эти 2 параметра? Кстати напомните пожалуйста, внутри скобок вот такие вот параметры или если записать вместо них функции как параметры функции(если это возможно) будут выполняться слева направо?
>>2548497 Ну а по шагам можно? Зачем нужен кей? почему пишут > затем применяет к каждому из них фукнцию каунт? кому это из них? элементам множества? но ведь каунт применяется для списка, не множества
>>2548526 key тут применяется для вычисления значения для сверки. То же самое в сорт - сортируем по длинне строки. Теперь возвращаемся к максу. С сетом мы делаем три сверки на каждый элемент (1,2,3), с оригиналом пять (1,1,1,2,3), но они избыточны для получения результата, для того и сет.
>>2548546 >>2548556 ааааа кажись понял. спасибо за объяснения. кей тут не переменная а аргумент функции макс. спс пойду учиться дальше >>2548558 спасибо большое
>>2548596 >Парсер написать сложно для новичка? Парсер языка программирования - сложно. Бот - средне, там больше рутины и документации ботов, торрентов и либ, чем программирования. Мне кажется это довольно плохие задачи для обучения.
Лучше сделай простую игру на pyglet/pygame. Например, ртс, 3 типа юнитов, 1 ресурс, 5 типов построек. Охват кучи тем, сравнительно мало задротства с документацией, при этом ты попробуешь и ооп, и алгоритмы нахождения пути и прочего, и какие-то сложные функции генерации карты, и побалуешься с архитектурой кода как сделать внятное ui и логику перехода из меню с кнопками к собственно игре. Ещё и математику потыкаешь, если в 3d.
>>2548117 Это selection sort. Почему-то в русскоязычной среде все неоптимальные и простые сортировки называют пузырьком. Пузырёк всегда меняет местами соседние элементы, а не ищет минимальный в остатке массива. Поэтому большие значения постепенно поднимаются вверх с каждой итерацией, как пузырьки, отсюда и название.
>>2548596 Делай то что интересно. Изучать сам по себе питон довольно скучно, потому что неясно зачем это всё именно так сделали. Самые знания языка получаются если ты умеешь экспериментировать в REPL, вот как тут >>2548573. Запони что там есть функции type, dir, help, которыми можно поизучать любой объект/метод.
>>2548377 Если читаешь обычный текстовый файл, пизже использовать .splitlines(), который сработает на всех возможных вариантах переносов строк: \n, \r, и даже \r\n.
>>2549030 Лучше использовать итератор по файловому объекту. Ньюлайны автоматически подстраиваются под платформу, на которой выполняется скрипт, так что можно всегда писать \n.
Как наебать яндекс при парсинге ? Суть в чем, мне нужно искать сайт в яндекс выдаче(именно живой выдаче), проблема в том что эта хуйня дропает мне капчу после 1 запроса(похоже что запросы делает робот),если кто нибудь уже сталкивался и как-то решил эту хуйню, буду очень признателен. (использую селениум так как bsом эта пиздурма не парсится вроде)
>>2550689 Вот: >>2548605 Игра - это очень хорошая проверка как ты научился кодить. Из библиотек тебе минимум функционала нужно (если не замахиваться на крутой графоний-звук, а именно геймплей кодить), а вот по части кодинга тебя просто океан приключений ждёт.
Прикрутил к коду GUI с двумя кнопками, при нажатии на первую, её функция успешно выполняется и GUI работает дальше, но при нажатии на вторую кнопку GUI зависает, т.к. в функции крутится цикл и пока он не выполнен GUI не работает
Как пофиксить? Вроде нужно распараллеливание, но как его сделать и чем? Гуглить пытался но слишком дохуя лишней информации, от которой моск плавится
У меня не получалось просто проставить 3.10 и на него накатить. Все равно выдавало ту же ошибку. Пришлось снести всё. И переустановить 3.10 какбэ с нуля. Тогда все заработало и pygame поставился без проблем. Скорее всего был какой-то более простой и менее радикальный метод, но мне с моим уровнем знаний помогло только это
сап говно предположим есть задача написать простейший ЯП на питоне да как организуешь работу с памятью в своем ЯП ? ну имею ввиду где будешь хранить имена переменных, данные, как свяжешь между собой ? или обойдешься кучей в которую будешь совать безымянные данные ? ответ нужен побыстрее и лучше срочно
>>2552002 что скажешь насчет реализации через стек?
пусть у тебя есть прога типа def f(x): return 10*x + 15
ты это парсишь, разбираешь на составные части. Прога у тебя выполняется примерно так: 1. положить на стек x 2. положить на стек 10 3. взять со стека два операнда, умножить между собой и положить результат в стек 4. положить в стек 15 5. взять со стека два операнда, сложить между собой и положить результат в стек 6. вернуть значение со стека
>>2552016 дома буду покажу свои наработки нарисованные в паинт но могу и так в двух словах пояснить
вощем решил я детство вспомнить, а в детстве когда питон освоил решил написать свой скриптовый язык
ну неважно короче щас я к вопросу подошел сурезнее и застрял (как обычно) на самом казалось бы простом - работа с переменными
ну и для начала подумал написать псевдо-низкоуровневый интерфейс для работы с переменными но штобы можно была и высокоуровневый вместе использовать с низкоуровневым
есть значить у нас оператор push который добавляет всякое гавно в кучу (не стек)
есть оператор int который вызывает прерывание
выглядит это типа так
push 666 int out
то есть сперва заталкиваем в кучу 666 потом вызываем оут и в качестве аргумента передаем ей то что лежит в куче, причем передаем спомощью .pop() то есть и очищаем кучу, потому что так нада
но и помимо этого подумал неплохо было бы переменные так-то юзать ну типа
a = 666 out a тут уже посложнее, во-первых нужно 2 массива в первом лежит чето типа {"0x0": 666} а во втором лежит {"a":"0x0"},
ну и на оут уже подается не первый элемент из кучи, а данные по имени хранящемуся в первом массиве, который хранит ссылку на данные во втором, потому что так нада
Хотелось бы узнать как вам идея, Жириновский предложил если че
1) Я читаю файл io open "utf-8" все дела, получаю здоровую строку весом 10 мб.
2) Потом алгоритм с помощью простого поиска по строке find ищет там определенные места (find_result, например)
3) Потом я добавляю к "find_result" несколько символов re_tmp = "(?<=hui)"+find_result
4) Делаю замену с помощью регулярных выражений в этом же файле. re.sub(re_tmp, pizda, jigurda)
Но вот в чем беда. Если в find_result попадают такие символы как например "(", "?", ")" то он такую строку не найдет, пока ты к этим символам эсекйпы не добавишь \(. По этой причине приходится каждый раз смотреть есть ли эти символы в find_result, целую функцию с условиями и заменами там делать. Может есть какой-нибудь быстрый метод или встроеный финт ушами, или флаг для re, который бы заставлял модуль регулярок на эти смимволы смотреть как на обычные символы, а не как на смецсимволы которые надо экранировать.
>>2551101 Не умею пользоваться двумя ветками, при пуш кормите херю одну из веток. Порядок git commit -m 'alpha 0.1' git push git merge dev/origin И ветка dev удаляется со всеми коммитами.
>>2552948 Во я дебил. Вот что бывает когда учишь питон самостоятельно, а не системно - такие вот позорные пробелы, которые просто проебал, читая документацию.
>>2552960 Нет задач проще на рукпачу отправлять за 10 коопеек. Ты ведь всё равно в общей сложности много сообщений отправить не сможешь - быстро это делать не получится из за облачной защиты, а долго это делать не получится потому что все твои айпишники быстро перебанят. Таким образом нейросетку учить ради того чтобы 100 сообщений отправить это трата времени.
>>2552654 так а зочем, куча нужна по сути для временного хранения аргументов функции, после вызова функции аргументы в куче хранить ни к чему, а вот переменные пусь себе хранятся где надо
>>2552963 Я не для вайпа или ботов её хочу создать, а вместо пасскода использовать. Это же вроде не должно палиться, да и вообще это для опыта сойдёт неплохо
>>2552967 А как ты собрался подключать браузер к питухону. Плагин какой-то есть или отныне будешь всю жизнь через селентиум сидеть - так это обновлять заебешься.
>>2552971 Главное что есть теоретически выполнимая идея, а как её реализовать это уже другой вопрос. Возможно на с++ можно будет подключиться к браузеру, или создать приложение/сайт через апи двача и уже через него капчевать.
>>2552963 Можно, ты лошок. И решить можно с автоматизецией в 60-70% попаданий, это охуенно, клаудфлара это защита от детей. Хорошо знать, что мне платят не просто так.
Задача с я.сру: https://new.contest.yandex.ru/41236/problem?id=149944/ Моё решение (не обоссыте, я новенький): https://pastebin.com/NYhCRaMY Если пользователь ввёл 6 или 14 – всё хорошо, ответ похож на тот, что у Яндекса. Но как, блядь, быть, если с клавиатуры прочитано число 4? Как, блядь, представить это число? На первой строке 1, на второй 2, 3 и 4? Если так, то как изменить код, чтобы 4 (или вообще любое другое число) перемещалась на предыдущую строку? Уже день мозг ломаю.
>>2553700 Не знаю, как видишь, в условии задачи нет ни слова о том, что делать с числами, если при разложении последняя строка получается короче предыдущей. Типа хуй знает, при 4 должно печататься: 1 2 3 или 1 2 3 4
>>2553711 А как мне код редачить? Придется вводить новую переменную - пустую строку, и в нее заносить числа? Типа если длина последней строки меньше заданного числа, то ее не печатать?
Такой код проходит 2 теста из трёх. Предполагаю, что валится он при n = 24, т.е. последняя строка будет короче предыдущей. Как это сука еще можно записать? Уже день ебусь с задачей, а решил только наполовину.
>>2553897 Блядь. Создал список max_len со значением 1, в который заносил максимальное значение строки, потом из него выбирал наибольший элемент и сравнивал длину текущей строки (если она больше, чем максимальный элемент списка - 1, то выводим ее), однако опять 2/3 тестов выполнено. ЧЯДНТ? Ебучая задача.
Я хз, вообще. Добился разок 5/6, а в чём проблема в 6 непонятно. Начал исправлять, даже первое теперь не проходит, хотя в пейчаре всё отлично работает. Я уже пробнул, что бы и так было, но тут даже первое перестаёт проходить. Совершенно подлая задачка.
>>2546424 (OP) Есть эксперты в пограмировании? Пишу тамагочи на пайтон, подумал просто выполнять лабораторку не кайф, надо патерн какой-то изучить, ну и с дуру выбрал патерн строитель. В итоге у меня новогоперсонажа создает через директора и строителя, но я хуй знает можно ли дальше привязать ко всем параметрам класс время. Потому что если каждый раз вызывать директора - так это новый объект будет же, или с построенным объектом через директора можно как-то общаться? Насколько сильно я проебавсь с этим патерном?
>>2554015 Я понял почему тест не принимается сходу. Тут на выходе лишний принт, но я хз почему он появляется. После распаковки листа он что-ли автоматом каретку вниз опускает. Ну возможно, там такой алгоритм. Попробую иначе распечать список тогда
>>2554048 https://github.com/Pekarnya/Tamagochi Не стукай сильно. Я правда хотел все по технологии сделать, я не знал что так влипну. Мне непонятно как сделать так, чтобы показатели здоровья им все прочее считалось и чтобы вновь созданный объект через строителя дальше использовать.
>>2554048 Я не прошу тебя выдать мне код, я прошу дать наводку в какую сторону воевать, можно ли спасти такую конструкцию, можно ли еще в такую конструкцию вписать класс времени (чтобы обсчитывать логику игры?
>>2554071 Что точно можно сказать, что не важно, удаляю ли последний список, если он меньше предыдущего или прибавляю к последнему, тест ломается на 6ом, значит связано не с этим.
>>2553986 Ну, мой код работает: https://pastebin.com/BFBs3C75 Вот только Яндекс ебаный не засчитывает решение, не показывает, какой именно тест не проходит, блядь. Но знаю то, что когда следующая строка была меньше предыдущей, тоже на третьем тесте валилось. По идее я это пофиксил, почему не принимает - хз.
>>2554084 И думаю, на такие задачи, с неизвестными входными данными + не очень понятным условием лучше время не тратить и идти дальше. Мы уже тут не задачу решаем, а пытаемся под непонятные условия костылями код подвести
>>2554095 Даже первый тест не прошло. Само задание тут говно - >>2554094 не стоит тратить время. 5/6 я осилил, но я не представляю что там на 6ом может быть.
>>2554093 Чёт вспомнил как была отбитая задача, которая точно была решена верно, я предложил данные о последнем тесте выдавать по времени или по объёму памяти, и я, препод и ещё один тип отправляли задачи меняя значение и по затрачиваемой программой памяти определяли входные данные последнего теста.
>>2554100 Соль в том, что там 18 или какая-то крайная к последней задача такая же, только теперь нормальную елку нужно рисовать, т.е. с отступами слева.
>>2554106 Делаем просто вложенный список и после принтуем его, заполняя пробелами слева и справа исходя из длины последнего списка, ну это, что первое мне на ум пришло. Чисто косметическое задание.
>>2554113 Да можно проще. Типа из предыдущей задачи мы знаем длину последней строки, поэтому относительно ее середины располагаем элементы первой строки, второй, и т.д. Мне это первое в голову пришло.
>>2554112 Неа. Там данные короткие были и их получили, но даже проверив всё и убедившись что всё правильно вывод не подобрали. Препод что-то писал туда, но я просто забил и не знаю продолжения, вроде пробел или перенос строки непонятный был, который вообще не знаю как нужно было поставить и на каком основании. Но это тёмные века были на питоне-2, я надеюсь сейчас вывод проверяется не по соответствии строке, а считывая и прогоняя через условия, так как часто в задачах много вариантов правильного вывода.
>>2554119 любой пробел и в том задании учитывается. у меня сначала вообще не проходило ибо изначально каждая ступень в конце имела лишний пробел, то есть 1 ' ' 1 2 ' ' И так далее. Ошибка сходу. Как пробелы убрал из конца, то 5/6 стали проходить
>>2554122 Ну у тебя задача на строки. Хотя по идее корректность ёлочки пробелы в конце не нарушают, и оно их само должно игнорить в программе проверки, например просто нарезая на строки и проверяя что каждая следующая больше предыдущей или что там подразумевается. Я про то, где нужно вывести список определённых элементов какой-то или ещё что-то такое, где хотя бы просто порядок вывода разный может быть.
А можно ссылку покликать, или там регаться нужно? Вдруг я мысли прочитаю, и напишу именно как создатель такой говнозадачи.
>>2554148 Да, хрень полная, мой тоже прошёл, когда все ошибки по пеп исправил. Вообще там задания для начинающих, поэтому не должно быть никаких серьёзных алгоритмов.
>>2554165 Ну тогда почему я взял свой костыльный код >>2554159 , просто удалил все костыли, хотя пару строчек ещё убрать можно, нажал ctrl+alt+l в пейчаре, отправил туда и тут же все тесты прошли, хотя до этого такой код даже 1 тест не проходил
>>2554169 Твой код был правильный изначально. Если бы примеры были нормальные, то ты бы не сомневался в логике своей программы, а сразу бы подумал, что проблема в форматировании и >нажал ctrl+alt+l в пейчаре
Ещё лучше было бы, если бы яндекс написал проблему, а не играл в угадайку, но с нормальными примерами былобы понятно, что проблема не в коде.
>>2554182 Это не ошибка в коде. В строке вида c = a+b я могу поставить пробелы вокруг равенства, но буду специально удалять пробелы вокруг +. Это принципиальная позиция.
Стиль и оформления кода должны на уровне иде только быть. По типу, у меня отступы стоят тройными пробелами. Я редактирую и сохраняю код как мне захочется, а когда его открывает другой программист, то он у себя видит с четверными или двойными пробелами, если у него проблемы с этим. То есть пусть лучше каждый видит код со своими настройками стиля, не надо эту чушь всем принудительно юзать. Иде достаточно давно самостоятельно могут всё это сделать.
>>2554189 Я имею ввиду пробелы в outpute лишние Не просто 1 А 1[ ] - лишний пробел, ты его не видишь, а задачник видит, можешь просто проверить в самом пейчаре нет ли лишних строк и пробелов в оутпуте
>>2554192 Я понял, с этим всё хорошо. Он жалуется не на это, и даже не запускает мой код.
>>2554194 Ты игру делаешь? Я тоже хочу за сегодня игру за один день небольшую сделать чуть попозже, и наверное на питоне. Покажешь сегодня в полночь что получится?
Прикрутил на проекте celery для отложенных задач. Но как-то на общий созвон пришел высокопоставленный сенька и начал разглагольствовать что "celery говно надо было airflow накатывать, шо за нах ваще а?" Мне было малость неудобно у него спросить "а че не так?" т.к. в айти меньше года а он лет 5 наверно.
Что такого плохого в селери что так охуенно делает airflow?
Питон хуевый выбор для вката в айти в надежде найти работу, в чем я не прав? Лучше js + react больше шансов стать макакой, а питоний вкатун никому не нужен с его ебаной джангой, флаской или фастапи.
>>2554230 >js + react Удачи соревноваться с тысячами малолетних вкатунов Удачи быть первым в очереди на оптимизацию нейросетями Удачи до конца дней ебаться с UI
>>2554240 Из питона можно легко потом перекатиться в бекенд на го/шарпах если не довен, либо в датасаенс. Если ты пойдешь в жс, то путь тебе только во фронт на жс и все тут
В джанго-админке пользователь может нажать на кнопку "скачать файл" и некий файл сохранится ему на устройство. Проблема в том что файл этот лежит в удаленном S3 хранилище. Как правильно загрузить файл из S3 и потом передать его пользователю? Обычная подгрузка файлов у джанги идет из папки media автоматически, мне практически ничего настраивать не нужно было
>>2554230 Питон норм язык для обучения программирования в первую очередь независимо от синтаксиса языка. После освоения питона можешь идти хоть в java, хоть в js, хоть с++ и потраченное время на питон не будет пустым.
>>2554267 Вы все тут поехавшие школьники, вы нейросети блять, вы буквально разговариваете тезисами говорящих голов, продающих говнокурсы. Оставим то что вы не в состоянии усвоить прочитанное, хуй с ним. Но писать такую хуйню как перейти в язык нейм после языканейм полегче, время не потрачено. Ты долбоеб? Зачем учить что-то, чтобы потом перейти на нечно кардинально другое?
>>2554250 Спасибо за ответ. Думал над этим еще до того как здесь спрошу, мне кажется слишком много перезаписей будет. Я оказывается могу просто к созданому классу напрямую обращаться главное написать функцию которая возвращает только нужные мне показатели, блин мне нраица
>>2554273 Ты в первую очередь учишься программировать и только после синтаксис языка.
Во первых, питон самый популярный язык сейчас, во вторых освоив его и научившись программировать на нём, но поняв, что ты хочешь заниматься в отрасли, где он не особо годиться, то без проблем освоишь новый синтаксис, потому что программировать ты уже умеешь.
>>2554285 Ты долбоеб, что ты несешь? >ишься программировать и только после синтаксис языка.
Я большей хуйни в жизни не читал, как ты, мразь тупоголовая, хочешь научиться писать обход дерева да и в принципе реализацию, не зная синтаксис языка? ебанат блять Ты чмо ебаное. даже на ассемблере ты сначала учишь, что делают команды и только потом ты на нем пишешь. Ты сука тупая, которая не понимает что несет, пошел нахуй.
>>2554287 Потому что навыки программирования это как навыки алгебры, они в целом универсальны, независимо от того на каком языке ты пишешь.
Зная алгоритмы, ты сможешь их реализиовать на любом языке после краткого изучения синтаксиса, не зная их, ты не сможешь нихуя, зная при этом синтаксис языка просто идеально.
>>2554326 хотя, нет, в задаче 4 у меня всё было по пепу, без ругани. и всё равно "неверно", пишет хотя всё верно. я заменил input на sys.stdin.read - сработало
ааааа, ей промт в инпуте не понравился "input(f'Number {i}: ')" - это неправильный код, а "input()" это правильный код, запомните, дети, учитесь у яндекса программированию
>>2554367 всё определено, напиши чего-нибудь в промт и тестировщик отвалится
короче, яндекс говном накормил. куча задач на работу с охуенно важной жизненно необходимой каждому программисту функцией input(), причем я заметил, что для всех задач нужно писать какой-то говнокод
>>2546424 (OP) Привет, Анончики, подскажите плиз, я сам не могу найти. Как сделать интерактивный график, что бы выбирать ряд данных в самом графике? Например, у меня есть табличка с ввп по годам, в ней 193 страны, я хочу иметь возможность выбирать и накладывать на график ввп выбранных стран из выпадающего списка. Что бы на графике было отображено несколько стран. Типа Австрия, Венгрия, Франция, Германия. Вот примерно так. https://www.imf.org/external/datamapper/PCPIPCH@WEO/AUT/HUN/FRA/DEU Спасибо.
Аноны. Я ручная макака, но вот какая ситуация: подлетел возможный вариант попытаться вкатиться в относительно свежий проект в компании в автотостеры. Посему вопрос - за сколько минимум времени можно хоть как-то вменяемо выучить питон чтобы тупо появилась база в голове?
В каких из множества книг про Python есть краткое предисловие про вообще основы программирования? Ну чтобы не от 0 до питона, а чтобы от -1 до питона.
Я не из тикток-поколения, но не против посмотреть видео-курс, только чтобы это была не пиратская запись с онлайн-курса, где половина видео это вода, а конкретный видеогайд. Может кто-нибудь такое посоветовать с рутрекера или откуда-нибудь еще?
[int(i) for i in input().split()] генерируем числа в списке пока не нажмём энтер. а можно как-нибудь сгенерировать так матрицу? т.е. чтобы строки плодились, когда пользователь нажмет энтер, не указывая явно количество строк.
>>2555119 мне надо в матрице сделать математические операции над элементами. ок, я создаю копию нашего списка, провожу операции над элементами нового списка. но почему когда я меняю элемент нового списка, он ведет себя как-то странно? в данном случае, если введена одна строка и допустим я увеливаю первый элемент в n раз, остальные тоже увеличиваются в n раз лол. поясни нубу, как это пофиксить? говнокод: https://goonlinetools.com/snapshot/code/#w4s3brk2l39mmjtxb46f
>>2555304 да. копу делает шэллоу копи, и создает тебе другой лист с новым указателем, но сами элементы внутри продолжают указывать на старые объекты. деепкопу также рекурсивно копирует объекты внутри
>>2555053 На степике курсы по питону. Хотя не понятно, что ты от основ программирования хочешь. Что бы тебя прям сразу ввели в двоичный код, который комп и понимает только или просто не только дали синтаксис языка, но ещё и заданиями по каждому моменту подрючили, то это степик.
Если первое, то это уже после освоения языка на более менее нормальном уровне стоит лезть.
>>2555416 У меня такое впечатление, что все эти хотители разобраться как начинают лезть в дебри от простейшей хуйни, которую ОТ НИХ СКРЫВАЮТ, так и ловят стек оверфлоу, лул.
>>2546424 (OP) Какие книги посоветуете по мачин лернингс (чтобы там не просто код на питоне давали) А чтоб еще описывали алгоритмы со всем матаном. Чтоб материал еще давался в соответствие с учебником статистики.
>>2555712 Jeremy Watt — «Machine Learning Refined» John K. Kruschke — «Doing Bayesian Data Analysis» Sarah Boslaugh, Paul Watters — «Statistics in a Nutshell» Charles M. Grinstead, J. Laurie Snell — «Introduction to Probability» Sheldon M. Ross — «Introduction to Probability and Statistics»
>>2546424 (OP) Я чет не понял. Вот мы пишем хуйню вроде :
counter = 0 while counter < 10_000_000: ----counter += 1
То есть тупо гоняем цикл на 10 миллионов тактов чтобы выждать время, и это забивает CPU. Но есть еще возможность сделать так:
time.sleep(1) ИЛИ await asyncio.sleep(1)
И CPU будто вообще не забивается, но камон, как этот sleep вообще крутится? Система не может прост "ничего не делать" секунду, она точно так же бегает в бесконечном цикле и ждет когда из него можно выйти. Шо за магия?
>>2556226 У тебя программа в вакууме работает или поверх ос? Что такое проце знаешь? А поток исполнения? А зачем в ос нужны планировщики задач? А что такое прерывания? А как происходит переключение процессов?
BaseSettings pydantic-а подтягивают значение ALLOWED_HOSTS из переменных среды. Это (очевидно) строка где хосты разделены пробелом. Но как мне получить его в виде списка строк? Пытался оставить как есть, он при подгрузке мне пишет: error parsing env var "allowed_hosts"
>>2556307 >>2556352 Скорее ты сам изначально сделал через жопу, а потом сам же и решил. Если оно хочет жсон, то может и должен быть жсон, а не пробелы?
>>2556145 Ну если этот ваш степик бесплатный, можно и его.
Просто если у анона уровень минус один, как он пишет, ему нахуй не нужно ничего покупать на этом этапе.
Большинство курсов и прочего платного видео какраз для вот таких зелёных. Там тупо озвучивают туториал, что можно и ютубе забесплатно послушать-посмотреть.
А почему не выдает ошибку? Разве возможно чтоб несколько процессов одновременно обращались к одной и той же переменной? Или threading - это фейковый мультипроцессинг?
>>2556970 Какой-то странный сайт. Что значит «поступить». Это к чему-то обязывает? Какие-то личные данные нужно вводить? Или можно фейко-аноном поучиться?
Но в целом, если бесплатно, то именно то что нужно. Основы основ. Основы во всех учебниках и видео одинаковые, подозреваю.
Прошёл курс на степике по питону, меня теперь возьмут куда-нибудь? Алсо до этого в вузе только плюса проходил и ебланил, но чет питон вообще легким показался.
>>2556226 sleep сам по себе не крутится. Питон дает ОС сигнал, что процесс надо перестать планировать (запускать на ЦП) в течение 1 секунды, планировщик ОС перестает планировать этот процесс. Если есть какие-то другие пользовательские процессы, то планировщик планирует их. Если все пользовательские процессы спят (ждут time.sleep или IO), то ОС планирует процесс №0. Процесс №0 внутри себя выполняет программу, содержащую бесконечный цикл (опционально с NOP внутри). Вот только выполнять NOP это не совсем "ничего не делать", если его запустить в бесконечном цикле в пользовательском процессоре, то вполне себе начнет выжираться 100% времени и электроэнергии, то есть процессор "забивается", кулеры шумят итп. Но фишка процесса №0 в том, что при его планировании ОС еще и автоматически командует ЦПУ снизить энергопотребление до минимума. Снижаются рабочая частоты, отключаются некоторые блоки итд. ЦПУ умеет входить и выходить из этого режима очень быстро. Именно благодаря этому и создается ощущение, что процессор "без нагрузки" находится в покое.
Это самая база, в реальности все сложнее, конечно. Отсюда можешь начать копать. Но остальные ЧСВшные аноны тебе вообще какую-то хуйню ответили.
Хауди Хо друзья! Вот освоил основной синтаксис, потыкался в джанго, попробовал в фаст апи и вот попал в тупик: в джанго все как конструктор лего, вот модельки вот вьюшки, вот темплейт папочка все разложил и нате сайтик а в фастапи я чет нипонял нихуя, вот запустил админку по документации и че с ней делать? куда хтмлки привязывать? есть может литература какая или видосики где можно грокнуть эту тему
У меня сложилось впечатление, что в джанге шаг влево-вправо от задуманных разрабами юзкейсов карается многочасовой еблёй. Оно справедливо или я ошибаюсь?
>>2554295 >они в целом универсальны, независимо от того на каком языке ты пишешь Я спрашивал в голенг треде про аналог yeild и в целом генераторах для итерации линкед листа, в итоге выяснилось, что там нихуя подобного нет и в целом питон предлагает другой уровень выразительности и там нужно ебошить классические структуры как в сишке, да и в целом есть очень много вещей, которые отличаются от того что есть в питоне и его изучение гораздо больнее, чем если бы я голенг с нуля учил и привыкал к его концепциям.
>>2558340 Это магическая переменная в которой имя текущего модуля. Если модуль загружен через import из другого модуля -- это будет имя файла. Если модуль загружен интерпретатором (то есть например в командной строке написали python my_program.py) то __name__ будет 'main'.
>>2558521 Там самое близкое к yield-генераторам это каналы. Одна корутина идет по списку и пишет в канал -- это генератор. Другая читает из канала. Если канал без буфера то получится точно тот же порядок операций как в питоне
>>2558521 Разумеется различия в языках есть и некоторые вещи не реализуемы на других или с костылями и не так эффективно. Но ты уже понимаешь, что тебе нужно, какой результат, а уж не долго разобраться какими другими инструментами можно его достичь.
>>2558884 Ну а если способ достижения нужных результатов крайне неэффективный для твоих проектов, то тут уже вопрос а зачем ты пользуешься данным языком для них, меняй его.
>>2558884 Так речь шла о питоне как о языке для обучения, быстрый вкат происходит только за счёт того, что многие концепции, которые юзаются в программировании опускаются, типа указателей и размера типов данных, из-чего при перекате в другие языки или попытке эффективно писать программы начинается бугурт. Единственное что в языке выгодно отличается это то, что ты можешь постигать языковые концепции максимально последовательно и новичкам не нужно писать магические private static void и include something.h которые в самом начале непонятно для чего нужны во время написания циклов и хеллоу ворлда.
>>2558912 Когда ты пишешь на питоне, ты можешь мыслить высокими категориями, на других языках же размениваешься на ерунду.
Например, в питоне ты легко работаешь с юникод-строками не задумываясь, а на куче других языков ты страдаешь.
У тебя в коробке конструкции вроде словарей. Ты можешь делать операции вида if element in some_list (список, словарь, множество), на других языках обычно совсем-совсем не так лаконично
На более продвинутом уровне у тебя есть всякие контекстные менеджеры with, которые сильно вычистить-обезопасить код могут
Дохера всего на самом деле.
А ещё у тебя очень хорошая стандартная библиотека, не надо для всего подключать внешние зависимости.
Ты можешь просто реально программировать почти всё, что угодно. Не всегда эффективно, конечно.
>>2558912 Ну на питоне куда проще писать полный говнокод, когда вывод одной строки может потратить несколько гигабайт оперативки это да, но в конечном счёте, если ты хочешь успешно программировать на питоне тебе это всё равно нужно знать и нормальные курсы обычно на всё это указывают.
Ты должен знать, что происходит внутри питона. Поэтому при переходе на другой язык более менее нормально кодера бугурта быть не должно.
>>2558933 >Ну на питоне куда проще писать полный говнокод, когда вывод одной строки может потратить несколько гигабайт оперативки это да Не очень представляю, как ты несколько гигабайт можешь спустить. На других языках писать говнокод не сложнее, скорее проще. Понимать нужно любой язык. Иначе ты будет по байту нарачивать строку, каждый раз реаллоцируя массив по неё, например.
>>2558936 Да это я, конечно, утрировал. Но пайфон из-за своей гибкости именно позволяет навертеть много чего, если ты не в курсах, что там под капотом, а просто кратко выучил синтаксис.
>>2558932 >на других языках же размениваешься на ерунду Если у тебя небольшая нагрузка, то да, это можно назвать ерундой, но что бы писать на питоне эффективно нужно знать кишочки и концепции, которые в других языках постигаются во время базового обучения. Например, недавно возникала проблема с жором памяти у одинаквых питонячьих строк, которые по дефолту не интернировались и которые оказывается, жрут по 49 байт минимум даже если там ничего нет. В языке с указателями я бы даже не задумывался об этом и сразу запилил необходимую структуру, но в питоне об узнаешь только когда припрет и мало в каких учебниках или курсах такая тема обсуждается.
>>2558950 >нужно знать кишочки и концепции, которые в других языках постигаются во время базового обучения Практика показывает, что нет. Страдает и базовое обучение, концепции, и понимание кишочков.
>>2558950 >Например, недавно возникала проблема с жором памяти у одинаквых питонячьих строк, которые по дефолту не интернировались и которые оказывается, жрут по 49 байт минимум даже если там ничего нет. В языке с указателями я бы даже не задумывался об этом Вот именно что не задумываешься. А попробуй задуматься, сколько реально потребляется памяти при malloc(1) например. Подсказка: тоже далеко не 1 байт. И даже не 4-8.
>>2558992 зачем вообще книги когда учишь язык когда есть божественные БЕСПЛАТНЫЕ курсы на степике, там тебе все рассказывают и сразу закрепляют материал заставляя вбить код ручками
>>2556372 ахаха, это галерные проблемы гребцов на забугорные помойки. Скидывают всякую хуевую работу и технический долг на аутсорс. Но платят больше, да.
>>2558932 >Например, в питоне ты легко работаешь с юникод-строками не задумываясь, а на куче других языков ты страдаешь. ага. ты просто не был тут во время python2.
>>2560357 Можно, но учти: 1) это будет на порядок сложнее, чем на движке 2) это будет очень медленно работать. в 4к будет 30 фпс на йоба процессоре 3) вся твоя игра считается и рендерится на одном потоке цпу 4) всякие полноэкранные эффекты, блум, транспаренси, постпроцесс - забудь. твоя игра будет выглядеть так, будто её сделали в 25 лет назад!
>>2560357 В играх решает контент, движок на котором он будет крутится важен чуть меньше. В питоне есть подводные вроде однопоточки и общей тормознутости, но если не делать ААА-йобу, то для нетребовательного 2д вполне хватит.
>>2560395 > это будет на порядок сложнее, чем на движке Но я вот читал что крутые программисты делают костяк на pygame, смотрят как все это примерно будет выглядеть, а потом переписывают на другом движке
>>2561092 У тебя три цикла вставлены один в другой, вот они и тормозят. Тебе что нужно? Найти самый большой квадрат. Значит как только находишь 4 - сразу делаешь break. Иначе по другому алгоритму ищешь суммы других квадратов и выводишь max. Попробуй сделать хотя бы 2 цикла
>>2561259 благодарю за совет, я сначала поменял поиск start на бинарный и сократил время работы примерно с 11 секунд до 5, потом еще потужился и применил префиксные суммы(в данном случае постфиксные, но не уверен что такой термин есть) по итогу 300*300 матрицу за 700 мс обрабатывает
>>2561092 Наверно в каждой строке надо найти подстроку максимальной длины(но не единичной), потом найти минимум из пересечений получившихся отрезков.
В твоем примере отрезки длин 0, 3, 5, 0. Пересекаем последовательно ненулевые. Пересечение 3 и 5 дает 3, но до правильного квадрата надо еще один этаж, но следующий идет 0, значит ограничиваемся максимумом стороной 2 и площадь 4.
Яб как-то так рассуждал. Сама задача на подстроки и дерево пересечений из них.
>>2546785 У тебя после выполнения запроса в response (ну или в driver в исходном твоем примере тут >>2546775 ) и так будет доступен User-Agent, для этого не надо парсить json.
>>2561533 сам расстроился, только начал изучать питончик. ну может через год ситуация изменится, как раз к тому времени подтяну знания. джуновских вакансий в дс2 чуть меньше 40, но откликов там много. вот одна из них
Аноны, кто-нибудь проходил курс от скайпро? нашел его слив, и все вроде ок, но там для выполнения дз 7 урока нужен json файл с данными игры (а-ля "Своя игра"), а он походу доступен только в личном кабинете
>>2561787 Да, видно, что подгружается ответ ещё не сразу же.
А мой вариант, ну можно и без else, но это я так предпочитаю писать, что бы понятнее было, что это именно конец цикла, а не отдельная операция от цикла.
>>2561797 Понятно. Тут и я свой дальше улучшил, поняв, что список вообще не нужен. Ну полистал дальше, примеры нормальные там, позанимаюсь по этой книге, думаю хватит для начала.
Продублирую: Есть ли бесплатное решение для распознавания русскоязычного текста лучше, чем tesseract? Так уж вышло, что нужна распознавалка текста, и пока кроме тессаракта ничего лучше найти не могу найти. Есть nanonets, который прям 10/10, но там платно. А тессаракт плывёт на обычных фото. Есть вообще варианты, на что поменять его? Сам пробовал его и Easyocr, но последний прям вообще никакой.
>>2561816 Он и не для фото, он для сканов, грубо говоря. Т.е. должен быть препроцессеный контрастный различимый текст, посторонний шум сольет его распознавание почти до нуля.
Блин, я точно недавно где-то встречал решение, как декорарировать рекурсивную функцию так, что бы декоратор вызывался только один раз, но забыл и что то гугл не особо помогает. Может кто может кратко подсказать?
>>2562138 Да, это работает, хотя там вроде какие то дополнительные настройки у самого декоратора были. Но хз, может так и было Ну буду просто этим вариантом пользоваться
>>2560244 С одной стороны ты прав, на степике много мусора даже слишком Но курс по питону там, в целом — хорош. Хотя некоторые вещи не объясняются, а потом проскакивают в задачах. Типа и так понятно, а скорее всего просто автор забыл пояснить. Но базовые вещи там разжеваны даже для самых уж тупых. Другие курсы по программированию я не смотрел, а вот по другим предметам там трешемусор.
Блядь, я её понимаю. Есть .тхт, в нем лежит репрезентация питонового дикта на ~3к строк. Нужно прочитать тхт, превратить дикт в жсон и отослать по гет-запросу, когда надо. Дикт отдельно провалидирован через jsonlint на предмет скобок/кавычек/дублей ключей, но на моменте json.loads() выбивает ошибку. Если этот же дикт захардкодить внутрь функции, то все работает. Если в тхт положить коротенькую залупу а-ля { "test": "success" } То тоже все работает. Что не так?
>>2548685 только в хуевом виде тут в каждом проходе зачем-то каждый раз происходит обмен первого попавшегося наименьшего элемента, а не один раз в конце прохода.
Анон, привет. Я только начал изучать питон, опыта ноль, да и в целом это мой первый язык. Есть какие-нибудь сайты-тренажеры, где дохуя задач для новичков, с постепенным возрастанием уровня сложности? Хочу руку набивать. Желательно на русском, но и англ подойдёт, переводчиком пользоваться умею.
>>2563536 На степике есть бесплатный курс Добрый, добрый Python. Для новичков самое то. Задачки там по сложности могут доходить до 5 кю в кодварсе. Вот только стоит ли сейчас начинать вкатываться… Скоро chat gpt будет уметь всякое, да и джунов огромное количество. Я сам пытаюсь вкатиться и охреневаю. Уже начинаю думать что учу питон только для своих будущих проектов и инди игр в Стиме
>>2563035 >>2563037 Вы не поверите, ошибка была из-за того, что в питоновой структуре были переходы на новую строку во вложенных словарях. По всей видимо json.loads() не мог интерпретировать эту хуйню и ломался.
>>2563424 И тебе спасибо. Я уже решил это простой установкой прошлой версии самого питона.
Интересный факт. В профильных группах в телеге мой вопрос просто проигнорировали. А на двощах откликнулись три анончика. Питонотред лучше чем всякие группы в телеге.
Сап вечерний. Призываются джангисты итт. В моделях имеется: f = models.FileField(upload_to='files/'). На сколько я понял, в БД сохраняются только координаты файла при его загрузке в папку files. Как правильно применять этот и ему подобные методы FieldFile (name, size, open): https://docs.djangoproject.com/en/4.1/ref/models/fields/#django.db.models.fields.files.FieldFile.name ? Хотя бы в shell, дальше я сам разберусь. На пикриле я видимо иду не по правильному пути.
>>2564194 Так поле отношения у тебя называется f, но ты явно запрашиваешь name. Скинь код модели. И приучивайся добывать записи через get_object_or_404
сап, я ультра начинающий как для телегабота замутить автоматическую проверку курса валюты с какого нибудь сайта? пока я вписал значения вручную? За одно, порекомендуйте гайды, предпочтительно на ютубе на русском, я тупой, по этой ветке питона
Сделай функцию с реквестом гет-запросов на какую-нибудь биржу, назови переменные запросов в соответствии с наименованием валют и вызывай при необходимости. Парсинг валют нагугли, там ничего сложного.
>>2563124 Всё ставится на винду, там какая-то магия есть с тем, чтобы нормальные версии поставить, но любому дружащему с компами понятная после небольшого разбирательства. Уже не помню, что там было, но решалось за 10 минут.
>>2564388 >>2564393 Спасибо за разъяснения. Ошибку в запросе понял и исправил (пик 1). Подскажите ещё тактически. Как правильнее создавать ссылки на загруженные файлы? Сейчас сделал в views: files_all_request = Files.objects.all() Он передаёт в цикл for ссылки на объекты (пик 2). При переходе по ним в консоль возвращает 404, а браузер пытается неудачно загрузить htm с названием файла. Насколько я понял, надо как-то прикручивать FileResponse objects (в процессе его изучения): https://docs.djangoproject.com/en/4.1/ref/request-response/#fileresponse-objects , но в гугле неоднократно рекомендовали этот способ с mimetypes https://djangoadventures.com/how-to-create-file-download-links-in-django/ , а на стаковерфлоу лютый оверхед с модификациями HttpResponse от программистов индийского происхождения. Немного запутался в выборе направления.
>>2564506 Т.е. у тебя переменная files_all_request, которая берёт queryset всех записей. Как у тебя выглядит context? {'all_files_info': files_all_request}? Почему в форич у тебя другое имя?
Олсо, я бы порекомендовал тебе использовать миксины, почитай про ListView, там сильно упрощена привязка форм, моделей и передача контекста с возможностью переопределения метода сохранения/считывания записей из БД. class DownloadFiles(ListView): __model = Files __template_name = 'template/download.html' __context_object_name = 'all_files_info'
>>2564539 Файл в наличии. Путь 404 на пик 1. STATIC_URL = 'static/' , но ведь он же не относится к загружаемым файлам? По умолчанию используется MEDIA_ROOT, к которому я добавил examples/upload_files/ в моделях. Про static files почитаю. Загрузка файла вроде правильно выполняется. На пик 2 результат шаблонов i.upload_files.url и i.upload_files.path.
>>2564548 enctype="multipart/form-data" прикручено к форме загрузки файла на сервер.
>>2564559 > {'all_files_info': files_all_request} Да, выглядит так. Другое имя, чтобы пока не путаться в том, что и откуда берётся. Про ListView почитаю. Застрял пока в работе с файлами.
>>2564919 База. Я с таким же настроем уже второй год занимаюсь понемногу. Даже не знаю, что из этого получится и ни на что не рассчитываю. Тоже с Питона и Джанго кстати начинал. Сначала туговато шло, но потом как-то это вошло в мой образ жизни и сферу интересов.
>>2564992 Если мотиватор чисто деньги, а сам кодинг не нравится, то уж лучше просто во вкусно и точка идти работать. В конечном счёте, хоть профессия вряд ли умрёт, но бум исчезнет, если уже не идёт на спад. А на данный момент вкатывание это что-то новой золотой лихорадки. Основное бабло тут рубят, конечно те кто курсы продаёт
>>2564539 >>2564548 >>2564559 Чувствую, что вам очень интересно нет, но я обнаружил, где проебался. В urls вместо path('<path:filepath>/', views.download, name='download_file'), было path('<str:filepath>/', views.download, name='download_file'), Соответственно в downloads передавался не путь, а строка без слешей. Само представление для отправки файла с сервера на пикриле.
Адепты джавы пугают, что если первым языком учить питон, то потом никогда не поймешь ООП и нормальную типизацию. Реально так или это у них синдром утенка?
Один знакомый попросил сделать скрипт, который берёт текст и удаляет все дубли из него, выписывая общее колличество уникальных слов. Всё просто, но нужно учитывать и различные окончания типа -s, -ed, -ing и их тоже фильтровать в одно слово все.
Пришлось погуглить и с библиотекой nltk это оказалось довольно просто реализовать. Интересно, для русского есть такие библиотеки?
Может кто-то помочь с этим? я на учителя математики учусь, а нас этой штукой насилуют, не знаю, проблем с вводом выводом, условными конструкциями не было, а тут не знаю, что делать, буду очень признателен, могу 50 рублей скинуть, за правильное решение, под правильным подразумеваю, отсутствие всяких непонятных библиотек, которые "мы еще не проходили" Дана матрица B(N,M) натуральных чисел. Найти количество строк, в которых меньше половины элементов начинается с заданной цифры Х.
>>2565923 >>2565928 Пиздец у вас лютуют. Ну пусть закинет кто-то, но это несколько шуточное решение, хотя развернуть в циклы пять сек и будет нормальное.
У меня такая проблема. Я скачал и поставил себе Spyder, однако он не запускается. То есть, сначала появляется загрузочный экран IDE, а затем появляется какое-то маленькое окошко и тут же закрывается. И все.
Суп. Посоветуйте IDE. Пару лет питон не был в зоне моих интересов, сейчас вернулся, нужно накидать обширное REST-API и клиент к нему я админ и в это время, когда у меня всплывал питон, то мне с головой хватало Vim/gedit, я получал в них готовые скрипты раньше, чем запускался Pycharm. Думал взять и купить пайчарм, но авторы, судя по заявлениям, больные политотой головного мозга ублюдки, шли бы они нахуй с таким подходом. Есть что ещё, удобное, со всякими фичами типа нативной интеграции с Vitrual Environment и прочим? Под GNU/Linux, естественно. Можно (и даже в некотором смысле предпочтительно) платную, но чтобы была прям АГОНЬ-АГНИЩЕ, а не как Sublime Саблайм... не то чтобы он плох, но на 99USD/3y не тянет прям вообще. VS-code пробовал, но то ли его надо яростно допиливать, то ли до пайчарма ему как до луны раком. Я бы и рад допилить, но как? Кучи плагинов donjayamanne.python-extension-pack не хватает, например: хотелось бы, чтобы IDE следила за requirments.txt, дописывала код по сниппету(хотя в питоне это не слишком критично, но всё же), тут этого нет или я не нашёл. Ну и много чего ещё на самом деле, это просто примеры того, что я жду от IDE в 2023-м (это я ещё плагин для линта нашёл, пока писал).
И ещё, я когда-то такое делал на Фласке, есть ли смысл сейчас осваивать что-то другое? Типа FastAPI?.. Асинхронность мне прироста не даст, может, только замедлит чутка, но я люблю осваивать современные инструменты. Если это вдруг важно... Планируется приложение на PyQt для себя и коллег (кто хочет, пусть делают себе Web-GUI или ещё что), с классической твёхзвенной архитектурой DB-API-Client. Возможно, дадим контрагентам для работы с нашими ресурсами и ХЗ, какая будет популярность потом, но об этом рано рассуждать ещё.
>>2566319 Допиливай vscode. В плане настройки он топорный, некоторые логически дополняемые плагины по факту конфликтуют друг с другом, перекрывая и урезая функционал (python и djangolib к примеру), но путем пердолинга ты замутить себе наипездатейшую Иде. Если нет времени, желания, то чел выше ответил. Пайчарм.
>>2566319 >но авторы, судя по заявлениям, больные политотой головного мозга ублюдки Че за заявления? Я лично пайчарм использую крякнутый. На рутрекере всё есть.
>>2566338 Комьюнити не умеет в дзиндзю, так что фласк/джанго под вопросом. Писать можно, но с удобством (так-то написать и в notepad.exe можно)... Вроде, для REST-API это не критично, но почему бы не поискать альтернативы? >>2566343 Путём пердолинга наипиздатейшую IDE проще всего сделать из EMACS, там даже пердолинга будет немного... Вообще потыкал и, кажется, на VS-Code и остановлюсь. Не так там всё плохо, как показалось вначале. Вообще первый продукт майков, от которого не передёргивает ежеминутно (по крайней мере пока они не сломали Electron слишком сильно). Рефакторинга не хватает немного, пока это не выглядит большой проблемой, но даже возможность переименовать переменную во всём проекте с учётом областей видимости в пайчарме пригождалась. >>2566346 >Че за заявления? https://blog.jetbrains.com/blog/2022/12/06/update-on-jetbrains-statement-on-ukraine/ Оффтоп, политота, и т.п., тему дальше развивать не буду: в целом это всё я считаю крайне формой лицемерия: ни писка про Ирак, Афганистан, Йемен или ещё о десятках войн, но такой вой насчёт хохлов... аж тошнит. Вынепониметеэтосовсемпресовсемдругое, блджад! >использую крякнутый Идеологически и, почти физиологически, неприемлю. Я предпочитаю, чтобы мне платили за работу и считаю нормой платить за товары, которыми пользуюсь. При этом, если есть вариант воспользоваться бесплатной альтернативой, я не премину им воспользоваться с чувством благодарности по отношению к тем, кто дал мне такую возможность. Вопрос качества альтернативы и цены рассматривается индивидуально и зависит от потребностей и требований. >>2566378 >Что вообще даёт платный саблайм? Как WinRAR: пропадает сообщение о том, что надо купить + понимание, что ты помог авторам делать хорошее дело, я им реально пользуюсь потому что он реально хорош. Тащемта, если бы он стоил $20-40/lifetime, я бы даже взял, и за ту же цену добрал бы Sublime Merge (сейчас за них просят $99 по отдельности или $168 за комплект), лучший клиент гита, который мне попадался. Кстати, в smerge после покупки дают доступ к dev-ветке с более частыми релизами и тёмную тему (это из того, что заметил, возможно, и в subl и в smerge есть и другое, просто я не натыкался).
>>2566319 > И ещё, я когда-то такое делал на Фласке, есть ли смысл сейчас осваивать что-то другое? Типа FastAPI?.. Да, решил потыкать в фаст-апи. Правда, в примерах, которые попались пока что аффтар слишком яростно для меня надрачивает на асинхронность, ну да орган с ним, заодно вспомню универ, я с 4-го курса ни разу в многопоточности и асинхронность не тыкал (если не считать одновременных пинков процессов из bash, если кому интересно, расскажу).
Не думаю, что автор шапки прям прав насчёт того, что фласк это прямо легаси, но чего бы не взять более подходящий инструмент.
Внезапно, озадачился, стоит ли абстрагироваться от БД через явно модную сейчас SQL-Alchemy, или лучше сделать, как привык... А привык я к тому, что в БД создаются хранимки и вьюшки и сервер приложения имеет доступ только к ним и не имеет доступа к собственно таблицам вообще. Это позволяет слегка спрятать потроха на случай проблем и всяких инъекций.
Да, я очень давно не кодил тыр-тыр-прайз-подобных вещей.
>>2566319 Честно говоря, не представляю себе как можно с вима слезть на что-то другое но у меня в виме стаж 10+ лет лол Я бы сперва смотрел какие к виму есть плагины для virtualenv и что там еще надо для такого проекта
>>2566714 >стоыт ле абстрагыроваца от БД цеґез явно модную сейчас SQL-Alchemy Гэта не зробіць працу трывалага праграміста прасцей, але Алхімія не замінае напрасткі пісаць свае запыты па ранейшаму. Разам з ёй прапануецца карысны інструмэнт - Alembic DB migration tool. Гэта як git, толькі для базы дадзеных. Спрошчвае праце некалькіх праграмістаў або стварэньне патчаў для жывой сістэмы.
>>2566907 В латинице 26 букв, этого мне достаточно для переменных в любой программе. Ну иногда ещё по ситуации использую греческий. Кириллица не нужна.
os.makedirs(datetime.now().strftime('%d_%m_%Y_%H_%M')) Как "провалиться" в созданную директорию? Пробовал присвойть переменную, но отладчик пишет None.
>>2567094 >>Название файла в переменную вынеси и проваливайся Почесав нижнии полушария, я интерпретировал это так: os.makedirs(datetime.now().strftime('%d_%m_%Y_%H_%M')) a = datetime.now().strftime('%d_%m_%Y_%H_%M') Работает, я остался доволен результатом. А это нормально, или я "быдлокодер"?
>>2567154 Все правильно делаешь. makedirs создает директорию (или валится с ошибкой если нет прав), chrdir меняет текущую директорию, передавай и туда и туда один и тот же путь и все дела. makedirs возвращает None потому что предполагается что путь ты уже знаешь так что нет смысла ничего возвращать. Есть еще похожая функция tempfile.mkdtem() -- она возвращает путь потому что он рандомный и зависит от системы
>>2566918 В vim я часто хожу на ХЗ-где, например, по ssh на серваке, который вижу в первый (и, возможно, последний) раз в жизни. Конечно, я не таскаю туда кучи плагинов... Вообще, я в виме делаю очень многое и тоже больше 10 лет, но как-то не приспособился его прокачивать. >>2566918 > Алхімія не замінае напрасткі пісаць свае запыты па ранейшаму. Гэта зразумела. Іншая справа, што калі я аддзялю базу ад кода і забараню выконваць звычайныя запыты, то я атрымаю некаторы аператыўны прастор і бяспеку. > Спрошчвае праце некалькіх праграмістаў або стварэньне патчаў для жывой сістэмы. Пакуль што гэта для мяне не актуальна.
>>2566907 На то есть две причины. Хотя я виделпитоновский код на русском, но: Во-первых это касется того, что объявил ты сам. Никто не переводил все эти def, for, if, print и прочее. Во-вторых я неплохо знаком с 1С и даже когда весь язык на русском, это коробит из-за более сложных форм слов в настоящем русском. От конструкций типа "Новый Таблица" меня коробило всё время.
>>2566958 А ещё, я никогда не забуду тот момент, когда на одной из конференций я впервые в жизни поймал на себе завистливый взгляд. Это был взгляд какого-то сливающегося с толпой неудачника, взгляд преисполненный ненависти, презрения и желчного вожделения, направленного на мой Олимп. Наверное, он всю свою никчёмную жизнь писал на каком-нибудь си-шарпе или там на джаве, проводя долгие дни в одиночестве. И теперь начинал подсознательно догадываться, что долгие годы безуспешно пытался построить замок из навоза.
>>2567139 Быдлоколдер. Ты дважды получаешь текущее время (с точностью до минуты). Есть ненуленвая вероятность, что между этими снятиями сменится минута и в переменной `a` не будет лежать именно имя директории.
>>2559029 >В продуктовой конторе ты все можешь изменить Мальчик, вот когда ты поработаешь в реальной продуктовой конторе и познакомишься с тамошним уровнем бюрократии, такой хуйни нести больше не будешь. Так что марш жсончики грузить, тасочки сами себя не закроют
Интересную ошибку схватил. Запустил прогу с огромным списком через рекурсию, которая не могла закончится, не специально, но забыл поменять условие для проверки. Ну о таком не парешься, обычно быстро выдаётся ошибка и ничего не происходит, а тут в итоге всё загрузилось на 100%, и кое-как через пару минут смог закрыть пейчар. И это всё пофиг, но во время этого процесса в ошибку вылетел qBittorrent и после чего диск стал грузить на 100% и работать всё медленно. Никакие перезагрузки не помогали, винда включалась очень медленно. Пока я заново не запустил qBittorrent и всё резко не восстановилось.
Видимо какой-то процесс от него остался, когда начал ломать работу диска и при этом даже перезагрузка компа его не останавливала, не думал, что такое возможно
>>2567820 Да, я сейчас разобрался получше и так понял эта проблема была связана с антивиром и видимо он сохранял состояние несмотря на перезагрузку винды и даже при запуске винды процесс продолжал. Ну а антивирь чекал торрент, тот резко сломалс, антивирь не успел понять почему, опять же из-за загрузки всей памяти, и начал психовать, постоянно обращаясь к диску и нечего особо не читал с него, но активность 100% ему давал.
А как я заново запустил торрент, то антивирь его нашёл, успокоился и закрыл эту проверку. По крайней мере такая у меня теория. >>2567822 Ну я на диск ничего не записывал при выполнение скрипта. И никакой записи и чтения не происходило особого, просто нагрузка 100% и всё
>>2567989 Действительно, дурень. Помогло, спасибо. ЧСХ, в другом месте скобки есть и всё отрабатывало прекрасно. Странно, что он не падал при этом. >>2567993 Там много кода вокруг, включая получение значений и т.п. И close тоже есть, но в конце метода и в копируемый кусок он тупо не попал.
>>2568001 Без скобок это по-идее должно трактоваться, как переменная? Ну вот и упал бы с "NameError: name 'conn.commit' is not defined", что, жалко, что ли?
Здравсвутйе, я рмтшник-доширачник очень хочу написать бота для игры. изучение питона мне с этим поможет? можно начинать с книжек в оп посте или лучше начать с учебников информатики с 5 по 11класс?
Предыдущий:
Литература:
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