Это копия, сохраненная 7 июня 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Тред номер #129
Предыдущий: >>2165167 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
#######################################
ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года
Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Исходник: https://dumpz.org/bASGKD8cCFDf
Питон-отцы устали от хайпа вокруг языка и решили довести его до такого уровня, чтобы C++ показался детским лепетом, а вкатуны скупали верёвки и мыло.
На дохуя, в питоне все плохо с математикой из-за реализации чисел. Или пиши на си или юзай cython, что бы хоть как-то приблизится
На дохуя это на 30% или на 3000%? Просто чтобы понимать глубину задницы, если я решу в неё залезть.
да там для любой вычислительной хуйни минимум 2х если делать на сайтоне. чаще всего 10х+
просто ты не там спрашиваешь.
тут не питонисты а долбоебы какие-то.
Главный навык питониста - гугление. Подключение к великому глобальному питон-мозгу.
вот я погуглил твою задачу и нашел функцию https://numpy.org/doc/stable/reference/generated/numpy.linalg.inv.html
Нумпаедебил, спок. Нумпай это кал говна, нарушающий питоний дзен и превращающий питон в сраный матлаб.
Алсо, дата сососисты в этом итт не приветствуются.
>https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6
Книго-анон в теред.
Если есть новые книги\видеокурсы и т.п., что стоило бы залить в файлопомойку нашу - пишите ссылки в реплаи или на новую (живую) почту -
p.s. supermegawifi, чекни почту, я наконец тебе ответил.
>А я хотел
Ты хотел придти понабрасывать, не первый раз скорее всего.
С матрицами на питоне работают через специальные библиотеки. Они считают тоже очень быстро, написаны на Си обычно.
Какие-то вычисления может ускорять Numba, причём код может работать даже быстрее, чем аналогичный код на Си, за счёт того, что Numba это jit и больше возможностей динамической оптимизации, чем при компиляции. Но это костыль, и не всегда он работает, далеко не всегда.
В целом мне не очень понятно, откуда пошла мода на питон для около вычислительных задач, по мне они и на Си делаются удобно, питон удобства не добавляет, наоборот, усложняеть, надо стыковаться со специальными библиотеками и т.п.
Уже час гуглю, если бы можно было использовать for, можно было бы по массиву пройтись и обновить поменять nonetype а какую-нить '-'. А как это сделать без него?
>for использовать не могу
Скорее всего ты занимаешься какой-то хуйней. Давай ты еще срать себе запретишь и пойдешь на двач спрашивать как тебе жить дальше...
Тогда хз чел...
На numpy математика очень быстрая, питон силен своими библами.
Нельзя ли более развëрнутый ответ?
коммент оттуда
> Guido van Rossum 5:09 p.m.
> To be clear, Sam’s basic approach is a bit slower for single-threaded code,
> and he admits that. But to sweeten the pot he has also applied a bunch of
> unrelated speedups that make it faster in general, so that overall it’s
> always a win. But presumably we could upstream the latter easily,
> separately from the GIL-freeing part.
В общем если огрублять, автору возражают, что его идея конкретно замедляет однопоточные приложения. Он и сам об этом пишет в своей статье, хотя я только фрагменты посмотрел оттуда. Но автор предложил какие-то оптимизациии, которые это дело могут сгладить. Соответственно ему возражают, что эти оптимизации можно применить и без отказа от GIL.
ХЗ, мне сложно судить, я плохо понимаю устройство питона на уровне реализации. Надо в это влезать, чтобы понимать. Но судя по переписке, комьюнити смотрит скептически и от GIL отказываться не хочет.
Хотя мне было бы интересно, если бы выпускали две ветки. Правда вопрос, даст ли реальную оптимизацию на многопоточных приложениях этот подход. То есть получится ли ускорить реально те приложения, которые требуют многопоток, но плохо ложатся на много процессов. Потому что если бегло смотреть предложение, то там он завязывается на том, чтобы создание объектов шло в основном потоке, а если другие потоки работают с этим объектом и меняют счётчик ссылок, а это по идее очень часто происходит, то это изменение уже идёт через GIL. А это значит, что будут тормоза. А когда расрашенных данных мало, тогда и многопоток не нужен, всё работает через несколько процессов очень хорошо.
Но у меня слишком шапочное знакомство с Python internals.
Кстати, есть и альтернативные решения. Например, Stackless python. Давно в него не смотрел, но проект до сих пор живёт (русская вики не обновляется)
https://github.com/stackless-dev/stackless/wiki/
версия 3.8 питона поддержана. Гляну, в каком сейчас состоянии. Но проблема с альтернативами в плохой поддержки библиотек, что в бинарном виде распространяются.
коммент оттуда
> Guido van Rossum 5:09 p.m.
> To be clear, Sam’s basic approach is a bit slower for single-threaded code,
> and he admits that. But to sweeten the pot he has also applied a bunch of
> unrelated speedups that make it faster in general, so that overall it’s
> always a win. But presumably we could upstream the latter easily,
> separately from the GIL-freeing part.
В общем если огрублять, автору возражают, что его идея конкретно замедляет однопоточные приложения. Он и сам об этом пишет в своей статье, хотя я только фрагменты посмотрел оттуда. Но автор предложил какие-то оптимизациии, которые это дело могут сгладить. Соответственно ему возражают, что эти оптимизации можно применить и без отказа от GIL.
ХЗ, мне сложно судить, я плохо понимаю устройство питона на уровне реализации. Надо в это влезать, чтобы понимать. Но судя по переписке, комьюнити смотрит скептически и от GIL отказываться не хочет.
Хотя мне было бы интересно, если бы выпускали две ветки. Правда вопрос, даст ли реальную оптимизацию на многопоточных приложениях этот подход. То есть получится ли ускорить реально те приложения, которые требуют многопоток, но плохо ложатся на много процессов. Потому что если бегло смотреть предложение, то там он завязывается на том, чтобы создание объектов шло в основном потоке, а если другие потоки работают с этим объектом и меняют счётчик ссылок, а это по идее очень часто происходит, то это изменение уже идёт через GIL. А это значит, что будут тормоза. А когда расрашенных данных мало, тогда и многопоток не нужен, всё работает через несколько процессов очень хорошо.
Но у меня слишком шапочное знакомство с Python internals.
Кстати, есть и альтернативные решения. Например, Stackless python. Давно в него не смотрел, но проект до сих пор живёт (русская вики не обновляется)
https://github.com/stackless-dev/stackless/wiki/
версия 3.8 питона поддержана. Гляну, в каком сейчас состоянии. Но проблема с альтернативами в плохой поддержки библиотек, что в бинарном виде распространяются.
Я сто лет не трогал матрицы, а когда трогал, делал это на C/C++.
Как я понимаю тему, питон с математикой работает примерно как матлаб и аналоги. Тебе из питона надо управлять библиотеками, математическими машинами, которые внутри себя как бы работают. Совсем другой подход, чем писать код самому на си.
Но у меня есть подозрение, что для практических задач вряд ли сейчас есть нужда писать что-то самому. В смысле алгоритмы обработки матриц. Тебе надо просто использовать эти матрицы.
Постановка вопроса "насколько дольше инверсия матрицы" не имеет ПРАКТИЧЕСКОГО смысла вообще. Ты даже на Си не должен реализовывать инверсию. Ты этим занимаешься только на курсах по вычислительным методам в универе, чтобы понимать, как это работает и мозги тренировать.
В питоне же ты получаешь, что не просто можешь вычислить что-то с матрицами, но и дальше с этими данными что-то делать. И возможно это сильно проще, чем в Си. Экосистема лучше, вот здесь может быть.
Про инверсию матриц спрашивал не тот, кому ты отвечаешь, а я. И я думаю над инверсией потому, что размер матрицы может легко быть 10000х10000, было бы странно если бы я не задумался над скоростью инверсии в таком случае. Алсо я прочитал про numpy и numba, вроде последний как раз то и делает, что конвертирует код в С и запускает скомпилированную функцию JITером в нужном месте, так что скорость должно быть почти нативно сишная. Но это в теории, если все сработает правильно.
Я сколько помню численные методы, есть масса алгоритмов извращённых для инверсии матриц. И есть разные виды матриц, тебе возможно стоит приводить всё к каким-то особым видам и работать.
Если ты инверсию делаешь, то там алгоритмы могут быть и реализации, которые учитывают архитектуру процессора, размеры кешей, количество ядер, могут быть CUDA реализации и т.п.
Если честно, слова про 10000x10000 воспринимаются как флуд, выдуманная задача. Откуда эта матрица взялась, зачем её инвертировать, а точно ли нужна такая матрица и нужно её инвертировать, либо же задача иначе представляется, и т.п. И какие ещё операции требуются помимо инверсии. И многое, многое другое.
Я испытываю скептицизм. И если бы мне вдруг такое потребовалось, я бы сначала лез в гугол и искал описания того, какие ресурсы для этого требуются, какие решения есть, есть ли бенчмарки и т.п.
Но когда твоя цель набросить, тогда да, проще придти на доску и просто спросить.
Я не читал твой роман целиком, матрица жесткости в FEM для двумерных задач. И нет, инвертировать аналитически необязательно, можно считать приблизительно чисельними методами, которые внезапно тоже не мгновенные для таких задач.
>по мне они и на Си делаются удобно
Ну, вот, гляди. Я начинаю показывать какое-нибудь ДКП на libfft3w. На си я должен добавить заголовок библиотечки и добавить саму библиотечку. Если у меня прыщи и gnu-toolchain, то всë просто - остаëтся сообщить компоновщику что-то вроде «-l fft3w». И исполняшка соберëтся. Если у меня игровая прошивка windows и у меня накачена, например vs (потому как, ну, что ещë за позëрство - накатывать альтернативные IDE), то я начинаю вчитываться в readme, поставляемый с бинарниками libfft3w, нахожу, как подключить эти бинарники к студии, к проекту, дописываю строчку в исходник, собираю. Слишком много возни в обоих случаях. Если писать в промышленных условиях, то никаких проблем. А если в учебных материалах, то уже не годится вся эта чехарда.
Можно ли при помощи интерпретатора питона избавиться от этой чехарды?
Привет двачик миленький
Помоги погуглить (сформулировать, как гуглить)!
Пишу скрипт, который для использования требует некоторое значение. Хочу, чтобы при запуске этого скрипта была возможность посредством нажатия кнопки "вверх" поставить предыдущее значение.
Как это называется по-научному?
В линупсах этим занимается либа readline, в питоне есть биндинги https://docs.python.org/3/library/readline.html
посмотри ЛЮБОЙ говнокурс по датасаенсу.
конечно, ты там ничего не поймешь, но поймешь что вопросы обработки данных решаются довольно быстро.
>В общем если огрублять, автору возражают, что его идея конкретно замедляет однопоточные
А, понятно.
У меня дежавю. Я кажется 15 лет назад это читал и каждые 5 лет заново читаю?
Постоянно говорят. Но питон серьёзные разрабы пилят, раз не выпилили GIL, значит есть объективные причины.
На самом деле GIL это частная второстепенная проблема. Серьёзная проблема это тормоза на многих однопоточных операциях, медленные циклы и т.п. Скорее из-за этого стоит вопрос, что может не стоит что-то на питоне делать. А не из-за многопотока.
Есть класс и в нем метод addmit (часть я обрезал). почему компилятор говорит:
AttributeError: type object 'meetlist' has no attribute 'meets'?
Тебе надо понять что такое экземпляр класса и ключевое слово self
В частности вместо названия класса нужно и в ините и здесь использовать его
Я бы рад, но класс meetlist вызывается из экземпляра другого класса, и self ассоциируется с ним.
Что за хуйню я читаю? Блядь, ты даже self добавил в методы и один хуй забил на него.
Подскажите, пожалуйста, про генерацию словарей!
Ну почти на 100% уверен, что делаю это неправильно(
Во вложениях присоединяю то, какая структура должна быть и то как я это делаю.
То есть для каждого нового ключа - у меня отдельный цикл!
Как это делать правильно?
Ты просто зачем-то повторяешься на каждом витке вложенности, надо за раз хуярить.
https://ideone.com/yEZrzT
Спасибо большое!! Все оказалось проще, чем я думал..
https://ideone.com/ESx4JZ
Видимо, когда впервые пытался так делать я опечатался, из-за чего у меня словарь всегда перезаписывал сам себя и в конце имел только 1 значение.
Не обнаружив опечатки, я подумал что так и должно быть, стал каждый ключ делать в новом цикле)
736x592, 0:04
Анон-знаток создания ботов для телеграма, как заделать такое меню библиотека не важна, или хотя бы по каким словам это искать?
>Хотя мне было бы интересно, если бы выпускали две ветки
А кто вторую поддерживать будет? Ты?)
А, кажется, я пункты в список прямо из класса добавляю, а не снаружи, в объект
это по сути единственная причина. и обсуждение раз за разом повторятся.
https://ideone.com/gXTXTX
Ок, вот полный код. Ошибка возникает в при попытке обращения к meetlist.meets
Ты обращаешься к классу до его определения, о чем тебе интерпретатор и сообщает.
Дальше даже не смотрел, иди читай книгу блять.
А, ну по факту все, что в начале было в другом файле и оттуда класс вызывался через библиотеку. Я просто для примера все в одно место запихнул, сейчас поменяю.
https://ideone.com/LtzBKd
Ну я посмотрел немного, там пиздец на пиздеце, ты совершенно не отдупляешь что такое классы, объекты и проч, а хуяришь наугад.
И как ты вообще все это высрал без тестирования? Просто писал простыню и не запускал ни разу?
Или ты где-то это спиздил и подгоняешь под свою задачку?
ЛКМ удерживать
переместить курсор
отпустить?
Спасибо, вот это сработало)
actions = ActionChains(driver)
actions.move_by_offset(500, 500).perform()
actions.click_and_hold()
actions.move_by_offset(500, 0).perform()
actions.release()
actions.perform()
есть много чисел (19999999, 2939999412 и т.д.) и нужно их выводить с пробелом внутри после каждых 3-х знаков
типа 19999999 = 19 999 999
помоги, плизки
3 секунды в паинте
ты нас спрашиваешь почему тестовые задания бывают бессмысленны с практической точки зрения?
Ну вот бывают.
А ты бы хотел получить 200мб документации по API какого-нибудь банковского сервиса?
у гитхаба просто все api открыты и куски кода легко гуглятся. Программисты все знают что такое гитхаб. Не нужно объяснять предметную область.
Нормальное задание.
вот полезный пример этой проги (реально полезной, пользуйтесь, пидоры)
https://github.com/AndreMiras/gitpop2
а вот он по приколу переписал ее на js https://github.com/AndreMiras/gitpop3
так надо на дату последнего коммита смотреть.
Ты, походу, в предметной области не разбираешься. Тестовое не сдал.
То что новые коммиты есть не значит, что старые не нужно прорефакторить. Поэтому на всякий случай уточнил
>А ты бы хотел получить 200мб документации по API какого-нибудь банковского сервиса?
Я думаю, что он имеет ввиду, что его на позицию фулстека хотят
Нет. Я сейчас невольный фулстек, который пришёл как бэкендера и почти всё время занимаюсь реактом т.к. один из немногих его на проекте его знаю. Хотел на бэкендера перекатиться и предлагают на бэк с небольшим уклоном во вью на фронте, с которым не работал. Думаю будет супер тупо писать тестовое на реакте, а как красиво на питоне сделать не понимаю
И будет ли он обучать зелень?
И если да, то где искать таких людей?
Иди ремонтировать обувь или изучать ещё какие-то актуальные услуги к спецу.
Не может любой хуйлован в программирование. Можно его учить за деньги, но он не научится.
Ебать, да мне делать нехуй, только сидеть обучать. Вам и так уже запилили ютуб, лайв кодинг сессии на твичах, книги сделали. Но нет, этого всего мало! Нужен ЖИВОЙ тичер, чтобы только сидел, и только меня исправлял! А не многого ли вы хотите?
Ты делаешь отдельный апликейшн. Что там у тебя "каким-то образом" будет логиниться?
Сап, змеяч, пришел с медленно работающим кодом (медленно при вводе 250к символов), по вводу создаю и дополняю (дублирую еще для обоюдности связей) словарик со списком смежности, затем DFS. Это делается быстрее (и скорее всего проще)?
Задача - определить соединены ли две точки, связи задаются попарно, старт и финиш в конце, связи двунаправленны:
point1 point2
point2 point3
point1
point3
YES
point2 point1
point2 point3
point1
point3
YES
point1 point2
point3 point4
point1
point4
NO
Не знаю что там с гитхаб апи, но я попрошу у юзера имя с паролем и получу у гитовохо бэка сессию или токен какой-нибудь, а хранить его буду в локал стередже. Не очень вариант т.к. сам страничку логина делать буду. Поэтому если гит поддерживает, то редиректну на sso страничку, а когда пользователь там аутентифицируется, то заберу токен от sso и дальше как в предыдущем варианте.
О боже, что это?
> N[temp[0]]=eval('["'+str(temp[1])+'"]')
Зачем тебе eval?
Это в принципе очень грязно почти всегда, и кроме того это ещё медленно. Тебе надо в рантайме вызывать функцию, запускать компилятор питона и т.п.
Я не понимаю, как у тебя temp выглядит, но скорее всего можно нормальным образом список составить.
Главный тормоз скорее всего вот здесь, классика просто. Отавляю ключевые строки
>path=[]
>____while q:
>____if v not in path:
>________path = path +[v]
Проверка на вхождение в список работает за O(N). Поэтому если список растёт постоянно, у тебя считай квадратичная сложность получается.
Тебе надо делать множества
path = set()
и дальше просто делать path.add(v)
Тебе же ведь на самом деле путь не нужен, тебе нужно знать, есть путь или нет.
Если бы нужен был путь, то тоже можно было бы быстро сделать.
У меня хватило ума только на
some_dict = dict.fromkeys(список, переменная)
zip(some_dict .keys(), some_dict .values())
Но наверняка как-то элегантнее можно
def foo(i: int)
def foo(i: str)
спасибо, вначале чет смутило append к словарику тыкать, утонул в eval. А вот со второй частью не совсем ясно. тут я косоруко назвал переменную, path это все точки куда я могу прийти из стартовой (переименовал), не совсем путь, сделал множеством, но без проверки на не вхождение там же зацикливается.
visited=set()
q=[start]
while q:
___v=q.pop()
___if fin==v: return 'YES' (перенес условие сюда, ускоряет время если YES, но большие тесты для 'NO' все еще медленные.)
___if v not in visited:
______visited.add(v)
______q=q+N[v]
return 'NO'
Почему python такой душный? Там перегрузка аргументов вообще работает только за счет модулей.
Например есть такой код.
def test(a: int) -> None:
pass
test(1, 2)
Будет ошибка типа наличие второго аргумента в функции.
Собственно вопрос, можно ли убрать эту ошибку и обойти, даже если передан второй аргумент в функцию или это особенность языка?
Lua божественный язык и во всем лучше Питоныча и есть ООП.
не не, давай без этого, конкретно то что я описал мне нужно, чтобы оно мне не высирало ни каких ошибок.
test(1, 2, 3, 4)
даже если по логике функции она принимает лишь 1 аргумент.
Супер, спасибо
Спасибо за потраченное время на ответ, но и генераторами я умею пользоваться, под без цикла я имел в виду и без цикла в генераторе тоже.
Ты долбаеб нахуй или чо, пишешь *args в функции и не будет никаких ошибок, можешь хоть сикстилион аргументов передать.
>>188676
Да меня на работе ебут, чтоб я при работе с querysetами не использовал циклы, генераторы в том числе. Другой вопрос задам тогда, как получить из джанго кверисета кверисета с уникальными годами в поле даты. То есть табличка хуйня1 15.10.2021, хуйня2 5.06.2021, хуйня3 07.07.2007, оставить только хуйня1 и хуйня 3, или хуйня 2 и хуйня 3, не важно. Тоже без циклов собственно.
При этом не только года, нужен сам объект, года через dates я умею.
Сделал <QuerySet [(2005, 1), (2021, 1), (2005, 1), (2005, 1)]>
делаю к этому объекту метод .distinct(), возвращается тот же самый кверисет. ЧЯДНТ?
Ты пытаешься реализовать алгоритм поиска/проверки пути в графе, так?
Тут надо иначе логику реализовывать.
Первый этап, ты строишь матрицу достижимости, для каждой вершины графа ты составляешь множества вершин, в которые можно попасть напрямую из этой вершины. Это делается на этапе сканирования.
Второе, сам поиск пути, его длины. Это чуть более универсальная задача, чем ответ да-нет, просто да-нет можно чуть проще в плане логики, но не быстрее.
Ты строишь цикл по проверке, какие вершины можно достичь на длине пути N
Для N=1 это вершины, в которые можно попасть из точки старта
Кладёшь все эти вершины в буфер, который надо проверить на следующем этапе. Это множество. В этом буфере только вершины, которые пока не достижимы.
На следующей итерации цикла, проверяешь все вершины из буфера и составляешь буфер на следующий этап.
И всё, так ты довольно быстро строишь путь.
В твоём цикле как минимум затык вот здесь
>q=q+N[v]
У тебя получается очень большой список с кучей дублирования элементов, ты делаешь в результате очень много лишних проходов. Представь, что у тебя 1000 вершин, из каждой можно попасть в 100 других. Ты за один проход получаешь список из 100 тысяч вершин, которые надо проверить.
Делай, чтобы q это было множество, чтобы были итерации по глубине, и добавляй в это множество только те вершины, которые пока не пройдены, точнее не пройдены на предыдущей итерации.
order_by не хватало оказывается.
>Ну мета-таблицы, не сильный ооп, но можно запилить за счет расширение луа благо исходный код имеется. Будет полноценный ООП, но луа не об этом
Это такая особенность Курсеры? Почему не могли сделать автопроверку кода в окне, как в Кодеварс? Или это меня так учат полезным для работы навыкам?
А там еще пидр пишет на виме в Юникс-системе, а авторы такие "ну если вы на Винде, то НЕКОТОРЫЕ команды могут различаться, но вот вам статья с соответствиями". Пиздец.
> и есть ООП
Питон весь ООП, даже если ты просто две переменных складываешь. У каждой запятой есть методы-хуетоды.
Подскажите пожалуйста. На днях я заглянул в библиотеку, в особую секцию, и прочел нечто весьма необычное об одном редком заклятии. встретил задачу.
https://ru.stackoverflow.com/questions/1042769/Диапазон-покрытия-по-всему-сроку-python-pandas
Можно ли её как то без циклов решить?
>Мужики, помогите, записался на Курсере на курс "Погружение в Питон", а там какими-то виртуальными окружениями, Юпитерами и запусками скриптов из консоли мозги ябут.
Это абсолютно нормально, даже необходимо. Ну, насчет жупитера не знаю, если тебе питон для дата саенс нужен, то норм.
>Или это меня так учат полезным для работы навыкам?
Тебя учат полезными для работы навыками. В первую очередь надо разобраться с тем, что такое виртуальные окружения, и как с pip работать на пользовательском уровне.
Это на самом деле довольно просто, но это надо понять и к этому привыкнуть.
По итогу очень большой прирост в понимании питон-экосистемы будет.
Питон не только язык, это экосистема тоже. Без экосистемы питона питон уже не совсем питон.
Надо просто отвлечься, взять и разобраться с этим.
Почему сразу даун?
Видно, что чувак просто не дружит с инфраструктурой, хочет программировать, а не "админством" заниматься. Довольно обычная вещь.
Совет тут один, надо взять себя в руки и разобраться с инфраструктурой. Отдача будет очень большой. Без этого никак.
Ну пиши, кто ж тебе мешает. А лучше сразу съеби жить в пещеру.
В питоне виртуальные окружения с самого начала.
В принципе можно спокойно писать и без них, просто подразумевается, что все нужные пакеты уже в системе. Это даже довольно обычная история в проектах, где питон как вспомогательный инструмент используется. Если тебе нужен какой-то модуль, ты просто оформляешь тикет на админа, что тебе очень нужен вот такой модуль, и его добавляют.
Но полноценная разработка на питоне как-то с этим не увязывается. Надо просто разобраться с этим и потом будет намного проще жить.
Есть вопрос, в чем лучше пистаь для обучения, есть шелл, есть терминал, или какой-то сторонний софт тоже есть? Разницы же никакой нет?
И поставил версию 3.10, в обучалке версия питона не важна же, там все актуально будет? Спасибо
Пока можешь писать хоть в блокноте или idle'e.
А так попробуй разные ide (pycharm, atom, vscode, spyder, sublime) и jupyter. Когда будешь писать что-то похожее на проекты писать, поймешь, что тебе больше нравится.
Разницы нет.
Шелл удобен для всяких однострочников и прочих секундных экспериментов, для >3 строчек полезно иметь что-то с линтером, чтобы оно тебе бухтело сразу по стилю и ошибках, тот же вс код или прочий редактор на стероидах норм.
Кстати, вместо простого шелла лучше поставь себе ipython, это та же сосноль, но с всякими плюшками, оно же используется в жупитере.
Нормально жили. Шли в секцию AUTHOR в модуле, находили email автора и писали ему какой он мудак и тот поправлял конфликты.
Ну и айти было не таким сложным и потогонным. Можно было за выходные поправить
ладно, шучу.
export PERL5LIB=/home/user/perl5lib/ и в cpan все инсталлишь.
Поводом создания virtualenv явилось необходимость писать сразу на python2 и python3 одновременно.
А в perl только одна версия языка доминирующей всегда была.
какой же все таки йоба-фейс хитрый у него.
А че у мужика над клавой? Это шоколадные батончики?
Вот такая ситуация - есть чужой спагетти-код, который очень не хочется (и нет времени) переписывать, и он в разных потоках шлёт реквесты из общей очереди на одни и те же 10 уникальных хостов(балансеров) через requests.get() и у каждого такого запроса соответственно тратится лишнее время на создание-закрытие сессии.
Вопрос такой - а можно ли каким-то образом завести на эти хосты отдельные сессии одновременно, чтоб с ними эти потоки-воркеры могли ходить запросами без пересоздания подключений? Я читал, что Session не потокобезопасно, но мб есть какие-нибдь воркэараунды или более здравые решения?
Это такой способ троллинга? Lua применим во многих играх, я заебусь его перечислять, но вот два популярных проекта.
WoW, Garry's mod, Stalker.
https://ru.wikipedia.org/wiki/Категория:Игры,_использующие_язык_Lua
Lua так же часто в читах используются, потому что может, в отличие от Пайтона, который хуй встроишь адекватно.
Так же Lua имеет исходный код, что позволяет добавить что пожелаешь, даже тот же switch.
Поясните за работу декораторов через точку, например у фласка:
@app.route
Вроде как я понял вызывается класс flask(Scaffold), а в скаффолде есть фунекция route, которую можно дернуть через этот app. Вообщем интересует вот это взаимодействие.
>https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
КАК ЭТУ ХУЙНЮ ТО СКАЧАТЬ ВСЮ СРАЗУ? Я ЖЕ ЕБАНУСЬ РУЧКАМИ.
Просто не позорься. Толстяк влез с луа, мимотолстяк метнул какашкой, а ты тупо вышел на сцену и позоришься.
Это называется КРИНЖ по вашему. Ты нихуя не знаешь и полез что-то обосновывать.
Скачай одну, наиболее интересную. Ты же даже одну не прочитаешь, говно.
Всё, что делает декоратор типа
>@decorator
>def func(): pass
это:
>func = decorator(func)
Точки там или нет — не важно. app.route — это просто путь к функции-декоратору. Типа вот так — https://ideone.com/VVeaJk Метод route имеется у твоего объекта app. В каких он там фреймворках/либах/родительских классах имеется уж не знаю.
А, это путь, ок.
Клоун, лучше рот не раскрывай, если что-то спиздауть решил. Ты кроме как шутом больше ни на что не годен
и да, я с нумпаем даже и не работаю в основном, я веб-макака
В доках сказано https://docs.python.org/3/library/asyncio-task.html что асинхронная корутина это собственно сама функция объявленная через async, но блять сам Питон же говорит что это просто function, а вот ее результат это уже корутина. Чему верить?
Линух блять, я твою мать топтал. Че это за хуйня? Ну вот че это за хуйня? Элементарная установка для питон крашится к хуям из-за микронесоблюдения версии. Система чистая нахуй
>В доках сказано https://docs.python.org/3/library/asyncio-task.html что асинхронная корутина это собственно сама функция объявленная через async,
Где ты это нашел?
Все по делу базари(л)
----attribute: ... <- хочу сюда передать тип дочернего
это вообще в принципе возможно?
class donbass(object):
----@classmethod
----def get_attribute(cls: Type[TypeVar]) -> TypeVar: ...
вот так работает конечно, но мне ооочень хочется чтобы это был классовый аттрибут, а не метод, прям любой костыль готов впихнуть
@classmethod
@property
def ...
блять вообще в пайчарме не работает
В доках есть специальная оговорка:
> Important
> In this documentation the term “coroutine” can be used for two closely related concepts:
> a coroutine function: an async def function;
> a coroutine object: an object returned by calling a coroutine function.
То есть где-то корутинами могут называть фунции async def, для удобства.
В целом да, непрозрачный момент, но ты понимаешь всё правильно:
> сам Питон же говорит что это просто function, а вот ее результат это уже корутина. Чему верить?
Вот этому и верить.
Схожая непрозначная история с генераторами, на них логика тоже даёт сбой. Впрочем это близкие вещи, корутины и генераторы
А я повторю вопрос.
Как скачать изшапки все книги СРАЗУ?
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Не знаю в чем? У меня стаж луа 7 лет, я о нем знаю все что только можно знать. Даже как выебать твою мать тернарным условным оператором.
Ну это понятно, а вот разве тогда будет автодополнение тоже самое работать? В контейнере же будет другой питон с другими библиотеками
Указываешь интрепретатор, который находится в докере и тебе только установленные либы показывает
>Указываешь интрепретатор, который находится в докере
Звучит просто, но как именно доступится?
Ебать, так это же просто команды для бота
Tools | Deployment | Browse Remote Host
Если надо редактировать файлы внутри контейнера
А если нужен интрепретатор, то при добавлении окружения выбираешь докер
На убунту у меня в питонокрите номально отображабся цвета , а на винде \033[32m такая фингня
Гуглил ничего не понял.
И у меня только с python main.py запускается. а не как на уьунту python3 main.py
Это анси эскейп коды, шиндовый каличный терминал в такое не может. Есть всякие сторонние решения вроде conemu, там будет работать.
Что за тупость, это же компиляторы верно? почему они не видят одинаково? как будто разные языки програмирования м разным синтаксисом
Короче, я просто на убунту запускал скрит, он делал дела и красиво показывал, и в конце писал в файл
Запускал правым кликом терминал python3 main.py и все
сейчас на винде start.cmd
с кодом
python main.py
pause
Запускаю двойным кликом. Как мне сделать что бы я кликал была клнсоль с цветами и записовало в файл? Короче жаст ит воркс
Это связано не с питоном, а с ОС.
Например, ты сделал сайт, и он нормально работает в файрфоксе, а в интернет эксплорере нихуя. Вот тут то же самое.
Посмотри модуль colorama, там вроде есть какие-то костыли для решения этой проблемы.
Я попробовал написать шелл-скрипт вида:
#!/bin/sh
./venv/bin/python3 bot/echobot.py
И внезапно оно работает без venv/bin/activate. Так может так и распространять? Эту директорию в архив, пускай пользователь куда-то там разархивирует и запускает bot.sh?
Как правильно?
https://stepik.org/lesson/488831/step/6?unit=480067 - сама задача.
У меня получилось составить список, из этого списка сделать словарь. Проблема состоит в том, что словарь не допускает дубликатов. Каким образом можно скормить словарю список
a = [['79184219577', 'Женя'], ['79194249271', 'Руслан'], ['79281234567', 'Женя']]
таким образом, чтобы в нем в итоге вышло 2 номера Жени и 1 номер Руслана?
Я уже кучу всего перепробовал, едет крыша, заранее спасибо
Ок как мне получить ровно 6.4, чтобы я мог умножить на тысячу и получить инт 6400?
Хуйню сделал. Нужно проверять есть ли ключ в словаре или нет. Если нет - загоняешь ключ и значение в словарь. Если есть - добавляешь значение к старому значению по ключу.
Я не кодер и не собираюсь изучать язык в деталях и почему создатели этой хуйни обосралить и не смогли осилить нормальный флоат. Понимаешь, мне похую. Вот что не похую так это то, что мне нужно написать скрипт на питоне для универа.
Как делать в этом случае? Округлять до определенного знака или есть нормальный способ?
А еще спрашивают почему питон вреден в качестве первого языка. Чтобы не плодить вот таких животных. Оно -- кодер, оно не собирается изучать язык в деталях.
Подключи децимал и оберни ответ в него перед принтом. И все. В децимал как раз укажешь до какого знака округление.
Хотя нет - хуйня будет. Надо все числа в децимал преобразовывать.
> Оно -- кодер
У вас все дегенераты итт не умеют читать?
Я тебе повторяю еще раз - мне поебать на ваши выкрутасы, стоит прикладная задача и питон рекламируется как прикладной язык для инженеров. Либо соответсвуй, либо иди нахуй и я делаю на с++
Попробую, спасибо.
Питон - язык для ученых, датасаентистов, визуализаторов всяких исследований и метрик, экономистов (не ученые) и прочих.
Для инженеров все же лучше что-то другое.
В c++ такая же хрень должна быть.
во всяком случае, в некоторых случаях .
Ты хоть в школу ходил? Что такое иррациональное число понимаешь?
Ну если Питон реализован на С, то очевидно, что например С (если ты йоба-инженер) или С# (если ты тоже-инженер). Или кресты, если в геймдев охота.
Спасибо, анон
> В c++ такая же хрень должна быть.
> Ты хоть в школу ходил? Что такое иррациональное число понимаешь?
Oh rly? Что с ебалом?
Ну надо разобраться.
Я знаю ты сможешь. Это где-то тут : numpy/numpy/core/src/umath/fast_loop_macros.h
curl -i -F files[]=@yourfile.jpeg https://uguu.se/upload.php
сделать в python3 с помощью библиотеки requests?
Как сравнивать флоаты чтобы не было такого (0.1 + 0.2) != 0.3 ?
Установил vscode - как сделать подсветку стилистических ошибок PEP8?
а зачем ты их сравниваешь?
померь три раза свой хуй и запиши в табличку.
расскажи о результатах.
сделай выводы.
И вот думаю технически можно ли рассматривать цепи Маркова с звеном из двух слов (и парой звеньев в 4 слова) или лучше через словарь множеств вложенный в словарь писать или вообще чет другое.
Писать в Decimal можна
Можешь еще показать округление 1.5 и 2.5 по тому же принципу, что у тебя на скрине?
ммм у тебя результат на одних и тех же числах меняется в зависимости от выбраного количества нулей
неудивительно что про вас рисуют картинки уровня ПОГРУЖЕНИЯ В ПИТОН
а ведь я даже не старался просто пришел уточнить насчет чисел для скрипта язык сам себя затраллел
Как вы на нем кодите?
Комьюнити, библиотеки, смузи, и иногда, в качестве разнообразия, гетеросексуальный секс.
Я в одном месте читал, что флоаты реализованы аппаратно и поэтому оч быстрые в вычислениях, а для точных расчетов прикрутили децимал, которые точные, но реализованы программно и поэтому более медленные.
decimal примерно такие же точные как их float.
просто у них база - 10. а float у - 2 .
То есть, число 1.1 = 1 целых и 1/10 = нет точного представления в рамках двоичных дробей. возможно, что-то путаю касательно стандартна, но идея такая. Программисту обычно ничего знать не надо кроме того, что float нельзя сравнивать.
из документации:
> In contrast, numbers like 1.1 and 2.2 do not have exact representations in binary floating point.
РАКИ САСАТ
>element length in cm
ты кодомакака если у тебя имя переменной L а в комменте высрал что она означает
А если у меня три разных длины в сантиметрах, то эта должна называться lengthOfElementCm, да?
Если родительский класс что-то знает о дочерних, то это какая-то хуйня у тебя получается: в строго типизированном языке создание родительского класса зависело бы от наличия дочернего, который в свою оченеь зависит от родительского. Запуститься там через всякие forward declaration'ы может и смогло бы, но это всё равно фигня какая-то.
>>191695
https://ideone.com/d6Z6bu
Возможно тебе вот это вот надо:
https://docs.python.org/3/reference/datamodel.html#object.__init_subclass__
>>191925
>Если родительский класс что-то знает о дочерних, то это какая-то хуйня у тебя получается
Не всегда, потому что иногда родительскому классу полезно знать, какие наследники есть. Это полезно для каких-то библиотек, ORM, реализаций разных протоколов и т.п. Вот в этих задачах вроде ORM используется.
Довольно частный паттерн, когда после определения класса делают его явную регистрацию в родительском, вызовом специального метода. Но в плане кода это как раз грязновато, мне кажется.
>в строго типизированном языке создание родительского класса зависело бы от наличия дочернего, который в свою оченеь зависит от родительского.
Скорее всего что-нибудь есть в современных версиях. Потому что востребовано. Питон просто более ООП язык, в питоне класс это тоже объект, тогда как в компилируемых типизируемых класс это просто класс. Соответственно возможностей меньше.
достаточно простое объяснение.
но в чем именно здесь поведение C++ и Python отличается?
Интуитивно C++ выглядит лучше.
В Python тип данных float реализован по стандарту IEEE-754 как число с плавающей точкой двойной точности (6464 бита) с основанием экспоненты равным 22. Реализация таких чисел заложена прямо в железо любого современного процессора. Поэтому float в Python работает как аналогичный тип данных double в таких языках программирования как С#, С++, Java и т.д. И имеет такие же ограничения и «странности». Так как float поддерживается аппаратно, быстродействие при использовании этого типа данных сравнительно велико.
Тип данных Decimal – число с плавающей точкой с основанием экспоненты 1010. Он реализован по стандарту IBM: General Decimal Arithmetic Specification, в свою очередь основанному на стандартах IEEE.
Тип данных Decimal реализован программно, поэтому он в разы медленнее типа данных float, реализованного аппаратно. Сам тип данных Decimal написан на языке С.
Тип данных Decimal оперирует числами с произвольной – задаваемой программистом, но конечной точностью. По умолчанию точность составляет 2828 десятичных знаков.
Тип данных Decimal неизменяемый. Операции над ним приводят к созданию новых объектов, при этом старые не меняются.
Еще одно следствие того, что Decimal реализован программно – его можно на ходу настраивать, как угодно программисту. Для этого есть контекст – объект, содержащий настройки для выполнения операций. Операции, выполняемые в контексте, следуют заданным в нем правилам. Для float все правила фиксированы на аппаратном уровне.
https://stepik.org/lesson/360941/step/1?unit=345464
Просто старинный язык с++ может проделать все манипуляции по округлению под капотом, тогда как питонист обязан страдать хуйней в 2021 и писать все ручками.
мимо автор скрина
Залетный обоссал местных знатоков, у которых флоат в С++ такой же, как в Питоне. Всё что нужно знать о местных долбоебах, точнее специалистах.
Языки разные. Что ты хочешь услышать? Сишка для своего, Питон - для своего. Хочешь - пиши на сишке или крестах, никто не запрещает.
Так написано что типы данных одинаковые используются и в c++ и питоне. вот уже лет 40 какъ.
6/10 нельзя точно разложить на конечные двоичные дроби .
То есть, эта ошибка всегда должна возникать в данном наборе чисел в любом языке. но в c++ почему-то не возникает. округление при вводе или sum по-разному работают.
И дураку дано столкнуться с метеоритом. Нет в том большой заслуги.
Для apl такое объяснение:
APL has a default printing precision of 10 significant digits. Setting ⎕PP to 17 shows the error, however 0.3 = 0.1 + 0.2 is still true
Полагаю, что в C++ то же самое
То есть он тебе не показывает, что под капотом.
Ок
Ну посмотри как в С++ это работает под капотом и как это в Питоне работает под капотом. У Питона под капотом С.
Вот и выросло поколение "квалифицированных пользователей".
Имплаинг в 2к21 в пидорахии остались люди умеющие читать, ну ты прям совсем.
Молодец, не зассал перед трудностями и потратил целых пять сек.
Ребят, как я понял те кто JS учат идут во фронт или бек, а как питонисты зарабатывают? Сккрипты просто пишут? Я не троллю, просто тупой. Объясните плиз.
Например это:
product([1,2,3], ['a', 'b', 'c'])
Эквивалетно вот этому:
for num in [1,2,3]:
----for char in ['a', 'b', 'c']:
--------yield (num, char)
И таких вложенных циклов for может быть столько, сколько аргументов передаешь в product.
Как это под капотом работает блин?
Скорость эквивалентна этому двухэтажному циклу? Для матриц/дф можно использовать, если ничего "векторного" найти не можешь?
Мимо новичок.
Там просто пример реализации. В самом модуле оно реализовано на си, так что сравнивать неуместно.
>Скорость эквивалентна этому двухэтажному циклу?
Что за странные и глупые вопросы?
По-моему в таких случаях надо просто взять и написать тест, посмотреть на результат. Заодно посмотреть, сколько это в секундах и устраивают ли тебя эти цифры.
А потом уже вопрос поднимать, что и как.
Ради интереса проверил, скорость реализации itertools.product практически эквивалентна скорости своей реализации с функцией-генератором из двухэтажного цикла и yield.
Я питонист, а стало быть эксперт по анусам
Ты вакансии по своей деревне пробей, а не здесь спрашивай, але
Очевидно что надо так же хешировать результаты при помощи функции hash() но как это все хранить блин?
спросили недавно на собесе и я обосрался
Так же как и везде https://habr.com/ru/post/128017/
Только хз что использовать вместо массива с ограниченным размером. [None] * cap в голову сразу приходит.
Почему у тебя там двойной пробел? Пидор што ле?
Лучше первый, но нужно пробел последний убрать при отсутствии имени
Второй вариант лучше. При этом логически более корректно делать не '', а None
Меня обманули? ;c
Хотя если добавить параметр age при объявлении функции и задать ему значение None, то все работает..
что за книжка такая, щто автар ошибки в функциях на три слова делает?
Аргументы либо должны быть заданы яв>но, то есть как ты написал
>Хотя если добавить параметр age при объявлении функции и задать ему значение None, то все работает..
Либо можешь упаковать их в словарь,
def build_person(first_name, last_name, kwargs):
____age = kwargs.get("age")
____if age и т.д.
Пример из книжки не работает, видимо это как всегда охуительный перевод, либо хуй знает как она 3 издания-то прошла без редактуры, лол. Чекни оригинал и читай лучше всегда на нём.
>def build_person(first_name, last_name, kwargs):
Фикс хотя возможно это форматирование и снова звёздочки пропадут
Пиздец Абу иди нахуй со своими свистоперделками.
https://lukasz.langa.pl/5d044f91-49c1-4170-aed1-62b6763e6ad0/
Я че-то не въехал: единственное препятствие для убирания GIL это питоновский Ref count, где объекты удалятся на основании числа ссылок на них. Почему б его просто бля не отключить? Помимо него существует еще один сборщик мусора, который запускается периодичски и также способен удалять даже объекты с циклическими ссылками
Потому что получается GC из джавы, который стопает систему на неопределенный срок.
https://stepik.org/lesson/446698/step/14?unit=437004
Максимум смог выделить нужные значения. result = {i for i in students.values() if i[0] > 167 and i[1] < 75}
https://stepik.org/lesson/446698/step/14?unit=437004
Максимум смог выделить нужные значения. result = {i for i in students.values() if i[0] > 167 and i[1] < 75}
О, все больше челиксов в треде, кто по Степику вкатывается.
Они сами не определились с терминологией и кто должен чистить данные (спойлер : это в любом случае будет делать самый омежка - то есть, ты)
Да, тупой. Но меня успокаивает лишь то, что я до этого решал задачи несколько часов и просто устал, и тот факт, что это "продвинутый" курс. Изначально, на курсе для новичков от этого автора было 150к человек. Сейчас примерно 2к осталось. Я дошел и не отвалился. В конце концов, если долго бить стену, то она когда-нибудь треснет. Один хуй, мне либо в течении года учить питон и идти джуном за 30к, либо всю жизнь работать учителем в школе за 20к
это одно и тоже
>Декодирование методом контроля четности.
>Вводится k – число символов в блоке и последовательность двоичных символов, длина которой кратна k.
>Если кратность нарушается, то последние символы последовательности игнорируются.
Окей, две переменных. Но вторая же бинарная, её как массив использовать? Тогда как на кратность проверять?
>В каждой комбинации из k символов осуществляется проверка четности: если четность не нарушена, то первые (k-1) символов данной комбинации добавляются в результирующую последовательность, если же четность нарушается, то счетчик количества ошибок увеличивается на единицу.
Тут типо должно быть ?
for i in X
if магия
array + array2.pop(1)
else
error_count++
>По окончании декодирования всей входной последовательности символов результирующая последовательность, а также значение счетчика ошибок выводятся на экран.
месяца 2. В среднем по 6 часов в день. Когда-то 9 получается, когда-то 4, но стабильно. Делаю 2 выходных в неделю чтобы кукуха не поплыла
пиздос, на этом вашем степике
дешевле учится где-нибудь в Мичигане чем в рашке
чому так? отсутствие конкуренции?
Кабанчики бизнес делают.
На Курсере нужно ебаться с файликами через консоль. Ты зацени как все на Степике организовано.
ну хуй знает, у меня все файлики загружались с первого-третьего раза
и это не повод переплачивать 12к
Курсы от Бигик бесплатны. А загрузка файликов... Еба, это конечно ценный опыт (как я догадываюсь), но какой же это прошлый век на фоне Реплит или Степика.
ГЛАЗА РАЗБЕГАЮТСЯ ОТ ОБУЧЛОК!
Владею рус и англ.
Если вбить в поисковики ПИТОН УРОК 1, то глаза разбегутся. Онлайн курсы, ютуб курсы, edx, coursera, материалы МФТИ, школа Яндекса...
Что выбрать? Хочу овладеть питоном в мастерстве, нейросети и дата саенс пилить, делать автоматизацию на моем телефоне и ноуте, и смарт-часах
хочу запилит стартапы и стать мультимиллиардером тоже
Если совсем ноль можешь начаь с этого
https://automatetheboringstuff.com/
А так гугли что-то типа data science roadmap
Я не совсем 0. В вузе был с++, чуть на голанге обучалки проходил. Что такое циклы, массивы, поинтеры, слайсы, ну хеллоу ворлид или соритвроку массива могу сдеалть
Я автоматизацию скучного стаффа читал уже месяц назад, не зашло(хотя автоматизация процессов на моего телеофне и пк мне как раз интересна). долгая книга
>Мы понимаем, что многих удивляет то, что мы выпустили третье издание книги, а оригинальная книга 2ed. Причина такого казуса проста. Через полгода после выхода первого издания на русском языке автор внес в книгу значительные, но мелкие изменения, исправил многие коды. Посмотрев на количество изменений, мы приняли решение назвать новую книгу «второе издание». Так что второе русскоязычное издание вышло еще 30 мая 2017 года.
А теперь 2-е международное издание пришлось выпустить как
«Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд.»
Я это уже видел.
Спасибо, конечно, но я надеялся на какого-нибудь спеца, который допишет строчку и все встанет на свои места.
А иначе придется разбираться с тем, как все это рабтает, очень долго и муторно.
Есть начатый апи с примерно штук 20 методов, написанных на джанго. Я тут вкуривать начал в тематику и понял что код написан не очень. Есть один маршрут, который принимает параметры и в соответсвии с этим вызывается обработка. Т.е это одна функция и куча if с кусками кода. Причём все запросы идут через get. Работа с бд идёт напрямую, без всяких темплейтов и тд.
Так вот. Стоит ли заморачиваться и переписать всё по общим рекомендациям? С развязкой роутов, использования post и тд. Просто не знаю, может это нормально так писать.
А че рекомендации есть как писать надо? У меня было так, посадили за комплюхтер, примерно структуру проекта обсудили, а дальше крутись как хочешь. Ты еще скажи тебе техзадания давали.
Какого "тела"?)
за пределы функции/метода они не вылезут, блочной области видимости нет, но когда это б мешало не припомню
>Так вот. Стоит ли заморачиваться и переписать всё по общим рекомендациям?
Конечно нет, ведь ты нарушаешь open–closed principle и заставляешь QA отдел ебаться с твоими переделками, сделай лучше api/v2/
Бля, помню это видео. Тупа комит в мастер ветку на прод.
Ну тогда сам и готовь анус, если после твоих ахуенных правок половина эндпоинтов пойдет по пизде
В Питоне в itertools есть: permutations, combinations и combinations_with_replacement. Сколько комббинаций он выведет в каждом случае в зависимости от аргументов? Для permutations это очевидно - n! (где n - длина последовательности), но что в других случаях?
У меня есть два скрипта которые работают в цикле while true
Я думал что их можно объеденить, написал скрипт, но
await foo()
await bar()
запускает только foo
ЧТО ДЕЛАТЬ ТААА??
asyncio.gather
жопаскриптерский Promise.all
Штудируй доки, смотри видосики. Сейчас тебе тут "по фасту" никто не пояснит если ты ноль
Если в файле значения адекватные, то и данные адекватные. Но если в строке внезапно попадается значение, которое приводит к тому, что скулевый запрос возвращает 0 строк, то процессинг все равно продолжается, просто подставляются значения из предыдущего
Из программы первого курса я вспомнил, что можно обнулять переменные через del либо присваивая им None.
Но почему-то Node_id = None работает, а Node_id, Node_uri = None уже нет
1. Если вы поняли, что делает моя программа, то мб подскажете как иначе обрабатывать пустые результаты?
2. Если похуй, то просто скажите в чем я наебался при одновременном обнулении нескольких переменных
На выводе первого скрина например 5-ая строка была с говноданными, которые вернули 0 строк по запросу. Но переменная Node_CurrentCP все равно пропечаталась (просто из более верхней строки)
Ну и fn_results у меня как бы пустой получается, выводится как []
Но по фильтру is None он не отбивается. Почему?
Потому что None - это None, Это не пустой список, не False, не пустая строка. Это None. Понимаешь?
Не значит. Это разные объекты.
Хотя если ты попробуешь сделать это для чисел от -5 до 256, то увидишь, что
a is b == True
Это потому, что числа из этого диапозона заранее хранятся в сишке
https://docs.python.org/3/c-api/long.html#c.PyLong_FromLong
А как это опровергает его тезис о том, что
>если ты попробуешь сделать это для чисел от -5 до 256, то увидишь, что a is b == True
?
Ну и для сравнения
Я не байтоёб и не знаю, почему твоя ";" меняет поведение. Я вообще ею никогда не пользовался в питоне и не знаю, что она даёт. Можешь сам поискать ответ. Гугл у всех есть пока что
Для распаковки, кстати, аналогичный эффект.
Ладно, извини пожалуйста. Ты доказал мне, что можешь сравнивать инты через 'is', а я был не прав. Если ещё какое открытие в области питона сделаешь, приноси сюда. Мы всем тредом похлопаем твоей охуенности
Блять, как же у меня полыхала жопа с этой хуйни, переписывал старый чужой проэкт (мне нужна была его функциональность, но немного надо было переписать), на питоне я никогда не писал, пришёл с си подобных языков. Хуярил лямбду в цикле, расчитывая, что для каждого обьекта захватятся свои переменные, какое же моё удивление было, когда захватился один и тот же объект для всех. Так как проэкт чужой, то пошёл по миру перепроверять цепочку вызовов, переполошил весь проэкт. После того как жопа уже потухла, так как я тупо устал. Подумал, а вдруг скоупы в питоне "как не у всех", вбив в гугл "weird python scoping" моё лицо раздалось широкой улыбка, так как первая страница с заголовками ответа поиска, намекала, что я точно понял в чём проблема.
Но если коротко, то в питоне скоупами являются только функции и глобальный скоуп (по крайне мере, что я запомнил, может что ещё есть), на практик правда забавно, что можно обьявить переменную в ифе и потом её использовать ниже вне ифа, экономит 1 строчку.
У меня знакомый сишник тоже с этого бугуртил, ему не нравилось, что в контекстных менеджерах можно данные из блока вытаскивать.
В питоне есть мнемонические правила, как он работает.
LEGB для скоупов - local, enclosing, global, builtin
ICPO для объектов - instance, class, parent, object
Легко запоминается. А ходить со своими привычками в чужой язык это рисковое занятие.
> Легко запоминается. А ходить со своими привычками в чужой язык это рисковое занятие.
Кажется мы стали забывать, что такое риск...
Потратить один раз лишние минуты, на выяснение проблемы, и нахождение решения, это риск? Вот на двач зайти - это риск, так как лишние минуты (часы) будут потрачены не раз.
Надо хотеть потратить, а не не получить желаемое и бухтеть, как всё хуёво.
Сишник - не человек
Погугли хоть про скоупы, ебана, хотя бы того же жс. Так ведь и будешь своими сями с калом обмазываться
Какие плюсы в этом есть? Если у меня на фронте идет валидация на длину?
Никаких плюсов, джанга не даст сохранить превышающее значение в этом случае. Валидаторы для более сложной логики.
>на фронте идет валидация
На фронте не может быть полноценной валидации, ты должен всегда учитывать, что тебе данные могут придти напрямую через апи фронта. Любые данные.
Вообще, если ты используешь специфичные поля, то у каждого есть валидация на уровне джанги. Условно если EmailField, то рандомную строку ты не сохранишь. Аналогично должно быть и с длиной строки.
Кроме того, если у тебя не sqlite, а postgresql/mysql, то ещё на уровне БД валидация будет.
Магии много. Очень много.
Работают ещё оптимизации на уровне питона, которые разные в зависимости от версии.
Вот скрин сравнения версии 3.6 и 3.7. Один и тот же код даёт разный результат. По байткоду видно, что с одной стороны, питон всё-таки заранее вычислил константу, но в одном случае не увидел, что это две одинаковые константы и сохранил их в разные места, в другом случае провёл оптимизацию и дублирующую константу выкинул.
На уровне idle происходит подобная магия. Если ты одну строчку выполняешь, то компилятор видит, что константа одинаковая, и использует один объект. Если же ты используешь несколько команд idle, то каждая строка компилируется отдельно и переиспользования констант не происходит.
Выходит поэтому запись через ";" и присваивание через распаковку выдают True при сравнении?
Интересненько
Короче, на скрине видно (закомментированная строка это была нижняя), как я пропатчил код в модуле, а вот ошибка, которая возникала без него:
fairseq-interactive: error: argument --path: invalid typing.Optional[str] value: 'wmt14.en-fr.fconv-py/model.pt'
Теперь-то всё работает, но так делать неправильно. Можете сказать, в чём могла быть проблема? Может в новой версии питона всё как-то поменялось?
При чём другие аргументы тоже строки, но они прошли без проблем:
fairseq-interactive --cpu --beam 5 --source-lang en --target-lang fr --tokenizer moses --bpe subword_nmt --bpe-codes wmt14.en-fr.fconv-py/bpecodes --path wmt14.en-fr.fconv-py/model.pt wmt14.en-fr.fconv-py
Менять строку на любую другую, со слешами, без слешов, кавычки, глобальные пути, всё это не помогало
>какие-то ошибки с typing.Optional
"Какие-то ошибки" ты разумеется не приводишь. Збс
>одну питоновскую программу
Я ебу что ли что в твоей васянской проге происходит?
Не говоря уже о том что у тебя нет закрывающей скобки в закомменченной строке
Хотел просто объеденить два/три скрипта в один, что бы мне не нужно было запускать их по отдельности
Была очередь, нужно было делать запрос (который длится 10 секунд) и добавлять ответ в очередь, снова делать запрос, а пока происходит запрос обрабатывать всё что в очереди, слать post методы, которые тоже сука приостанавливают главную программу
у меня бомбит, ебал я ваш питон, ебал я ваш asyncio, какого вооще хуя в питоне есть зарезервированные слова для использования которых нужно импортировать библиотеку?
>Хотел просто объеденить два/три скрипта в один
Как именно ты это представляешь?
Как бы ты стал объединять например "два-три скрипта на жс" в один?
Делай multiprocessing, поднимай 3 процесса и гоняй между ними данные через Pipe (гугли)
Ты свой говнокод-то покажи
Насколько часто вы используете global и nonlocal для жонглирование локальными и глобальными переменными?
У меня есть 2 скрипта, один принимает данные из телеграма,
Второй отправляет их в телеграм
Это допустим можно сделать в один цикл, да, но меня реально не устраивает то что пока идёт какой нибудь http запрос моя программа останавливается, а вдруг у меня будет 100 сообщений которые мне нужно будет перенаправить в телегу? каждое займёт ну допустим хоть по 100 мс, вместе дохуя
Я думал asyncio сделает что то вроде того что запустит отдельный процесс с выполнением функции который потом самоуничтожится хотя я даже не знаю как тогда данные то возвращать, но это допустим сейчас неважно
Просто надо не наугад хуярить, а почитать и вникнуть. Это не простая тема, чтобы с наскоку что-то там насрать и заработало сразу.
>Я думал asyncio сделает что то вроде того что запустит отдельный процесс
Ты откуда? Из жавы? Асинхронка это про другое. У тебя event-loop в котором твои асинхронные корутины крутятся и ожидают завершения исполнения. Спасает только от IO-bound задач, но не от CPU-bound
>У меня есть 2 скрипта, один принимает данные из телеграма,
Второй отправляет их в телеграм
Не совсем понял что тебе нужно передать а что принять. И как именно ты передаешь их туда. Исполнение множество корутин/Future разом делается как тебе уже ранее подсказали: >>194860
Можно попробовать юзать asyncio.Queue - кладешь в эту очередь данные по мере того как тебе приходят ответы а в другом месте через await вытаскиваешь оттуда данные и обрабатываешь как тебе нужно. Я хз что там именно у тебя творится
Им и в синхронном коде обдристаться раз плюнуть.
А вопросы идут из-за идиотских современных хеловорлдов в виде телеграмных и прочих ботов, которые асинхронные бай дизайн.
На Future от f() вешается коллбек который создает асинхронный таск с cb() по ее исполнении. Может чем-то поможет. Может - нихуя
Кек, только там в коллбеке всегда самое последнее имя отображается. Потому что пистон захватывает эту переменную
>a, b = None
Не работает, потому что это не равно
>a = None
>b = None
Каждой переменной слева должно соответствовать значение справа, т.е. тебе нужно было писать
>a, b = None, None
https://stackabuse.com/unpacking-in-python-beyond-parallel-assignment/
>пока идёт какой нибудь http запрос
>которые тоже сука приостанавливают главную программу
А не делаешь ли ты этот запрос синхронно, случаем? Потому у тебя и корутины тормозят. Юзай aiohttp и будет всё хорошо. Ну или бери да треды запускай, раз уж eventloop не понимаешь.
>Так фиксится
Не надо вот так писать. Просто не надо. Все эти add_done_callback не для этого, не для такого адского микса корутин и коллбэков.
бля чел, впредь пожалуйста называй свои говноподелки на пендосском языке, прошу.
Убери except: и прочитай, что за exception. Естественно ты не поймёшь, где обосрался, если ты всю информацию сам же от себя и спрятал.
Пиздец ты придумал чтение и запись вложить, лол. Сделай через r+
Алсо, если оно у тебя наебнулось на операции с файлом, то вряд ли то же сработает в эксепте.
Не надо одновременно открывать один файл несколько раз. Скорее всего здесь стреляет.
>Сделай через r+
У него другая логика, он перезатирает файл. А r+ изменяет файл. При этом с r+ тебе сложно будет очистить файл.
Бамп вопросу.
Смотря что лучше знаешь
>>191752
Грамотно для этого использовать math.isclose()
https://docs.python.org/3/library/math.html#math.isclose
Продвинутый какой.
Мы же в Питон-треде.
Постоянно
Тем не менее, код не работает.
Очевидно, я проебался в чем-то очень фундаментальном, но кто-нибудь, объясните пожалуйста, как классы должны общаться друг с другом в таком случае?
У тебя Bex это не экземпляр класса, а сам класс, ты не инициализоровал объект. Скобки после B добавь просто в 22 строке.
Спасибо тебе. Это и self в паре мест все исправили
ну тут нет смысла создавать экземпляр класса
Разве второе и третье без первого вообще возможно?
> params ={"chat_id": 12345678, "text": "qwerty", "InlineKeyboardButton": {"text": "qwerty"}}
?
Почитать документацию.
Из пожеланий только 2:
1. Не мелкоборда на джанге с 5к запросов/наносек.
2. Что-нибудь с датой (скрапинг, аналитика, тупо ETL но это скучно)
Сайт с мониторингом валют из нескольких источников. Потом можешь покупку/продажу прикрепить и будет настоящая форекс-биржа
1) в папке http сервера появляется файл
2) для этого файла надо сформировать короткую ссылку
3) когда по короткой ссылке обратятся - надо декодировать ссылку и отдать файл с сервера
Как преобразовать полную ссылку в короткую для локального http сервера (нет доступа в интернет)?
Нашёл модуль https://pypi.org/project/short_url/
Но он принимает какой-то id в виде числа. А ссылка на скачивание строка же... Wtf?
Или надо устанавливать соответствие между id и полной ссылкой?
Например, запихнув полную ссылку в массив и отдавая номере элемента в массиве при кодировке?
Как обработать обращение по укороченной ссылке?
Берешь хеш от имени файла, если оно уникально. Обрезаешь до нужного размера, кладешь в словарь/бд. Со следующим файлом делаешь так же, только перед этим нужна проверка, что бы коллизий не было. Если получился такой же хеш, то рандомом генерируешь соль для имени и опять применяешь хеш функцию. Самая простая реализация.
И сколько раз тебе на практике приходилось писать сортировку, кроме случаев дрочильни "кто напишет сортировку"?
Ах да, никакой практики у тебя нет.
Я тебе и отвечаю - это чисто теоретический вопрос, который не нужен ни в питоне, ни в любом другом языке.
Некоторое количество людей может вспомнить простейшие способы типа вставок, потому что читали мимоходом и помнят принцип.
Но в целом это бесполезное знание в современных условиях.
Ладно, официально отвечаю от имени всех питонистов нашего региона - хуй знает.
Ну и как дополнительная информация к размышлению (хотя ты что-то слабо воспринимаешь) - всем похуй на это.
Ладно, не злись, я просто неделю писал инженерную программу по расчету конструкций, а сегодня ввел в поиске гитхаба пару ключевых слов и нашел десяток аналогичных реализаций. И че теперь делать?
Пузырек могу, так как он простой, остальное дрочил в вузе, но оно так и не пригодилось и я все забыл, так как уже реализовано в языке.
практичный совет, а по ошибке что можешь сказать ?
Там же прямым текстом сказано, где ошибка.
Как из фенкции, вызванной ивентом, добраться до объектов моей модели? Каковы лучшие практики?
а) Делать свою модель глобальным синглтоном доступной из всех ивентов?
b) Принимать ивенты сразу в своей моделе. Но как же loose-copuling?..
Это снова я.
Получилось формировать короткие ссылки и распознавать GET запросы с ними.
Сейчас проблемы с отдачей искомого файла с расширением bin.
https://pastebin.com/tfUrjzvZ
Выдаёт ошибку: python memoryview: a bytes-like object is required, not '_io.BufferedReader
Может кто подскажет: как правильно выгрузить bin файл?
Есть разница между программистом и айтишником.
Программисту хочется что-то реализовать самому. Айтишнику надо решить задачу, или найти-адаптировать чужое решение, иди сделать своё.
Душа просит быть программистом, но бизнесу нужны айтишники.
Ссылка нерабочая.
Но очевидно, что ты вместо данных передал куда-то объект, из которого каким-то методом надо читать данные.
from celery.app.task import Task
class MyTask(Task):
...
Логгирую всё через
handler = logging.FileHandler(path)
DEFAULT_LOG_FORMAT = '[%(asctime)s] %(processName)s %(moy_zagolovok)s %(task_id)s %(message)s'handler.setFormatter(CustomTaskFormatter(DEFAULT_LOG_FORMAT))
logger.addHandler(handler)
Мне в заголовок нужно пропихнуть параметр, moy_zagolovok. Как это сделать? Т.е. я могу прямо в момент вызова async_callback получить его значение. Можно как-то?
dll - это только интерпретатор+компилятор
zip - стандартная "библиотека"
Там порядок нужен определенный.
А что мне, перечислить все реальные заголовки которые я вывести хочу?
О, все, допедрил.
from celery._state import get_current_task
Тут и выдерну что надо, прям в format
Это не тот path, это для бинарников уровня системы. Питоньи либы сидят в PYTHONPATH, но лучше прямо туда не лезть, а из самого питона манипулировать. https://ideone.com/gCj381
просто он Илья
не умеешь ты шутить
Делаю свою веб-галерею на джанге
Столкнулся с такой проблемой: длинные видео не загружаются сразу, а как будто бы они с удалённого сервера, хотя они у меня лежат в статике.
В чём проблема? Из-за того что использую стандартный сервер для дебага?
Нет, это ты просто в своей голове что то романтизировал. Программист это тот кто программы пишет.
И как ты отдаешь видео? Чанками или сразу всё?
Как это обычно делается? Какой e стоит брать
Не боялись ли вы обосраться на работе? Устроился пайтон джуном, работа стратует через неделю, все отлично по условиям, но вот я боюсь что мне дадут тяжелую задачу и я не смогу справиться, или потрачу больше времени чем надо и т.д.
Это жёстко!
Чел... Пытаешься сделать сам. Если тупишь - идешь к мидлу. Потом к сеньору. Потом честно признаешься, что не справляешься. Ловишь некст таску.
скрючиваешь ебало, что так и было задуманно, не баг а фича
у нас так все руководство делает, это так называемое искусство переобуваться на лету
Смешно, что Питон и js выглядят похоже, но js при этом изображен как агрессивное быкующее быдло.
На скрине типичный Раджас Куртапали, коих половина Гугла.
Для Дейкстры второе, но с нюансами, например, для разреженных графов. Нужно смотреть на смежные с данной вершины, вместо того, чтобы за О(V) просматривать всю строку матрицы, используя список (хз как твой словарь устроен), сделаешь это быстрее. Но если граф плотный, асимптотика будет одинаковой для обоих случаев.
Для Флойда-Уоршала лучше матрицы.
Если хочешь юзать кластеризацию, в ряде случаев лучше матрицы, иногда нужно смотреть на их свойства.
Короче, тут очень много особенностей.
Короче, остановился на пункте а. Сделал презентер (в контексте MVP) глобальным и вызываю его во вьюшке.
Пока список маленький делаю l[0] == l[1] == l[2] == l[3]
Искал в гугле можно ли это сделать как то короче, но чет ничего интересного красивого однострочного не нашел.
Есть какие варианты или функцию с циклом пилить?
А почему нельзя каждый список после первого сравнивать с первым, и когда условие не выполнится, то возвращать False, а если все списки равны первому, то по выходу из цикла возвращать True?
Можно. Но как првило какую бы хуйню я не делал. потом выясняется что в питоне есть отдельная функция вот прям для того что я сам мастерил. Хочу узнать все такие фичи для общего развития.
Можешь через set упороться, если объекты хешируемые и тебе поебать на память
len(set(l)) == 1
lst.count(lst[0]) == len(lst)
Можно ещё генэксп завернуть в all, надо проверить, что будет пижже смотреться и эффективнее.
Надо определить, все ли элементы списка одинаковые. Какое отношение к этому имеет твоя хуйня с слайсами?
Но пафосный камент надо влепить, да.
Таки пошел лечиться видимо.
Ну давай посмотрим. Ты хочешь сравнить слайсы от второго до последнего элемента и от первого до предпоследнего. Каким боком это решает задачу?
Ты на шизу проверялся? Там вроде подобные методы тестирования.
Не, он типа взял список списков, отразил его порядок и сравнил с самим собой. Выглядит эффектно, но жопой чую, что здесь можно влепить какой-то хитрый тестик, который опрокинет это решение.
тогда надо сравнивать сам список как есть с [::-1]. Он же написал хуйню.
Но это тупое решение, потому что генерируется целый новый список в обратном порядке.
Дамы и господа, перед вами живое воплощение пикрелейтеда.
Лол, ты смотришь на одну (!) строчку кода из трех операторов и уже не понимаешь, что происходит. И даже в голову не приходит банально запустить ее, чтобы посмотреть результат.
Бля, точно. Но вообще у меня есть ощущение, что в этом решении есть какое-то уязвимое место. Хз, может и правда бест практис.
>отразил его порядок
>[1:]
>[:-1]
>отразил его порядок
Боже, оно дает митостазы
Это просто сравнение каждого следующего элемента с каждым предыдущим, что и есть способ проверить все элементы на равенство.
>>201097
>в обратном порядке
Иди синтаксис выучи, потом пиши сюда.
>тупое решение, потому что генерируется целый новый список
Взятие слайса реализовано на си. Ваши варианты - питоновые циклы. Память на слайсы расходуется по-минимому, так как это не deep copy.
По скорости всасывает печально, по памяти нет пятьсекового измерителя. https://ideone.com/rAUN4N
Всасываешь здесь только ты со своими охуительными наборами данных из одной строки.
>Питон сам по себе очень хорошо задокументирован
Ложь. Документация непрактичная и потому бесполезная. Питон по сравнению с PHP выглядит как велосипедный набор сделай сам протиив люксового авто. Алсо, реквестую документацию на питон подобную php.
Не обратил внимание, чего ты. Я вообще Питухон 2 месяц грызу.
А я правильно понимаю, что если например мы возьмем список списков из 7 элементов-списков и 3 первые и 3 последние будут одинаковые, а 4 по порядку (который по серединке) будет отличный, то такой метод вернет True?
Да такого люксового богатства нет
https://www.php.net/manual/en/ref.array.php
https://www.php.net/manual/en/ref.strings.php
И тебе лечиться.
>>201134
Да, делать мне больше нечего, кроме как шизам с двачей фейковые бенчи клепать.
https://ideone.com/4zat3d
Блять, что с вами не так, люди, как вы вообще функционируете с таким уровнем когнитивных способностей. Слова там формируете, на клавиши нажимаете.
Нет.
Шутки про пятерочку в сторону, я бы на твоем месте серьезно опасался бы острых предметов у себя в руках.
Так у тебя после обработки слайсами выходит список с четным числом элементов. 6 элементов, а в оригинальном списке было 7. Куда еще 1 элемент дел?
Кажется у нас тут мы вам перезвоним кейс нарисовался.
Нахуя читать такие книги, если для вкатывальщиков уже подвезли все на ютуб, особенно на инглише? Ладно бы сейчас был 2002 год и у тебя была на руках книга Страуструпа, но сейчас нахуя?
На ютубе может любой долбоеб выкладывать видео, и делает он это только для монетизации.
У книг другой уровень входа, другая традиция и другая финансовая составляющая.
Это уже слишком жирно.
Читай документацию
Тебе хоть что-то платят за рекламу этой хуйни? Или ты как дурачок бегаешь и сам лепишь?
Просто я сам прошел 2 курса и в принципе доволен. Бесплатно. И еще 3 курса по касательной затронул.
Так-то всё бесплатно. Платят только долбоебы, которые думают, что за деньги их научат.
Если так подумать, то мы платим временем. Если бы были курсы, которые готовы сэкономить человеку время за деньги, то это ок, но есть ощущение, что курсы как раз набивают программу ненужной херью.
Это просто ответ на современную ситуацию, когда подсевшие на телевизор-ютубчик не могут сосредоточиться больше пяти минут на чтении. Плотность информации снижается, конечно.
{
"key1":"value1",
"key2":"value2",
}
Но когда я продолжаю работать с ними дальше, ключи заворачиваются в одинарные кавычки. Из-за этого я не могу их нормально десереализировать - мне жизненно нужно сделать их жсонами (json.loads())), но я получаю ошибку из-за одинарных кавычек. Почему так?
Я уже думал реплейснуть одинарные кавычки двойными, но во многих значениях у меня уже есть одинарные кавычки (в значениях лежат всякие тексты с сокращениями типа I've, you're и т.д.), так что я не могу не задеть их реплейсом.
>ошибку из-за одинарных кавычек
Смелое заявление. Саму ошибку ты, конечно, не покажешь.
По факту: кавычек не существует, ты воюешь с ветряными мельницами. В жсонах это часть формата данных, ты на него не влияешь. Преобразованные в словари жсоны имеют ключи в виде готовых строк. Итого кавычки тебе могут встретиться только если они реально были внутри какой-то строки в жсоне, и они остаются нетронутыми при десериализации, и вряд ли требуют какого-то твоего вмешательства.
Что ты там десериализовывать пытаешься, наркоман? Уже десериализованный словарь? Кавычки ему, блять, мешают.
Он у тебя уже есть в той переменной, которую ты пытаешься "десериализовать".
Дай угадаю, ты прочитал доку по requests одним местом, и сделал что-то вроде
str_value = response.json()
data = json.loads(str_value)
Метод json() возвращает уже десериализованный объект (словарь/список). Руками ничего лоадить не надо.
Просто возьми и не изменяй переменную. Вуаля, внутри твоей программы она константа.
Можешь в енум свои константы запихнуть.
Хитро придумано, прямо как с сокрытием
>День тґеты, как начал ызучац энто ваша погромырованне. Не знал, что это можат быц так весело. Можаця обоссывац, но цем можно развыц эту хуйню?
Сэйм шыт. Даж плугин для броузера написал. https://greasyfork.org/ru/scripts/432951-rufuker-2ch
Ты хоть в курсе что все эти рандомы работают на одном random.random() ?
Жаваскриптеру не нужны эти лишние обвязки, ему нужен только Math.random() и его громадный хуй. Все нахуй
Если бы ты в пул реквесте прислал что-то вроде
print(f'{random.choice(names)} {random.choice(surnames)}') я бы тебя уволил нахуй.
А на чем они должны работать, на нанотехнологиях?
print(random.choice(names), random.choice(surnames))
1. Хуй бы ты что мне сделал, пес
2. Переменные вычисляются заранее и потом вставляются в f-строку ебана, ты сам же туда их нахерачил а потом ноешь
Это копия, сохраненная 7 июня 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.