Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: 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
У меня есть два способа считать и сохранить изображение из интернета. На скрине. Какие плюсы, минусы и подводные камни у них? Вижу невооруженным глазом, что PIL шакалит картинки. Но и без него не могу обойтись, потому что большим картинкам я хочу делать resize. Заранее благодарен за ответы.
>>2055396 В первом случае ты сохраняешь оригинальную картинку, во втором пережимаешь с потерями. В чем вопрос я не понял. Если надо обрабатывать, то придется пережимать, хули делать. Можешь сохранять в пнг, но проебешься по размеру.
>>2055396 >Вижу невооруженным глазом, что PIL шакалит картинки. Ты можешь выставить свой параметр компрессии, чтобы качество оставалось высоким. На память не помню каким ключом, смотри доку.
>>2055412 Потому что он загружает картинку и создает свой объект, потом этот объект надо сохранить в каком-то формате == пережать в случае лосси форматов. В принципе, ты можешь загружать в pil и смотреть размеры, если большой, то ресайзить и пережимать, если нет, то сохранять файлом, а не через сам pil.
>>2055412 >Не нашел в гугле, искал. Как это возможно? google> pil image save quality первая ссылка даёт тебе ответ >The image quality, on a scale from 1 (worst) to 95 (best). The default is 75. img.save('test.jpg', quality=95)
>>2055431 Тебе ещё стоит глянуть на то, как выбирать разные алгоритмы для ресайза, от них очень сильно зависит итоговое качество, как разные мелкие детали будут ресайзиться. А так же посмотреть на решарпинг после того, как размер уменьшаешь.
Вот эти две вещи критически сказываются на том, какая у тебя картинка будет в итоге.
Это тоже всё есть в PIL. Алгоритмы смотри по ключевым словам BICUBIC и LANCZOS.
>>2055527 Нужен джангист, чтобы актуализировать этот пункт: > — А как учить джангу? Нахожу только книги по джанге 1.х > У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации. Я сам давно джангу не трогал, 3-ю версию вообще не трогал, надо актуализировать с учётом, что сейчас 3-я версия.
>>2055527 >Нужны питонисты для указания современных книг и курсов Я частично питонист и уже очень давно. Проблема в том, что за курсами не слежу, не актуально. Можно было бы составить FAQ, но это же надо на какой-то площадке делать, там аккаунт для этого заводить. Я бы составил что-то от себя по тем частям, которые знаю. Другие аноны может что-то ещё составили.
Сразу извиняюсь за скрин с телефона. Вопрос 1) Как правильно привязать y и n что бы при вводе строчной и прописной значений был одинаковый результат? 2) Как убрать изображения тех же y и n после ввода? Можете гавном кидаться, совсем недавно начал изучать питон
Подскажите, пожалуйста, что в данном случае представляют собой x_test, y_test? x_train, y_train я понимаю, эта пара возвращаемых значений, но что значат скобки с еще парой значений?
>>2055796 Потому что итератор не в курсе, что что-то меняется и ты получишь ебанутый результат. В некоторых случаях прокатит, а в некоторых нет, поэтому принято не рисковать, а явно работать с копиями или индексами. https://ideone.com/vRgAXc >>2055800 Норкоман.
>>2056353 Отключает бэкслеш, на котором висят всякие последовательности вроде \r \n и некоторые другие штуки. В случае шиндовс путей без этого надо эскейпить через \\.
>>2055908 Получается если тебе нужно к примеру залупиться через лист и удалить какие-то объекты, то ты будешь это делать через копию, а внутри цикла пропишешь условие для удаления объекта из настоящего листа? Он получается на каждом проходе будет новую копию создавать? И вообще не дает ли это лишней нагрузки, нужно же ведь копию создавать, хранить где-то?
>>2056387 Ты просто проходишь по списку и создаёшь новый список, без удалённых значений из старого.
>И вообще не дает ли это лишней нагрузки, нужно же ведь копию создавать, хранить где-то? Всё это работает быстро, если списки небольшие. При этом само по себе удаление операция дорогая, это O(N) в среднем, точнее чем ближе к началу, тем дольше. Если тебе надо несколько элементов удалить, то быстрее будет пересоздать список.
>>2056387 Копия создается один раз на старте, а не на каждом проходе. Оверхед есть по копии, да. Если у тебя реально большой список то есть другие способы. Можно итерироваться задом наперед, можно завернуть в компрехеншен или генераторное выражение.
AttributeError: 'builtin_function_or_method' object has no attribute 'split'
Нихуя не понятно, Traceback возвращает залупу в рот ничего интересного, там вообще нет инфы о каких либо ошибках в конкретно моих исходниках, только длинющая проповедь с немоими файлами, типо _in_process.py или dist.py
Как ловить хуй в рот исключение от библиотек типа пикрил? Оставлять except без аргумента не хочется, да и пучарм ругается "ловите конкретный хуй в рот, а не любой"
>>2056672 UPD2 помогла замена в файле setup.py with open("REAMDE.md", "r", encoding="utf-8") as f: _____description = f.read() setuptools.setup( ______ ... ______ long_description =description ______ ... ) на setuptools.setup( _____... _____long_description=open("README.md").read(), _____... ) Не знаю с чем это связано, буду рад услышать предположения
шалом двач, надо сделать сервер который бы по очереди работал с двумя клиентами, пока придумал 2 варианта, через многопоточность и sock.accept() в бесконечном цикле, но не ебу как реализовать оба варианта, памагите
Челы, если у меня есть цикл, который обрабатывает большое количество маленьких файлов, то насколько критично будет добавить несколько IF в него? Насколько сильно это ударит по производительности?
>>2057843 Джун по ХХ это "опыт работы 1-3 года". Таких вакансий много. Мало вакансий стажёров без опыта.
На ХХ надо выставлять опыт работы один из "без опыта", "1-3 года", "3-6 лет", "свыше 6 лет". "без опыта" никто не ставит, потому что заспамят совсем неадекваты, а нормальные люди как раз испугаются.
>>2057551 Есть вариант делать это через select'ы. Но в 2021 надо работать с asyncio, вот как раз для этого и предназначен в первую очередь, в кишках там те же select/epoll.
>>2057918 так мне асинхронность не нужна, сервер по идее должен работать как-то так: дельта1 дельта2 бесконечный цикл ____создание сокета первого клиента ____отправка дельт первому клиенту ____ожидание данных ____изменение дельта2 ____закрытие сокета первого клиента ____создание сокета второго клиента ____отправка дельт второму клиенту ____ожидание данных ____изменение дельта1 ____закрытие сокета второго клиента
>>2057933 Нахера ебать себе мозги низкоуровневой хуйней которую ты в любом случае - инфа 100% - не сделаешь как следует когда есть готовые варианты с fastapi, aiohttp или flask на худой конец
>>2057970 Ты же в курсе что можно послать HTTP запрос на другой сокет локалхоста вообще как нехуй? И это в целом норма для приложения которое разбито на сервисы
Аноны, блин, разъясните мне, в чем смысл Setters и Getters в Питоне?
Да, понимаю, в Java, там создается ПРИВАТНАЯ переменная класса, и её задать/прочитать напрямую нельзя, только через геттер/сеттер. И это, чиорт возьми, понятно, мейкс сенс.
А в Питоне? Ок, создали в классе приватную переменную (self.__x) И что же, дальше объявляем через декоратор сеттер/геттер и получается, что можем обратиться к этой переменной, как если бы она была просто публичной. Типа: object.x = 5 (присвоили значение). В чем тогда смысл? Ведь можно просто сделать открытый self.x и точно так же обращаться к нему?
>>2057974 Сокеты это протоколы низкого уровня. HTTP это относительно сложный высокоуровневый протокол с какими-то возможностями и большими ограничениями.
Если тебе нужен именно сокет, чтобы обменяться данными, то какое отношение к этому имеет http? Зачем нужны вот эти здоровенные обвязки, чтобы потом поверх них пытаться изобрести функционал обычного сокета?
Вот у анона задача >>2057933 . К нему коннектится клиент, он клиенту посылает данные, потом клиент что-то делает и посылает ответ. Для этого HTTP не подходит, потому что в HTTP клиент посылает данные, и потом уже от сервера ждёт ответ, при этом после получения данных с сервера клиент уже ничего не может послать, нужно новое соединение устанавливать.
В то время как на базе обычных сокетов и tcp это реализовать очень легко.
>>2058013 >Ведь можно просто сделать открытый self.x Поведение свойства x может быть достаточно сложным. Например, это может быть количество элементов с каким-то свойством в объекте, размер буфера и т.п.
Геттеры-сеттеры это не синтаксический сахар над object.x Это синтаксический сахар над object.get_x() object.set_x(value)
Они нужны, например, для того, чтобы можно было валидацию данных добавлять, чтобы ты не мог некорректное значение в переменную записать. Либо когда запись требует дополнительных действий, перестройки индексов, внутренних структур данных и т.п. При этом, чтобы для пользователя сохранился простой вид object.x, вместо object.set_x()
>>2058060 В примере из доки клиенты подключаются последовательно. Сначала один, затем другой.
Если тебе нужно работать с несколькими сокетами, причём ты не знаешь, какой клиент подключится первым, или/и требуется работа с несколькими клиентами одновременно, то тут только вариант делать многопоточность или асинхронность. Или переизобретать кривым способом асинхронность.
>>2058060 На самом деле тебе нужно выделить время, изучить, как работать с многопоточностью и/или асинхронность, и написать уже так. Потому что в любом случае понадобится.
Я бы советовал глянуть на asyncio подход, раз ты с сетями работаешь.
>>2058051 >Для этого HTTP не подходит, потому что в HTTP клиент посылает данные, и потом уже от сервера ждёт ответ ... Вообще-то нормальная практика это передача callback-url
>>2058071 sock.listen(2) sock.accept() сколько в таком случае вернется соединений при подключении двух клиентов и что изменится если будет sock.listen(1)? где должны находиться ацепт и листен в данном примере>>2057933?
>>2058156 Переменная, которая никак не используется. Это больше из традиций Go, где ты обязан использовать переменную, иначе не скомпилируется, и только для _ предусмотрено специальное исключение. В питоне как-то особо с этим и не сталкивался.
Понадобился, значит, мне датасет [1] с разметкой лёгких. Открыла файлы в Jupyter через pynrrd, но нашла только маски. Самих ct-снимков обнаружено не было. Погуляла по окрестным ссылкам, нашла датасет [2] из слоёв-пронумерованных жипегов, и со снимками, и с масками.
В описании сказано, что датасет [2] был получен из [1], но, чёрт, откуда снимки?
Кто работал с .nrrd, помогите разобраться, прошу. D :
Сеньоры, мидлы уделите минутку Какие пет проекты на питоне написать, чтобы вырости до junior'a на ту же самую удаленку? Чтобы зацепить postgresql,celery, etc и в целом получить какой-то опыт А не тупо писать всякие CRUD бложики Спасибо
Ребят, кто за докер шарит? Хочу чтоб файлы, которые создаются в контейнере, так же создавались и в папке на хосте. Создаю volume, но он работает только в одну сторону. Тип файлы с хоста отображаются в контейнере, но не наоборот. Кто знает в чем проблема? Вот строчки из docker-compose: volumes: - ./img:/img - ./img/products:/img/products
Ребят, кто за докер шарит? Хочу чтоб файлы, которые создаются в контейнере, так же создавались и в папке на хосте. Создаю volume, но он работает только в одну сторону. Тип файлы с хоста отображаются в контейнере, но не наоборот. Кто знает в чем проблема? Вот строчки из docker-compose: volumes: - ./img:/img - ./img/products:/img/products
>>2058726 >Тип файлы с хоста отображаются в контейнере, но не наоборот. Не очень понятно, что значит "наоборот". По идее, если ты запускаешь контейнер с такими настройками, и после запуска пишешь в эти каталоги данные, то они должны сохраняться на хосте.
Если ты хочешь, чтобы уже существующие данные скопировались на хост, то это не сработает, конечно. Потому что поверх существующих данных ты монтируешь что-то.
Попробуй подключиться к работающему контейнеру и посмотреть, как изнутри каталог выглядит.
Нужно переопределить присвоение атрибута, но всё равно присваивать его. Вопрос: как не уйти в рекурсию? Я сделал через обращение к методу суперкласса object, но помню что был другой вариант.
Решал задачки и назрел концептуальный вопрос по проектированию классов. В принципе любой из перечисленных способов будет работать,но с точки зрения ООП , какой из подходов верный?
Вот смотрите у меня есть база паспортов, мне нужно их отпарсить и определить валидные. Пришло время сделать класс, но тут возникает вопрос, с каким обьектом будет работать класс?
Вариант 1: Экземпляр класса - база. В класс отдаём весь массив паспортов. Вариант 2: Экземпляр класса - парсер. Создаётся экземляр класса, и где-нибудь в цыкле вызывается метод класса для каждого паспорта. Вариант 3: Экземпляр класса - паспорт. Для каждого паспорт из базы создаём свой экзепляр.
Первый вариант выглядит самым простым для реализации, но с точки зрения логики кажется не правильным, т.к. в конечном итоге класс работает с каждым паспортом в отдельности. Второй вариант более логичен, но парсер же не материален, т.е. не представляет реальную сущность, он не описывает свойства объекта, он описывает свойства работы с объектом. Ну и третий варинат с точки зрения оптимизация и кода выглядит как говно, создать кучу обьектов, которые тут же будут уничтожены, но за то с точки зрения модели данных верный.
>>2058910 Да хоть по частушкам. Пиздец вы безинициативные. Раньше босые десять километров через лес ходили в -40, чтобы почитать в сельской библиотеке лутца, а у вас мильйон курсов, книг, статей и презентаций, учи не хочу.
>>2058910 > Единственный способ - это учить по книгам? Какие же вкатыши ебланоиды, я просто охуеваю от вас. Раньше не было вообще нихуя. НИ ХУ Я не было, сука. У тебя есть возможность не поднимая жопы написать: "как мне, ебаному дауну, выучить питон?" в любом поисковике интернета. И тебе выдадут гайды, курсы, бесплатные видосы, бесплатные сканы книг. СУКА ТЫ ЛЕНИВЫЙ ХУИЛА ПИЗДУЙ УЧИ УЧИ СУКА УЧИ
>>2058951 Вот этого двачую. Сейчас Войтивайти может буквально даже умственно отсталый ребенок который не умеет говорить, а вкатыши на харкаче ноют, что им, сука, КНИЖКИ НУЖНО ЧИТАТЬ.
>>2059524 >Это зед шоу? Да. >Вроде же говорят, что хуйня Ну, я предпочитаю заценить сам. Скачал уже основную книгу, пока не заценил, но издание "ещё глубже" хотелось бы иметь просто на пк на случай если какая-то хуйня из разряда чебурнета случится, лол. >ещё и переводное В каком плане переводное?
>>2059612 > обходить блок РКН Потом ещё придётся мотоциклы на картинках выискивать, чтобы ПРОЧИТАТЬ это нытьё. Не написать что-то, а тупо прочитать. Совсем ебанулись они.
>>2059725 С первого взгляда смотрится как нормальная бизнес-модель. В тебя вроде как инвестируют, заинтересованы в твоём успехе, а получают процент только в том случае, если ты устроишься. Вроде как очень честно и адекватно.
На самом деле это наебательство. Потому что какой-то заинтересованности, чтобы реально тебя учить, нет. Ставка на то, что ты мотивирован и очень хочешь вкатиться, и поэтому шансы есть.
Ты тупо читаешь книжки, которые тебе рекомендуют. Их затраты невелики. Пролетишь - ну и хуй с тобой. Если же устроишься после их курсов, или после того, как после их обучения будешь год учиться сам, или пройдёшь платные курсы - ты будешь им платить деньги.
В общем реально для них самая выгодная модель не в том, чтобы тебя учить, а в том, чтобы набрать много лохов, и не вкладывая толком ничего в них, стричь тех, кто всё-таки сможет сам устроиться.
Сап питонач Кто-то встречал библиотеку нормальную для работы с инстограмом? Раньше был instabot но он вроде загнулся... Или вы такими детскими хуйнями не занимаетесь и все тут большие дяди с интернет комерцией?
Есть ли сайт, где можно вбить библиотеки и их версии чтобы посмотреть, будут ли они работать с питоном нужной версии, и еще лучше, если будет показывать проблемы с зависимостями библиотек между собой.
>>2060374 pypi.org. Вообще, pip сам ищет пакет подходящий для твоей версии питона по тегам(вот таким https://www.python.org/dev/peps/pep-0425/#details ), и если создатель пакета все указал правильно, то проблем быть не должно. По разрешению конфликтов, значит, команда pip check должна находить конфликты, но разгребать самому придется. Автоматически разрешать конфликты должен уметь Pipenv, вроде еще Poetry, и что-то еще было, не помню. При том каждый из этих пакетных менеджеров (или как они там называются) использует свой файл зависимостей по типу requirments.txt, только другой. Я лично ничего из этого не использую, ничего конкретнее не подскажу.
Сука, не могу решить эту задачу: Write a function named x that takes a string as its only parameter. The function should cast its input parameter to an integer and add 3 to it. Don't forget to return the result.
For example, calling x("0") should return 3 and calling x("123") should return 126.
Hint: Use the int function to cast a string to an integer. For example:
int("123") == 123 You can store the result of the function call into a variable if you prefer:
result = int(string) Then add 3 to the result before returning it.
>>2061388 По смыслу всё ок, это ты где-то обосрался. Судя по тому, что это ipython и отдельный файл, скорее всего ты импортировал много раз, но это не работает, надо делать importlib.reload.
Смотрите, что делаю. Беру webm, конвертирую через ffmpeg в mp4, сохраняю во временный файл, отправляю этот файл в телегу, удаляю файл. Есть ощущение, что как-то через жопу все. Вынужден создавать файл с параметром delete=False, потому что иначе будет ошибка при попытке открыть его в строке bot.send_... А так как delete=False, мне приходится после этих процедур удалять файл вручную через os.remove. Можно как-нибудь красивее? В идеале вообще не создавать файл явно, но вроде как ffmpeg так не может делать.
Здаров, питоняч. Имею файловую структуру проекта пик 1. В папке с тестами в тесте test_cl_arguments пишу from rss_reader.reader import main Мне пишет NoModuleNamed rss_reader.reader Сижу, не панятна, хули надо. Так же многие модули подключал и всё норм было. Подозреваю это потому что я ничего не прописывал в __init__.py
Сап, дорогие друзья Короче говоря, учусь на 3ем курсе физмата на программёра с уклоном в матан, дали курсач, по незнанке сказал "дайте что-нибудь посчитать" (с надеждой на то, что дадут какую-то задачку, а не программирование), В ИТОГЕ Тема "Аппроксимация кривых монотонными и выпуклыми кубическими сплайнами". Более-менее разобрался с темой, но реализовать кодом не могу. С монотонными кубическими сплайнами всё элементарно, это есть в scipy, тоси-боси и интерполянт найден, но с ВЫПУКЛЫМИ КУБИЧЕСКИМИ сплайнами дела обстоят более категорично... В инете по теме ничего не нашёл, в библиотеке alglib даже намёков нет на эти выпуклости, помогите кто чем может На вход: Координаты (в любом количестве, можно просто сразу массив прописать, чтобы ручками не вводить) На выходе: Интерполянт (т.е. функция)
>>2062283 По моему, никаких private переменных в Питоне нет, а carA.__model прекрасно доступен как carA._Car__model. Хуйня на экране - синтаксический сахар, благодаря которому можно красивенько атрибут model изменять не через вызов метода carA.setCarModel(model), а через присваивание значения свойству model напрямую, да поправят меня знающие люди.
>>2062283 Что ты называешь приватной переменной и зачем они, по-твоему, нужны?
По определению приватная переменная не должна быть доступна со стороны, в том числе на чтение. В скрине у тебя "свойства", а не приватные переменные. Приватная переменная это __model.
Она именно приватная, ты не можешь снаружи достучаться к ней как к __model, равно как и в классе-наследнике ты её не перепишешь.
Там уничтожение данных, ты перезаписываешь год. Более грамотный подход в том, чтобы хранить оригинальный год внутри, но для пользователя сделать геттер, который будет лимитировать показаный год в соответствии с линией партии.
>>2062332 Даже если сделать настоящие приватные атрибуты, то никто не отменял setattr и прочие патчи благодаря чему в питоне легко замокать сетевые вызовы для тестов например. Главное правильно настроить линтеры в репозитории чтобы запретить откровенно говнокодить и нарушать принятые на проекте правила.
Сап. Появилась задача переписать чатбот для групп в ВК с ноды на питон. Вопрос - какую либу под это дело использовать? В питоне не шарю, использую его чисто для аналитики и автоматизаций. Судя по быстром гуглежу, пацаны советуют использовать асинхронные библиотеки, но какую выбрать? С документацией, если что, разобраться смогу.
>>2061713 напиши без библиотек. есть формула как это говно находить? ну так подставь ее в питон и пидорни. по сути тебе дали легкую тему, тебе не нужно же пилить это например в виде сайта или программы с графической оболочкой?
>>2062453 >Алсо где/как это все хостить? А как это написано и работает сейчас, в версии на noje.js? Питон в этом плане не отличается от ноды. Как хостишь ноду, примерно так можешь хостить и питон.
Я про чатботы конкретно ничего сказать не могу, не понимаю в них совсем.
>>2062530 >А как это написано и работает сейчас, в версии на noje.js? Как полный пиздец, за который я оторвал руки предыдущему горе-разработчику. Бот буквально хостится на домашнем компе для аудитории в лям пользователей,
>>2062529 Блин, я тупой, в том же посте на stackoverflow написано, что нужно добавить ffmpeg флаг "-movflags empty_moov" и все будет хорошо. Еще раз спасибо, работает.
>>2062537 Писать ботов - это одна тема, хостинг - это другая тема.
Можно хостить на сервере примерно так же, как ты хостишь на компе. Просто запускаешь задание в фоне с перенаправлением вывода куда-нибудь и забываешь. Это колхоз, но я сам так иногда делаю. Аптайм сервера может быть месяцы и годы легко. Что нода, что питон работают надёжно.
Более правильно поднимать process manager'ы, к которым будет веб-интерфейс управления, которые смогут авторестарт делать и т.п.
Или, альтернативно можно поднимать через докер и использовать опцию --restart=always
Через докер в целом более правильно разрабатывать.
А с ботом, надо на логику самого бота смотреть, боюсь что переписать скорее всего означает "написать заново". Разве что внятное ТЗ есть, понятно, как этот бот должен работать. Но в ботов я не умею.
Не понимаю как практиковаться и что писать чтобы был опыт а не только теория. Вот знаю я кое что на базовом-среднем уровнем про питон. А что делать то теперь с этими знаниями?
>>2063418 >Вот знаю я кое что на базовом-среднем уровнем про питон Скорее всего это на предбазовом или начально-базовом.
Язык программирования это лишь часть программирования. Попробуй что-нибудь сделать практичное. Это смотря какое направление ты смотрел. Там что-нибудь вроде сайта, скраппера данных из сайтов, игрушки, распознавалки картинок (если ты в CV/AI полез), и т.п.
Если просто учишь язык-программирование, то решай задачи на литкоде.
>>2063534 > 1. Хуй сосешь? да > 2. Пидарас? нет > 3. Линуксоид? нет >>2063536 Да мне тоже норм, просто хотел еще что нибудь попробовать. Да и интересно почему обсуждение других иде вообще нет
>>2063893 не понимаю, что у тебя за проблемы. Включил комп с виндой. Снёс питон, перезапустил, скачал последний, ставлю Выбираю custom install, хотя это не обязательно. Выбираю для всех пользователей и выбираю добавить в PATH, по-умолчанию этого нет. pip включён по-умолчанию, tcl/tk тоже включены по умолчанию, но проверь. Сколько-то времени ставится, предкомпиляция стандартных библиотек и всё такое, это лучше сделать.
Запускаю консоль, проверяю, есть и питон, и пип, и виртуальные окружения без дополнительных действий.
>>2063238 твои многопоточные ассинхронные проги связаны с инстой? Если да, то какие хэдеры и к каким ЕП обращаются? Если нет, то спасибо за то что уделили нам время :)
Как в вашем питухоне создать список из ебаных массивов? Когда я гуглю мне всякая хуйня вылезает типо x = [[1,2,3], [1,2,3]], видимо питухонщики не различают список и статический массив или лезет просто, как блять создать список из массива, ну ахуеть блять, вы мне скажите еще как переменную x = 1 объявить, когда я хочу вычислить определитель матрицы.
>>2064756 >Deprecated since version 3.3, will be removed in version 3.10: Moved Collections Abstract Base Classes to the collections.abc module. For backwards compatibility, they continue to be visible in this module through Python 3.9.
>>2064771 Ты так и не объяснил, нахера тебе списки Единственное годное применение для них это двусторонние очереди, все остальное скорее всего байтоебство и нинужно
>>2064761 лишь значит, что вынесли абстрактные классы в отдельный модуль, сами коллекции никто не трогал. А то не первый раз вижу, что подобные замечания воспрнимают неправильно.
>>2064735 >Как в вашем питухоне Рано тебе ещё в питон. Вот как ты в Си двумерный массивов создаёшь, точнее не двумерный массив, а массив указателей на массивы? Вот и в питоне примерно так же создавай.
Можно добавить дежурную фразу о том, что внутренний движок numpy, написанный на C, оптимизирован под векторизованные операции. pandas.Series.map в данном случае, видимо, сводится к вызову обычного map для numpy.ndarray.
>>2065739 Ну игрульки какие-то, чтобы заинтересовать жеребенка и научить каким-то базовым вещам. Вряд ли там чего толкового научат, чего нет в любой нубской книге или курсе.
Установил поддержку gpu на своем компьютере, увеличения производительности нет. Хотя у меня стоит дерьмовая видюха и нормальный проц, но думал все равно разница минимум в два раза будет.
>>2065990 Кстати, частенько вижу как хаят использование на сайтах джаваскрипта, особенно на других бордах. Что в нем плохого? Думал свой сайт пилить, но теперь вот думаю стоит ли пытаться избежать использование джаваскрипта или всё это какие-то надуманные бредни анонов с мелкоборд?
>>2066120 В первом случае ты изменяешь список, во втором создаешь новый и присваиваешь его A. Тупли иммутабельны, поэтому в случае += тоже неявно создается новая, хотя это не слишком очевидно, да.
>>2058754 >По идее, если ты запускаешь контейнер с такими настройками, и после запуска пишешь в эти каталоги данные, то они должны сохраняться на хосте. в том то и дело, что ничего не сохраняется. В моем случае скрипт скачивает картинки и сохраняет их в папку, но в папке на хосте они не появляются
>>2065739 Попробовал этот сайт вчера и сегодня. Почти прошёл второй остров на этом сайте и поделюсь впечатлениями: играть довольно интересно, но большинство квестов тебе комментариями прямо говорят, что делать. По сути дают не только готовый алгоритм программы - половина программы зачастую уже сделана. Для детей и желающих попинать программинг чтобы понять каков процесс программирования вообще - сойдёт. В целом, я думаю, что это меня подтолкнуло к полноценному изучению в целом. Сам до этого кроме Hello world ничего не писал. Обязательно допройду её до конца и если будет что-то добавить к этому посту - напишу.
>>2066379 p.s. говорю о бесплатной версии, подписка стоит 4 бакса, открывает дополнительные уровни и снарягу(как я понимаю нужную для этих уровней). Где-то половина уровней только по подписке. Вероятно, там и есть нормальная практика где за тебя не строят алгоритмы и прочее.
>>2066392 Мне из игровых хуиток понравилось только это https://vim-adventures.com/ Можно реально задрочить миллион этих моушенов и прочих действий. Когда-то прикуплю и возьмусь за это дело, лол.
>>2066403 >Мне из игровых хуиток понравилось только это https://vim-adventures.com/ Открыл сайт, запустил уровень и так и не понял что от меня там требуется. Какую клавишу не нажму - ничего не происходит. Алсо, разве есть другие более-менее приемлимые игровые хуитки?
Аноны, помогите, пожалуйста. Как в Джанге чекать данные которые вводит юзер? У меня тема чекать показатели и если данные превышают норму то выдавать False, если все норм то тру. Я соответственно создаю модель типа булиан, но а как именно чекать данные не ебу. Как вообще реализовать это, помогите плиз? мимо нуб
>>2055136 (OP) Сап шипящие, помогите пожалуйста. Суть проблемы такова, дана система уравнений с кучей переменных вся хуйня это не так важно, по условиям одна из переменных дана в виде z = tan(b*x) b и x естественно уже введены и вот при выполнении функции он ругается что я должен ввести число а не строку а как это исправить я хуй знает, может вы подскажете если что, знаний питона у меня, 15 лекций тимофея хирьянова
>>2066560 Я вижу что написано прямым текстом, я не понимаю как исправить и поэтому пишу сюда в поисках помощи, типа как заставить еще высчитывать тангенс когда ему уже даны переменные
Что-то не могу понять в каких случаях нужно в классе писать что-то сразу после двоеточия как на скрине, а в каких нужно __init__ использовать. Просто до этого в уроке всегда __init__ использовали, а тут вдруг написали сразу после двоеточия
>>2066644 Она автоматически всё это будет делать при создании проекта и ничего самому делать не надо? Просто я через консоль создавал сейчас отдельную среду
>>2066657 Подождите, я затупил кажется. Тут стр вместо инит получается, да? А вообще первая функция всегда будет выполнять роль __init__ и неважно какое имя дать?
>>2066767 вот как я сейчас эту возможность обрабатываю try: # тут мержим два массива если надо except IndexError: try: ret.append(i) except IndexError: ret.append(n)
>>2066785 Понять бы, чего хочешь ты. То есть очевидно, что ты хочешь посчитать сумму цифр в введённом числе. Интуитивно очевидно. Твой код, однако, считает значение числа умноженное на количество цифр в нём.
А enumerate так работает for index, symbol in enumerate(n): ____print(index, n)
Но тебе это не нужно. Тебе нужно for symbol in n: ____sum_of_digest += int(symbol)
>>2067034 Нет, я просто не часто сюда пишу и сразу не понял что первое уже отправилось. Если ты о том что я задал глупый вопрос то я его задал потому что больше не знаю куда обратиться
>>2067037 На стаковерфлоу почитай, это имелось в виду. Типа если гипотетически(нет) ты устроишься на работу связанную с питоном и возникнет такая же ситуация, то что ты начальнику скажешь? "Щас у посонов с двача спрошу, погоди пару дней" ? Если у тебя код 1в1 с примера, ты перепробовал все вариации со стак оверфлоу и у тебя не работает то что работает у большого количества людей - тогда неси проблему, возможно ты где-то настроил что-то не так, или версия питона у тебя какая-то всратая поставилась, или банально ты list через хохлятскую i написал и тупишь, я хз. И почему ты просто не задал вопрос сразу?
>>2067040 Ого ты объясняешь, уже и пробил меня походу. Спасибо, за такую конкретику но я вот только начал учить и вопрос обстоит очень просто и банально: есть видеоурок на ютуб где я не понял о чем идет речь в определенном временном промежутке и в теории я хочу кинуть тебе ссылку на видос (куда удобно) с таймкодом, после чего ты глянешь этот отрезок и ответишь мне на мой вопрос, если захочешь, разумеется
>>2067057 Чувак, ты точно уверен что это твое вообще? Ну ладно 1)Он делает x(как на уроке математики, икс, типа икс равно 2, буква чтобы в нее записать что-то) = input('Как тебя зовут? '). Только его икс называется name, но я дальше буду писать x. Инпут это такая хуитка в которую вводятся данные с клавиатуры, можно не писать в кавычки ничего, тогда просто будет моргать курсор, но он ввел Как тебя зовут? чтобы "понять" что программа спрашивает. В больших программах может быть много вопросов, поэтому он туда написал вопрос Как тебя зовут. 2)Потом он пишет print(f"Привет, {х} !") Принт печатает что-то на экран. В данном случае используется так называемая F-строка(от английского Fuck you, leather man), если перед кавычками поставить f букву, то потом ты можешь в {} такие скобочки засовывать свой икс или любые другие буковки к которым привязаны какие-нибудь слова или циферки. 3)Он запускает это как скрипт, программа спрашивает у него тот самый input, на экране вопрос из кавычек Как тебя зовут? Он пишет Тимовей Баранович, в икс записывается строчечка текста "Тимофей Баранович" и теперь х == "Тимофей Баранович"(два равно это такая магия означающая охуенно сильно равно которое показывает что это намного равнее чем просто равно, либо равно либо ты идешь нахуй) Следующая строчка программы это print, она печатает то что там в кавычках, Привет, ... вместо этих трех точечек она подставляет х, потому что он был в {} скобочках и находился в Fстроке, а икс у нас как мы уже запомнили равно тому что он ввел с клавиатуры, а именно "Тимофей Баранович", в итоге получается "Привет, Тимофей Баранович!" Ну как-то так, удачного тебе путешествия в мир программирования чтоли. покормил
>>2067068 Чтобы это понимать, нужно математику уровня 2-3 (для моих лет 3-5) класса пройти, тут даже как такокого программирования нет (ну под самим капотом есть, но за тебя уже всё реализовано). Если чел сидит на двоще, но не понимает этого, то я не представляю, как он смог на сам двощ, и тем более в /pt/ зайти. Это же надо на кнопочки набивать что-то с клавиатуры, а браузер это как-то магически понимает и тебя в тред телепортирует.
>>2067090 Я попробовал, сири на запрос "Двач программирование питон тред" выдает ссылку почему-то на 99й тред кек. Так что да, это загадка, может он догадался как в конце нажимать на перекат? Работают ли вообще перекаты в архиваче?
>>2067093 Они же у тебя не соседние? Берешь форлупом первую и сравниваешь ее со всеми, стрипуешь если совпадает, добавляешь i+1 и дальше погнал вторую и т.д. Все это с with open('zaloopa.huy') as file:
>>2067149 Смотри, просто = это присвоение, т.е. если сделаешь х = 5 то он будет равен 5 Но если ты потом в программе сделаешь х = 10 То икс теперь будет равен 10, ты перепишешь значение Если же тебе надо спросить у программы РАВЕН ЛИ ИКС 10, то делаешь x == 10 И комп тебе ответит TRUE, т.е. да, а если ты не делал х=10, и икс у тебя равен 5, то комп ответит FALSE. Таким образом ты можешь делать так if name == "Вася": print("Привет, Вася!") else: print("Я знаю только Васю, пиздуй отседова, незнакомец") Т.е. если name == "Вася" выдает True, то условие первое выполняется и программа здоровается с Васей, но если name не равно "Вася", т.е. False, то программа посылает не-Васю к хуям. Так же ты можешь использовать != это тоже самое только НЕ РАВНО, ну там еще больше, меньше, больше и равно, меньше и равно и еще ряд сравнений.
>>2067349 Потому что это не питоник цикл, а кривое подобие фор из си. Вместо for n in range(len(lst)) val = lst[n] делается for val in lst или for n, val in enumerate(lst), если нужны индексы.
>>2055136 (OP) Как в блядском списке от 0 до 700 , выести нечетные сотни, я блять не могу ебучее условие проверки придумать, пиздец блять отупел просто надо вывести на экран 100 300 500 700. Я могу сделать как в списке от 0 до 7 вывести 1 3 5 7 , а как это сделать для 700 я хуй знает сука, помогите пожалуйста пример взят из интернетов
>>2067936 Тебе можно в range прописать шаг в сотню, чтобы у тебя список был не 0,1,2,3,......,699,700, а просто 0,100,200...,600,700? Или тебе нужен именно полный список в котором 700 элементов?
>>2068238 Да, несколько вариантов с двумя проверками и ни одного очевидного. Вот это и называется "вышка нинужна". Потому что если такие понятия, как "кольца вычетов" знакомы, просто слишком очевидно решение с одной проверкой, что не понятно, как можно придумать вариант с двумя.
Решил учить питон, погряз в информации пиздец, дайте общих советов плиз, а то чувствую что сейчас полезу не туда. Что я понял: рот ебал этого ютуба, нужно читать книжки и только книжки. Потому что либо там вроде нормальная информация типа для совсем новеньких с какими-то небольшими упущениями, либо какой-то ебучий хауди хо со своми "питон за 1 час", где не понятно вообще нихуя как он работает с терминалами. Собственно хочу начать с питона для детей, норм для того кто вообще никак не связан с программированием? Ютуб не смотреть вообще, чтоб не ёбнуться и не обосраться раньше времени. Хотя мб на ангельском есть что-то годное? Ну и тупой вопрос: а что на питоне-то делают и какие перспективы для меня? Ну я понял, что бэкэнд джанго и всё остальное, короче типа делают сайты. Если ещё и фронтенд учить, то смогу делать сайты и зарабатывать как бы. Что-то слышал про нейросети, но нихуя не понял. И вроде всё, больше никто не заикается. Вроде есть какие-то фреймворки для игр, вроде есть для приложений, но даже в шапке написано, что лучше не надо. Можно каких-нибудь примеров того, что питон не только бэкенд? Я полюбому буду учить питон, потому что для новичков и я хочу вкатиться в программирование, но хочется понять что я учу ёпт
>>2068586 Тебе реально не стоит учить питон(да и вообще кодинг) >нужно читать книжки и только книжки. Зачем? Тебе надо на 50 страниц описание что такое цикл? >нихуя как он работает с терминалами. У тебя IDE в видео вызывает тупняки? >Хотя мб на ангельском есть что-то годное? Нет, хуйня идея, вообще за пределами рашки о Питоне не слышали, там куцые какие-то недогайды по еще второму питону, нерекомендую >а что на питоне-то делают и какие перспективы для меня? Все делают, но в других языках это делать лучше >Если ещё и фронтенд учить, то смогу делать сайты и зарабатывать как бы Не сможешь >Что-то слышал про нейросети, но нихуя не понял. Вот тут никакого подъеба, все верно >Можно каких-нибудь примеров того, что питон не только бэкенд? Ну это еще графики и таблички. >полюбому буду учить питон, потому что для новичков Пизда
А вообще представь если бы ты заинтересовался, например, свифтом, у тебя бы ни одного вопроса не возникло, ни про книжки, ни про применение, ни про деньги во фронте, ни даже про игры. Он такой же "простой", я тебе больше скажу - там даже двоеточие не надо ставить, вообще легкота, рикамендую. И гайдов много на английском, эпол же популярная фирма.
>>2068590 >Тебе реально не стоит учить питон(да и вообще кодинг) Да ладно, будет на говнокодера больше. И не такие долбоёбы вкатывались. >Зачем? Тебе надо на 50 страниц описание что такое цикл? Чтоб мне как дауну объясняли на пальцах. У меня информатика была на уровне "напишите текст в word". >У тебя IDE в видео вызывает тупняки? Тупняки - нет, непонимание того что он делает - да. Ну типа он говорит, что нужно установить джанго, лезет на сайт, копирует какую-то непонятную строчку, запускает и говорит, что джанго установился. А мне нихуя не понятно как он его установил, если в скопированной ссылке нет никакого адреса, а какие-то команды. Откуда он ёпт установил его? Для меня сейчас установить что-то, это скачать и запустить инсталлятор. Это мелочи которые мне вообще непонятны, а тупо повторять путь в никуда. >Все делают, но в других языках это делать лучше Это все говорят, что делают. Только чёт инфы нихуя нет толком кто и что делают. >И гайдов много на английском, эпол же популярная фирма. Толку-то со свифта, если у меня из техники яблочных только древний айпод?
>>2068669 Учись работать с консолью, лучше в линукс. Если сидишь на винде-10, то там можно виртуальный линукс запистить, если только у тебя не home edition. Версии pro, edu, entertrise умеют. Можно и лучше даже сразу докер поставить.
В консоли разберись с файловыми операциями всякими.
Дальше научить запускать питон из консоли, запускать питон-консоль, создавать витруальные окружения и ставить что-то через pip. На самом деле это очень просто, если консоль не пугает.
Можно быстро разобраться, что происходит при установке пакетов и т.п.
после этого уже намного лучше будешь понимать эти инфраструктурные вещи.
Если хочешь в бэкенд, то без этого делать там нечего, подразумевается просто. Даже в вакансиях обычно прописывают, что надо уметь с линуксом работать.
>>2055136 (OP) Сап програмач, есть вот такой код на пикриле, вроде все нормально, но преподша заеба тредует чтобы я ввел z как переменную >переменная z меняется также, как и переменные a и b, т.е. должна быть переменной вашей функции var14 ее слова, но как это сделать если z от варианта к варианту меняется и его надо каждый раз расчитывать? Типа сделать какое то обращение, но звучит бредово как то, типа брать в переменную то что уже посчитано , мб вы подскажете
>>2068797 Твой код вообще не должен работать. У тебя функция просит 6 аргументов. При этом когда ты вызываешь, ты передаёшь только три. Уже исключение будет.
При этом ты эти агрументы не используешь, а перезаписываешь.
С математической точки зрения и в плане внутренних переменных тоже не всё понятно.
>>2068802 Оно все работает, могу скрин предоставить, да и в принципе мне больше надо сделать что просит это пизданутая чтобы отъебаться Она еще одно более ебанутое задание дала которое вообще составлено так что ты должен сам понять что она имела ввиду. Помоги пожалуйста если знаешь как осуществить задуманное ею
>>2068810 а который хотел бы сдать >>переменная z меняется также, как и переменные a и b, т.е. должна быть переменной вашей функции var14 А пикрил само задание как выглядит
Питоноаноны, что еще нужно маст хэв, что бы наконец зарядить резюмеху, по которой всё таки кинут тестовое задание, если условно я знаю синтаксис, ооп, SQL и немного HTML+CSS+JS (чисто на уровне спиздить платный шаблон и запустить на нём свой красивый сайт-визитку-резюме)? Я готов к собесам?
>>2068848 Я не говорил про веб. Я в целом и общем знаю питон и SQL (условно). С таким багажом разве только в веб дорога? я без прретензии, просто интересно.
>django/flask/aiohttp/fastapi Все 4 сразу или имеется ввиду по отдельности что то одно? Джангу ковырял, суть и цели джанги понял, надо, я так понимаю основные классы выучить, подразумевается это? или пройти пройти один пиздатый курс по настройке джанги достаточно? Что подразумевается под знанием фрэймворка? Понятно, что всякие мелкие пакостные хитрости я и питоновские все никогда не выучу, но парсер например написать могу или бота для телеги поднять.
>>2068859 >С таким багажом разве только в веб дорога? Нет, тебе очень пригодится хтмл в байтоебстве с робо-руками на заводе. Обычно идет что-то одно, но ты никогда не угадаешь, они все применяются на разных сервисах и по своему уровню "крепкости жопы" и по желанию юзать то или иное у главного. И будут сайты-визитки на джанге и кинотеатры с базами данных и мл моделями на фласке. Энивей они примерно одинаковые, это все REST, графен, и дроч sql, отличаются только названия команд для этого всего.
>>2068093 Обычный где можно смотреть кино. Такое можно сделать на заказ, там еще замутить видобалансер и прочее. Я подумал, что можно на джанге сделать. Можно ли?) Делают на wp потом юзают видеобалансеры и статьи к фильмам.
>>2068877 Как представляю, от джанги тут будет самый минимум, основная работа это бэкенд по хранению видео и балансировке нагрузки, фронтенд для реализации плеера и т.п.
Тебе надо расписать задачу, функционал, а уже потом думать, какую часть фунционала можно на каком-то фреймворке сделать.
>>2068886 Да готовых решений куча, включая сделать кинотеатр под ключ, на питоне такого не видел. Знаю только его, подумал, что бесплатно сделал бы такое сам. А там, все как обычно, трафик.
То есть получается нужно будет взять asyncio: Добавить в луп функцию, которая обрабатывает получение данных по вэбсокету, указать в ней, чтобы записала данные к примеру в файл или глобальную переменную, Добавить в в луп еще одну функцию, для обработки уже самих данных И гонять это все в цикле?
>>2069492 Ты оформляешь фунцию чтения данных из вебсокета в отдельную задачу. Тут надо оговаривать, у тебя один вебсокет или много, что происходит в случае обрыва соединения и прочие моменты.
Создаёшь очередь asyncio.Queue() передаёшь ещё в задачу, что работает с вебсокетом, и в задачу, где функции крутятся, которым надо с данными работать.
Как только данные пришли, пихаешь их в очередь. И если этим функциям хочется отправить данные, тоже пихаешь в очередь.
Это самый общий подход, очереди сообщений, каналы передачи данных и т.п.
Сап, вкатился где-то пол года назад. Сейчас работаю на проекте с довольно серьёзными технологиями для джуна - кубер, асинхронные фреймворки, nosql хранилища и тд. Я смогу ещё через пол года вкатиться на миддла с таким стеком или пойду нахуй? Вот просто интересно, удавалось ли местным антуа за максимально короткие сроки перекатиться в мидлы/сеньоры? Просто ебал ещё несколько лет батрачить за ебаные копейки и ждать, когда кабан рассщедрится на +10к к зп.
>>2069681 Что там понимать? Функции это объекты в питоне, их можно передавать, возвращать и хранить в структурах. И если тебе нужна такая передаваемая функция на один раз, то вместо определения с def ты можешь захуярить лямбду прямо на месте.
>>2069687 Это ещё один способ объявления функций, как def, только их ещё можно использовать сразу по необходимости. Нужны они когда сама функция настолько незначительна, что создавать через def ее не имеет особого смысла, например, когда в сортировке указываешь функцию, которая преобразовывает элемент прежде чем приступать к сравнению.
>>2069687 Я так понимаю, что лямбда-функция - это укороченный вариант обычной функции, который используется когда нужно быстро въебать какую-то функцию посреди кода, и которая будет использована однажды и не будет занимать память. Еще помню, что ее иначе называют анонимной, т.к. ее не надо объявлять.
>>2069690 >>2069694 Я не понимаю, почему мне может хотеться использовать лямбда-функции. Почему я не могу обойтись например list comprehension или циклом каким-нибудь? Мне ж все равно эту операцию один раз провернуть.
>>2069697 Хз, с этим трудности, я понимаю только на словах. Я помню, когда-то давно писал простой гуй на pyQt, и там нажатие на кнопку делалось через лямбды в этом треде так подсказали - я так и не понял, почему. И в общем-то это единственный пример, который я помню.
>>2069696 >Мне ж все равно эту операцию один раз провернуть. Но есть же случаи, когда операцию проворачиваешь несколько раз, просто делаешь одно и то же. Когда передаёшь фнкцию другой функции, например, как для map() или filter().
Или в пайплайн встроить, например, хочешь обработать строчку ''.join().strip().(тут делаешь какую-нибудь необычную операцию, например, тЕкСт ЗаБоРчИкОм)()
>>2069704 >''.join().strip().(тут делаешь какую-нибудь необычную операцию, например, тЕкСт ЗаБоРчИкОм)().(и тут можно продолжать обрабатывать, сделать текст жирным, к примеру)()
>>2069707 Можно сделать обычной функцией, но тогда её нужно будет придумать название, объявить её где-то в другом месте, потом привести в скоп, передать её все нужные параметры, и потом применить. А нужна она только здесь. Не лучше ли её прямо здесь и объявить?
>>2069712 Не знаю, может, мы друг друга не понимаем. Если я делаю что-то один раз, то это лямбда в моем понимании. Если я делаю что-то несколько раз >операцию проворачиваешь несколько раз То это обычная функция, которую надо объявлять.
Вы неправильно обьясняете. Надо понять, что такое функции первого класса и как они применяются. Лямбды это просто частный их случай, когда имя такой функции просто не требуется, т.к. используется в одном выражении.
Есть связной список(linked list), как он работает? вот допустима фрагмент кода, я обьясню, а вы скажите прав или нет.
Я вроде прошел весь основной синтаксис питона немного ООП затронул, но бывает берешься за что-то новое связанное с алгоритмами или куда-то углубляешься в какой-то фреймворк, то абсолютно ничего не понимаешь.
Вот тут мы создаем экземпляр класса связного списка, где при инициализации мы привязываем голову к Node, то есть каждый экземпляр будет иметь в себе голову(или же узел), но как оно ходит по этим узлам? Next это ссылка же на следующей элемент, в каждом узле ее в начале нет, но как только мы добавлям новый узел Node, то мы с прошлого узла переходим на этот новый, где ссылки тоже нет, и так мы идем сколько нам надо 1 - Есть узел, в нем нет ссылки, создаем новый в старом узле, указываем в старом узле ссылку на новый узел, переходим, а в следующем узле не будет ссылки пока не проделаем такую-же операцию, верно?
# class Node: # def __init__(self,data=None): # self.data = data # self.next = None # # class LinkedList: # def __init__(self): # self.head = Node() # # def append(self,data): # new_node = Node(data) # cur = self.head # while cur.next != None: # cur = cur.next # cur.next = new_node
>>2069724 Голова это первый элемент, она известна, потом хуяришь по некстам, пока не будет None, это хвост. В целом, этого достаточно для итерации и добавления элементов как в конце, так и в любой другой позиции, просто манипулируя этими некстами, в этом и суть линкед листа.
>>2069728 Да я знаю что есть вроде deque в collections и он может использоваться в таких-же целях, просто разбираюсь в алгоритмах и хотелось бы понять как это все работает, тяжеловато дается.
>>2069734 Да, ещё и строки, но ты указателями явно не можешь распоряжаться и к классическим структурам приходится ебошить костыли. Если бы хотя бы по Id() можно было объект получить, то можно было бы потренироваться в этом.
>>2069736 > указателями явно не можешь распоряжаться Например считать разницу или прибавлять к указателю целое число? Так для классических структур такое и не надо особо.
>>2069696 >Я не понимаю, почему мне может хотеться использовать лямбда-функции. Почему я не могу обойтись например list comprehension или циклом каким-нибудь? Потому что тебе может потребоваться передать функцию куда-то в качестве аргумента. Вот для таких целей и нужны лямбда-функции, чтобы код был компактным.
На самом деле можешь сильно не заморачиваться, главное примерно понимать, что это такое. Когда будешь сталкиваться с передачей функций на практике, будешь и лямбда-функциями пользоваться.
Например, у тебя есть список сложных объектов и ты хочешь отсортировать их как-то. Ты используешь для этого функцию sort, один из аргументов которой это "ключевая функция", которая преобразует твой объект во что-то сортируемое стандартным образом, так определяя "отношение порядка".
Всем привет! Нужно запилить на фронт таблицу состоящую из Kibana логов на каждый веб сервис. Имею доступ к Amazon аккаунт и собственно кибану. С чего начать? Я сам джун, погуглил ничего не понятно пока. Получается что нужно: 1. Достать логи с кибаны или Амазона 2. Обработать их в одну базу. 3. Запилить фронт с таблицей и уложить туда базу. 4. Разместить где-то на хосте. Что упустил? Спасибо за внимание.
"Во 1 массивы хранят данные лишь 1 типа данных, во 2 хранят если не ошибаюсь только простые типы данных, в 3 хранятся в разных частях памяти, в 4 все элементы массива расположены в ячейках памяти, которые идут друг за другом, а со списками история в точности противоположная. В общем различия есть и их море".
>>2069827 Я так понимаю, что на практике оно в основном применяется для взаимодействия с компилированным кодом, в самом питоне их молотить смысла мало, т.к. при извлечении придется создавать объекты.
А как в вашей хуйней можно сделать что-то вроде вебпаковского watch'a или live server'a? Чтобы по изменению скрипта или его зависимостей перезапускать прогу автоматически, а не в ручную.
>>2069838 В питоне просто тип данных list назван не очень корректно, на самом деле это аналог массивов-"векторов" в других языках.
Модуль array позволяет создавать массивы, где данные будут храниться компактно. Наверное это иногда актуально, если очень большие данные. Но при этом работать с этой структурой дольше, каких-то внутренних оптимизаций нет.
Вот для теста создаю список из 10 миллионов целых чисел и array аналогичный, со значениями от 0 до 9999999. Делаю поиск, это работает как полный перебор. Штатный list работает в два раза быстрее.
То есть оптимизаций нет. Гипотетически подобные операции можно было бы вынести в бинарный код библиотеки и там проводить очень быстро, но этого нет.
Поэтому мне кажется, что очень ограниченная область применения.
Хай, пытаюсь вьехать в эти две темы, немного не понимаю.
Поток это подпрограмма в программе, мы их можем запустить N количество, это как 2 синхронные программы, они выполняются одновременно, верно? А асинхронность это когда мы говорим программе пока ты ждешь, сделай эту или эту функцию, верно?
Я сам на практике пока не использовал их, в теорию вьезжаю
>>2069883 Штатные структуры для питона это list, dict, set. В меньшей степени bytes/bytearray
Модули array и struct нужны в первую очередь для двоичных API, чтобы ты мог пересылать данные между приложениями, в том числе написанными не на питоне. Вот для этих задач они необходимы. Но это всё-таки очень редкие задачи, особенно для array, struct более частая вещь для парсинга бинарных пакетов каких-нибудь.
При этом мне кажется, что array и для бытовых задач может быть востребован, если тебе надо хранить в памяти очень большие объёмы данных, на десятки и сотни миллионов элементов. С обычным списком на 100+ миллионов элементов уже будут проблемы из-за расхода памяти. Но всё-таки это какие-то очень редкие задачи.
Надо просто помнить, что такая возможность в принципе есть.
>>2069884 >Поток это подпрограмма в программе, мы их можем запустить N количество, это как 2 синхронные программы, они выполняются одновременно, верно? Нет, особенно в случае питона с его GIL. Потоки придумывали не для этого, они появились ещё тогда, когда процессоры были одноядерные. Возможность одновременной работы это побочный эффект, но на питон он не распространяется.
Поток это логическая единица. У каждого потока есть свой набор данных, точка, где текущее исполнение находится. В программе несколько потоков и система периодически переключает с одного на другой.
Это нужно для того, чтобы твоя программа могла делать одновременно несколько действий. Например ждать, когда пользователь что-то нажмёт, при этом обрабатывать персонажа игры, скачивать-отправлять данные и др. В общем это многозадачность.
Разница между многопоточностью и асинхронностью в том, как происходит механизм переключения потоков. В первом случае независимо от кода подпрограммы, во втором случае в коде подпрограммы только на операторах await. Но более оптимально, если у тебя код ждёт данные, то ты в этот поток не вернёшься, пока данные не получишь, ресурсы оптимальнее используются.
>>2070061 Порядок не гарантируется, хранится как удобнее вм. Раньше такое было и для словарей, потом с какой-то версии к ним прикрутили порядок вставки.
Всем привет, не могу понять, django3.1 когда я добавил choices в форму, то она их использует для валидации? Или этот список теряется? Потому что уже дня 2-3 не могу починить ошибку на 2 пике. В документации написано, что используется, но проверить бы хотелось.
>>2069672 Тащемта никаких секретов тут и нет, в течении трёх месяцев задрачивал питон и всё к нему прилагающееся по 5-10 часов в день + 4 года в пту ещё, но там дальше хело ворлда на джаве я не продвинулся. Так и вкатился. Только единственное, что когда я на проект пришёл, первые пару месяцев было очень тяжело. А потом вроде привык.
Скажите, пожалуйста, правильно ли я сделал создание чекбоксов, где можно выбирать несколько значений. Просто я нашел место где происходит исключение, отследил из-за чего происходит в ChoiceField в to_python() приводят мой список к строке. Вот и спрашиваю, правильный ли класс выбрал.
Алло, вы че, вы на какое дерьмо залили книги? Как с этого дерьма(sync.com) скачать сразу все файлы? Какой умственно отсталый будет скачивать по одному файлику???
>>2071011 Вот это с одной стороны правда, но я с другой стороны видел своими глазами как 1 человек придумал и написал успешную (популярность и донаты) порно-игру с механикой Sim brothel (нанимаешь-обучаешь-продаешь рабынь, мотаешь по городу, покупаешь предметы, прокачиваешь характеристики, пошаговые бои и прочее), а только уже потом нанял несколько программистов, которые уже шарили в ООП и прочем. То есть он писал без ООП - хорошо если с функциями.
>>2071011 >Если не можешь решать уровень изи литкода, то пилить проекты рано. Разве литкод это не дроч алгоритмов? В свое время всякие олимпиады дрочил и мог прорешивать задачи оттуда. Но вот грамотно организовать структуру проекта, сделать красивые абстракции и декомпозировать логику между ними для меня было большой проблемой. На работе же обычно приходится писать такие сущности, а не изобретать очередной способ обхода графа.
>>2071036 >Разве литкод это не дроч алгоритмов? На уровне хард - да. На уровне медиум когда как. На уровне изи алгоритмов нет, самый примитив и просто структуры данных, исключительно практика кодирования.
Без уровня изи нельзя подпускать к кодированию. Ты просто не можешь кодировать.
>>2071015 >То есть он писал без ООП ООП это технология промышленного программирования. А литкод про то, чтобы придумать идею решения и реализовать её в коде.
Ты как раз описываешь типичного олимпиадника, у которого очень хорошо работают мозги, кто может придумывать и реализовывать сложные и интересные вещи, но не умеет писать промышленный код.
И как раз показываешь, что мозги важнее. Лучше переизобрести велосипед, когда есть уже готовые и бесплатно, чем не иметь возможности переизобрести велосипед, а быть способным только готовые решения использовать. А грамотное кодирование и технологии уже потом подтянутся.
Взял Medium задачку с LeetCode, как бы вы ее решили, но побыстрее?
```Given the head of a singly linked list, return true if it is a palindrome```
Runtime: 1096 ms, faster than 11.41% of Python3 online submissions for Palindrome Linked List. Memory Usage: 48 MB, less than 6.56% of Python3 online submissions for Palindrome Linked List.
Вот код ```class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next
class Solution: def isPalindrome(self, head: ListNode) -> bool: self.head = head cur = self.head lst = [] while cur.next != None: print(cur.val) lst.append(cur.val) cur = cur.next if cur.next == None: lst.append(cur.val) if lst[::-1] == lst: return True return False```
Если делать через создание дополнительного массива, как делаешь ты, то это easy. Но этот какое-то неправильное неспортивное решение.
У них там есть оговорка > Follow up: Could you do it in O(n) time and O(1) space? Я так слёту не знаю, как, надо думать, но это будет будет ни разу не easy.
>>2071271 >print(cur.val) Ты вот это прямо так им и послал? Не удивительно, что у тебя такие маленькие показатели. Удали печать и посмотри, насколько быстрее твоё решение будет работать.
>>2071301 >Follow up: Could you do it in O(n) time and O(1) space? Кстати есть очевидное решение, как это сделать, разве что оно будет грязновытым (тупые хаки) и не thread safe.
На практике оно работать будет дольше. Для количества элементов в 100000 экономия памяти смысла не имеет.
А в плане кодирования это грязные олимпиадные хаки.
Идея в том, что ты сначала проходишь и считаешь, сколько у тебя элементов. После чего знаешь, какие элементы к правому и левому хвосту относятся. Центральный для нечётный длины ни к чему не относится, он симметричен по определению.
Запоминаешь последний элемент.
Дальше второй проход, до середины игнорируешь, после середины меняешь узлы так, что не N указывает на N+1, а узел N+1 указывает на N.
Третьим проходом идёшь от головы и хвоста, до середины, и просто сравниваешь два связанных списка.
При желании можно сделать четвёртый проход и восстановить список к исходному состоянию.
Кодировать и отсылать на литкод лень, потому что это чисто хаки, которые проиграют по скорости наивному easy решению.
>>2071271 Какая же ненужная хуйня просто. Солюшионизм ин итс файнест форм. Те кто именно кодингом занимается часто вынуждены башку ломать над подобным, типа как что-то реализовать? Это же пиздец как уныло, сам я быстро перекатился в пандас/нимфи/ТФ, там ничего такого просто нет, самое жуткое что я юзаю это лист компрехеншн и то редко и скорее для выебонов. Функции пишу исключительно для графиков, классы? Идите нахуй со своими селфами просто.
>>2055136 (OP) Как в этом вашем питоне считают, если инты иммутабл? Нужке атрибут-счетчик, который бы считал количество вызовов определенного метода. Как это сделать без особых костылей? мимо-ньюфаг
>>2071679 Твой счётчик - это указатель на объект. Можешь посмотреть его id, он же адрес в обычном интерпретаторе. print(id(counter))
Как только ты делаешь counter += 1 создаётся новый объект и в counter записывается его адрес, поэтому если ты сделаешь print(id(counter)) после этого, то ты там другое значение увидишь.
Аноны, знаю что вопрос глупый и не по теме, но мне больше не у кого спросить. Почему код не работает дальше красной линии? Бот застревает на первом defe
>>2071756 Зачем тебе отдельно объявленая функция send? Пиши через готовую, говноед. Лень досконально копаться, но там 100% в этом косяк. Легитимна через И, кстати.
>>2071835 Там несколько таких заготовок с некоторыми дополнительными возможностями. Можно делать и через лямбду, но так нагляднее. Примерно как lambda x: len(x) и просто len.
>>2071896 Как раз мой случай. Прочитал книгу для начинающих, вроде основы уловил, но делать все равно ничего не могу. А тут я так понял будут именно проекты всякие разбираться
>>2071905 >Ха-ха, зачем же вы изучаете программирование по книгам? Это неплохо, если там примеры кода с задачами идут. Я вот прочитал в свое время лутца, потом пошел на кодварс и задрочил его использование
Пагани, подскажите плиз ссылку на гайд по Джанго или Фласку с нуля до хостинга. Хочу создать элементарный сайт где размещу полезные линки с кнопочками и по сути это все. Спасибо
Под твою задачу нужен только html, css и буквально капелька js. Зачем тебе Питон - не ясно. Разве что только ты хочешь изучить Питон и у тебя этот сайт что-то вроде практики будет.
>>2072052 Да, именно для опыта. Хочу для начала сделать Максимально простым с одной страницей буквально. Собираюсь дергать статусы определённых страничек с ссылками к ним. Потом прикручу ещё что-то. Может графики какие биткоина и прочих паркетов. Думаю делать на Джанго. Или советуете Фласк? У меня ещё обязательное условие чтобы я мог разместить на Амазоне. Вот хочу ссылку найти от начала до самого деплоя. Может есть такие гайды.
Подскажите библиотеки воксельные движки с рендером и обработкой (булевым операциями), чтобы я смог побыстрому набросать визуализатор фрезеровки. Хотя, можно и не воксельные, лишь бы были булевые операции и рендеринг.
me = 0 you = {'remote worker': 'senior'} def взамное обучение(me, you): if me == ["OOP", "alogoritms and data structures", " some grasp of Python", "a framework or two"]: you = ['бесплатная комната в Нячанге', 'обучение английскому от профессионального учителя с десятью годами опыта в трех странах', ' собутыльник', 'немножечко травы и грибочков'] return me, you
borders = "closed" if borders == "open": взаимное обучение Дорогие анончики, есть ли среди вас те, для которых бы данный код имел смысл (не в плане написания, а в плане того, что я попытался им передать), я гуманитарий, в математике был тугодумом, сейчас при самостоятельном изучении программирования на Питоне случаются как и затупы, так и просветления. Имхо, отличный вариант для тех, кто хотел бы перекатиться в тропики, сильно не привередлив в жилищных условиях (многие живут с руммейтами) По началу много времени отнимать не буду, просто тихо выполнять задания, а потом потребуется чуток Вашего времени. В плане обучения Вас английскому готов уделять пару в день
>>2072196 я предлагаю жилье (комнату в хате) в Нячанге тому, кто вызовется меня учить на Питоне. С комнатой в комплекте идут уроки английского, пара в день, собутыльник и пара грамм бошек в месяц, если ты любитель этого дела. Обещаю по началу не делать мозг и изредка доебывать с тупыми вопросами. Бесплатное жилье и английский от опытного учителя в обмен на обучение программированию, есть ли вообще смысл такое предлагать кому-либо? Просто спрашиваю, ибо планирую съеб, когда границы откроют
>>2072223 почему? ну вот к примеру ты удаленщик и захотел свалить в теплую страну с морем и фруктами, а тут предлагают бюджетный вариант, жилье в шаге от пляжа за час-полтора ненапряжной работы в день, да еще английскому научат, планом угостят, рома нальют, город покажут. Это не просто взаимовыгодное сотрудничество, это своего рода дружеские отношения. Плюс хата большую часть дня будет свободна, так как я буду работать. В чем конкретно проблема, почему это никому не может быть интересно?
>>2072247 лол, тут серьезно только так все и думают? Причем все те же самые прогеры без проблем живут с кучей людей во всяких коливингах, деревнях удаленщиков на Бали/Гоа, как то же ищут соседей, знакомятся, общаются, заводят друзей, никогда еще не слышал, что кого то в жопу выебали и расчленили
>>2072261 Лучше бы предложил денежку или что-то вкусное-полезное прислать по почте за код ревью и уроки через инет. Ну реально - ехать куда-то хз куда перед новой волной ковидлы... Это вряд ли.
>>2072255 Не, ну серьёзно, странно выглядит предложение. Мол езжай со мной, обеспечу тебя жильём, буду учить английскому, всякие снадобья для увеселения, с тебя лишь консультации по питону.
>>2072203 то есть ты еще не уехал? я думал ты уже там тусишь! откуда инфа что у тебя например букдут бошки и алко? и бабос? кем там планируешь работать?
>>2072494 планирую работать в продажах, так как говорю на английском и путунхуа. Сначала я приеду, поработаю месяц-два, и когда все норм будет, буду искать себе ментора. На крайний случай - тичером за 1500к долларов пойду(как и работал несколько лет, в принципе), но это будет не Нячанг, а жопа мира, хоть и у моря. Откуда инфа? жил там пол года до пандемии, ром дешевле водки в этой стране, бошки тоже на каждом шагу. вангую вопрос - накуй мне вкатывание в ойти? А вот для того, чтобы вкатиться в Канаду. Попробовал сварку - то еще удовольствие раком пол дня стоять. Попробовал учить - те места, где я не туплю, а нахожу сам решения (щас я на задачках на синтаксис и лупы) - вызывают эйфорию. Но на следующий день я могу сесть и затупить на следующей теме. Почему не предлагаю деньги? потому что ты хер их вышлешь из страны, не указав в налоговой декларации сколько ты реально получаешь, и не отдав половину зарплаты налогами. Все кэшем. пэйпалом мне высылали вьеты через решалу, этот нехороший человек взял 60 баксов комиссии). Вроде даже на ангельском документацию и лекции всякие воспринимаю нормально, на степике курс тоже на нем, но не хватает слов типа "ты че, долбаеб? тут вот по этому у тебя код не работает" Боже. как мне хочется кодера, разве я много прошу?
Сап питонач, есть вопрос: какие именно типы диаграмм UML нужны чтобы сгенерировать их в питоновский код? Правильно ли я понимаю что для условного dia2code достаточно диаграммы классов? В инете документации по этой теме что-то маловато
Как запустить процесс чтобы питон ждал окончания работы процесса, с тайм-аутом обрубал его? Пик - мое, при запуске хоть ран, хоть колл, хоть что - питон сразу говорит что весь скрипт успешно исполнен, и процесс поднимается как бы сам по себе, ну и на таймаут ему похуям.
>>2078685 Если ты именно про запуск 1С то там проблема не в python, а в запускающем файле 1С Он запускает другой процесс, независимый, с заданными параметрами, а сам завершается python (и любой другой запускатель скриптов/сценариев) отслеживает только процесс стартера 1С'ки, который не пиередает им информацию что он там запустил еще и не ждет окончания своих сабпроцессов
Сап питонач. Появилась необходимость работать со спарком. А как вобще код то проверять, писать и тестировать? Ну вот есть сервис спарка, я ж ёбана не буду в текстовом редакторе никсов код бахать. А удалённо вроде нельзя запустить, спарк разворачивать локально тоже чот сложно. По идее библиотека sparkа должна сама уметь на локальном запускать? Чото я нихуя непонял короче
>>2091899 Привет. Вот смотри у тебя есть сервер и твой локальный комп, в иделе нужно сделать так чтобы ты писал на своем компе, а запускал на удалённой машине(сервер) тебе нужно заняться вопросом ci/cd своего проекта. Удачи анон.