Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником. исходник: https://dumpz.org/bASGKD8cCFDf
Я туплю нереально, что делаю не так в коде? Учу джанго и ни в какую не грузится изображение для товара. При этом если грузить со страницы админки - проблем нет, грузит в медиарут и все хорошо.
Сейчас наступает 2021 год, я решил начать свой вкат в питон (преимущественно в нейросети, может ещё потом веб) начиная с первого дня нового года упорно заниматся изучением темы.
Подумалось мне, было бы неплохо осуществлять с кем-то совместно вкат, можно вопросы друг-другу задавать, объяснять темы, пилить совместные проекты.
Всё что имею при себе - базовые знания питона и программирования (переменные, циклы, ветвления, списки, словари, исключения вот это всё).
Если кому интересно пишите на фейкомыло johntitor47@yandex.ru
Сейчас наступает 2021 год, я решил начать свой вкат в питон (преимущественно в нейросети, может ещё потом веб) начиная с первого дня нового года упорно заниматся изучением темы.
Подумалось мне, было бы неплохо осуществлять с кем-то совместно вкат, можно вопросы друг-другу задавать, объяснять темы, пилить совместные проекты.
Всё что имею при себе - базовые знания питона и программирования (переменные, циклы, ветвления, списки, словари, исключения вот это всё).
Если кому интересно пишите на фейкомыло johntitor47@yandex.ru
норм ли в питоне считать статистику с очень маленькими числами (там типа 1.23*10^(-456) ) не наебнется ли сильно ничего, не зачмырят ли вообще за использование питона а не R какого-нибудь?
>>1896798 (OP) Что-то я не врубаюсь, каким именно образом в Пистоне реализована асинхронность на коллбэках? Вот скрин из одной небольшой проги-примера которая ходит по нескольким url которые заданы у нас в списке. Я конечно понимаю что на верхнем уровне у нас пиздато исполняется функция http_client.fetch которая ничего не блокирует и ждет получения результата чтобы "выстрелить" коллбек но... как это блин происходит? Если я захочу написать такую же функцию которая работает на коллбеках я тут же упрусь в том что моя функция после вызова заблокируется, "застрянет" и будет ждать исполнения кода прежде чем задействовать коллбек Как это блин работает?
>>1897945 Какое блять "легаси"? Асинхронка на коллбеках это основа основ. Вся асинхронность жс тоже восходит к ним, только вот там ивенты и коллбеки нативно вписаны в движок, поэтому вопросов к работе кода на пикриле не возникает
>>1897943 Хз что там в этом торнадо. Скорее всего fetch ничего не ждёт вообще, эта функция регистрирует коллбэк для соответствующего url А дальше запускается цикл обработки сообщений, который принимает входящее соединение, парсит его, и как распарсит, так вызывает соответствующий URL.
Тут вообще такого настоящего асинхронного нет, асинхронное если есть, то в функции обработки и парсинга входящих соединений.
ps: и да, тебе надо смотреть на асинхронность в asyncio и фреймворки, на нём основанные. Торнадо это уже легаси.
>>1897958 >Тебе дали нативный async/await Ммм, тебе бы на жопаскрипте писать. Дохрена макак сейчас развелось, которые про Промисы не слыхали нинужно жи!, но зато async/await вовсю юзают, правда чуть чего несутся роняя говно к своему сеньору-помидору чтобы пояснил почему их дерьмо вдруг плюется ошибками
>>1897968 >джанга может в async await Норм посмешил. async-await уровня /b просто ты щас кекнешь, но Торнадо асинхронный by design, и поддержка async-await там подрублена начиная с 2015
>>1897964 Джанго это очень серьёзный фреймворк для CRUD серверов. Немного легаси, так как его проектировали синхронным, пытаются добавить асинхронность, но с болью. Но замены ему нет, он единственный в своей нише.
Торнадо асинхронный фреймворк, сделанный ещё до asyncio. Имел своё велосипедное решение для асинхронности. Но вроде поддерживает как-то не очень прямо и asyncio. Тем не менее это тормоз, фреймворк не даёт дополнительных возможностей относительно более новых, которые проектировались под asyncio, при этом проигрывает им в производительности. В общем классическое legacy.
>>1898010 Future это аналог промисов. Это некоторый объект, который может быть в нескольких состояниях, хранит список коллбэков, которые надо вызвать, когда объект будет исполнен.
Task это задача, которая зарегистрирована в цикле обработки событий. Цикл обработки отвечает за то, чтобы периодически переключать исполнение на эту задачу, когда она временно отдаст управление, переключать на следующую.
Менее очевидная разница между корутиной и задачей. Корутина сама по себе в цикле не зарегистрирована и передачи управления на неё не происходит. И если ты в коде напишешь await my_coro() и внутри корутины явно регистрации задачи не происходит, то у тебя выполнение останется полностью синхронным.
>>1898189 >И хочу это сделать с помощью питона. Сложно или невозможно. Просто настрой адблок и будет тебе счастье. Только ты же его сам постоянно отключать будешь.
Иначе тебе нужно делать прокси. Причём или веб прокси, который будет качать сайт и подменять URL, или тебе придётся возиться с сертификатами, делать подмену сертификатов httsp, прописывать в браузер свой сертификат и т.п.
Потому что браузер устанавливает с сайтом защищённое соединение и просто так вторгнуться в него и фильтровать url ты не можешь, максимум ты можешь доступ к доменам ограничивать.
Короче единственный разумный вариант это адблок настроить.
Задам вопрос в этом году. Как с помощью pydantic разобрать такое дерьмо: TaxVAT. Если TaxVat ещё могу превратить в tax_vat, то как быть в первом случае? Даже в headings не превратить
>>1898567 map и другие подобные фичи подходят для прогнать какую-то небольшую операцию для коллекции и получить результат. Ты можешь изъебнуться и заменить ими вообще все форы, но это будет громоздко и неочевидно.
>>1898674 Давайте теперь все говорить как умственно отсталые потому что васе орку который питается стекломоем непонятно. И считать на пальцах и счета с костяшками тоже. Так?
>>1898567 В жс-треде буквально недавно был очередной срач на тему. Какой-то пизданутый ФПшник верещал что обычные циклы нинужны и по возможности надо всего городить map-reduce-filter парашу ибо "так пиздатее" Только вот цикл for максимально нативен и понятен и часто нет нужды городить конструкции из хуй пойми чего лишь бы ублажить ФПшника
>>1898830 Но мап действительно не даёт никаких преимуществ. Давал бы, если бы бы лучше поддержан в языке, если бы можно было бы цепочки вызовов делать my_array.map(foo).map(fuzz).filter(buzz) но в питоне этого нет.
В питоне реализовано так, что никаких преимуществ относительно генераторов списка или генераторных выражений нет. Причём генераторы списков куда более понятные и читаемые.
>>1898884 Цикл целиком слишком громоздкий, map может сократить код.
Но конкретно в питоне есть генераторные выражения, которые фактически один в один транслируются в map, и поэтому map теряет смысл. Хотя вложенные map, наверное, всё-таки более читаемые будут, меньше скобок и символов, больше слов.
Если бы в питоне можно было нативно цепочки из map и других функций делать, был бы смысл. Но этого нет.
>>1898923 В случае если ты один раз в теле цикла используешь t-квадрат да. Но если несколько раз, то в цикле придётся или делать дублирование кода, перемножать каждый раз, или вводить дополнительную переменную.
>>1898929 И в чем проблема? Если у тебя какая-то простая трансформация, то можно обойтись однострочником без переменных, а в форе можно и развернуться.
>>1898943 Для map да, большого профита нет. Одна дополнительная строчка в теле цикла читаемости добавит.
filter может дать куда больше профита, потому что его придётся заменять тем, что в теле цикла вставлять if-continue, что усложняет логику кода и не очень красиво.
А filter дополнительно можно обернуть в enumerate, и тогда уже эквивалентную логику сильно сложнее реализовать.
Вообще смысл в том, что map-filter и т.п. операции по-настоящему стреляют, когда объединяются в цепочки. Но в питоне это не поддержано как следует, а потому неудобно и смысл теряется.
>>1898978 Не знаю, не проглотит ли двач что-нибудь. Пример: with open('file.txt', 'rt', encoding='utf-8') as ff: ____for index, line in enumerate(map(str.rstrip, filter(str.strip, ff))): ________print (index, line)
код, который читает текстовый файл, игнорирует пустые строки (включая состоящие из одних пробелов), и выводит на экран номер строки в отфильтрованной нумерации, с обрезанным заключительным "\n"
Немного громоздко, но во что превратится код, если вот этими трюками не пользоваться? Придётся добавлять в теле цикла проверку на пустоту, заводить свой счётчик строк и инкрементировать его, потом отдельно обрезать.
Не скажу, что это какой-то прямо жизненный пример, чисто иллюстрация идеи.
На практике ограничения на map-filter довольно большие, приучаешься поэтому ими не пользоваться даже тогда, когда было бы с ними лучше.
Разница есть, но треть. И это только потому, что очень примитивные операции, на которых скорость точно не про питон. Под pypy при этом работает раз в 30 быстрее где-то, там другие соотношения, в зависимости от версии, но для объективного результата надо тест-платформу переделывать.
>>1898996 Ну я так понял мапы-фильтры хватанули где-то на старте из других языков, а потом уже допилили свои нативные и более выразительные компрехенсы и генераторные выражения, а эти остались как легаси. Иногда можно ввернуть красиво, не более. Но с условиями реально коряво, ждем когда морж пойдет в люди, уже хоть что-то.
хочу сделать, чтобы на сайте при выборе дат выгружалась таблица из БД. Например, выбираю с 1 по 15 число, выгружается визуально на HTML/CSS таблица с 1 по 15 число с количеством отработанных часов сотрудников. Следовательно, будет 15 столбцов Если выберу с 1 по 10, то 10 столбов. Как это реализовать?
>>1899114 Епт, что за фреймворк у тебя? Не говоря уже о том что это элементарная хуйня уровня sql и postgresql (если выберешь ее), которая трснаслируется в sqlaclhecmy, в пистон и в json
Как билтин ексепшну запретить вызываться? Например мне нужно чтобы TypeError вообще не участвовал в одном блоке, а были только кастомные мои исключения, но в некоторых ситуациях эта хуйня поднимается
Назрел вопрос: насколько важно учить алгоритмы при изучении Питона? Я вот уже какое-то время учу, и вообще ничего по этой теме не смотрел пока. Насколько оно нужно и полезно? Какие есть хорошие книги?
Появился хитрый план сэкономить переменную, но похоже он не увечлся успехом. Я открываю файл, кидаю туда данные и сразу закрываю его, но как я понял, так делать нельзя?
Двощане, я щас минут 30 ебался с pinax потому что понадобилось сделать сайтик с подтверждением по почте, но последнее обновление там было еще в 2016 году и приходится некоторые моменты самому править, типа вместо {% load staticfiles %} писать {% load static %} в файах модуля, хотел поинтересоваться что щас актуально для этой задачи, чтобы костыли не писать свои, а взять отлаженный модуль, либо забить на это и надеяться что позже не встречу критических ошибок в модуле(как я понял он не обновлялся после джанги 1.7)
Не кидайте палками, я только спросить: очередной вкатыш, появилась потребность вывода уведомлений-напоминаний на рабочий стол win 10.
На чем можно реализовать данную вещь без говна и палок? Уровень около-нулевой, поэтому и спрашиваю. Была идея попробовать сделать бота в Телеге для этих целей, но может, есть что-то лучше?
>>1900204 >появилась потребность вывода уведомлений-напоминаний на рабочий стол win 10 Сначала хотел серьезно что-то написать но потом увидел >>1900204 >Уровень около-нулевой >>1900257 >написать это все с нуля
Когда запускаю программу через subprocess в винде, то спавнится черное окно с консолечкой на пол экрана. Это можно пофиксить как-то? Когда делаю то же самое в GNU/Linux, то ничего подобного не происходит. Мне надо сделать, чтобы пользователи моей проги на винде не пугались. Мой код:
Получше нашел кое-что: передать в Popen аргумент startupinfo=si, а перед этим выставить si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW
Тогда консолечка не возникает, но фокус у окна куда-то пропадает (как и в случае с shell=True, собственно) Попробую фокус обратно вернуть через какой-нибудь дополнительный вызов.
Может, еще натолкнете на мысль почему continue (в моем понимании) работает не так, как я этого хочу?
Написав строчку if sandwich_order == 'sandwich_pastrami': continue , я предполагал, что цикл начнется по новой и не будет включать сандвичи с пастрами. Что я сделал не так?
есть вопрос по поводу клавиатуры бота в телеграме пишу с помощью telebot, да, знаю, python-telegram-bot или как там его вроде лучше, но этот проще, а я совсем новичок
примерно такой кусочек кода: if message.text == 'сап двач': bot.send_message(message.chat.id, 'пошел нахуй', reply_markup=keyboard_russian)
и если этот бот находится в беседе, то при написании "сап двач" русская клавиатура открывается у всех кто находится в беседе а мне надо чтоб открывалась только у того кто написал "сап двач" как это сделать?
Не понял А что, так низзя? Как мне матчить вот хз какие цифры в ключах словарей? Я конечно понимаю что можно startswith но так получаются длинные конструкции
>>1901041 >>1901057 У тебя неправильно сделано и сравниваешь не то. Надо первой строчкой внутри while сделать pop и результат сравнивать уже, а ты сравниваешь сам список со строкой.
>>1901064 Суть словарей в том, что ты должен знать ключи и использовать их для извлечения значений. В случае твоего наркоманского кейса надо итерировать по наличным ключам и матчить. Но в целом так быть не должно, значит, что ты делаешь что-то не так.
>>1901034 я уже вроде сам разобрался, клавиатурам добавил selective=True а сообщениям, вызывающим эти клавиатуры, добавил reply_to_message_id=message.id надо было просто полистать документацию к апи телегиhttps://core.telegram.org/bots/api
>>1901064 Ты так не только ключи, но и значения не выберешь.
Если тебе такая конструкция нужна постоянно, разумный вариант был бы написать свой класс, похожий за словарь, но поддерживающий дополнительно быструю выборку по подобным ключам.
>Я конечно понимаю что можно startswith но так получаются длинные конструкции Добавлятся всего одна строчка.
Подскажите, решил я воспользоваться модулем allauth для джанги и мне нужно добавить свои поля, поменять формы и т.д для регистрации пользователей, есть ли какое-то правильное решение для этого, чтобы все остальное работало как прежде или нужно лезть в модуль и там вручную менять код, чтобы мои поля были в бд, отображались в формах и т.д? Единственное решение кроме правки кода мне кажется это делать свою модель и коннектить ее один к одному к модели из модуля allauth, но ведь вероятно есть более правильное решение, подскажите плиз
>>1901363 Я полагаю что как-то через наследование можно сделать, но не пойму в каком моменте и как его применять, например я наследуюсь полностью от моделей из модуля, добавляю свои поля, тоже и с формами, как мне потом сделать так, чтобы при запросах у меня отображалась не стандартная форма, а моя кастомная
>>1901418 Я попробовал создать файл, в котором кроме print("hello world") ничего нет. Потом собрал его с помощью pyinstaller. Действительно 20мб получается. Есть ли способы уменьшить размер? Хотя бы до 7 было бы уже классно.
>>1901543 Попробовал собрать с nuitka, после чего запускать под докером для проверки переносимости. Всё под линуксом --standalone --onefile как следует не заработал, то есть собрал в один файл, выкачав какую-то библиотеку appimage с чьего-то гитхаба, локально файл запустился, под докером отказался, хочет библиотеки, как я понимаю, с того же гитхаба. То есть не переносится. А так файл был размером 12.5 Мб.
Если просто --standalone, то создаёт каталог dist размером 30 Мб. Но тоже не идеальная версия. Если я под докером делаю сборку на базе убунты, то в ней нормально всё работает. Если же делаю сборку на базе alpine или scratch, то почему-то не хочет, видимо не хватает библиотек, по ldd много зависимостей.
Попробую минимальную докер scratch сборку сделать со всеми зависимостями, интересно, сколько займёт. И под виндой тоже надо бы потестировать.
Хочу написать программу, которая будет проверять наличие товара в интернет магазине (озон). Первая мысль, которая пришла в глову - просто парсить страницу и смотреть когда продукт появится в наличии, но уверен, что есть более изящный способ. Предполагаю, что можно куда-то отправить запрос и получить необходимые данные. Что можно почитать, чтобы понять откуда сайт узнает сток и как решить мою проблему
Нужна помощь шарящих людей в DRF Пишу тесты, эндпоинт принимает некоторые данные и файл через form-data. В данных есть nested вложенности, которые я обрабатываю в сериализаторе. Но проблема в том что из-за того что реквест идет через format="multipart", вложенности прилетают не как dict, а как str. Сталкивался кто-то с таким, и как можно это пофиксить? Для обработки данных использую MultiPartParser и FormParser парсеры
>>1901722 Я вообще подозреваю, что от системных зависимостей от /lib и /lib64 можно избавиться, пронести каким-то образом флаг -static в gcc, которым всё реально собирается.
Пока не вникал особо, в реальной практике пока nuitka не использовал, ХЗ сколько там подводных камней и какие реальные возможности.
Всем драсте, у меня встал вопрос. Я значит решил с помощью питона связать два компа, чтобы на них можно было играть в пинг понг, ну чтобы мячи через экраны летал. И при попытке передать координаты мяча у меня буфер сокета на сервере забивается из-за того, что на нём висят старые координаты мяча и не удаляюются. Как собственно мне удалить старые координаты мяча из буфера сервера? https://pastebin.com/1hhJ9Hdr - Это правый кусок программы, у левого логика идентична https://pastebin.com/cNVCvWiX - Это сам сервер
>>1902097 Не вникал в твой код, но ошибок там немало.
Ошибка, которая может и не стрельнёт, если пакеты маленькие - ты не можешь гарантировать, что читая из сокета пакет получишь его целиком.
Это актуально, если ты большие пакеты получаешь, которые в один ip пакет не влезают, 1400 байт условно. На пакетах в 500 байт в реальности скорее всего проблему никогда не словишь.
Сетевые программы вообще иначе пишут, через многопоточность и асинхронность. Ты делаешь синхронно, блокируясь на ожидании данных.
Если так, то это грубо и примитивно, но в первом приближении можно.
Попробуй другую схему. В месте, где ты читаешь данные из сокета, читаешь данные до упора в какой-нибудь буфер, может быть там будет один пакет, может ни одного, может пять. Как прочитаешь, игнорируешь все, кроме последнего.
короч, сидел такой в админах, погромировал на пятоне автоматизашку, держал прод в онлайне и тут такое бац, "хош демопс, четко жестко" и дернуло пофлексить немного. ну чё добился, ммм?
>>1902097 знаешь, это типо классно что ты пытаешься понять чому и куда, но правда это не в таком объеме нужно ирл. лучше учи какой-нибудь веб фреймворк, типо классического джанго, либо анинхронщины фласка. больше опыта принесет реального.
When called with -m module-name, the given module is located on the Python module path and executed as a script.
Питон в этом случае вызывает модуль как программу. И соответственно переменная __nam__ имеет значение "__main__", в скрипте активируется код, который не запускается, когда этот скрип подключаешь как модуль.
>Почему py pip istall zalupa не работает ХЗ как там у тебя всё установлено и настроено, ХЗ какая система. Но чтобы работал pip как программа, как минимум он должен быть в системе установлен и доступен не только как модуль, но и как вызываемый скрипт. Что не всегда так, насколько я помню.
команда выглядит как pip install xxxxx или pip3, или может быть pip3.8, но без python Надо при этом проверить, какая версия, соответствует ли версии питона.
>>1902275 Идешь на stepik и проходишь в порядке: биггикс "поколение python" биоинформатика "программирование на python" биоинформатика "Python: основы и применение"
>>1902311 Пс. добавлю что это с моей точки зрения (с точки зрения нищего) и курс по твоей ссылке вполне возможно может быть нормальным, так что это был не ответ на вопрос а просто доп. информация к размышлению.
Как в lxml2 достать определенных потомков из xmlNode?
В xml нашел с помощью xpathEval интересующие меня ноды. Теперь в списке этих нод я хочу найти их потомков по определенному названию. Не могу понять какую команду использовать. Если я использую:
xmlNodeNmae.xpathEval('запрос')
то он опять от корня ищет (зачем так сделано?), а мне надо от этой ноды, от которой запущено.
если что мой уровень: вчера закончил бесплатный курс на степике, т.е. никакой, поэтому сильно не поливайте.
Читаю книгу "Погружение в паттерны проектирования" и столкнулся с непониманием В книге все примеры на псевдокоде. В прикрепленных картинках, говорится о таком понятии как "интерфейс" и я не могу понять, как бы на пайтоне выглядела реализация примера с летательными аппаратами и аэродромом. Что есть интерфейс в данном случае и как это все будет выглядеть в коде? Можно пример пожалуйста
>>1896798 (OP) Хочу с помощью питона сделать лабу, там надо проверить зависимость времени запроса от размера пакета
Скачал либу icmplib, использую там ping но как только размер пакеты превышает 1000 байт он мне выдает: "[WinError 10040] Сообщение, отправленное на сокет датаграмм, было больше, чем буфер внутренних сообщений или был превышен иной сетевой параметр. Также возможно, что буфер для принятия сообщения был меньше, чем размер сообщения" (в обычном терминале все работает нормально)
Есть еще какие-то способы послать icmp-запросы и прочитать метаданные ответа? В терминале ответ он печатает на экране что не очень-то удобно
Пистоны, помогите с такой тривиальной задачей, как сделать диапазон дробных чисел, пожалуйста. Есть ли какая-то встроенная функция, чтобы получить нужное [0, 0.1, 0.2, 0.3, ...]? Использовал list(np.linspace(0,1,11)), так он мне показывает: [0.0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6000000000000001, 0.7000000000000001, 0.8, 0.9, 1.0]
>>1903025 Тогда встречный вопрос: как в питоне выполнить команду в терминале (ну допустим это subprocess.call) и что главное - прочитать и сохранить вывод из этого терминала?
Я меня глупый вопрос, прошу не закидывать ссаными тряпками: если я научусь создавать сайты на Django, я смогу зарабатывать на фрилансе? Или для более быстрого вкатывания надо что-то другое учить?
>>1903077 Двачую, сам написал за 70 даларов вебсервис и было предложение для сайта интересного, но потом дядя забил на свою идею, но я хз все еще это мне так повезло или реально в этом потребноть нужна
Такая тема, строю последовательность подобного плана:
Сначала там идут значения (100,200 ... 600) с шагом 100 Затем идут (1000, 3500 ... 11000) с шагом 2500 И потом (20000, 30000 ... 100000) с шагом 10000
Очевидно что это можно вбить и руками, но хотелось бы адекватный алгоритм для подобного. Да, я знаю что можно написать функцию в которой последовательно вызывается несколько циклов for где мы создаем эти значения, но хотелось бы придумать общий итератор, который выдавал бы пары multiplier (множитель, он же "шаг"), count (сколько раз надо пройтись по циклу), start (начальное значение) и который помог бы уменьшить объем кода
>>1903010 Для питона это нетипичный подход, из-а его динамической природы. Создавать отдельную сущность для интерфейса объекта больше подходит для java или C#, потому что у них статическая типизация, т.е. если ты в джаве создашь переменную строкового типа и попробуешь присвоить ей число, компилятор пошлет тебя нахуй, потому что это переменная строкового типа, и она навсегда останется переменной строкового типа, а в питоне пожалуйста, напишешь сначала x = "qwerty", а потом x = 5, питон все схавает. Поэтому в питоне больше в ходу так называемая "утиная типизация", т.е. если что-то выглядит как утка, плавает как утка, и даже крякает как утка, то, скорее всего это и есть утка, ну по крайней мере если надо плавать и крякать она с этим справиться. На практике это выглядит так: если мы ждем, что на вход функции foo подадут объект aircraft, который имеет метод fly(), мы просто берем и без задней мысли вызываем в теле функции aircraft.fly()
def foo(aircraft): ... aircraft.fly() ...
если вдруг, по какой-то причине в функцию подадут объект, у которого нет такого метода, то вылитит исключение, задача тех, кто будет использовать эту функцию проверять, чтобы в функцию попадали нужные объекты, либо обрабатывать соответствующее исключение. При таком подходе не важно, кто родитель используемого класса, важно, что у него есть требуемый метод fly(). Если хочется создать именно интерфейс, как отдельную сущность, как в твоей книжке, это тоже возможно. Можно создать класс FlyingTranspot с одним единственным методом fly(), и не делать для него никаккой реализации, типа
class FlyingTranspot: def fly(self): ...
или даже выбрасывать исключение:
class FlyingTranspot: def fly(self): raise NotImplementedError
Потом все классы, которые будут использовать как летательные средства, делать наследниками FlyingTranspot, и пропиывать свою реализацию fly(). Такой подход, наверное, лучше совмещать с аннотацями типов, аннотации опять таки не к чему не обязывают, их можно проверять с помощью статических анализаторов, чтобы находить потенциальные ощибки у себя, также среды разработки, вроде PyCharm, умеют их анализировать, ну и как дополнительная документация для кода, чтобы лучше понимать, что происходит, но это все актульно для больших проектов.
>>1903020 Да я хотел амбициозно с наскока написать консольную fb2 читалку в качестве практики, с дальнейшими перспективами дальнейшего наращивания функционала. В libxml2 (соответственно и lxml) вроде как есть проверка схемы xsd, что может быть полезным будущем. Пока что у меня получилось написать простенькую косенькую программу, которая выпукивает в консоль текст из текстовых тегов.
>>1903145 Раньше греб в фирме где интерфейсы в пистоне были хорошим тоном (наверно потому что их притащили с фронта фуллстек-разрабы, которые писали на ангуляре и TypeScript)
Это снова я, парень с пинг-понгом, и у меня еще один вопрос Значит у меня два устройства подключаются по s.accept(), как мне обратится к ним по отдельности? Типо выглядит это как conn, addr = s.accept(), и вот как мне обратится к каждому конн по отдельности?
>>1903276 s.accept тебе нужен для того, чтобы принимать входящие соединения. Если ты подключаешься к другому компьютеру, то accept не нужен.
Вообще тебе надо разобраться с архитектутой, кто к кому подключается.
Если у тебя два экземпляра пинг-понга запущены, то один из них должен быть сервером, принимать соединения, а другой или другие должны быть клиентами.
Возможны и более хитрые схемы.
То есть, одна программа слушает какой-нибудь порт, а другая подключается к первой программе.
Вообще ты лезешь в довольно квалифицированную область, к которой пока не очень готов. Я бы советовал сначала поиграть отдельно с сетевыми функциями, чтобы свободно в них себя чувствовать, все эти установки соедениний, пересылка данных, обработка обрывов соединений и т.п. А потом уже совмещать это с игрушкой.
Реально тебе ещё и важно с многопоточностью разобраться, чтобы один поток обрабатывал сеть, а другой саму игру, но это сложная тема. Или с асинхронностью, но это тоже сложно и ещё сложно дружить с графикой при этом.
Иначе ты просто предсказуемо утонешь в проблемах и напорешься просто на лес граблей.
Есть базовые системные либы, про которые надо знать json, pickle os, os.path, sys, time, glob re, itertools, random argparse какой-нибудь
Есть либы, за которыми стоят целые технологии программирования, то есть тут вопрос не либу изучить, а именно с технологиями разобраться threading, asyncio
Есть индустриальные либы, для промышленного программирования typing logging dataclasses pytest (последняя сторонняя либа, вместо штатной unittest)
Есть масса либ, которые нужны, если ты занимаешься конкретными направлениями, и не нужны в других случаях. В принципе про половину там можно сказать.
Что-то там какая-то экзотика, что-то легаси, что-то просто развлекуха.
>>1903418 1. актёрам трудно на сцене без декораций. они могут заблудиться 2. зрители не поймут, почему билет так дорого стоит. разве ты пришёл посмотреть на нихуя? а тут - хуяк! и декорации
>>1898567 current_h, pad = 5, 3 for line in win_text: ____w, h = draw.textsize(line, font=TEXT_FONT) ____draw.text(((MAX_W - w) / 2, current_h), line, fill=TEXT_COLOR, font=TEXT_FONT) ____current_h += h + pad
>>1903564 Нах мне объяснять? Я и сам тебе объясню, сопляку. Ты за слова свои ответь. То есть, приведи аналог на своём map для такого цикла for, как я привёл.
>>1903314 Ты не понял, у меня есть сервер, к которому подключается два компа, оба компа к серверу подключаются по conn, addr = s.accept(), как мне обратится к одному из этих компов?
Хочу отрисовать график "свечек", только это не обычный финансовый график где показано открытие/закрытие торгов, минимум и максимум, а свечка где есть только: минимум, максимум и среднее значение. Как такое сделать с помощью matplotlib?
>>1903321 Всяких разных библиртек и фреймворков просто дохуя, и они плодятся и развиваются, что конкретно учить, это все сильно зависит от твоих интересов. Для веба будет свой список актуальных либ, для датасайнса свой, и так далее. Есть много разных списков популярных либ. Например, https://github.com/vinta/awesome-python
У меня такое чувство, что тебе рановато о таком думать.
А у кого-нибудь есть опыт коммерческого использования монги с джангой? Мне нужно с геоданными работать, монга из коробки это имеет охуенно, и с помощью mongoengine я уже весь функционал запилил. Но не кринжово ли монгу с жангой использовать?
Немного не по теме но думаю питон мастера по умолчанию могут в регулярки. Есть куча информации вида:
<tag value="to4tomnenyjno_so_skobkami"/>
Есть регулярное выражение:
(<tag value=)(".*") 1 2
1, 2 это, как вы поняли группы которое мне возвращает через re.findall список кортежей вида [(1, 2)...(1, 2)] Можно через регулярки сделать чтобы оно сразу мне выдавало только вторую группу? Что-то вроде ^(начало слова), но в качестве начала слова принимать то что в первой группе.
>>1903765 >Так убери скобки из первой части. Спасибо, не знал что это так работает. На regex101.com подсвечивалось все и я думал оно мне будет засылать fullmatch т.е. и все вместе.
>>1903331 Спасибо, интересно было узнать именно базовые системные либы. Хороший, развернутый ответ. Что значит промышленное, индустриальное программирование? Я просто программист АСУТП (на заводах программирую)
>>1903367 Во, я это и хотел. Только думал мне накидают либы, а я буду документацию смотреть бегло
>>1903791 >Что значит промышленное, индустриальное программирование? Я просто программист АСУТП (на заводах программирую) Индустриальное, значит в индустрии программирования, когда ты работаешь над большими программами, с большим кодом, с долгим циклом поддержки, когда ты сам забываешь, что и зачем писал, когда несколько человек работает над кодом и т.п.
Когда ты делаешь лабы, олимпиады, литкод и т.п., это одна история, там тебе надо знать библиотеки вот для этого, всякие re, itertools, collections, может понадобиться что-нибудь вроде heapq и др. Чтобы компактно реализовывать разные алгоритмы.
Есть технологические либы вроде asyncio/threading. За ними стоят технологии программирования, ты не сможешь их изучить просто как библиотеки. Ты не сможешь ничего адекватно сделать, пока с технологиями не разберёшься, тебе придётся сначала конкретно сломать мозги, что довольно мучительно.
А есть просто "индустриальные". Они не дают каких-то дополнительных возможностей особых, можно обходиться и без них. Они в принципе не нужны, если ты делаешь программы для условных литкодов/кодеварс, они не нужны, если ты делаешь небольшие утилиты для своих нужд.
Но количество переходит в качество, и когда код большой и сложный, без этих инструментов становится сложно и они становятся действительно нужными. В общем это то, что нужно для работы, а не just for fun.
Ну и дальше есть масса библиотек и модулей для конкретных задач. Если ты ими занимаешься, они нужны. Если это задачи не трогаешь, то совсем не нужны.
>>1903843 Как я понимаю python это не про индустриальное программирование. На нем же QA-макаки, дата саентологи, девопсы с небольшим вкраплением джанго пишут. А это все не про долгоиграющие/тяжелые проекты.
Есть список кортежей. Типичный кортеж состоит из четырёх элементов. [(2, 4.3, 0.5), (1, 5.66, 9), (3, 0.4, 0)...] Самих же элементов в списке сотни. Как выбрать 5 элементов-кортежей, где второе значение кортежа, например, минимально?
>>1903856 Если мне нужен 1 элемент, у которого второе значение минимально, я просто делаю min(data, key = lambda t: t[1]) А мне надо 5 элементов выбрать, у которых вторые значения минимальны во всём списке.
>>1903855 >>1903854 У меня после it-бороды сложилось впечатление, что если писать что-то неимоверно сложное, то берут java, для среднего node.js, а для остальной херни wordpress
>>1903870 Глупости, на питоне 3.6+ версии очень легко писать крупные и средние проекты. Есть нормальная асинхронность, проверка типов и интерфейсов, легко подключить библиотеки на С или С++. Если нужна максимальная производительность, то лучше брать раст или го, они будут производительней джавы. Сейчас же монолиты не пишут, все дробят на сервисы.
>>1903870 В энтерпрайз секторе своя логика, там правят бал Java/C++/C#, это и традиции, и кодовая база, и куча разных решений, и разработчики с нужным опытом.
А вот в средних проектах, которые уже делают на чём-то более современном и гибком, у питона хорошие позиции и перспективы.
Нода зашла в сектор раньше, когда питон был в плачевном состоянии, в кризисе из-за неграмотной миграции с 2 в 3, без поддержки современных технологий.
Начиная с 3.5 ситуация стала меняться. Появляются asyncio, typing и другое. На третью ветку уже все библиотеки перекатили.
В то время как нода стала тонуть в болоте. Сам JS как язык жутко кривой и напрочь сливает питону во всём, по структурам данных, языковым конструкциям и т.п. Только callback функции удобнее писать, на что питон не рассчитан из-за отступов.
Помимо JS, в ноде смешиваются парадигмы, основные библиотеки построены на callback-based подходе, против современных async-await, основанных на промисах. Нужно криво стыковать. npm превратился в откровенное болото, с хипстерскими поделками, троянами и кодом, который должен работать и на морально устраревших браузерах, когда тебе реально нужна только работа на современных версиях ноды.
В общем сейчас выбор ноды для бэкенда не очень разумен. Он был понятен и разумен 5+ лет назад, но не сейчас.
>>1904165 Это ты где такой высер прочитал? Пыхтон пыхтит как пых на бэкэнде, нода говно. На бэке из скриптовых perl пиздец с какой натяжкой и изъёбкой, либо на FastCGI писать апликуху — c, c++, java, c#, но последнее весьма спорно.
Пыхтон на бэкэ это как та пикча про буханку-троллейбус.
Посмотрел базовый туториал по Си. https://youtu.be/oF6gZG6rFmQ?t=511 И что-то охуел от наличия УКАЗАТЕЛЕЙ. Неужели нельзя было реализовать язык с дефолтным поведением, чтобы любое повторное действие с переменными было бы через указатели?
>>1905053 указатели в си это такой кал, от которого в с++ поспешили избавиться путем ООП+RAII. Каждый класс в STL держит свои указатели при себе и не выдает это дерьмо наружу. А в си оно торчит и вызывает только одни проблемы.
>>1905053 Алсо, когда ты в пистоне передаешь объекты в функцию, они фактически тоже по ссылке/указателю передаются. Там нет копирования, пока ты сам не попросишь, сделав что-то вроде new = Obj(old)
Специфика указателей в Си это адресная арифметика, когда ты указатель можешь двигать вперёд-назад, когда ты можешь передать в функцию указатель не на массив целиком, а на произвольную часть внутри. Причём можешь выбраться и за пределы, попав в соседний массив (хрен отловишь) или вообще в левую область памяти (это проще ловится).
Вторая специфика в отсутствии контроля, в питоне у тебя у каждого объекта есть счётчик ссылок, то есть если ты где-то сохранил ссылку на объект, то об этом будет известно. А в Си такого контроля нет, и ты тупо не знаешь, используется объект или нет, можно его удалять или нет.
Но указатели в Си прикольная тема. Там кстати записи m[a] и a[m] эквивалентны, как и m[1] и 1[m] и другая подобная магия встречается.
уже в момент условно парсинга происходит исполнение вида foo = count(foo) декоратор именно это значит. В этом момент вызывается функция foo, которая создаёт функцию wrapper, но не исполняет её. Но объект-функция уже есть. Дальше своёство count этого объекта создаётся и присваивается значение 0, и этот объект-функция возвращается
после чего foo это объект-функция wrapper со свойством count=0. А уже когда ты его вызываешь, счётчик увеличивается.
>>1905275 Функции это объекты, у которых можно читать и писать аттрибуты. Хранятся в __dict__. Хуй знает, зачем это нужно, конкретных применений я не знаю. В случае с твоим примером это могло быть сделано замыканием вместо этой фичи.
>>1905282 >В случае с твоим примером это могло быть сделано замыканием вместо этой фичи Если подумать, то тут тоже замыкания, в примере связывание идёт с переменной wrapper, которая снаружи не существует.
>>1905292 В принципе, через замыкание не совсем так получится, потому что извне не достанешь потом. Точнее достанешь, но через жопу. Так что таки вот одно из применений.
>>1905303 Замыкание есть и в этом примере, можно сделать print(foo.__closure__), там будет два значения, их можно посмотреть
for x in foo.__closure__: ____print(x.cell_contents)
Это будет функция func и wrapper. Здесь используется wrapper, код замкнут на него.
На самом деле замыкания это почти как синтаксический сахар. Хотя они поддержаны в языке, то есть там механика исполнения другая, именно через замыкания.
Но схожую идею можно реализовать и традиционными ООП методами. На скрине пример.
То есть принципиально других возможностей, которые нельзя реализовать традиционными инструментами, замыкания не дают.
Но тем не менее это чуть более прямой подход к решению задач. Хотя вариант с callable классом свои плюсы имеет, не в этой задаче, а в каких-то других, более сложных.
И ради интереса посмотрел, вариант с замыканием работает быстрее, чем вариант с классом, примерно на 20% разница.
Python смотрит на and Потом смотрит на 1, Потом смотрит на 2 Ну и думает почему бы не вернуть просто 2, ведь так можно сэкономить на операции bool Я прав?
>>1897528 Глубочайше надеюсь, что питон это не первый твой язык программирования, ибо если ты хочешь вкатиться с нуля в питон и прыгаешь сразу в самую огромную, блять, бездну под названием нейросети, то ты очень и очень глуп и безнадежен.
>>1905355 Ну давай покажи закон логики по которому логическое и возвращает первое ложное утверждение или последнее истинное, а логическое или возвращает первое истинное или последнее ложное
>>1905279 Вот как раз с исполнением не могу понять Ломает мозг то что мы сначала изменяем wrapper.count и лишь потом мы только его пишем что он равен нулю
>>1905232 >адресная арифметика, когда ты указатель можешь двигать вперёд-назад, когда ты можешь передать в функцию указатель не на массив целиком, а на произвольную часть внутри. Причём можешь выбраться и за пределы, попав в соседний массив (хрен отловишь) или вообще в левую область памяти (это проще ловится). Это есть. Но можно, например, передать вектор по ссылке и получить все те же плюсы. От ошибок ты защищен, все инкапсулировано, но работает так же быстро.
>Вторая специфика в отсутствии контроля, в питоне у тебя у каждого объекта есть счётчик ссылок, то есть если ты где-то сохранил ссылку на объект, то об этом будет известно. А в Си такого контроля нет, и ты тупо не знаешь, используется объект или нет, можно его удалять или нет. Да, поэтому придуман RAII. Объект внутри себя занимается своей памятью, а пользователю об этом думать не нужно.
>>1896798 (OP) Посоветуйте какие-нибудь advanced курсы/уроки по Django/DRF. Основными штуками умею пользоваться, а вот если нужно что-то выходящее за туториал начинаю писать какой-то придуманный костыльный код, не зная что тоже самое можно было написать готовыми способами. Можно даже платные
Сап двач, есть массив с кучей чисел. Нужно пройтись по каждому элементу, но последовательно. [0][0], [1][0] [2][0] [0][1] [1][1] и тд. Как это можно сделать? А то уже голова не варит совсем
>>1905353 Не слушай дегенерата выше. Питон просто кривой язык с кучей тупых моментов. Начинается все с единицы. Путхон видит AND (если не знаешь - тру только когда оба значения равны), соответственно единица (любое число кроме 0) это true, поэтому путхон идёт проверять второй оператор (2 OR 3). OR это когда хоть один из них тру. Путхон видит, что 2 - тру и не идёт дальше проверять ибо нахуй надо, выражение и так тру. Соответственно возвращает последнее на котором путхон понял, что все выражение тру(2).
>>1906465 Почему тогда можно задать свое поведение для with as через __enter__ и __exit__ также как и задать свое поведение операторам через свои дандер методы?
>>1906473 Потому что можно, это стандартный способ реализации всяких кастомных штук в питоне. Или ты хотел чтобы везде всё разное было для интересности?
>>1906531 Боже, поставь ты VSCode, он тебе прямо подчеркнёт красным эту скобку. В каком говне ты код пишешь? Что это за доисторическое говно, нотепад++?
Помогите позязя, дают задания по пайтону, вроде понимаю что и к чему, но код не пишется, вообще не пойму что к чему. def, while Создать цикл, который будет делать следующую операцию:
До тех пор, пока А меньше Б, прибавлять к а В и сравнивать с Б. Если после прибавления, А все еще меньше Б - повторить предыдущее действие. Результат каждого сравнения должен выводиться в консоль в формате "Значение А" + "Пока что нет".
В момент, когда А станет больше Б - вывести "Дождались!" + "Финальный А"
наверное 100 раз спрашивают тут, но я повторюсь. А с чего собственно лучше начинать обучение? я тут в книгу залип про укус питона, но чем дальше тем меньше я понимаю, откуда отталкиваться подскажите.
Неправильно. А что тебе нужно сообщать когда А == Б? У тебя while выйдет после тога как А станет равным Б, если надо именно больше, то переделай условие на меньше или равно.
def func(): ����a=1 ����b=10
����while a <= b: ��������print("a все еще не равно b") ��������a = a+ 1 ��������print("A + 1 =", a) ����print("сравнение закончили") ����print('a больше b')
>>1906806 Пиздец у тебя задачки простые, напиши мне лучше код под сабж В одну транспортную компанию поступил заказ на перевозку двух ящиков из одного города в другой. Для перевозки ящики решено было упаковать в специальный контейнер.
Ящики и контейнер имеют вид прямоугольных параллелепипедов. Длина, ширина и высота первого ящика — l₁,w₁ и h₁, соответствующие размеры второго ящика – l₂,w₂ и h₂. Контейнер имеет длину, ширину и высоту lc,wc и hc.
Поскольку ящики содержат хрупкое оборудование, после упаковки в контейнер каждый из них должен остаться в строго вертикальном положении. Таким образом, ящики можно разместить рядом или один на другом. Для надежного закрепления в контейнере стороны ящиков должны быть параллельны его сторонам. Иначе говоря, если исходно ящики были расположены так, что все их стороны параллельны соответствующим сторонам контейнера, то каждый из них разрешается перемещать и поворачивать относительно вертикальной оси на угол, кратный 90 градусам (относительно горизонтальной оси ни контейнер, ни ящики поворачивать нельзя).
Разумеется, после упаковки оба ящика должны полностью находиться внутри контейнера и не должны пересекаться.
Выясните, можно ли поместить ящики в контейнер с соблюдением указанных условий.
Формат ввода
Во входных данных записаны числа l₁, w₁, h₁, l₂,w₂, h₂, lc, wc и hc. Все размеры — целые положительные числа, не превышающие 1000. Числа в строках разделены пробелами.
Сначала проверить, влезают ли ящики по-отдельности, потом можно ли один поставить на другой, потом можно ли их поставить рядом (4 варианта тупым перебором).
>>1906980 А вообще, если ты хочешь научиться программировать, то представь, как ты бы решал эту задачу сам, руками. Вот тебе дали конкретные числа, на бумажке, и спросили бы, помещаются ящики или нет.
А потом всю эту логику просто надо закодировать на питоне.
>>1906988 Брат, я это понимаю. Кстати скажи, почему такие задачи часто дают решать на курсах? Например дается задача где нужно написать всего несколько переменных и принт, но блядь для правильного вывода нужно запидорить эти переменные в лютую формулу. Это же чистая математика, нахуй это задавать? То есть такие задачи можно решить, но нужно тратить время и навыку программирования это слабо поможет
>>1906993 Вроде да, есть формула даже на вики статья есть про такого рода задачи. формула фибодроччи - дристунни >>1907013 Это можно, это классика. Нужно представить в голове и если что написать на бумаге. Придется заморочиться.
>>1907088 Какая это математика? Тут только операции сложения двух чисел и сравнение. Это где-то 3-5 класс, так как числа дробные.
Задачка исключительно на то, чтобы закодировать эту тривиальную логику сравнений. Нормальная для тех, кто только начинает разбираться с программированием, на первую неделю.
>>1907090 >Вроде да, есть формула даже на вики статья есть про такого рода задачи. >формула фибодроччи - дристунни Друзья, ну вы чего? Какой в жопу фибоначи?
Сказано, всего два (!) ящика. Не два типа ящиков, а просто два ящика. Которые могут быть повёрнутыми двумя способами. Всё, 4 варианта расположения в один уровень.
>>1907069 у машин двоичная система счисления и там точно так же почему у человека в десятичкой системе счисления 1 / 3 = 3.333333333(3) , короче ну ты понял надеюсь
>>1907094 Программа получает на ввод совершенно разные размеры ящиков каждый раз .они произвольные. как и размеры контейнера так что там может быть не два ящика, а 100500 вариантов
l1 = int(input()) w1 = int(input()) h1 = int(input()) l1 = max(l1, w1) w1 = min(l1, w1) l2 = int(input()) w2 = int(input()) h2 = int(input()) l2 = max(l2, w2) w2 = min(l2, w2) lc = int(input()) wc = int(input()) hc = int(input()) lc = max(lc, wc) wc = min(lc, wc) if h1 + h2 <= hc and l1 <= lc and w1 <= wc \ and l2 <= lc and w2 <= wc: print("YES") elif l1 <= lc and w1 <= wc and l2 <= lc \ and w2 <= wc and h1 <= hc and h2 <= hc: if l1 <= lc and w1 <= wc: if (l2 <= wc - w1 and w2 <= lc) \ or (w2 <= wc - w1 and l2 <= lc) \ or (l2 <= lc - l1 and w2 <= wc) \ or (w2 <= lc - l1 and l2 <= wc): print("YES") elif w1 <= lc and l1 <= wc: if (l2 <= wc - l1 and w2 <= lc) \ or (l2 <= lc and w2 <= wc - l1) \ or (l2 <= lc - w1 and w2 <= wc) \ or (w2 <= lc - w1 and l2 <= wc): print("YES") else: print("NO") else: print("NO") else: print("NO") else: print("NO")
>>1907116 >так что там может быть не два ящика, а 100500 вариантов Нет, ящика только два.
Зачем ты так код постишь? Во-первых зачем под спойлером, во-вторых используй сервисы для расшаривания, ссылки есть в шапке. Разбираться со съехавшими пробелами желания нет.
Но тут всего два ящика. Хотя аналогичная задача может быть на много ящиков. Например N ящиков, но двух типов. Либо N ящиков произвольного вида. Но это уже реально сложные задачи, особенно 3d вариант, когда все ящики разные.
Возможно вопрос чуть не по теме но все же.... Кароче я хочу написать программу маленькую так как я заебался только обучаться, что можно сделать интересное, но не особо сложное чтоб еще и заодно закрепить умения знания и все такое?
почему 5 строчка не работает так как нужно? реально нельзя переводить математические выражения из str в int ? https://pastebin.com/PzhNEtBL если что я 3 дня изучаю питон я дурак не оскорбляйте пж
>>1908051 Можно использовать когда пользователь точно никак не может влиять на объект который евалят, ну максимум можно чтобы пользователь выбирал из списка, но никак не мог выбрать что-то что не задумано программистом, т.е нет в этом списке
>>1908083 Это какая-то спамерская хуйня, вполне возможно что там намеренно добавлены простенькие ошибки, чтобы вот такие левые хуи просто так не пользовались, лол. Да и смысла ему что-то подсказывать нет.
Смотрю тут один курс который я честно купил в магазине доминика торетте. Вроде теория нормаль - функции там, библиотеки. Теория начинается нормально, но внезапно начинается логика бота с кучей илиесли которую препод быстро фигачит с минмальными пояснениями. Код с классами, обращениями, словарями, препод такой каноничный ботан в очках и рубашке, видно что опытный прогер. Голова лопается. Поэтому вопрос. Как разумить неразумимое? Наливать кофе-чай и по частям разбирать код ? Есть ли какие-то лайвхаки помимо подсветки синтаксиса? Может какой-то софт или библиотеки облегчающие понимание чужого кода? Знаю что в иде есть проверка грамматики, и есть бибилиотеки проверяющие пеп8 но это не совсем то что нужно.
>>1908439 Скилбоксовский. Апи вкудахта. >может он подразумевает, что ты уже знаком с питоном Поясню. Вот ты знаешь про свеклу, про мясо, про лук, про овощи там тебе рассказали про них по отдельности. И тут тебе показывают как с этого можно сварить борщ при этом быстро и с минимальными пояснениями. Там это называется курсовая работа, пишут её какие-то опытный челики.
Анонсы, кто разбирался с отправкой геолокации в aiogram? Не могу понять, какой фильтр надо поставить, чтобы отловить эту геолокацию. Сорян за скриншот.
Расскажите, пожалусто, как найти все возможные произведения в массиве из n элементов...
Сейчас вот поставил себе задачу, вдохновляясь первым заданием с "Project Euler" https://projecteuler.net/problem=1 , найти сумму всех чисел, меньших X, которые делятся на хотя-бы одно из введенного набора чисел <X.
Как посчитать сумму чисел, меньших Х и кратных определенному числу, я придумал, пикрил (не берите в голову, наверное можно было менее запутанно придумать). Пользуясь этим, решить для двух, например, делителей достаточно легко - f(делитель1) + f(делитель2) - f(делитель1*делитель2). Для 3 тоже несложно, ручками. И так далее. А вот как решить эту задачу для ЛЮБЫХ Х и для любого набора делителей (меньших Х конечно) - хз. На ум приходит только найти все возможные произведения среди делителей (вроде 2^z - (z+1) произведений получится, где z - число делителей) и вычесть сумму f от каждого из этих произведений из суммы f(делитель1) + ... f(делитель z).
>>1908859 Забыл кринжовые инты убрать.тут есть тред, где просто задачи решают от скуки, с нулевым знанием синтаксиса и проч., а не вкатываются? а то я тут лишний наверное
>>1908859 Кстати, задачу стоит упростить таким образом, чтобы речь шла только о делителях, являющихся простыми числами. Иначе вообще муть какая-то, и логика, представленная в моем посте, не очень работает. никто не желает решить с любыми делителями? было бы интересно посмотреть...
>>1908871 >>1908860 >>1908859 Так, я пошёл спать, давно пора ха-ха. Тут и с простыми делителями эта логика не работает. Так что попытка сэкономить время не удалась - наверное надо просто в лоб сделать. Но узнать, как > найти все возможные произведения в массиве из n элементов, всё равно хотелось бы.
Стоит ли начинать читать про Flask/Django (я даже хз если они одного сорта фреймворки) если я вообще не разбираюсь во всех этих портах, серверах, протоколах и прочем? Или стоит с каких-то книг про эти основы начинать?
>>1908945 ... 1. Как мне в этот event loop добавить любой произвольный коллбек? 2. Это че на тредах пилить придется? Потому что иначе все будет блокировать к херам 3. Без создания кастомного говноняного event loop не работает что ли? В asyncio этого нет?
Аноны, на вход - последовательность N + 1 чисел у1, у2, ... yN, X ; строкой. Нужно найти сумму всех чисел, меньших X, которые делятся на любой из y. Сделал спросонья в лоб (https://pastebin.com/9z0eqgap) - и теперь интересно, нельзя ли сделать решение более экономным по времени? Может есть какие-то полезные математические факты/теоремы? У меня есть функция, которая быренько ищет сумму чисел, меньших с и делящихся на а, пикрил, но от неё толку мало, когда слишком много делителей - много чисел от 2 до Х посчитается повторно, а как их исключить - не очень понятно.
>>1909057 Ну что ты начинаешь... Мне просто интересно, как именно математически можно увеличить скорость вычисления, в рамках одного и того же языка, в данном случае - питона.
>>1909049 Так, мне пока что лень что-то писать, я не выспался нихрена, но есть одна идея, правда не принципиальная - надо сначала проверить все делители (у1, ... yN) на взаимную простоту, если НЕ взаимно просты, то большее число можно просто отбросить.
>>1909092 Подождите, не на взаимную простоту, а на наличие общих кратных. Если, например, есть число 63 и число 3, то большее, 63, надо отбросить. Вот.
>>1909095 >>1909092 Не-не, глупость. Контрпример сразу придумал - 57 и 63, ни одно из них не надо отбрасывать. По-другому - если один делитель нацело делится на другой делитель, то больший надо отбросить, вот.
>>1909168 Ну вот, нужно найти сумму чисел, которые меньше 20 и делятся на хотя-бы один из (2, 5, 8, 14). То есть, 2 + 4 + 5 + 6 + 8 + 10 + 12 + 14 + 15 + 16 + 18.
Посоветуйте какой-нибудь учебник по статистике, можно англоязычный. Почему заинтересовало - сейчас наткнулся на разговоры об избыточной смертности от короны - и чисто интуитивно понятно, что если мы посмотрим среднюю смертность за последние несколько лет, а после на смертность в этом году, и увидим разницу в 300к чел., то скорее всего примерно столько, плюс-минус несколько тыщ, смертей и обусловлено короной. Вот хотелось бы увидеть математическое доказательство работоспособности подобных методов.
>>1908861 Я кстати решил вместо дроча задачек, изучить основу работы интернетов и прочие фундаментальные принципы. Думаю это будет полезней чем решать задачи которые можно нагуглить. Конечно это качает моск, но нахуя мне тратить на это время, если я могу изучать основы!
Привет я занимаюсь питоном 5 день я даун дурачок у меня есть вопрос. Кароче я заебался от просто питона слегка и решил освоить tkinter вот для первой программы я решил выбрать калькулятор, а теперь сам вопрос: возможно ли сделать так чтоб человек нажал на кнопку и в поле ввода добавился текст?
Аноны, хелп Не могу никак найти источник, где объясняют ВСЁ ПОДРОБНО, почему-то все каналы для начинающих рассчитаны на тех, у кого уже есть какие-то знания, а вся литература даёт только слишком базовые знания. Ещё нужно понять, что именно и в каком порядке изучать в питоне, я уже знаю: - переменные и их типы - if/else - списки и циклы - буфером обмена - файлы, запись, чтение - функции - регулярные выражения ВСЁ, дальше хотел разобраться в библиотеке requests и ОХУЕЛ ОТ ТОГО, ЧТО НИКТО НЕ МОЖЕТ ОБЪЯСНИТЬ ВНЯТНО И ПОДРОБНО, а рассказывают так, как будто я блять всю жизнь писал на С++ и решил освоить питон. Перебрал уже 50+ источников. СУКА, помогите, умоляю, двач - последний рубеж надежды
>>1896798 (OP) Всем здравия. Порекомендуйте книжку для вкатывания в питон. Лучше на английском.
Опыт программирования у меня есть, закончил колледж на программиста, писал активно на C++ да и на Python тоже. Но давно уже не программировал(месяца три может), так как не могу сейчас работать по профилю. Хочу структурировать свои знания по питону. Когда писал на нём, изучал его по принципу хочу сделать N, запрос в гугл "How to do N in Python".
Почитал шапку, но гайд 2015, кидает на статью на хабре 2012, которая кидает на книгу 2010, 2010, Карл!. А в превой ссылке на книжки просто свалка книг. Поэтому что читать не понятно.
>>1909327 Ну, вот, например: 5-я строка непонятна вообще, что такое search_query? Это ключ и значение? 6-я строка, непонятна конструкция url,data=query, что она делает? Почему именно так? Что такое response? Когда применяется? 13-я строка: что конкретно он хочет получить этим?
Пиздец, в институте где работаю требуют учить питон или АР (хуй знает что это даже) от всего химбио штата, типа будет перепрофилирование. В связи с этим вопрос – мне нахуй увольняться сразу или это не так страшно?
Посоны, а каково мнение русских реперов по данному вопросу?
raise Fault(self._stack[0]) xmlrpc.client.Fault: <Fault -32500: "RuntimeError: PyPI's XMLRPC API has been temporarily disabled due to unmanageable load and will be deprecated in the near future. See https://status.python.org/ for more information.">
Заебало. Весь pip теперь не работает из дудоса? и это навсегда?