Это копия, сохраненная 17 июня 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>2634086 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
старая версия шапки, треды 90-148 и ранее: https://dumpz.org/bASGKD8cCFDf
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущий исходник: https://goonlinetools.com/snapshot/code/#8gd2g1snu3l8i26k0bc6k9
....proc = subprocess.Popen(
........cmd,
........stdout=subprocess.PIPE,
........stderr=subprocess.STDOUT,
........universal_newlines=True,)
Аноны, как из этой хуйни выудить название файла, который скачивается? Проверил все команды из mega -help - там такого функционала нет, не предусмотрено, не нужно вам знать какой файл качаете. Я знаю тут мастера пайплайнов сидят и могу в любой ситуации помочь.
Вакансии, которые вы видите - это дата сайнс, и там вам нужна в первую очередь математика, а не питон.
Хотите вкатиться в айтишку - учите java, c++ или node-js.
Напоминаю, говно, у меня на апворке выставлено баш, пхп, перл, питон.
Там нечего понимать, я всем сделаю решение без всяких инсталляций и деплоев.
Чтобы быть дата саентистом знать Python нужно в первую очередь, как и математику и машин лернинг.
Я вот не хочу дизморалить вкатунов потому что верю в свои силы и готов к конкуренции. Ведь чем больше будет программистов - тем быстрее мы сможем построить будущее где технологии помогут сделать нашу жизнь лучше!!!!!!!!!))))
Дана функция, складывающая цифры числа:
def sum_digits(n):
"""Return the sum of the digits of positive integer n."""
if n < 10:
return n
else:
all_but_last, last = n // 10, n % 10
return sum_digits(all_but_last) + last
Меня смутило, что в конце функция возвращает sum_digits(all_but_last) + last, а не
sum_digits(all_but_last + last).
Разве в первом случае компьютер не должен "при виде" функции сразу её выполнять, теряя текущее значение last, в итоге оставляя только last самого последнего выполнения функции?
Ебать табуляцию попердолило, извините, впредь буду скидывать код в pastebin.
https://pastebin.com/WcRegHx8
Для названия файла нужно пройти весь путь заголовка Локатион пока он не придет к файлу. Название файла - это то что идет после последнего слэша, то есть вручную оно никак не ставится. Перейдя по ссылке хуй/пизда.ру ты скачаешь пизда.ру, а не что то иное. Поэтому твоя работа это например сделать питон запрос, либо скрипт на шелл, который вернет урл, и оттуда засплиттать.
Спасибо что взялся отвечать, питон. Но ты ссылочки меги вообще видел? В них не как не отражено название файла они имеют вот такой вид примерно.
https://mega.nz/file/BIIDDRjJ#MFxx6GHDTHDdfhdgX0GsRWxChsM07UIM
Можно конечно ещё попытаться написать простыню на каком-нибудь реквесте, который переходит по ссылке, ждет кучу AJAX ов, обходит Cloudflare и парсит страницу, ищет там имя файла, но я вопервых обосрусь это делать, во вторых это как-то тупо когда есть официальный api - вот этот вот "MEGAcmd", да и кроме того у них дизайн меняется каждые пол года, и ещё надо качать файлы не только по прямым сслкам но по ссылкам которые ведут на "папку".
TL;DT КОРОЧЕ парсить не вариант.
Я всю документацию прочитал
https://github.com/meganz/MEGAcmd/blob/master/UserGuide.md
Но как получить имя рандомного файла так и не нашел, можно получать списки своих файлов, но мой вариант без логина в систему (анонимный).
Вот я и подумал что может быть есть какой-то стандартный метод который можно в любой ситуации применять который доставал бы имя из потока передачи.
С другой стороны, может быть это вообще невозможно? Мега это всё-таки хитровыебанная контора, даже когда просто файл скачиваешь через браузер он сначала весь в кэш сохраняется и только в самом конце передаче тебе предлагают сохранить и выбрать имя (обычно при скачивании наоборот - ты выбираешь имя и потом файл качается).
В общем нужна консультация опытных питонов. Может быть я просто документации жопой читал. Два раза.
Ничего ни куда не пропадает, та часть рекурсии которая осталась за границей самовложения будет выполена позднее, когда интерпретатор начнет в обратную сторону выходить из рекурсии. Не пытайся понять рекурсию только мозг сломаешь, само потом поймется, если будешь часто сталкивать, а если не будешь, то нахуй и не надо, всё равно без применения забудешь, даже если поймешь.
Стеку вызовов поебать, вызываешь ты разные функции или одну и ту же. Он хранит все локальные переменные для каждого вызова.
>на трудоустройство надо иметь вышку
Программист без вышки — это скриптовый говнокодер фриланс поделий по ₽500.
Вышка программисту необходима.
>да нахуя эти дроби в столбик, калькуляторы жы есть
>Вася, 6 класс
Чел... системному мышлению учат, думать учат. Образ мышления человека с вышкой (если он учился, а не хуи пинал) резко и заметно отличается от обывательского. И делается это как в примере с калькулятором, через вроде бы не связанные вещи — литературу, чтение, самостоятельные работы, примеры, семинары. тебя там учат именно подходу, а не кейсы готовые. Обучение кейсами — это ПТУ, в котором готовят ремесленников.
>Чел... системному мышлению учат, думать учат.
Я это и так умею. Там этому не учили, сиди дрочи и сдавайся вовремя, вообще наплевать на твое мышление, лишь бы вызубрил.
>Образ мышления человека с вышкой (если он учился, а не хуи пинал) резко и заметно отличается от обывательского.
Нет, точно такой же, 99% быдло без мышления.
>И делается это как в примере с калькулятором, через вроде бы не связанные вещи — литературу, чтение, самостоятельные работы, примеры, семинары. тебя там учат именно подходу, а не кейсы готовые.
Ничему не учат, вот тебе методичка, хуячь как сказано, принесешь столько-то решений, зачот получаешь и гуляй вася.
Полтора препода на четыре курса которым не наплевать на свой предмет могут с тобой пообщаться, остальные смотрят лишь на то чтоб ты вовремя заданное сдал и на экзамене оттарабанил заученное.
инб4 кокок у тибя мухосранский институт, вот у нас в ДСах все нитак
Нет, я не про мухосранск.
>Обучение кейсами — это ПТУ, в котором готовят ремесленников.
Вышка давно стала тем же самым, продажа бумажек для понтов. Думать они не учат совершенно, нет рационализма, нет поощрения нестандартного подхода, все по шаблонам и лекалам, чтоб ты был как все на твоем потоке и на потоках до тебя и на потоках после тебя.
Я бы ничего не сказал если бы можно было все сразу сдать и не ебать себе мозги, но автомат в начале семестра позволяют получить единицы, остальные заставляют ходить и слушать то что я в первую неделю прочитал и прорешал. Хуета это всё, не докажешь.
>Я это и так умею.
Не умеешь. Вон, текст на цитаты распотрошил, дурачок.
>Там этому не учили, сиди дрочи и сдавайся вовремя
Ты просто не осознал, когда тебя учили, считая, что тебя, такого славного малого и мамкиного любимца, дрочат зубрёжкой.
Чел... думать ты должен сам, сопли вытирают — это в школе и ПТУ. Ровно как ты не понял пример с калькулятором. Просто высшее образование — это не твоё. Ты его не получил.
>Не умеешь. Вон, текст на цитаты распотрошил, дурачок.
Именно так и поступают разумные люди. Быдло же игнорирует текст и высирается только по удобному ему пункту, игнорируя неудобное.
>Ты просто не осознал, когда тебя учили, считая, что тебя, такого славного малого и мамкиного любимца, дрочат зубрёжкой.
Всё я прекрасно осознал. Так уж получилось, что я объективно умнее большинства, и мне было очевидно что вышка это хуета. Быдлу же норм.
>Чел... думать ты должен сам,
Именно это я и делаю, с чего ты взял что я этого не делаю?
>сопли вытирают — это в школе и ПТУ.
Вообще прямо со школы должны обучать как учиться, как узнавать, как применять рациональность.
>Ровно как ты не понял пример с калькулятором.
Этот пример ко мне не применим.
>Просто высшее образование — это не твоё. Ты его не получил.
Да, я выше этого, только и всего. Высшее образование должно быть организовано иначе и доступно именно интеллектуалам, а не каждому дебичу способному заплатить за бумажку.
И после того как явные олигофрены неспособные перемножить два числа в уме бегают с красными бумажками от престижного вузика ты еще что-то будешь заливать про то что вышка это какой-то показатель интеллекта?
> Так уж получилось, что я объективно умнее большинства, и мне было очевидно что вышка это хуета. Быдлу же норм.
Так ты рассуждаешь как быдло. И выглядишь так же.
>Именно это я и делаю, с чего ты взял что я этого не делаю?
Ты мыслишь и разговариваешь чужими шаблонами.
>вышка это какой-то показатель интеллекта?
А это вообще твоя проекция. Ты даже не понял, что я тебе говорю. И началось всё с примера про калькулятор. Ты, чел, имеешь уровень птушника по айсикью. И соответствующий уровень программирования, то есть, кодинга.
Вышка бакалавра это ПТУ+, так буквально в планах написано, умение делать готовый продукт иногда применяя современные научные методы (именно применяя, не разрабатывая новые). Та же дипломная работа тому подтверждение, готовое приложение без каких-либо откровений и нестандартных вещей. Новука и прочие вещи, где надо думать начинаются чуть чуть с магистра и в полной мере присутствуют с аспирантуры, если ты не занимаешься настакиванием количества статей через написание переосмыслений.
>Так ты рассуждаешь как быдло. И выглядишь так же.
Быдло еще и воздухом дышит как я, это не делает меня быдлом. Мою внешность ты оценить не можешь.
>Ты мыслишь и разговариваешь чужими шаблонами.
Не шаблонами, это мои собственные умозаключения. Так сложно поверить что кто-то способен мыслить самостоятельно? Так невероятно, что чьи-то свои умозаключения могут совпасть с уже существующими? По-твоему надо обязательно придумать оригинальную мысль, чтобы быть небыдлом? Расстрою тебя - это практически невозможно.
>А это вообще твоя проекция.
Нет, именно так быдло и рассуждает, это наблюдаемый факт.
>Ты даже не понял, что я тебе говорю.
Если ты это видишь, то что тебя останавливает от того чтобы попытаться донести свою мысль другими словами?
Я вижу что ты защищаешь вышку, когда она объективно является бесполезной вещью, вот и все.
>И началось всё с примера про калькулятор.
Который ни о чем не говорит. Я так понял, ты соломенное чучело изобрел тем гринтекстом и посчитал что я ему соответствую. Нихуя, в том конкретном примере я предпочитаю "дроби в столбик". Так что ты рассуждал исходя из неверных предпосылок обо мне.
>Ты, чел, имеешь уровень птушника по айсикью.
Неверно по двум причинам. Ты не знаешь мой уровень. ПТУшники могут иметь высокий уровень этого малозначимого ИРЛ показателя.
>И соответствующий уровень программирования, то есть, кодинга.
Ты с ним не знаком.
Я в вашей системе болонок не учился. Для меня вышка — это 5+ лет непрерывного образования в техническом ВУЗе. Я учился в математическом, его сейчас нет, после реформ куда-то слили с ВШЭ (бывшей Плеханова).
Выпускной диплом — это тренировка на кандидатскую. Тем не менее, системному мышлению начинают учить сразу. Конечно, нет такого предмета, но весь комплексный системный подход в ВУЗе, при условии, что ты сам начинаешь учиться, это вот оно и есть. И инженер виден сразу по его системному мышлению. Пособеседуй людей, начнёшь отличать слёту.
>Нихуя, в том конкретном примере я предпочитаю "дроби в столбик"
Бля, дебил просто даже загуглить не смог пример. Пример, который является академическим и тематическим.
Ну ладно, чисто из жалости к убогому поясню. Вычислять арифметику в уме учат в начальных классах и категорически запрещают калькуляторы. Это один из маленьких этапов тренировки мышления. И его надо закрепить. После (класса с 8–10) калькуляторы уже можно применять. А потом даже и нужно. Но не до этого.
Но многие школотроны этого не понимают и воняют в стиле «школа нам ничего не даёт».
Метафорический пример калькулятора применительно к обучению системному мышлению как раз в этом — многое из того, что непонятно, есть кирпичик в обучении. А вот детское желание готовых кейсов или чего ты там хочешь, чтобы у тебя предмет был «Системное мышление»? — этой хуйни нет. Ты сам его тренируешь (если оно есть генетически) в процессе вышки. Если хочешь.
Но иногда получается, что человек не хочет и получаются такие тупые болваны как ты, годные только Джейсонов перекладывать и разметку данным делать для старших товарищей.
>Выпускной диплом — это тренировка на кандидатскую
Я правильно тебя понимаю, что ты планы не читал, но начинаешь срать такими высказываниями?
>Бля, дебил просто даже загуглить не смог пример. Пример, который является академическим и тематическим.
>
>Ну ладно, чисто из жалости к убогому поясню. Вычислять арифметику в уме учат в начальных классах и категорически запрещают калькуляторы. Это один из маленьких этапов тренировки мышления. И его надо закрепить. После (класса с 8–10) калькуляторы уже можно применять. А потом даже и нужно. Но не до этого.
>
>Но многие школотроны этого не понимают и воняют в стиле «школа нам ничего не даёт».
>
>Метафорический пример калькулятора применительно к обучению системному мышлению как раз в этом — многое из того, что непонятно, есть кирпичик в обучении.
Спасибо за пояснение. Я абсолютно согласен с вышесказанным, потому и не понял как это может ко мне относиться.
> А вот детское желание готовых кейсов или чего ты там хочешь, чтобы у тебя предмет был «Системное мышление»? — этой хуйни нет.
А должно быть, потому что многим невдомек.
>Ты сам его тренируешь (если оно есть генетически) в процессе вышки.
Нет, во-первых, оно нихуя не генетическое, это продукт многих веков работы многих людей. Генетически ты можешь быть дебилом и не осилить это, тогда да.
И нет, вышка нихуя подобного не дает, это та же школа 2.0, отличий ноль, те же задачи, те же экзамены, просто формат немного другой, но не принципиально. Зубришь - сдаешь, профит.
>Но иногда получается, что человек не хочет
Я как раз хочу и могу, и я этому сам научился безо всяких вышек, чего ты в упор не замечаешь, несмотря на то что я это несколько раз написал.
> получаются такие тупые болваны как ты
Тупой болван тут получаешься как раз ты, с нихуя оскорбляющий меня. Но я к этому привык, быдло всегда так относится к тем кто умнее их, всегда надо принизить кого-то кто лучше, не приходит в голову становиться самому лучше, как это делаю я.
>>Ты сам его тренируешь (если оно есть генетически) в процессе вышки.
>Нет, во-первых, оно нихуя не генетическое, это продукт многих веков работы многих людей.
Нет, твой потолок интеллекта, твоя способность соображать — это как раз не продукт работы всего подъезда над твоей мамкой, а генетически заданная «величина». Выше которой ты в жизни не прыгнешь.
Вообще, ты просто тупой и с твоим набором тупых штампов из глянцевых медиа неприятно разговаривать. Все ему должны, пиздец просто, эталон быдлоподростков-нитакусиков...
Я не тупой, это объективный факт. А вот ты - классическое эталонное быдло, что сразу заметно.
Отныне от меня ты услышишь только "пошел на хуй", чего ты заслуживаешь, твои высеры я больше не читаю.
Пошёл на хуй.
В целом, я безапелляционно согласен с этим господином. Хоть у меня и нет ничего кроме девяти классов образования, половину из которых я прогулял, но соглашусь, что в ВУЗах учат думать, а не зубрить.
Однако, если у человека есть тяга к знанием, то не сильно то и важно какое образование у челикса может быть, вот только проблема в том, что большинство не такое и им нужна стимуляция в виде заветной корочки.
>у меня и нет ничего кроме девяти классов образования
>соглашусь, что в ВУЗах учат думать, а не зубрить
Тебе-то откуда знать?
Потому что я знаком с тем, как там учат.
А вот если бы ты умел думать, то не задавал бы такой тупой вопрос на такой очевидный ответ.
Ты предсказуем, я знал что твой мозжичек на это так скоро стригерится.
Но можно быть кабанчиком и стать старостой, тогда ты и тупым сдашь зачёты и экзамены.
>Программист без вышки — это скриптовый говнокодер фриланс поделий по ₽500.
>РРРРРЯЯЯЯЯЯ ЕСЛИ БАБА СРАКА НЕ ОБЪЯСНИЛА ТЕБЕ УСТРОЙСТВО МАШИНЫ ТЬЮРИНГА ТЫ НЕ СМОЖЕШЬ ПОДДЕРЖИВАТЬ ДВАДЦАТИЛЕТНИЙ ИНДУССКИЙ КОД НА ДЖАВЕ
Нет, но ты на верном пути к становлению джаваскриптизером.
>РРРРРЯЯЯЯЯЯ ЕСЛИ БАБА СРАКА НЕ ОБЪЯСНИЛА ТЕБЕ УСТРОЙСТВО МАШИНЫ ТЬЮРИНГА ТЫ НЕ СМОЖЕШЬ КРАСИТЬ ФОРМОЧКИ НА САЙТЕ
Пофиксил
То ли толстяк подколол говнокодеров, то ли питонист-пэтэушник со слюнями из роту сам себя обделал.
Ты высрал совершенно обычные оправдания, которые тебе каждый бич подзаборный скажет слово в слово - кок-пок главное чтобы человек был хороший, главное чтобы СМЕ-КАЛ-ОЧКА.
Почему-то каждая скотина, не осилившая курс начальной школы стремится доказать всему миру что ЭТА НИ ГЛАВНАЕ, а вузы вообще не нужны т.к. там не учат а ВОСПИТЫВАЮТ.
Есть один и тот же питонячий код на убунте и на винде - просто обращается к одному порталу через requests.get и requests.post и качает оттуда фотографии.
На убунту всё работает нормас, на винде ПОСТОЯННЫЕ WinError 10048.
Как это нормально фиксить без таймаутов и sleep на несколько секунд на каждой итерации? без перехода на unix-системы, пока что не могу, но винду уже ненавижу
Нужно в одной строчке исправить код, а в другой заменить и ещё в одном месте системный сепаратор пути исправить, они в винде и убунте разные.
Для Джуна аналитика - теорвер, матрицы, основа питона включая многопоточность. Всë
Ггг. Как минимум графы и комбинаторика. Анальному итику это потребуется, как ни крути. Ну, в некотором объёме.
Что бы пидорить массивы данных не одним процессом, очевидно же
Чтоб многопоточность сделать.
Ты жопой что-ли читал? У тебя СДВГ? Или память рассчитана на несколько секунд - пока перешёл ко второму абзацу уже забыл что было в первом? Длинны слова на оперативку не хватает?
Я человеческим языком сказал, что ВУЗ - важен и он УЧИТ думать. А ещё я сказал, что если ты не смог поступить, то это не мешает быть умным человеком, если только ты сам чем-то искренне интересуешься. Или я не прав? При чем здесь плохой/хороший?
Но я догадываюсь, что тебя уязвило что кто-то подверг сомнению твою элитарность, иронично что мне до этого все равно.
>если ты не смог поступить, то это не мешает быть умным человеком, если только ты сам чем-то искренне интересуешься
Вполне возможно. Только вот самому себе системного обучения будет трудно изобрести. Рутина демотивирует, а в ВУЗе к ней принуждают апробированными методами, которые сам для себя сочтёшь бессмысленными. Ну не ставить же себе неуд за несделанный курсовик?..
Ну, когда тебе тимлид потребуется на продукт, за который заказчик башляет траншами по 50 миллионов, в пролапс вывернешься, а постараешься понять, что такое «думать» и как это отличается от «клепать формочки под музончик». И почему думающий инженер-программист полезнее Джейсона-говноеда, потратившего годы вместо вуза на кодирование форм и апишек.
Это не ответ, это очередно вам не понять. Причем так говорит каждый адепт учения учится.
Очень просто, если ты въехал в тему за 10 минут - ты умный, если за 10 часов - ты тупой. Зависит от темы, конечно, но суть в этом. Это и сеть думать.
>>49254
>не сильно то и важно какое образование у челикса может быть, вот только проблема в том, что большинство не такое и им нужна стимуляция
Я же сказал, что для слабовольным нужен стимул, а с сильной в водей могут и без этого.
На самом деле, я уже и не уверен что там учат думать...
Мне кажется, что человек может думать только тогда, когда сам к этому стремится и ни что другое уже не поможет.
Чел... ну как объяснить тупому, что такое «думать»? Какими категориями? Танец может какой выразительный придумать? Если нет абстрактного мышления и на любую аналогию у собеседника вылазит куча говна и пролапс мозгов, и он даже после трёх подсказок открытым текстом не всасывае, хули тут поделать....
>я уже и не уверен что там учат думать
Правильно. Там и не учат думать.
>Мне кажется, что человек может думать только тогда, когда сам к этому стремится и ни что другое уже не поможет.
Именно так. Можешь привести коня к воде, но пить его ты не заставишь.
>Я же сказал, что для слабовольных нужен стимул, а с сильной в волей могут и без этого.
Ебучий т9
>Мне кажется, что человек может думать только тогда, когда сам к этому стремится и ни что другое уже не поможет.
Да, это так. Потолок интеллекта у каждого свой и генетически задан при рождении. Его не перепрыгнешь никак. Но вот тренировать можно и нужно. Потому что если не тренируешь и не учишься ДУМАТЬ, то хуй что вообще вырастет — так и помрёшь тупеньким.
Да ещё 100% населения ждёт падение интеллекта и когнитивки где-то с 55.
Я хочу услышать именно твою версию, а не очередное вы не поймете. Если ты под этим понимаешь обработка и поиск информации, то эффективным методом для достижения такого результата вуз учит весьма опосредованно, через насильное вдалбливание предметов для сдачи экзаменов, прикладное значение которых сами преподаватели не могут объяснить.
>насильное вдалбливание предметов для сдачи экзаменов
Ну вот, один из методов.
Тебе ставят задачу — знать предмет. Делай это как хочешь, любыми методами, но обязан сдать все промежуточные этапы, курсовые, лабы и контрольные. И что там ещё сейчас сдают.
Так же и жизнь тебе поставит задачу и ебись как хочешь, всем ссать и срать на тебя.
>Так же и жизнь тебе поставит задачу и ебись как хочешь, всем ссать и срать на тебя.
Это достигается и без вузов, достаточно найти работу изначально имея нулевые навыки
Ты либо не попадёшь на неё, либо вылетишь. И на работе тебя никто не будет обучать системному подходу — покажут только что делать, если уж кто сжалится. Но скорее, пошлют нахуй. Обычно так и делают — работал на полутора дюжинах работ, нигде не видел благотворительности.
А вот в ВУЗе тебе дадут основы системного подхода — разбивать задачу, планировать, применять инструменты, комбинировать, делать контрольные точки и так далее. Обучат самим инструментам (матан — это инструмент).
>И на работе тебя никто не будет обучать системному подходу
Так в вузе тоже не преподают его, есть
>А вот в ВУЗе тебе дадут основы системного подхода — разбивать задачу, планировать, применять инструменты, комбинировать, делать контрольные точки и так далее. Обучат самим инструментам (матан — это инструмент).
...в ДУМАНИИ всё то же самое.
>Так в вузе тоже не преподают его
Предмета «Системное мышление» в ВУЗе нет. Ты, вроде говорил, что претендуешь на звание умеющего думать, а на деле — тупой скот, способный только к повторению шаблонов. Я ж говорил, не поймёшь.
>И на работе тебя никто не будет обучать системному подходу
Так в вузе тоже не преподают его, есть четкий критерий, получение зачета/сдача экзамена.
>А вот в ВУЗе тебе дадут основы системного подхода — разбивать задачу, планировать, применять инструменты, комбинировать, делать контрольные точки и так далее. Обучат самим инструментам (матан — это инструмент).
В вузе не учат применять инструменты, курс матана максимально далек от программирование, если это не какое-нибудь "вычисление поведения сверхтекущих жидкостей". Синергии нету, студенты сами не понимают зачем это делают зачастую.
>>49309
>Ты, вроде говорил, что претендуешь на звание умеющего думать, а на деле — тупой скот
А у меня корочка есть, московская, из ТОП-5 вузов, чет не помогла она видимо
Нет, решает практика. В универе ты лишь научишься пустословить по быстрому, но не собственно кодить. У меня лично от теории отвращение, особенно когда я после практики. Будто мне 2+2 объясняют, я наоборот тупею от этого.
Чтобы не ждать 10 часов пока считается матрица расстояний 100к на 100к для кастомной метрики для какой нибудь кластеризации
>Это что такое?
1. Увидеть информацию
2. Транслировать ее в мозг
3. Обработать
4. Придти к выводу
5. If вывод верен: выдать результат.
Else: перейти к пункту 1.
кок-пок кудах, хоть я и начальную школу ни закончиль я сирано умный, а вузи нинужны, у миня там друг учился я знаю щто гаварю
@
клоун, плз, так все бомжи оправдываются
@
АРЯЯЯ КОГДА ЗОКАЗЧИК ЗОКАЗЫВАЕТ!1 ТЫ ПРОЛАПС!1 ГЛАВНОЕ УМЕТЬ ДУМАТЬ!11
@
детерминируй думать, поясни свою мысль
@
ТИ ТУПОЙ ! пролапс мозгов! НУ КАК ТЕБЕ ОБЬЯСНИТЬ!!1 УУУУ!111
Пролапсозависимый клоун, плз, не останавливайся, проигрываю с вашей беседы.
Я запутался кто тут кого унижает и какую идею хочет донести
1) Как убрать генерацию title у полей (кроме переопределения в Config-классе schema_extra) ?
2) Как убрать эту хуйню раскрывающуюся по клику? Нахуя она нужна, если там нет вложенной структуры.
У меня есть теория на этот счет, что знания погромиста делятся на три области.
1) матан, всякая другая БАЗА, которая относится к программирования косвенно
этому на 100% можно научиться зубрежкой, это дают в универе через методологию обучения, кто бы что не кукарекал, но если учиться "своим ходом", а не академическим то твои познания будут ОЧЕНЬ не полными и все в белых пятнах, обучение и методология очень важны
2) знание синтаксиса, языков, библиотек, прилажух, умение воплощать свои идеи в языке, читать и понимать язык
этому на 50% можно научиться зубрежкой и на 50% только через практику, потому что информации слишком много, мозг столько хранить не будет в быстром доступе и часть ты всё равно забываешь. если не применяешь
3) логика абстракций - суть твоего кода
этому невозможно научить, я считаю что это какое-то свойство мышления, которое ты либо с детства развивал, либо нет и поезд ушел. По умолчанию у всех людей это есть в большей или меньшей степени. Может я и ошибаюсь, но к такому выводу я пришел наблюдая за вкатунами из другой областей, они могут выучить пару трюков и потом их применять, но видно что самим придумать "трюк" им невероятно сложно.
>1. 2.
Это синонимы, дурик.
> 3.
Максимально неопределенная и беспредметная софистика.
> 4.
Если ты имел в виду мыслительный процесс, то в этом смысле "придти к выводу" и значит "обработать информацию", потому что результат осознанной мыслительной деятельности это логический вывод.
> 5. If вывод верен
Ты пункт проебал. Где критерий "верности" вывода?
Делаю заключение, что у тебя серьезные проблемы с логикой, тебе не стоит заниматься программированием.
Но при этом на каждом шагу я вижу дичайшее многообразие способов выполнить разные задачи.
Как это вяжется друг с другом???
f = open("demofile.txt", "r")
print(f.read())
Проще говоря, можно ли в этом примере избавиться от точек, и делать вид, что питон процедурный?
Задача:
https://www.codewars.com/kata/5b752a42b11814b09c00005d/train/python
Моя функция:
https://pastebin.com/LgzMavQB
Разве в конце функция не должна вызывать саму себя ещё раз, проходить через if'ы и редактировать значения a и b пока не выполнится первое условие?
if a or b == 0
>курс матана максимально далек от программирование
Чел... В этом месте выясняется, что ты — микроцефал и беседы с тобой бессмысленны.
>но если учиться "своим ходом", а не академическим то твои познания будут ОЧЕНЬ не полными и все в белых пятнах, обучение и методология очень важны
Ещё нужно много практики для закрепления. Берёшь учебник/задачник по матану и прорешиваешь его весь (Фихтенгольц, Сканави в наше время были, сейчас Зорич вроде). Очень скучное и нудное занятие. Но нужное для овладения применением матана.
>знание синтаксиса, языков, библиотек, прилажух, умение воплощать свои идеи в языке, читать и понимать язык
Это тоже овладение инструментарием. И тут тоже надо прорешать уйму задач. Иначе какой инженер, не владеющий инструментами...
3) Да. Но можно попытаться тренировать. Например, освоением параллельно десятка предметов.
>1. 2.
>Это синонимы, дурик.
Соболезную. На этапе 1 заданы условия, на этапе 2 ты эти условия из увиденных образов интерпретируешь своему процессору, типа мозгу в понятные для него сигналы.
На этапе 3 мозг обрабатывает информацию.
На этапе 4 он возвращает результат.
На этапе 5 он сверяет результат с условиями.
>Максимально неопределенная и беспредметная софистика.
Вывод не верен. Вернись к пункту 1.
>Если ты имел в виду
Вернусь к пункту 1.
>результат осознанной мыслительной деятельности это логический вывод.
Лол, кек. Деятельность и результат деятельности для тебя одно и то же?
Твой вуз точно не был церковноприходской?
>Где критерий "верности" вывода?
Ещё на этапе 1.
>Делаю заключение
>Пук
Я просто беру ключевые слова с сайта по питону и по каждому слову ищу информацию. По ходу дела практикуюсь и конспектирую все неизвестные слова с подробным описанием каждого. Так же с методами.
Как работает код смотрю на этом сайте
https://pythontutor.com/visualize.html#mode=edit
Ну и книжки по типу Марка Лутца и Себастьяна Рашки почитываю.
Третий иф должен быть елиф, и после этого должен быть элс возвращающий а и б.
>наблюдая за вкатунами из другой областей, они могут выучить пару трюков и потом их применять, но видно что самим придумать "трюк" им невероятно сложно
Бинго.
Вот это и отличает думающего программиста-инженера от макаки-говнокодера, знающего 100500 шаблонов чужого готового кода.
Какими-то фетишами запахло.
>лол кек пук хрюк
>моск эта працесар
>каша из нелепых оправданий без последовательности, полное непонимание сабжа разговора
Прямо эмаджинировал твой красный ебальник - 37 летний вкатун, бывший бариста-повар с IT КУРСОВ
Да ты просто дрищь вонючий, сердечко слабенькое - кровь до мозга не дотягивает, вот тебе и остаётся только имаджинировать, хотя я полную аналогию с примерами привел.
>бариста-повар с IT КУРСОВ
Аа... Жаль поздно прочитал.
Тока и можешь шо пальчиками своими по клавиатуре тык тык тык, блять. щас всеку тебе, нахуй
Дурачок, я тебе про реальное обучение в ВУЗе говорю, а не про твои маняфантазии, где после вывода очередной леммы ты связыаешь это с кодом и реальным явлением, дальше абстракции дело не доходит, а человеку без опыта очень сложно завязать ее на предметную область, это в вузе есть только на определенных специальностях, зачастую не относящимся напрямую к CS.
>где после вывода очередной леммы ты связыаешь это с кодом и реальным явлением
Ты ёбнутый. Откуда ты это напроецировал??
Системности нихуя нет, матан не связывается с предметной областью и нахуй забывается практически на всех специальностях напрямую связанных с CS
>напрямую связанных с CS
С Каунтер Страйк, ёбнутый?
Нейронки будешь писать, матан потребуется. Да вообще любая математика при разработке мало ли чего. Хотя бы складских остатков и размещения продуктов по полкам.
А вот когда тупое микроцефальное быдло, считает, что «занемаецца ниронкай», а само просто размечает или подбирает коэффициенты используя готовую библиотеку типа ТензорФлоу, то конечно, ему матан не требуется — надо просто циферки менять и на кнопку Ф10 жать.
А если не буду писать нейронку. К тому же, причем тут матан? Для них достаточно матстата, теорвера и линала. Матаном там даже не пахнет.
> К тому же, причем тут матан?
Аээээ... Обратное распространение и градиентный спуск — это матан, вроде как. Хотя это из матпрограммирования и оптимизации частично, но это матан.
Матан это доказательство пуанкаре в шести томах, а градиентный спуск это хуйня на пол странички, которую по диагонали пробежал и всё понял. Там "знать" нечего.
Ты их все равно высчитывать и доказывать не будешь, достаточно очередной инженерной таблицы с красными шариками
Такое ощущение что тебе просто одиноко и ты решил заебать всех вокруг кося под дурачка.
Сколько раз самостоятельно вывез производные за это неделю?
Так и линал туда же впихнуть можно, фреймворк используешь и никакого линала. Все за тебя делается.
Разве не в этом суть прогресса, что вся хуйня остается за скобками. Диды на медведя с палками ходили, потом ружья появились - охота уже не та. Другие диды на фортране байтоебили месяц чтобы калькулятор написать, теперь ебалом по клаве проехал - и калькулятор готов.
Прогресс помогает человеку разгружать мозг и позволяет специализироваться. Если тебе нужен какой-то матан ты дрочишь его для конкретной задачи иначе смысла нет - нажми на кнопку и всё само сделается. А через 5 лет вообще чатжп будет всем жопу подтирать.
>Разве не в этом суть прогресса, что вся хуйня остается за скобками.
Это так быдло организуют у стойки, чтобы работало взяв оттуда две палочки и переложив их туда. Сказками про прогресс и прочую хуету.
По-настоящему интеллектуальный труд не у того, кто фреймворк применяет, а у того, кто его программирует и разрабатывает. А применяют его уже макаки. Говнокодеры. Которым слишком высшее образование вообще ни к чему, достаточно применять то, что ему дали стоящие на ступени эволюции повыше. За миску еды и стандартный галактический набор развлечений.
>Прогресс помогает человеку разгружать мозг и позволяет специализироваться.
Некоторые тут разгрузились до уровня микроцефалов, я смотрю.
>достаточно применять то, что ему дали стоящие на ступени эволюции повыше
Например, хотамель, жабоскрип... питон...
Больно. А ведь я просто челу с информатикой на пистоне помогаю, и хотел пока избежать введения каких либо объяснений про ООП, т.к. он литерально путается в переменных и простейших арифметических операциях и даже забывает результаты операций сохранять в переменные и использовать функции вывода (а потом удивляется почему программа не выводит искомый результат)
А без лямбд-хуямбд никак не достичь этого?
мой код 12/10
поближе подсаживаюсь
>фреймворк программирует
На ассемблере надеюсь? Потому что если не на асемблере, а на каком-нибудь сиплюсе, скриптовом языке для быдла, где за тебя всё делается, то ты макака. Или это другое?
Да уж, понять проблематично, ведь у того клоуна вся грамматика и пунктуация проебана в сообщении. Такой-то гигант мысли, хвастается своим великим интеллектом, а сам сложноподчиненное предложение составить не может.
Актор выполняет действие - контроллер обрабатывает его - изменяет модель - возвращает ответ. И да, вот такое дрочево типа того что ты перечислил легко учится за один вечер перед собеседованием на нужном языке. Я говорил о том что практика важнее, на лайвкодинге если ты написал красивый код, всем похуй что ты там не знаешь какого то понятия, научат. А вот пустослов все знающий но не пишущий код это уже тимлид.
>А вот пустослов все знающий но не пишущий код это уже тимлид.
Ты уже начал понимать азы управления быдлом. Главное, почаще макакам говорить, что они умненькие, им положено всё на планете, блага должны распределяться в пользу наиболее умелых макак с 16 рабочими часами в день, каждой макаке положено по три пайка и две резиновых пизды. И прочую управляющую лабуду контроля и манипуляции.
Ахах, у нас так одного тимлида в школе проганья чуть не подьебал вкатун. Он просто смелым голосом сказал что тимлид кое что не назвал, и тимлид ответил "ну так какой ответ то???7". А вкатун ответил, что просто хотел услышать пример.
Так можно и на собеседе делать лжемидлам, когда уже ты давишь на техлида, а не он тебя.
Вышка даёт очень обширный срез самых разных технологий и подходов.
Я недоволен, что многих вещей из практики нам там недорассказали (зато тратили время на физику, химию и философию), но точно могу сказать, что за те примерно 5 лет я попробовал больше разных профилей разработки, чем кодер без вышки попробует за всю жизнь.
Там были и Asm, и разные высокоуровневые языки для разных задач и системы принятия решений, и нейросети (а дело было, на секундочку, без малого 20 лет назад так-то) и web (включая примитивно изложенные понятия о рекламе и ранжировании сайтов в поиске), и БД и то и сё...
Самообразование настолько разноплановым не бывает (ну, только если у каких-то уникумов), что бы кто ни говорил.
Я после ВУЗа знал обо всех более-менее актуальных местах применения программирования и как там что делается (хотя бы на уровне хорошего понимания) и какие ограничения где есть.
То, что это нинужно рядовым формоклёпам - это отдельная тема.
У меня так же с математикой. Я пару раз вспоминал её (самое большее - на уровне тригонометрических уравнений, без матана и интегралов), и то больше чтобы нарисовать на салфетке, как можно что-то посчитать, но мне лично математика не пригодилась лабораторки по дискретной математике, где я, например, определял, является ли граф кликой, сетью, деревом или лесом - не в счёт, наверное, но я знаю, что есть сферы, где без неё никак. И я не говорю, что математика вообще не нужна, я просто говорю, что мне она ни разу по-настоящему не пригодилась.
Хороший кодер, претендующий на звание программиста должен знать намного больше, чем его ЯП и предметная область. НАМНОГО БОЛЬШЕ.
Двачну.
Рабочий ПК, там секурность и просто так скрин на двач не отправить. Не все в этом треде пишут исключительно пет-прожекты.
>>2647691 →
>Шок, сенсация. Питон оказался быстрее крестов.
Здесь чувак ускоряет питоновский код в 30 раз, подтюнив его нумбой. Прошу прокомментировать, насколько это решение универсальное и в каких именно случаях оно сработает, в каких не даст эффекта (или он будет куда менее выраженным), а в каких значимый эффект дадут другие JIT-компиляторы (или ещё что).
>философию
Философия топ, лучше бы я вместо айти ебаного учился на юриста, изучал философию и люто применял все знаниня в аргументации на судах, а не вот эта вот батрачка красноглазая, пиздец просто
>В них не как не отражено название файла они имеют вот такой вид примерно.
>https://mega.nz/file/BIIDDRjJ#MFxx6GHDTHDdfhdgX0GsRWxChsM07UIM
Вангую, что имя файла при этом передаётся в одном из хидеров. Где-то я такое уже видел, с тех пор курл идёт с мнемоникой "-LOJ"
>>https://mega.nz/file/BIIDDRjJ#MFxx6GHDTHDdfhdgX0GsRWxChsM07UIM
>Введённый ключ неверен. Проверьте ключ или спросите у автора ссылки снова.
Нужно на чём-то посмотреть.
>Однако, если у человека есть тяга к знанием, то не сильно то и важно какое образование у челикса может быть
Разносторонность знаний и большой спектр навыков, вот, что даёт ВО на "программистских" специализациях.
Работает быстро только для математических расчетов. В первом же примере использовал fastmath, что уже не равно тому коду, что он написал на плюсах.
>>50195
https://github.com/menukaonline/Mega-to-Google-Drive/blob/master/Transfer_files_from_Mega_to_Google_Drive.ipynb
Вот тут конкретно кусок этого кода, поиск по странице "cmd = ["mega-get", URL, OUTPUT_PATH]"
Не уверен, где это у тебя... Но вангую, что в Swagger UI. Но есть нюанс: Свогер это не кусок FastAPI, это пром. стандарт де-факто по предоставлению документации по API и одновременно ручного тестирования для клиентов. Он достаётся бонусом и рулить им не надо.
Возможно, ты не понял, но FastAPI это для того, чтобы создавать API, а интерфейсов там ну как бы и нет.
>вместо айти ебаного учился на юриста
Чтоб потом отстаивать честь какого-нибудь ровного Васька собравшегося на юбилейную ходку что на очередной пьянке зарезал мать, жену, отца, сестру, брата и его мужа акробата.
А потом он еще и сядет в машину после всего этого и въбется в остановку отправив на тот свет ещё с десяток, а на нем как обычно не царапинки.
Вот примерный такой контингент тебе и будет попадаться каждым первым. У меня сестра прокурор, так что я знаю о чем говорю.
>в Питоне по философии должен быть один способ сделать что-то.
Это потому, что ты читал
>Краем глаза
На самом деле фраза звучтвыглядит так:
> There should be one-- and preferably only one --obvious way to do it.
Ну или
> Должен существовать один и, желательно, только один очевидный способ сделать это.
Выделю важное:
> Должен существовать один и, ЖЕЛАТЕЛЬНО, только один ОЧЕВИДНЫЙ способ сделать это.
То есть, примерно так: как только ты осознал задачу, которую нужно закодить, ты нашёл ОЧЕВИДНОЕ решение. В идеале оно должно быть таким, что все, столкнувшиеся с этой задачей найдут ОДНО И ТО ЖЕ очевидное решение.
По сути это всё сводится к тому, что язык должен помогать писать одинаково простой и читаемый код вне зависимости от жизненного опыта и политических предпочтений.
Это важнее, чем 100500 разных хитрых заковырок, позволяющих сделать одно и то же. Я помню, когда писал на сях, иногда казалось, что эта ёбань мне специально палки в колёса пихает. А ведь я даже до байтоёбства не доходил.
>делать вид, что питон процедурный?
Но зачем? Просто не пиши классы, но пользуйся их методами.
>>49951
>А ведь я просто челу с информатикой на пистоне помогаю
>он литерально путается в переменных и простейших арифметических операциях
А ты уверен, что такому надо помогать? Или он тебе даёт исследовать его подхвостье?
>По сути это всё сводится к тому, что язык должен помогать писать одинаково простой и читаемый код вне зависимости от жизненного опыта и политических предпочтений.
И каждый будет юзать способ, который нашел первым
За кодинг сказать сложно... Но могу точно сказать, что у меня много раз были смежные вопросы (например, настройки всякие делал по докам, а потом погружался в устройство протоколов и понимал, как именно эти настройки дают нужный мне результат), которые я намного лучше начинал понимать после въёбывания теории, хотя 100500 раз делал руками.
Просто делание руками это про механику. а теория это про понимание и практику.
Ну, либо ты как-то очень неправильно знакомился с теорией
>Рабочий ПК, там секурность
>поэтому я капчую с телефона
Топ работничек. А потом удивляются, хули надзирателей ставят.
Нахера там вообще документация? Можно сразу исходники отображать блядь и подсвечивать со всеми дырами и експлоитами.
>А ты уверен, что такому надо помогать?
Я б даже своей тёлке бы не стал помогать, только прям при очень экстренных ситуациях.
Человека должен сам искать ответы на свои вопросы, только так он развивается
хотя может он и правда его сексом шантажирует или за деньги, больше вариантов помогать не вижу
Всё нужно. И феласосония тоже. Если бы её не было, можно было бы изучать культурологию, садоводство, Домострой, ОБЖ — похуй что, главное, чтобы не ещё одну математику. В этом есть суть — небольшое разбавление сугубо технических предметов каким-то гуманитарным. Вся та братия «нам не пригодилось, зря изучали» просто не понимает способов работы мозга и программирования настоящих нейронов, тренировки разума.
А по факту имеем 5 очевидных способов сделать любую задачу. И ещё 20 неочевидных.
Даун, который отвечает буквально на каждые 7 слов исходника тут один или посменно?
Фастапи позволяет кастомизировать опенапи-схему на основе пайдантиковых моделей через класс Config + response-параметрой в router-декораторах. Это вообще одна из причин, почему он выстрелил. Но видимо эту хуйню нельзя переделать, только кастомным шаблоном сваггера.
Какие исходники, какие эксплойты, поехавший?
Це пиздец, пасаны, как запилить юнит-тесты на pytest?
Гуглю - нихрена внятного нет, тестируют какое-то говно в духе
assert zhopa != pizda
Нахуй мне это блять? В нормальных тестах проверяют конкретные урлы и взаимодействие с БД, не вижу нигде как именно тестировать урлы или как установить тестовую базу. Пишут кое-где хуету как мокнуть коннекшн с базой, они ебанутые что ли? Нахуя мне его мокать блять, когда я буду проверять конкретный урл у меня под капотом уже есть взаимодействие с БД, что там "мокать" блять?
>pylint
Какой-то он странный.
На все мои строки с TODO вывалил W0511, на переменные i и j из разных функций - W0621...
> Variable name "b" doesn't conform to snake_case naming style
(булева переменная, использующаяся в течении 5-7 строк)
М-м-м...
> Constant name "b" doesn't conform to UPPER_CASE naming style
(она же в других местах)
Длина строки выставлена на 100.
Ещё и нумерация строк съехавшая.
В общем, я не дам такому инструменту меня оценивать. Вот если бы он обругал меня за несоответствие PEP8 (а оно было, Flake8 меня грузил по делу), я бы понял, а так - рандомный анализатор, работающий через Ж.
Хорошо хоть заметил, что я забил хуй на PEP257.
>Всё нужно. И феласосония тоже.
Не то, чтобы я был сильно против... Но если бы дали курс UI/UX или вообще дизайна.
Я вот сейчас понимаю, что этого сильно не хватает, я могу сказать "ваш дизайн говно" и даже аргументировать, но как сделать не-говно я не представляю.
>>50415
В шараге давали больше историю философии. Я не представляю, как ей можно научиться.
Тестируй на проде
Берёшь и задрачиваешь Витгенштейна без задней мысли.
> Я не представляю, как ей можно научиться
1. Читаешь философские статьи
2. Пытаешься рассуждать о тех же вопросах
3. Пишешь свои собственные эссе/статьи
Главная фишка - выкинуть из головы мысль о том что ты умнее автора и лучше все понимаешь.
Ну так разворачивай рядом БД и тестируй. Сделай отдельную фикстуру вайпа данных в БД и применяй по необходимости.
Тестировать конкретные урлы — это крайне херовая идея, так как в интернете каждый день что-то меняется, и сегодня твои тесты работают, завтра нет. Ты тестируешь уже не своё приложение, а внешний мир.
pytest это вообще кладезь говна, я в ахуе как вы питонисты сделали эту помойку своим стандартом, там все на магии базируется, вообще нихуя не понятно как и что работает, все просто на веру это берут. А когда вылезает абсолютно тривиальная задача вроде проброса environ чтобы инстанс приложения банально стартанул хотя бы, начинаются какие-то блять танцы с бубном. Вот скажи мне, ты смогешь сейчас мне или кому-нибудь еще быстро пояснить как внутрь тестов pytest прокинуть environ? Ты сам сейчас не в курсе, а это по факту должна быть одна из самых базовых задач
>так как в интернете каждый день что-то меняется
я тестирую мои урлы и контроллеры, але
>курс UI/UX или вообще дизайна
Курс устареет пока ты выпустишься. Лучше получить осознание того, что ты можешь взять книжку по эстетике и выстраивать процесс конструирования интерфейсов на прочном историческом фундаменте, а не мимолётной хипсторкой отсебятине с ютуба.
Что такое прокинуть environ внутрь тестов? Покажи пример и зачем ты это делаешь.
> там все на магии базируется
Используются все профиты динамической типизации. Охуенный фреймворк, очень удобный и вполне понятный. Я б ещё больше магии завёз если честно.
Чтобы джанго-прилоение стартануло оно подгружает pydantic-сеттинги которые тянутся из энвов. Если энвы не проставлены то мы падаем на моменте подтягивания настроек в settings.py
Ну так какого чёрта ты это пытаешься делать через пайтест? Прописывай энвы в шелле и запускай пайтест. Или сделай тестовые настройки настройками по умолчанию. Если ты особенно хитровыебанный, можешь в сеттингах детектить что код запустился под пайтестом https://stackoverflow.com/questions/25188119/test-if-code-is-executed-from-within-a-py-test-session
Такая херня будет на любом фреймворке, хоть на юниттесте.
Полностью согласен. Пайтест же это просто модуль, который высирает результаты асертов. Его задача в том чтобы привести все тесты к одному каком-то общему виду. Что у такого приложения должно быть в приоритете - просто БИНАРНЕЙШАЯ простота, интуитивно понятная и при этом логичная, плюс к этому - мануал на всех языках мира составленный как для детей с задержкой в развитии, чтобы школьник Вася и тётя Срака из бухгалтерии за пол часа могли разобраться. Вместо этого элементарную либру с асертами с горкой заполнили ГОВНОМ, какие-то фикстуры с постусловиями, эта хуйня работает только если файлик так называется, а тут не зарабоатет с тем же названием, генераторы в декораторах в генераторах в декораторах с рекурсией. Просто ебаный пиздец.
Я бы лучше день потратил и написал свое приложение для тестов, которое будет иметь универсальный функционал, но при этом будет ИНТУИТИВНО понятно. Но ведь нельзя - пайтест СТАНДАРТ индустрии, милости прошу к нашему шалашу.
Такое впечатление, что пайтест высирали вчерашние джуны с нехваткой внимания - которые в первую очередь хотели показать всему свету СМОТРИТЕ КАК Я МОГУ запутать элементарные асерты.
О, ещё один автор лабы1 и лабы2 рассуждает о том, как большое сообщество фатально ошибается, потому что он ещё не понял как пользоваться пайтестом, декораторами и генераторами.
Его нет. Гуёвые приложения в целом быстро шлёпать невозможно, разве что в делфи набрасывать калькуляторы с фиксированным размером окна.
Правильная позиция. Всегда думай что ты тупее и делай всё так как сказали умные дядьки
А что не так? Пайтест это либа для сообщения в консоли "ассерт номер 150 обосрался" это элементарно как 2+2, только вокруг этого нахуевертили вонючую кучу совершенно не очевидных волшебных заклинаний и забыли нормальные доки завезти. Нормальному человеку гораздо проще создать свой собственный класс для тестов под свою задачу, чем ковыряться в этом потоке рекурсий.
Никто не знает как сделать не говно, потому что всё сорта говна под разные ситуации.
В какой-то момент эта самопальная либа начнёт содержать те же самые рекурсии
Пайтест тупой как пробка. Там из магии только замена ассертов на лету, чтобы вместо невнятного обмякшего пука AssertionError был пиздатый экран со всем нужным контекстом. Ну дискавери тестов и фикстур немного требует писанины, def test_ и @pytest.fixture, изредка общие фикстуры нужно в conftest.py запихнуть чтобы они в нескольких модулях появились. Где ты там сложнейшую магическую рекурсию нашёл хер его знает.
>я могу сказать "ваш дизайн говно" и даже аргументировать, но как сделать не-говно я не представляю.
Это целый отдельный курс. И колористика, и расположение элементов, и вёрстка, и архитектура, и рисунок, и шрифты. Мутатень на ещё два полных семестра, при условии, что есть навыки рисования.
>>50595
>Я не представляю, как ей можно научиться.
А ей не надо учиться. Есть предметы, которые тупо разбавляют массу учения. И это важно для установления правильных нейронных связей.
Па вызначэньні юніт-тэст правярае толькі невялікі кавалачак коду. Каб тэстаць спасылкі табе патрэбны больш функцыянальны тэст. Напрыклад, webtest.
Метод это ТОЛЬКО общее название для функции и процедуры?
Или я не правильно понимаю и помимо функции и процедуры метода есть ещё и просто функции и процедуры, которые к методу не относятся?
Метод это функция класса. А процедуры это вообще что-то из прошлого века, лучше не нюхать.
>процедуры это вообще что-то из прошлого века
Как это? Процедурное программирование как раз и построено из процедур. Код на C++ и вовсе только из него и состоит. [spolier]Вроде бы.
>Метод это функция класса
Так вот я и спрашиваю. Я знаю что метод принадлежит классу, а функции и процедуры которые не принадлежат классу можно называть методами?
>Я б ещё больше магии завёз если честно
Мальчик, когда попадешь на РЕАЛЬНЫЙ проект с хайлоадом и реальной отдачей, тогда наконец и поймешь что динамическая типизация и магия это лютейший зашквар.
Но большинство питонистов на такие проекты никогда и не попадают, продолжаясь вариться в собственном дерьме.
Нет, ищи в соседнем треде.
Я понял что класс это тоже самое что и тип объекта, поэтому у меня и вышел небольшой пролапс. Несостыковочка, скажем так.
Получается что метод присваивает объекту экземпляр класса, а функция объект вызывает?
>>51076
Спасибо, запомню что в питоне нет процедур.
>>51078
Ты не умрешь от того, что будешь знать чуточку больше.
Могу разве что сось сделать, у меня геморрой.
>пролапс
Так вот кто тут вчера кукарекал про обучение, петушок который даже джуновую ООП базу не знает. Топ кек.
Попавси пролапсозависимый вкатун.
Я же помню что какой-то RAD типа дельфи под питон был.
Ничем.
Пистон занял нишу Дельфи, так что пускай соответствует.
Pyside + Qt
Я не берусь судить за UI вообще, но UX имеет понятные и объективные числовые метрики, типа:
> количество кликов, чтобы сделать X
> количество элементов, которыми захламлён интерфейс
> сколько нужно помнить, чтобы работать
и т.п.
И да, это противоречащие друг другу метрики, на баллансе которых или на нестандартных решениях надо выезжать.
Например, если объединить первые две, то идеальный вариант это CLI, потому что всегда быстрее написать "сделай мне заебись", чем найти эту кнопку среди миллиона вложенных меню.
Хм-м. Я не совсем точен. У нас был курс "Проектирование человеко-машинных интерфейсов", он был забавный (препод был яблочником задолго до того, как это стало мэйнстримом то есть когда яббл только-только поднимался на iPod + iTunes и в эти годы как раз компы перекатывались с ППЦ на Штеуд, тогда ходили мифы о дизанерских конторах, где маков много, но домой себе его купить была ещё большая странность, чем сейчас взять домой Эльбрус), но ОЧЕНЬ ТЕОРЕТИЧЕСКИЙ.
>>50774
>взять книжку по эстетике
Вот, кстати, у меня не было ни этики, ни эстетики. Было много видов математики, физика, химия, социология, философия, культурология, история, экономика, какие-то основы права... Даже метрология (курс "Метрология, стандартизация и сертификация")!
Не то чтобы я считал их всех лишними для меня. Часто было интересно, опять же многое я бы сам не догадался, не только где-как-откуда, но даже не подумал бы, что мне это будет интересно! А если бы и подумал?.. Я уже не один год откладываю изучение сопромата. Кое-что даже пригождалось (хотя бы на уровне "понимаю, как оно происходит").
>Метод это ТОЛЬКО общее название для функции и процедуры?
Процедуры и функции отличаются в некоторых языках, например, в Pascal, с которого я начинал, разница в том, что функция делает ретурн и там, где её вызвали, подставляется значение из ретурна, а процедура - просто отрабатывает. например, меняет значения глобальных или передававшихся переменных, в 2023-м остались только функции, но их можно вызывать как процедуры, без присваивания их результата куда-то ещё.
Это стоит знать и понимать, чтобы понимать термин процедурное программирование (это когда сначала ты пишешь процедуры/функции, потом код программы и из него обращаешься к процедурам, описанным выше). В отличии от функционального программирование, которое совершенно про другое и функции там математические y=f(x) и вот это вот всё.
Метод же, это функция, объявленная в классе.
То есть класс это совокупность некоторых ОБЪЕКТОВ (переменных) и МЕТОДОВ (функций) их обработки.
Петюнь, когда-нибудь повзрослеешь и поймешь что на дрочеве джанго-админки и парсинге экселек хоть и можно бабосиков заработать но это тебя никак не продвигает как спеца. И когда попадешь в компанию Уважаемых Людей, работающих с биг датой и rps-ом овер 1к и попытаешься заикнуться про свои "проекты", не удивляйся что тут же окажешься в ссаном углу.
Потому чт вкатунцы думают что язык_1 >> язык_2, а значит надо писать исключительно на чем-то одном.
>я в ахуе как вы питонисты сделали эту помойку своим стандартом
а скажи-ка нам, весь такой хуйлоад-специалист, ты то откуда про это знаешь? Заставляют разгребать?
Ну так может проект, которые выросли и джанги, все-таки имело смысл делать, раз в конце концов они оказались настолько успешными что тебя, элитария, закинули ковыряться в них?
Я сервисы делаю, фастапи просто пихает запросы в редис и оттуда они разбираются самописными рабочими которых можно хоть стопитсот штук вкрутить и на разных серваках. Проект распилен на отдельные микросервисы бд, рабочие, редис, реквесты, шедулеры, вебсокеты. Всё упирается в пропускную способность самого редиса и монги. Сделано на асинках с uvloop.
А так да, мой говнокод лучше не видеть никому, не хочу чтоб этот кал спиздил кто-нибудь себе.
Эти маневрирования. Ты его закреплённый коммент с тестами многопоточности посмотри, а вообще пиздуй в свой тред, избранный.
Спасибо, очень информативно. Особенно пояснения про класс мне понравилось. Записал.
По сути же паскалевские процедура и функция это полный аналог void foo() и <typename> foo() из каких-нибудь сей? Или у процедур/функций еще что-то было в отличии? Я слишком непрофессионально паскалил, не разбираюсь в нюансах.
Какие-то программисты написали Тик-ток и он популярен, но это не значит что нормальный человек будет им пользоваться.
Показывай свой реальный хайлоад. Пиздеть — не мешки ворочать.
Нет уж. Тут "спервадобейся" в лучшей его форме.
Совершенно не понятно какой из факторов успеха решающий и насколько вообще важны танцы вокруг "правильных" архитектур и языков. Мы наблюдаем множество исключений.
Чуть не забыли про Kivy и KivyMD.
Вообще-то он не изичный, но тебе ведь рано или поздно понадобится мобайл?
>процедурное программирование
Ты какой-то еблан. ПИ это по сути инструкция и эта инструкция != функция. Пишешь хуйню с ебалом знатока.
У тебя хайлоад это 5к записей?
Хайлоад надо делать на C++, чтобы быстро было, на питоне тормозить будет
На расте, ну или на худой конец джаве, причем тут язык для железок?
>причем тут язык для железок?
При том что он будет на железке, ты же не на салфетке код гонять собираешься?
Ну микроволновка и есть железка. Шах и мат.
Тебя до железки никто не пустит, если ты не ядро
Кек. Раст кстати скорее всего ВСЕ.
С появлением ИИ переход на него стал особо не нужен и плюсы с нами теперь навсегда.
Хочу сделать аутентификацию на сайте через VK.
Сайт на Django, пока что локальный, т.е. по адресу localhost:8000
Для авторизации использую Python Social Auth.
Вроде всё делаю так, как здесь: https://python-social-auth.readthedocs.io/en/latest/backends/vk.html, но, видимо, чего-то не понимаю.
Зарегистрировал приложение (сайт).
В AUTHENTICATION_BACKENDS добавил (у меня ещё сделана аутентификация через GitHub, всё работает):
`AUTHENTICATION_BACKENDS = (
"social_core.backends.github.GithubOAuth2",
"social_core.backends.vk.VKAppOAuth2",
"django.contrib.auth.backends.ModelBackend",
)`
В settings.py добавил:
`SOCIAL_AUTH_VK_OAUTH2_KEY = "ID приложения"
SOCIAL_AUTH_VK_OAUTH2_SECRET = "Защищённый ключ"`
href выглядит так: `href="{% url 'social:begin' 'vk-oauth2' %}"`
В urlpatterns в urls.py путь выглядит так:
`path("social_auth/", include("social_django.urls", namespace="social")),`
Также в настройках приложения прописал:
Адрес сайта: http://127.0.0.1:8000
Базовый домен: 127.0.0.1
И что бы я ни прописывал в доверенный redirect URI (127.0.0.1:8000/complete/vk-oauth2, 127.0.0.1:8000/social_auth/complete/vk-oauth2, что-нибудь другое), постоянно ловлю:
`{"error":"invalid_request","error_description":"redirect_uri is incorrect, check application redirect uri in the settings page"}`
А если оставляю пустым, то вылезает целая страница ошибок.
Хочу сделать аутентификацию на сайте через VK.
Сайт на Django, пока что локальный, т.е. по адресу localhost:8000
Для авторизации использую Python Social Auth.
Вроде всё делаю так, как здесь: https://python-social-auth.readthedocs.io/en/latest/backends/vk.html, но, видимо, чего-то не понимаю.
Зарегистрировал приложение (сайт).
В AUTHENTICATION_BACKENDS добавил (у меня ещё сделана аутентификация через GitHub, всё работает):
`AUTHENTICATION_BACKENDS = (
"social_core.backends.github.GithubOAuth2",
"social_core.backends.vk.VKAppOAuth2",
"django.contrib.auth.backends.ModelBackend",
)`
В settings.py добавил:
`SOCIAL_AUTH_VK_OAUTH2_KEY = "ID приложения"
SOCIAL_AUTH_VK_OAUTH2_SECRET = "Защищённый ключ"`
href выглядит так: `href="{% url 'social:begin' 'vk-oauth2' %}"`
В urlpatterns в urls.py путь выглядит так:
`path("social_auth/", include("social_django.urls", namespace="social")),`
Также в настройках приложения прописал:
Адрес сайта: http://127.0.0.1:8000
Базовый домен: 127.0.0.1
И что бы я ни прописывал в доверенный redirect URI (127.0.0.1:8000/complete/vk-oauth2, 127.0.0.1:8000/social_auth/complete/vk-oauth2, что-нибудь другое), постоянно ловлю:
`{"error":"invalid_request","error_description":"redirect_uri is incorrect, check application redirect uri in the settings page"}`
А если оставляю пустым, то вылезает целая страница ошибок.
Машоб — это прекрасная технология, за ней будущее, но ту блевоту, что пишут о ней двачеры, читать — это себя не уважать.
ну тут сеглы
Порт вроде бы считается частью домена. И вк может запрещать направлять на голый айпи, или даже отдельно на неглобальные адреса (127., 192.168, 10., итд). Пропиши в etc/hosts домен хоть какой-нибудь на свои 127
Вся фишка раста была в том что он более безопасен.
Но ИИ сможет делать код безопасным и без раста.
>По сути же паскалевские процедура и функция это полный аналог void foo() и <typename> foo() из каких-нибудь сей?
Йеп. В целом. Смысл функции в том, что она возвращает значение в место вызова.
Там были всякие ещё приколы. В частности если передаёшь в процедуру несколько переменных, то ДЛЯ ЧАСТИ ИЗ НИХ (ну или всех, тут уж как хочешь) можно было после обработки изменить своё значение.
То есть паскалевский вызов
proc_name(a, b, c, d)
мог сработать как питоновский:
c, d = func_name(a, b, c, d)
В сях такого не помню, хотя, возможно, было.
Я мог бы привести описание, как это делается, но это уже всё оффтоп. Я на определённом этапе немного писал на Delphi. Приятное время было.
В целом, хотя Pascal и Python разделяет пропасть, по-моему у них есть кое-что общее: на них примерно одинаково сложно случайно стрелять себе по ногам на паскале ещё СТАТИЧЕСКАЯ типизация помогает. Большими буквами потому что не просто запоминается тип переменной, там есть отдельная секция в коде для объявления переменных с типами, нельзя взять и посреди кода написать "varname: integer" и они оба... Как бы это помягче... Не подталкивают к неуместному самовыражению. В отличии от, так сказать.
>В частности если передаёшь в процедуру несколько переменных, то ДЛЯ ЧАСТИ ИЗ НИХ (ну или всех, тут уж как хочешь) можно было после обработки изменить своё значение.
>То есть паскалевский вызов
>proc_name(a, b, c, d)
>мог сработать как питоновский:
>c, d = func_name(a, b, c, d)
>В сях такого не помню, хотя, возможно, было.
Это как передача по адресу что ли?
void foo (int& a, int& b) {a++; b--}
...
int x = 1;
int y = 2;
foo(x, y);
//x: 2, y:1
>Я на определённом этапе немного писал на Delphi. Приятное время было.
Ага, почему-то ламповые воспоминания. Наверное потому, что работать с ним не приходилось почти
>Большими буквами потому что не просто запоминается тип переменной, там есть отдельная секция в коде для объявления переменных с типами, нельзя взять и посреди кода написать "varname: integer"
Даже не знаю, удобно это или нет. Сейчас частенько темпы посредь кода высираю, которые по выходу из скоупа вытираются, но если бы паскалил, по-моему не было бы сложно вписывать их в объявление.
Проблема решена. Оказывается, у меня в базе уже был юзер с таким мылом (я до этого аутентифицировался через Github).
Да уж, пздц.
Есть таск пересчета данных, он иногда выполняется, надо бы сделать его таким вот "сверхприоритетным", чтобы если кто-то запустил расчеты то они не стали бы выполняться пока не закончится пересчет
Нет. Celery это распределённая очередь заданий. Задания могут хоть на десяток разных машин разойтись. Это у тебя какой-то глобальный лок на весь кластер надо, чтобы хотя бы старт новых заданий заблочился.
Я бы вместо селери микросервис сделал, куда приходят все задания, и которому легко организовать бэклог и блокировку.
Джангодебил кстати пострадает меньше всех, так как в той либе уже почти всё сделано и надо только грамотно настроить и спроектировать модели.
>В сях такого не помню, хотя, возможно, было.
В сях для этого передавали адрес переменной, в плюсах придумали передачу по ссылке.
Выкинь селери нахер, лучше сделай очередь через редис. Делается очень просто - очереди в zadd можно, ещё и с сортировкой
1. Ты же понимаешь что в селери очереди могут осуществляться в том числе через редис?
2. Ты понимаешь что селери это не просто очередь но еще и воркеры и бекенд для хранения результатов?
>Ага, почему-то ламповые воспоминания. Наверное потому, что работать с ним не приходилось почти
Ну, я писал на дельфях в том числе автоматизацяю на работе, коллега - делал а-ля внутренний мессенджер на нём же. И пэты. А сейчас у меня для этого же Питон, главным образом за универсальность и мультиплатформерность.
>>52412
>Это как передача по адресу что ли?
>>53032
>В сях для этого передавали адрес переменной,
Да-а. Теперь вспоминаю. Помню, я долго пытался понять, что это за хуйня, что используются то переменные, то ссылки, то указатели на ссылки...
В общем, я си невзлюбил почти сразу. И когда читаю код, в котором авторы самовыражаются, не люблю ещё сильнее, бесит даже не байтоёбство, а вот эта сомнительная выразительность. Я люблю, когда код это код, его можно читать, писать и исполнять и он написан так, что читая ты понимаешь, что он делает.
Спорить не буду, но аргументировать могу. Будто бы это не очевидно...
ЯП это утилитарная вещь, и таковой должна быть!
Есть конкретные прикладные задачи, есть инструменты их решения. Всё.
Если инструмент загнут буквой ॐ и того же результата он достигает ебанутыми хитровывертами, то это тупо мешает поддерживать код.
Как известно кодер в работе в несколько раз больше читает код, нежели пишет. И тут как нельзя лучше отрабатывает Зен Питона: явное лучше неявного, простое лучше сложного и так далее.
Хороший аргумент.
Но это вопрос навыка, то что для тебя хитровыверты - это особенности. Ты можешь заменить деталь на приборе распечатав его из пластика, и это будет просто, быстро и без вывертов, но деталь у тебя может рассыпаться от нагрузки или расплавиться. А можешь освоить токарный станок и выточить из того что надо и деталь будет подходить идеально, но тебе надо уметь в хитровыверты токарного станка и лишиться пары пальцев.
Вот это набивание шишек стрельбой в свои ноги в освоении этого по-настоящему полнофункционального языка и отбивает многих, что не так уж и плохо, нужны и простые кодеры делающие нетребовательный код.
>Но это вопрос навыка, то что для тебя хитровыверты - это особенности.
Давай платину.
Что читаемее?
> res_input_3 > internal_args ? recomenden_value = res_input_3 : recomenden_value = internal_args
или
> if (res_input_3 > internal_args)
> ..recomenden_value = res_input_3
> else
> ..recomenden_value = internal_args
В первом случае ты получаешь километровую строку, суть которой быстро понять невозможно, для этого нужно не просто её увидеть, а, suka, ПОСИМВОЛЬНО прочитать, чтобы обнаружить в мешанине инструкций логику. Это особенность или хитровыверт?
Сишки очень часто склоняют к тому, чтобы сделать менее читаемо, зато типа компактнее.
Пассаж про детали вообще ни о чём, сейчас аддитивные технологии используют и в космосе с безумными нагрузками, просто печатают не горячим пластиком. Да и шестерёнки в авто всё чаще не точат, а лепят из порошка, который потом спекают и они прекрасно живут, безо всяких восьмикоординатных вытачиваний.
>Что читаемее?
Второе, потому что первое не скомпилится. Если первое правильно написать, то оно, люблю тернарники, особенно грамотно написанные.
Правильно оно пишется так:
recommended_value = res_input_3 > internal_args ? res_input_3 : internal_args
и это прекрасно читается.
Но лучше, конечно:
recommended_value = std::max(res_input_3, internal_args);
>В первом случае ты получаешь километровую строку, суть которой быстро понять невозможно, для этого нужно не просто её увидеть, а, suka, ПОСИМВОЛЬНО прочитать, чтобы обнаружить в мешанине инструкций логику.
Да нет, не посимвольно, оно читается как обычное логическое выражение слева направо.
>Это особенность или хитровыверт?
Особенность.
>Сишки очень часто склоняют к тому, чтобы сделать менее читаемо, зато типа компактнее.
Это неправильные "сишки". Писать надо так чтобы читалось легко. Тернарники читаются легко. А то можно все переменные односимвольно сделать и в одну строку весь код впихнуть, будет коротко, но все (без исключения, включая тебя самого) будут считать что ты мудак.
>Пассаж про детали вообще ни о чём
Это аналогия, нах ты про нее что-то пишешь, не о деталях речь.
Уже разобрался, спасибо, с добавлением и удалением из буфера сделал, просто логика была сложной.
Селери это говнище с кучей магии и ненужных проверок, с абсолютно уебищной документацией. Воркеры это 10-15 строк кода. Сам сервис целиком занимает строк 40. А в селери их тысячи блядь.
Ничего, но у меня сложилось впечатление, что это древняя штука, все что написано на которой, выглядит как говно, даже одно окошко с галочками.
Хотя прогрессбар нужен будет.
Так тебе дали совет.
Tkinter идёт в коробке виндовой версии. Чуть хитрее в линуксах.
Прочие оболочки же подключать и распространять сложнее, именно поэтому тебе и советуют tkinter. Так тупо проще.
А какой совет ты хочешь ещё? Ну ставь qt, уточни только лицензионные вопросы.
wxpython скорее не советую, устарел и там нюансы большие есть с портируемостью, толком не пддерживается и не развивается.
Разумных вариантов два, или tk, или qt..
>Да нет, не посимвольно
Именно, что посимвольно. Потому, что пока не найдёшь среди мешанины аргументов две маленькие закорючки - хуй ты разберёшь, что там происходит.
При том, что многие символы, те же двоеточие и звёздочка в зависимости от контекста могут означать дохуя разных вещей, что оно делает конкретно тут - заёбывает.
>Именно, что посимвольно.
Мой пост ты тоже посимвольно читаешь? Когда вопросительный знак видишь, тебе надо время на подумать чтобы понять что это вопрос был? Тернарник читается так же как простое предложение, ты просто не привык и выдумываешь что это сложно для всех, но это не так.
кейс: сделать либу для себя типа парсер что бы было все удобно и без костылей. Создал класс, передал настройки, подписки, куда сохранять (файл/бд) + асинхронность. А то у меня хуйня какая-то выходит.
Есть несколько готовых либ, но нам некоторые фичи не так работают, а в чужом коде вобще не получается что-то поменять
А паттерны тебе нахуя? Это как бы фундамент образования программиста, а не метод написания библиотек.
Ну да лан. https://refactoring.guru/ru/
Сайт ведёт сраное наци-какло, поэтому ходи туда через VPN, а лучше — скачай к себе.
Спасибо, та я даун - неосилятор
В питонотреде вообще как-то совестно должно быть гнать на сишный тернарный оператор.
ну так-то да, если совесть есть, иначе можно гнать
Ты про что? Я в программировании ноль. Я с помощью нейросети все делаю. Нейросеть не может в это. Вот и спрашиваю.
>Я в программировании ноль. Я с помощью нейросети все делаю.
До чего же мы докатились, онанчики…
Ура, я сделал сам. Даже не гуглил. Анальники не нужны.
>Когда вопросительный знак видишь, тебе надо время на подумать чтобы понять что это вопрос был?
В живом-то тексте? Не адекватное сранение.
> ты просто не привык
А язык программирования не должен требовать привычки. Он не должен быть средством самовыражения или чем-то ещё, это должен быть язык программирования.
>>54176
>совестно должно быть гнать на сишный тернарный оператор
Вот прям вообще не совестно. В Питоне код вообще почти не читаешь, взглядом целый блок окинул, сразу понял, просто по узору кода, а эта хуйня в 100% случаев требует рассматривания строки, это объективно уёбищная конструкция. Но сишники её любят. И си вообще полно таким под завязку.
>В живом-то тексте? Не адекватное сранение.
Вполне адекватное. При должном владении языком ты должен уметь бегло читать хоть английский, хоть си, хоть ыфкуиль, хоть брейнфак. Да, даже брейнфак весьма читается если ты наловчился, но твой мозг просто физически не будет успевать обработать его в той же степени, в какой может пуфон, точно как и ты не можешь так же быстро осознать что делает алгоритм так же быстро написанный на пуфоне по сравнению с его текстовым описанием обычным языком.
>А язык программирования не должен требовать привычки.
Смелое заявление.
Учебный язык программирования - да. Может какой-нибудь новичковый на котором кодишь картинками или запросами к нейросети, но он не будет обладать тем же уровнем гибкости.
Масштаб контроля языка стоит в прямом противоречии с его простотой освоения, как простота освоения триде печати и цеха металлообработки, в цеху ты можешь сделать все что может твоя печать и сильно больше, но охуеешь.
> Он не должен быть средством самовыражения или чем-то ещё, это должен быть язык программирования.
Он и является.
>Вот прям вообще не совестно. В Питоне код вообще почти не читаешь, взглядом целый блок окинул, сразу понял, просто по узору кода
А я вот нет. Мне надо лезть в документацию, потому что мне непонятно что за магическая ебатория вот тут, например: x=(n for n in foo if bar(n)). Потому что - охуеть да? - я привык к плюсам и не привык к пуфону, и для меня код на пуфоне не является читабельным, равно как и для тебя плюсы не кажутся читабельными из-за… Угадай чего? Твоей непривычки, а не языка.
Я не сижу тут и не доказываю что пуфон нечитабелен, а плюсы читабельны исключительно из-за своего искаженного мировосприятия. Я знаю что плюсы объективно читабельны потому что я вижу это на собственном примере и примере коллег. Я знаю что змея объективно читабельна на примере многих пользователей этого языка.
Ты либо попробуй освоить язык в должной степени, либо старайся не высказываться о том, в чем не имеешь должного опыта, либо, всегда такой вариант есть, можешь выбирать выглядеть глупцом.
>В живом-то тексте? Не адекватное сранение.
Вполне адекватное. При должном владении языком ты должен уметь бегло читать хоть английский, хоть си, хоть ыфкуиль, хоть брейнфак. Да, даже брейнфак весьма читается если ты наловчился, но твой мозг просто физически не будет успевать обработать его в той же степени, в какой может пуфон, точно как и ты не можешь так же быстро осознать что делает алгоритм так же быстро написанный на пуфоне по сравнению с его текстовым описанием обычным языком.
>А язык программирования не должен требовать привычки.
Смелое заявление.
Учебный язык программирования - да. Может какой-нибудь новичковый на котором кодишь картинками или запросами к нейросети, но он не будет обладать тем же уровнем гибкости.
Масштаб контроля языка стоит в прямом противоречии с его простотой освоения, как простота освоения триде печати и цеха металлообработки, в цеху ты можешь сделать все что может твоя печать и сильно больше, но охуеешь.
> Он не должен быть средством самовыражения или чем-то ещё, это должен быть язык программирования.
Он и является.
>Вот прям вообще не совестно. В Питоне код вообще почти не читаешь, взглядом целый блок окинул, сразу понял, просто по узору кода
А я вот нет. Мне надо лезть в документацию, потому что мне непонятно что за магическая ебатория вот тут, например: x=(n for n in foo if bar(n)). Потому что - охуеть да? - я привык к плюсам и не привык к пуфону, и для меня код на пуфоне не является читабельным, равно как и для тебя плюсы не кажутся читабельными из-за… Угадай чего? Твоей непривычки, а не языка.
Я не сижу тут и не доказываю что пуфон нечитабелен, а плюсы читабельны исключительно из-за своего искаженного мировосприятия. Я знаю что плюсы объективно читабельны потому что я вижу это на собственном примере и примере коллег. Я знаю что змея объективно читабельна на примере многих пользователей этого языка.
Ты либо попробуй освоить язык в должной степени, либо старайся не высказываться о том, в чем не имеешь должного опыта, либо, всегда такой вариант есть, можешь выбирать выглядеть глупцом.
Фриланс на питоне всегда один, говноскраппинг с индусами в конкурентах и то, если у тебя есть апворка. Для фриланса лучше бы пыху или жс учил
UnboundLocalError: local variable 'contact_dct' referenced before assignment
Можешь сделать пустой словарь в начале функции и заполнять его, если что-то есть. А вообще, мне кажется, что ты == с = перепутал
>Масштаб контроля языка стоит в прямом противоречии с его простотой освоения
Чушь и попытки сишника оправдать свои страдания.
>Успокойте меня
125 колы + 75 джина тебя успокоят.
Когда отпустит - пиши ПМу, что задача тебе не по зубам, следующую дадут уже по силам, если контора нормальная. Ну, если ты только не напиздел, что ты дохуища мидл с 5-летним опытом, а сейчас отсасываешь на джуновой задачке.
Какие страдания? Не проецируй.
Твой пост это чушь и попытки пуфонщика оправдать свою тупость. Как тебе аргумент такого же уровня конструктивности?
ТГ боты забыл
Цппшник — это веган от мира программирования, везде припрётся и начнёт рассказывать что он цппшник, как он правильно живёт, и как все вокруг ошибаются и не понимают.
ПиТоНщИк — ЭтО вЕгАн От МиРа ПрОгРаМмИрОвАнИя, вЕзДе ПрИпРёТсЯ и НаЧнЁт РаСсКаЗыВаТь ЧтО оН пИтОнЩиК, кАк Он ПрАвИлЬнО жИвЁт, и КаК вСе ВоКрУг ОшИбАюТсЯ и Не ПоНиМаЮт.
Зачем ты себя запостил, пуфонодаун? Только оскорблядь и можешь как тупорылый школьник, аргументов-то нет.
Так это ты приперся в питонотред со своим охуительно важным мнением по поводу плюсов
Охуенно зашёл с оскорбления, чтобы предъявить за оскобления. Вот тебе аргумент: ссал на твою спиздозную мамашу-шлюху, пока она сидела в луже собственной блевоты под солями, сразу после зачатия тебя с сифозным бомжом.
1. Как ретраи тасок делать будешь?
2. Как хендлить эксепшны внутри тасок будешь?
3. Как чейнить или группировать таски будешь?
4. Как мониторить текущие таски будешь?
5. Как скейлить воркеры?
6. Если надо будет в шедулере-кроне таски запускать то что будешь делать?
7. Рейт лимитеры по дефолту прикручены будут?
Петюнь, до тебя Большие Дяди уже все давно придумали, если ты думаешь что с годом опыта на каком-то говнопродукте ты достаточно прокачался для написания "своего селери" / "своего веб фреймворка", подбери штаны и пиздуй дальше учиться, ты еще не дорос
Хочу выучить второй язык для чего-то быстрого, Rust или Go? а может просто писать расширения на сишке?
>инициализации жирного объекта на 1000 вложенных моделей
С большой вероятностью ты что-то делаешь не так, чел
>Хочу выучить второй язык для чего-то быстрого
go
Но учти что максимум утилизации будет при распараллеливании
>numba быстро работает только с питонячьими примитивами
А ты какие хочешь юзать? Самописное говно? Сами написали говно а теперь кто-то виноват. Да будет тебе известно та же гоха построена на примитивизме и невнятного корявого говна там будет минимум
>С большой вероятностью ты что-то делаешь не так, чел
Код максимально примитивен
https://filetransfer.io/data-package/PzLYdsI4#link
https://pastebin.com/e0LQ4kwL
>Самописное говно? Сами написали говно а теперь кто-то виноват
Модели говнопайдентика, ничего кроме него не было, пытались ускорить создание, которое пиздец какое медленное
Как же залетного дебила приложили.
> 1. Как ретраи тасок делать будешь?
Ретри делается не для целого таска, а внутри него. Если он завершился неудачно - значит он завершился неудачно и повторный трай даст тот же результат и может вызвать некоторые запросы дважды, что крайне нежелательно.
> 2. Как хендлить эксепшны внутри тасок будешь?
Так же как и обычно
> 3. Как чейнить или группировать таски будешь?
Через редис и ключи, инструментов там предостаточно.
> 4. Как мониторить текущие таски будешь?
Через логирование и графану, например.
> 5. Как скейлить воркеры?
Странный вопрос, рабочие разбирают всё что лежит в редисе, скейлится это дело очень легко
> 6. Если надо будет в шедулере-кроне таски запускать то что будешь делать?
Написать шедулер с тем же редисом, 10-20 строк кода.
> 7. Рейт лимитеры по дефолту прикручены будут?
Мои таски разбираются в порядке fifo, рейт лимитер делается очень просто, ещё один странный вопрос
> Петюнь, до тебя Большие Дяди уже все давно придумали, если ты думаешь что с годом опыта на каком-то говнопродукте ты достаточно прокачался для написания "своего селери" / "своего веб фреймворка", подбери штаны и пиздуй дальше учиться, ты еще не дорос
Я вкручивал селери для амазоновских aws очередей, работал он чудовищно медленно и рабочий фризился после каждого таска на несколько секунд блядь при использовании гринлетов. Ни в документации, ни где-либо ещё это говнище не описано. Динамические очереди селери в принципе не способен обслуживать. В редисе такие типы данных есть. Даже в связке с редисом селери на такое не способен.
Я ебался с селери и ебался очень долго, пока нахер не выкинул его из проекта и не написал свой. Работает без перебоев уже два года на нескольких проектах и очень быстро.
Ладно, умник. Покажи как в селери сделать следующее, то что для меня делает редис.
Очереди в виде сортированного набора типа zadd. Таких очередей может быть несколько и создаются они на лету, т.е их может быть 5, 10, 500, 5000 или 0 - неважно, рабочий должен выбрать свободную и начать его разбирать. Одну очередь должен обслуживать один рабочий.
>Если он завершился неудачно - значит он завершился неудачно и повторный трай даст тот же результат
Хоспаде, какой дебил...
>Так же как и обычно
Как "обычно", довен? На них коллбеки-хендлеры вешают
>Через редис и ключи
Дурик, у тебя в селери очень продвинутая система из Celery Canvas позволяющая осуществлять пикрил
>Через логирование и графану
В реальном времени?
>скейлится это дело очень легко
Так ты сам-то понял КАК? В celery это практически по дефолту установлено
>Написать шедулер с тем же редисом, 10-20 строк кода
Анус ставишь что за 10-20 строк все учтешь и ничего нахуй не упадет?
>рейт лимитер делается очень просто
Ты его учел в своих "40 строках" про которые ты изначально писал? У тебя все "просто" и "легко", "тяп ляп сюда, тяп ляп туда", неоднократно работал с такими особями, постоянно дедлайны с такими слетали и все по пизде шло под конец
Ты лучше скажи как надо, раз ты всё знаешь, называть всех вокруг дебилами я тоже умею
Но как быть-то тогда? Как это имя туда подставить не через f-строки?
Все современные драйвера для бд давно умеют в форматирование запроса без sql-иньекций
>cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (100, "abc'def"))
Да не, я ж писал что когда делаю вот так то он сдыхает. Дело в самой команде, у тебя DML с INSERT, у меня DDL с DROP.
Попробуй у себя прогони команду:
cur.execute("DROP DATABASE IF EXISTS %s", ('LOL',))
> pydantic как библиотеку для моделей и стейта
> внутри сервиса
Wat? Конечно он будет тормозить, это же долбаный валидатор. Внутри сервиса ты обычно себе доверяешь и никакие валидаторы не нужны.
> msgspec
Но довольно интересно, спасибо за наводку.
> PyPy
Да, работать будут только модули сделанные через cffi. И сам питон будет несвежий.
> Cython, mypyc
Обычно никто и не натравливает это на чужой код, только на свой.
Я б железа навалил и мозги себе не делал. Особенно если задача у тебя разовая. Если ты там игру делаешь, то да, нужен язык побыстрее и посложнее. Но мне всё ещё сложно представить где прям нужно валидировать 1000 вложенных моделей быстрее чем за 50 мс. То что ты исходник замеров запостил это хорошо, но не поясняет зачем.
Строковый литерал и имя объекта (таблицы, вьюхи, ключа, итд) в бд — это разные вещи, различие в кавычках. Никто не выставляет наружу возможность произвольно выбрать имя объекта в бд, это тот самый случай когда нужно попердолиться с f-строками.
>Конечно он будет тормозить, это же долбаный валидатор. Внутри сервиса ты обычно себе доверяешь и никакие валидаторы не нужны
Данные приходят снаружи и кладутся в стейт, я специально в байтах все указал, вместе с orjson, никаких дополнительных проверок кроме тайп хинтинга нет.
>Я б железа навалил и мозги себе не делал. Особенно если задача у тебя разовая
Задача не разовая, есть сторонний источник данных, нужно принять сообщение, валидировать на уровне типов и запроцессить.
>всё ещё сложно представить где прям нужно валидировать 1000 вложенных моделей быстрее чем за 50 мс
Да легко, данные для беттинга, курсы валют и т.д. Везде где есть жирный стрим. Причем к самому питону нареканий нет, он выдает приемлемую производительность для этой задачи, проблема исключительно в пудантике.
>Везде где есть жирный стрим
"Везде где есть жесткий рилтайм" сервис пилится на гохе или на крестах, если наличие сборщика мусора мешает
Раздербанивайте свой монолит
Это микросервис, и зачем переписывать на говяхе, если найдено рабочее решение?
Изначально я вообще жаловался на несовместимость компонентов для увеличения перформанса и потенциальную невозможность это ускорить для самого популярного решения для валидации.
> попердолиться с f-строками.
Но ведь они намного удобнее, чем эта древнее как говно мамонта %s!
Читай про sql-инъекции и sql prepared statements. Это говно мамонта работает не на стороне питона, если ты всё правильно делаешь конечно.
Отправлять рандомные SQL-запросы в БД это вообще о-о-очень сомнительная идея с точки зрения ИБ. Зарежь наружу инсёрты и прочее, напиши процедуру и дай доступ к ней.
Так нахуя %s, если ты в виде чистенькой строки препарнешь, а потом только забиндишь валуевых. Выглядит как раз как костыль.
Вообще, в питоне как-то уёбищно с базами, зоопарк. Могли бы уже запилить единый интерфейс с драйверами под разные сервера.
> Так нахуя %s, если ты в виде чистенькой строки препарнешь, а потом только забиндишь валуевых.
Так я об этом и говорю. Вроде бы у вопрошающего выше как раз такой стиль плейсхолдеров в базе.
> единый интерфейс с драйверами под разные сервера
Говно без задач. Уже миллион этих абстракций над базами сделали, и всем они только проблемы создают, базы всё-таки отличаются и полезные допфичи не везде есть.
Ну мне удобно иметь один синтаксис для того же пг, мускла и склайта и скорее всего мс. Не надо с какими-то либами ебаться лишними.
Про орм речи не идет.
Посоветуйте такую книгу, чтоб покороче, и в идеале для тех, кто уже знаком с Java/C++ (т.е. опускающий описания "что такое класс" и тому подобное).
Я не вкатун, а пытаюсь сменить текущую работу
quick python 3e
У них разные протоколы, разные варианты sql, разные типы данных, разные особенности использования. Зачем тебе переключаться между базами постоянно? Бери одну и используй в хвост и гриву. Или ты из тех кто продакшен гоняет на постгре, а тестит локально на скулайте?
Так для того и драйверы. По сокету хуяришь запросы на нужном диалекте скл, что там разное? Ну разве что у скулайта чуть другой драйвер.
Cheatsheet поищи. Пройди туториал, там про классы относительно сжато и с раскрытием особенностей питонов. https://docs.python.org/3/tutorial/index.html Книги хуйня.
Там всё разное. Сериализация, стейт соединения, аутентификация. Это как сказать что андроид и иос одно и то же, или винда и линукс.
Ты может с чем-то другим путаешь, это охуенно удобная вещь и есть подобное для многих языков.
https://ru.wikipedia.org/wiki/ODBC
Да, и всё это реализовано на уровне драйвера, который подключается уже к стандартной либе где стандартное апи запросов.
Как-то у тебя вывернуто всё наизнанку. Это стандартное апи идёт в драйвер, а не драйвер обращается к какому-то стандартному апи.
Насчёт универсального апи, вон там выше ODBC упомянули уже. Но опять же, зачем? Ты хоть раз переключался с постгри на мускул без переписывания проекта? Мне важнее полный контроль над фичами бд, чем какая-то там универсальность, которая никогда не пригодится.
Суть не меняется. Для поддержки базы в апи нужно написать драйвер, который будет работать с конкретной дб внутри апи.
Зачем? Чтобы не учить отдельную либу под каждую дб.
Различия в SQL и внутренности конкретной базы мне приходилось учить, довольно долго. Но апи коннектора это 5 минут посмотреть пару примеров, что там учить-то? Если конечно у тебя есть достаточно опыта хотя бы с одной из бд.
Ну всё больше запросик туда-запросик сюда. Максимум в районе пару миллионов записей было без особой йобы.
Но зачем мне учить лишнее, если есть работающее решение.
>Посоветуйте такую книгу, чтоб покороче, и в идеале для тех, кто уже знаком с Java/C++ (т.е. опускающий описания "что такое класс" и тому подобное).
https://pythonworld.ru/samouchitel-python
Воть. Я по этой штуке освоил за ~ неделю неспешного чтения в дороге по вечерам. Но это зная в разной степени десяток других ЯП/
А всё периодически слышу про какой-то nginx и uvicorn
Он уже имеет в своем составе сервер, но если его начнут долбить из интернета, то он обосрется, поэтому есть реверс прокся, которая берет эту работу на себя и умеет держать мильйон коннектов. (nginx)
Увикорн это аппликейшен сервер как тот что встроен в твой фастапи, но типа должен быть попижже, я в них не вникал.
У тебя фастапи это одно приложение. Ювикорн нужен для создания ещё нескольких копий этого приложения и распределение запросов по ним. Нджинкс - прокси сервер, то что смотрит наружу, копит запросы в себе и посылает их куда скажешь
S скобками оберни заебал. И фстроку убери, она только инъекций добавляет.
subprocess.Popen(cmd).wait()
Аноны как изнутри script_py_path понять что он запущен как субпроцесс?
Можно как-то это определить простыми встроенными способами без передачи аргумента-фалаг? '__name__ == "__main__"' в этом случае не работает.
>Можно как-то это определить простыми встроенными способами без передачи аргумента-флага
Чел...
Ну тогда простыми хуй знает, передай в стдин и смотри в инпут()?
> '__name__ == "__main__"' в этом случае не работает.
Смысле? Должен работать, это же новый процесс, так что у него должен быть свой __main__
Ну, да. Я и говорю, что будет мейн, а тебе не мейн нужен?
Popen так не сделает, он же просто запускает ещё одну программу, как ты двойным кликом, только программно.
Я не он. Ему надо запустить как субпроцесс и в нем же определить этот факт.
Если не как субпроцесс, то что-то делать не надо, я хуй знает, что там за задача.
Простого кроссплатформенного решения навскидку нет. IPC вообще замороченная хуйня.
>Простого кроссплатформенного решения навскидку нет.
Ну как нет, в env повесить флаг да и всё, но анон почему-то не хочет.
>IPC вообще замороченная хуйня.
IPC-то тут при чём? Или ты в широком смысле ipc имеешь в виду, что "передать процессу, что ты его запустил" это тоже форма межпроцессной коммуникации?
Разобрался, можете не отвечать.
FastAPI реализует ASGI, аналогично всякие фласки-джанги реализуют WSGI. Это интерфейс запрос-ответ на питоне, это ещё не http протокол.
Uvicorn/gunicorn это http серверы, которые делают весь парсинг http, всякие таймауты, 500 ответы, менеджат питонячие процессы, внутри которых и живёт твоё asgi/wsgi приложение. Но они больше ничего не умеют, ни файлы раздавать, ни к другим сервисам проксировать.
Nginx это тоже http сервер, он умеет проксировать к другим http серверам (твои uvicorn/gunicorn), эффективно раздавать файлы, переписывать урлы, и он отпидорен по безопасности/производительности очень хорошо, чтобы быть эффективной входной воронкой.
Стандартно делается связка инторнет -> nginx (тут ещё статика раздаётся) -> guni/uvicorn (внутри которых питонячий код).
Можно, но зачем?
Нужно найти кто там парент процесс и проверить что это питон. Но я бы лучше флаг/envvar передал или что-то другое сделал.
Расскажи, почему реверс-прокси не является http-сервером. Вот прям интересно. Он теперь ftp-сервер если реверс-прокси? Или ты думаешь что там L3/L4 проксирование вместо L7?
Лол, хттп прокси это вообще часть хттп спецификации, она в принципе по своей сути сервер.
https://en.wikipedia.org/wiki/Proxy_server
С одной стороны замечание справедливое, с другой - вертел я его. Как и хранение на компе гигатонны кэшей сборки.
> docker system prune -fa
сводит эти 15-секундные выигрыши в ноль.
Так у тебя и получаются гигатонны кэшей из-за этого. То что редко меняется нужно делать в начале, а COPY исходников в самом конце.
Гигатонны кешей у меня получаются потому, что пректов самых разных, для разных контор и условий у меня десятки (а, может быть, уже и сотни) и мне их удобно собирать на одном компе. Тем более, что многие из них нужны раз в месяц или реже.
Надо переносить в облако, на раннер и писать CI, но лень, пока - ручками.
Дженкинс поставь и всё
Наткнулся на задачу на перестановки, нужно было объеденить в массив все возможные перестановки символов. Попробовал рандомно нагенерить пару тысяч перестановок через цикл с функциями из другой библиотеки, а потом отсортировать дубликаты превращением массива в сет. На коротких строчках работает прекрасно, на длинных двух-трёх тысяч проходов цикла не хватает, какие-то перестановки не генерируются. Если увеличивать количество проходов, то весь массив забьётся говном и интерпретатор кодварса выдаст, что превышен лимит памяти в 1.5 мб.
Поискал менее брутфорсные способы решения задачи, наткнулся на алгоритм перестановки Хипа. Его принято реализовывать рекурсивно, как на скринах. Скрины взяты из непосресдственно
разбора алгоритма. Объясните, каким образом эта функция вообще работает? На 7 строчке она доходит до рекурсивного вызова, интерпретатор возвращается в начало и так по кругу, как она вообще может работать? Предположим, что я понял, как может, как она может выдать все получившиеся перестановки? Где там условно строчка return result[номер перестановки в массиве перестановок]? Что она возвращает? Где хранятся перестановки?
Алсо, я не знаю, как реализовать эту функцию, когда тебе даётся только массив, а его длину предлагается считать самостоятельно. Интерпретатор же при рекурсии будет заново "видеть" k=len(li), и возвращать k прежнее значение.
Почитай вики хоть.
> Структурно рекурсивная функция на верхнем уровне всегда представляет собой команду ветвления (выбор одной из двух или более альтернатив в зависимости от условия (условий), которое в данном случае уместно назвать «условием прекращения рекурсии»), имеющую две или более альтернативные ветви, из которых хотя бы одна является рекурсивной и хотя бы одна — терминальной. Рекурсивная ветвь выполняется, когда условие прекращения рекурсии ложно, и содержит хотя бы один рекурсивный вызов — прямой или опосредованный вызов функцией самой себя. Терминальная ветвь выполняется, когда условие прекращения рекурсии истинно; она возвращает некоторое значение, не выполняя рекурсивного вызова.
У тебя рекурсивные вызовы с k-1 и терминальная стадия с k == 1.
И тем же k хуевертетяся пермутиции через проверку на его четность.
Просто представь что ты интерпретатор и пройдись по коду строчка в строчку, следя за всеми переменными, можешь даже нарисовать дерево вызовов, чтобы было наглядно.
>Алсо, я не знаю, как реализовать эту функцию, когда тебе даётся только массив, а его длину предлагается считать самостоятельно.
Ничего не мешает посчитать длину перед вызовом функции
Я знаю, как устроена рекурсивная функция, очень простые рекурсивные функции я писал.
Интерпретатор считывает что k != 1, выбирает рекурсивную ветвь, начинает выполнять цикл. В начале каждого цикла есть рекурсивный вызов, он выполняет его, возвращается на вторую строку и снова выбирает рекурсивную ветвь (если k не равно 2), так происходит пока k>1. Через несколько итераций вызывается функция, у которой k=1, то есть выбирается терминальная ветвь. Что в таком случае возвращает рекурсивная функция? Непосредственно перестановки расположены в цикле for i in range(k) после вызова функции, то есть интерпретатор, по моей неверной логике, не должен до них доходить - он вызывает функцию ещё раз и до тех пор, пока k не равно 1. Потом рекурсивная функция что-то возвращает. Что?
>>57310
>Интерпретатор же при рекурсии будет заново "видеть" k=len(li), и возвращать k прежнее значение.
нет?
1) показать, что собираешься сделать, а потом объяснить детали
2) сначала объявить что у тебя есть, и потом показать что ты с этим делаешь
ньюфаг 9 год вкатывается в питон
>Ничего не мешает посчитать длину перед вызовом функции
А, понял, действительно.
Ничего не возвращает рекурсивная функция. Она тасует элементы в том массиве, что аргументы.
lis=['Cat', 'Dog', 'Crow']
res=[item.split() for item in ','.join(lis).split(',')]
Вывод: [['Cat'], ['Dog'], ['Crow']]
Он нужен для того, чтобы создавать из списков подсписки.
Пытался симулировать последовательность вручную, но нихуя не выходит.
Мне это нужно знать чисто интереса ради, башка вообще уже не варит.
1. ','.join(lis) соединяет лист в строку, разделяя слова запятыми, .split(',') разделяет строку обратно на элементы в листе. В итоге получается тот же самый лист, хуй знает, зачем это вообще делалось.
Можно было написать просто
res=[item.split() for item in lis]
2. item.split() разделяет лист на подгруппы, то есть на лист листов, то есть выходит то, что написано в выводе.
Переходи на С++, парень, в Питоне тебе ловить нечего.
>','.join(lis) соединяет лист в строку, разделяя слова запятыми, .split(',') разделяет строку обратно на элементы в листе. В итоге получается тот же самый лист, хуй знает, зачем это вообще делалось.
Ясно, а я ещё удивлялся какого хуя это тут делает, но что с ним что без него ничего не выходит. Думал, значит надо так, какую-то роль играет всё-таки. Видимо индус писал.
>item.split() разделяет лист на подгруппы, то есть на лист листов, то есть выходит то, что написано в выводе.
Спасибо большое за разъяснение.
Я бы так рассудил в духе ООП, инструмент желательно должен идти выше места своего применения. Сначала мы делаем инструмент - потом его применяем, логично же.
Ну ты всё правильно видишь, она ничего не возвращает, а модифицирует на месте.
k=None и первой строкой if k is None: k = len(...), тогда если k не указан он по дефолту будет длиной сиквенса.
Рекурсивные вызовы ничем не отличаются от других вызовов, представь что ты эту же функцию скопировал бесконечное количество раз, и добавил суффиксы 1, 2, 3 итд.
> ','.join(lis).split(',')
Если в строках нет запятых, то это бесполезное действие, как было так и останется ['Cat', 'Dog', 'Crow']. Оно склеивает через запятую всё, а потом разбивает.
> .split()
Разбивает строку по пробелам вроде бы. И так как нигде нет пробелов, получаются списки из одной строки ['Cat'], ['Dog'], ['Crow']
Собсна всё.
Он делает не совсем то что ты думаешь.
На таком вводе lis=['Cat Horse,Monkey', 'Dog,Crab Duck', 'Crow']
Выдаст вот такое
[['Cat', 'Horse'], ['Monkey'], ['Dog'], ['Crab', 'Duck'], ['Crow']]
Зависит от задачи. Где-то удобнее top-down разбивать, где-то bottom-up, реализовать простое, а потом склеивать.
как бы модифицировали его?
потому что я вижу, как долго и муторно идут айти/матан лекции. то, что рассказывают в 24 часах лекций(16 лекций) - можно передать(даже в более лучшей форме, подробнее, фундаментальнее и с лУчшими частными/практическими примерами) за 10-12 часов. Просто нужнот захотеть и создать такой всеобъемлющий курс.
Еще проблема конечно в неравенстве абитуры. Кто-то нихуя не знает, а кто-то с 14лет tcp ip хакает
а скажем в россии 2029+ айти-фундамент станет фундаментальным предметом, препаодающимся всем людям(т.к. мир цифровизуется и любой будущий чинуша/презик должны знать что такой оупен соурс, и чем его минусы). каким бы вы сделали обязательные курсы на 2 семестра, скажем, 16 леккций и 16 практик. ?
Это проблемы образовании в целом, а не айти конкретно. Что бы предлагать даже какие-то гипотезы как решить это, надо иметь опыт и степень по пердагогике.
Вообще важный урок для айтишника - не лезь в бизнес-логику, пока не детально изучишь предметную часть. Это касается и сервиса по эксперсс-доставке карандашей, и прошивок доильных аппаратов, и образования.
Никак. Людей надо модифицировать. Все кто не долбич и не амёба безвольная быстро находят всё что хотели в интернете и изучают.
Что ещё может питону/джанге не нравитсья? Гугл не помог
Нельзя что-то принципиально новое освоить за год. За айти очень большой фундамент всего и очень много чего взаимосвязано. Надо чтобы мозги постепенно перестраивались. И да, очень сильно зависит от подготовки абитуры и от устройства мозгов каждого.
А то, что образование хреновое и устаревшее, так оно не только в ИТ такое. Там всё перестраивать надо.
>каким бы вы сделали обязательные курсы на 2 семестра, скажем, 16 леккций и 16 практик.
16 лекций это получается по одному занятию в раз в неделю в течении семестра, хотя так наверное около 14 получится. Это очень мало.
Надо интенсивно и долго.
Непнавильно запускаеш
Надо всё взять и поделить.
Вообще версия питона очень критична, нет же полноценной совместимости. Ты можешь использовать фичи, которых нет в старых версиях, либо же наоборот, в новых версиях может быть что-то, из-за чего старый код не работает.
Когда ты пишешь FROM python:3, то докер возьмёт ту версию, которая сейчас в системе с этим тэгом. На одно машине будет какой-нибудь 3.6, на другой 3.11
Знаем, но молчим. Один хрен никто ничего менять не станет, да и в молодость не вернёшься
Чел... образование не равно плотности информации. Нужно натренировать эту информацию усваивать и применять, надо научить соображать (что не всем дано, кстати — ярчайший пример Онотоле). Да и хочешь ты не информацию давать, а тупо кейсы, что вообще пиздец, уровень ремесленного ПТУ (колледжа).
Он берёт последнюю стабильную версию, сейчас это 3.9.
3.10 будет очень не скоро, куча либ не работают с ней да и сама она всрато сделана с точки зрения изменений. Я бы ее в 4 версию записал, а не 3.10.
Загадочные молчуны какие а. Знаю, но не скажу это чаще всего значит именно что "не знаю и не скажу"
В вузе учат учиться. Кто ж виноват что студик пришёл туда, открыл рот и ждет чтоб ему навалили туда как в школе. Нет уж, учись сам жрать. Многие этого не понимают и потом говорят что вышка не нужна.
Конечно не нужна, когда нет мотивации. Желание кодить, рубить бабло и быть чсвшной элитой это не мотивация. Узнавать что-то новое, делать что-то самому - вот мотивация, когда процесс стоит выше цели.
А они всё жалуются что их не учат. Дальше что? На работе тоже будут жаловаться что за них не работают? Ну так и есть, да.
>А они всё жалуются что их не учат.
Напоминаю, что согласно определению минобра у нас высшее профессиональное образование, которое призвано готовить кадров для работы. За маняисследованиями извольте пройти в аспирантуру.
Ну так чел... Фреймворки (инструменты) меняются раз в пять лет, нахуй ПТУшник с телеги вышвыривается, а умеющий учиться ВУЗовец продолжает кодить за миску риса. Что ты будешь делать, когда твой стек устареет? Снова идти учиться в свой фантастический ВУЗ, где дают всё готовое? Так жизнь постоянно меняется. Ты буквально заебёшься тупо учить все новые инструменты без системности, которой научат в ВУЗе (реальном).
>айти-образование сосет
Потому что всё айти это абстракции и оно очень разносторонее и витиеватое. Подготовить какой-то трушный академический материал можно только по базе, потому что она всегда одна и почти не меняется, а чтобы дальше учить нужно 1) быть преподавателем и владеть методой обучения 2) нужно быть хорошим кодером с абстрактным мышлением и глубоко понимать предмет 3) держать руку на пульсе айти т.к. всё очень быстро меняется и преобразуется.
А в учителя понятное дело идут те кто в другом месте не устроился. По этой причине статейки блогеров и нитки на стаковерфлоу в 10 раз понятнее и актуальнее для обучения, чем говно из вузиков, где нормально дают только матан и курсов, где нормально ничего не дают. Любой слитый курс посмотрите - там начало его нормально, а чуть дальше уже программа становится сумбурной, в курсе начинают появляться нелогичные вещи, моменты которые ещё не были должно объяснены.
>Фреймворки (инструменты) меняются раз в пять лет, нахуй ПТУшник с телеги вышвыривается, а умеющий учиться ВУЗовец продолжает кодить за миску риса
Ой все, жабисты как на спринге писали 15 лет назад так и сейчас пишут, в эмбенденд разработке вообще все во времени застыло, а что бы выучить очерндой вуе жиэс много ума не нужно.
>Что ты будешь делать, когда твой стек устареет?
Я и до получения диплома без проблем сменил стек с пыхи на питон с растом, ты переоцениваешь интеллектуальные способности, которые для этого необходимы.
>Ты буквально заебёшься тупо учить все новые инструменты без системности, которой научат в ВУЗе (реальном).
В вузе нихуя нет никакой системности, наборы разномастных, независящих друг от друга предметов. Единственное место, где все это соприкасается это дипломная работа, которую зачастую даже сам научрук не знает как писать, потому что она выходит за рамки его компетенций.
>ты переоцениваешь интеллектуальные способности, которые для этого необходимы.
Челик, у меня рабочий стаж 30+ лет. Я абсолютно точно знаю, что для того, чтобы стать мастером либо нужна очень сильная база, либо ты должен дрочить свой инструмент 5–7+ лет. Иначе ты просто по верхушкам нахватаешься и будешь делать среднее по своему ремесленному бараку.
>>57733
>наборы разномастных, независящих друг от друга предметов
Очередной пидор «да там не учат»... Так и должно быть!! И ещё философия с культурологией какие-нибудь сраные.
Ты судишь с детской точки зрения, что там у тебя с чем соприкасается. ВУЗ даёт систему, даже если ты со своей табуретки ещё не дорос её увидеть. «Не пригодилось» — вообще не критерий, это визг тупой макаки-говнокодера, шлёпающего шаблоны. Нейронные связи не тренируются подачей тебе готовых кейсов. —> >>57670
Возникла потребность в Джанге при изменении конкретного поля определенной модели запускать в фоне celery-процедуру
То есть если поменялось какое-то поле кроме требуемого то процедура не запускается, надо замутить эту проверку, но только как и где? Слышал что такое обычно в сигналах делают, post_save например, но где там информация о прошлом инстансе и какие поля меняются? Шо делать?
Он берёт последнюю официальную версию, на текущий момент это 3.11
Проверил, сделал docker pull python:3, получил версию 3.11.2
В этом и проблема FROM python:3
Если же у тебя уже скачен python:3, то этот образ потом всю жизнь будет использоваться, поэтому если докер на машине стои давно, там может быть очень древняя версия питона-3. А на другой машине будет последняя версия, не совместимая по либам.
>Потому что всё айти это абстракции и оно очень разносторонее и витиеватое. Подготовить какой-то трушный академический материал можно только по базе, потому что она всегда одна и почти не меняется, а чтобы дальше учить
Главная сложность обучения в том, что тебе надо по кругу-спирали учить, сначала по вершкам всё по разным предметам, потом глубже, вникая в то, что до этого не понимал, потом ещё глубже и т.п.
Всё друг на друге завязано. Причём система нужна. Тебе что-то может быть вроде бы не нужно, но реально полезно для понимания принципов и подходов в тех направлениях, которые тебе нужны.
>>57298
>>57310
>>57502
Спасибо за ответы. Я кажется понял, как устроена функция. Return на скрине не завершает все итерации (фреймы) функции, а только самую последнюю, в которой k=1.
Алсо, зацените как решил задачу. Говнокод? Как следовало бы упростить?
https://pastebin.com/f56sVW7f
pre_save
Мне для телеграм бота.
Я это делаю zsh-ем. И, если бы Python был удобнее, то, возможно, и его бы на shell поставил.
Питоняши, объясните, как вы в jinja шаблонах безопасно получаете значения из вложенных аттрибутов? В жинже и питоне нет safe navigation operation и внутри жинжы не работает getattr.
Какой-то странный у тебя вопрос. Обычный foo.bar это и есть getattr, но дефолтное значение это класс Undefined, который можно задать свой в настройках environment. Обычно никто не хочет видеть никаких undefined в выхлопе, поэтому там по умолчанию вроде бы креш при попытке отрендерить этот undefined, а не в момент getattr.
https://jinja.palletsprojects.com/en/3.1.x/templates/#variables
Возьми какой-нибудь transmission daemon и рули им через grpc. Батарейки вроде бы есть готовые.
Хотели кстати добавить все эти ?? операторы, но почему-то не стали.
https://peps.python.org/pep-0505/
https://lwn.net/Articles/924114/
Вроде бы не захотели слишком много изменений в языке с такой маленькой выгодой. Ну и там срачи не прекращались как это сделать правильно.
>Какой-то странный у тебя вопрос. Обычный foo.bar это и есть getattr
Конечно же нет. Я написал "безопасно" не просто так. Если написать так foo.bar то упадёт с ошибкой если такого аттрибута нет. А мне бы хотелось указать какое-то дефолтное значение или безопасно вернуть None
Я мимо проходил и понятия не имею о чем вы тут разговариваете, но ответ на твой вопрос явно hasattr
Однако, абсолютное большинство людей осиливших вышку, обычно умнее и эрудированнее. Быстрее соображают и более СИСТЕМНО подходят к решению задач.
Ну и для работодателя, вышка — это типа как справка, что не ты не дебил. Потому как в СНГ если не смог в вышку(которую получить тут как нехуй делать) — то это как маркер-отбраковка неуспешных, глупых и ленивых. Либо «непонятых гениев» лол, которых один на что миллионов.
Так что не стоит тут приводить примеры-исключения успешных людей без вышки, они только подтверждают правило в силу своей малочисленности
>они только подтверждают правило в силу своей малочисленности
а у тебя то вышка есть?
тогда объясни нам что это абсурдное высказывание вообще означает? как такое возможно с позиций математической логики?
какие подводные ?
Я тебе ответил опираясь на доки. Ничего там не падает с ошибкой.
> без всяких ASGI
А так можно?
> какие подводные ?
Не должно быть каких-то серьёзных подводных, но я бы это в отдельный контейнер запихнул от греха подальше.
>А так можно?
о, я что-то тупанул. Думал у fastapi есть свое приложение типа как flask, но его нет и всегда подразумевается какой-то сервер.
Ну ладно. Тогда какой сервер выбрать для ЕДИНСТВЕННОГО треда?
Делаешь один воркер uvicorn и используешь def вместо async def
Это тред про питон, а не про срачи. Если хочешь, создай тред в бэ и там хоть до усрачки ищи, что там возможно с «точки зрения математической логики»
Нет, чувак. Это тред про то, где ты обосрался рассуждая о том, что вышка нужна, хотя она не дала тебе нужных навыков ведения дискуссии и логического мышления.
Ты тупой?
Я тебе говорю - пиши на сокетах и забудь про asgi
Хочешь на фастапи? Будь добр жить с ним, иначе оно не работает
Ок. Я обосрался, вышка не нужна, в дискуссию я не могу.
теперь пиздуй в бэ, няша. Там твое место
В НЕРЕЛЕЙТЕД ДИСКУССИИ ПАРИТЕТ
@
"ВСЕ НОРМАЛЬНО, ПРОДОЛЖАЕМ"
@
ПОПУСТИЛИ
@
"ВАЩЕТ ЭТО НЕРЕЛЕЙТЕД, УХАДИ"
Исключений мало, в процентном отношении их сильно меньше, чем соответствующих общему правилу. Это с точки зрения логики.
Если смотреть примеры великую тройку Гейтс-Цукер-Джобс, то все они начинали получать вышку, а потом бросили, а взлетели не за счёт квалификации или карьерного роста, а за счёт того, что могли решительно действовать, самостоятельно, рисковать, могли идти против течения. Они всегда работали только на себя.
Они в некотором роде тоже правило, что необходимо, чтобы достичь успеха. Только не надо забывать про ошибку выжившего, там чудовищные риски, успех приходит к единицам, другие за бортом.
Так и в фласке, я на 90% уверен что там простой wsgi-сервер для разработки. Wsgi/asgi реализовать сильно проще, чем парсить http самому.
>Исключений мало, в процентном отношении их сильно меньше, чем соответствующих общему правилу. Это с точки зрения логики.
По-прежнему какая-то хуйня.
Наличие исключение не увеличивает правдоподобность высказывания "вышка не нужна". Не "подтверждает правило".
Подтверждало правило бы наличие сведений о долях среди разработчиков. Или надежные сведения о том, что разработчики с вышкой рассуждают более здраво.
Но вот тебе новые сведения: у меня нет вышки и это не мешает мне видеть и противодействовать тупости.
ладно, давай признаем что это была прост народная поговорка. но постарайся ее не использовать больше.
Ну смотри, довольно интересно то, что вот из самых-самых ярких персонажей довольно много тех, кто вышку бросил. Вот много ли настолько ярких успешных имён вообще?
Много ли ты фамилий этого уровня вообще можешь назвать?
Илон Маск ещё, который бакалавр. При этом там он вопреки родителям сначала в один универ поступил, потом перевёлся в другой, потом после бакалавна пошёл учиться дальше, но сразу бросил и ушёл в бизнес.
Но тут противоречий нет. Это просто люди, которые умеют идти вопреки, и они бизнесмены-основатели, а не инженеры. Им на самом деле вышка не очень нужна. При этом у этой тройки часть вышки есть. Но им другие данные нужны, хватка, этому не учат в универах.
Среди топовых инженеров-технарей, пусть не миллиардеров, скорее всего почти все с вышкой. Ну может кто бросил, но думаю почти нет тех, кто даже не пытался.
Глупо считать процент добившихся успеха относительно ВО или нет.
Конечно, процент у тех у кого есть ВО, будет просто намного выше. Но это потому что:
А) Они более обеспеченны изначально с большей вероятностью.
Б) В среднем более амбициознее и больше стремиться будут
В) Очевидно в среднем более умны.
Но это значит, что нужно сравнивать изначально по этим категориям, а не ВО, но это сложнее в вакууме, а по корочке проще.
Вообще, это самая главная идея, пытаться судить о себе по какой-то общей статистике. Это как если большая часть мужчин сдохнет до пенсии и страдает повально алкголизмом, то значит и тебе вероятнее всего такая судьба уготована. Нет, ты легко может пойти другим путём. Проблемы просто нулевые, как и без ВО может добиться успеха, если стремишься, и не важно, что 90% без него неудачники
Ну вот смотри, есть другое ещё. Если ты учился, то ты более-менее можешь спустя какое-то время оглядываться назад и оценивать, что тебе дало чего-то, а что не дало. Поменяло как-то мышление, или нет.
С другой стороны, если у тебя опыта обучения нет, оценить сам ты не в состоянии. Ты не можешь оценить опыт, которого у тебя не было.
Моя оценка как чела с котируемой вышкой, что всё-таки она нужна и полезна. Мозги меняет. Может не вышка целиком, но вот несколько курсов от неё уж точно.
Вот реально, мозги мне поменяло довольно сильно в лучшую сторону. Это не оправдание "потерянного времени". Я может потерял что-то, когда учился, потому что не учился многим вещам, которым следовало. И куда больше я потерял уже после универа, делая не то и не так.
Да, это очень важный фактор. Суть школьного образования научить ребёнка обучаться в принципе, суть высшего научить его само обучаться. И самообучение постоянное тут обязательно, пусть это даже в каких-нибудь играх, если это не обычное кинцо, главное, что мозг работает, ищет источники, обучается паттёрнам обучения и так далее.
Ну и глупо не получать ВО, но бывает у тебя таких возможностей банально нет. Или нет возможностей поступить туда куда хочешь, а тратить время просто на вышку ради корочки смысла не видишь. Поэтому статистически всё будет сильно в пользу тех у кого ВО есть, но к себе её применять не обяательно, как и негру не обязательно бежать барыжить наркотой
>Моя оценка как чела с котируемой вышкой, что всё-таки она нужна и полезна.
Я как тоже отучившийся говорю: вышка пригодилась, даже с учётом того, что я мало чем, освоенным в ВУЗе пользовался явно, но я очеьн много разного узнал и изучил, влез в кучу самых разных тем и хоть немного пощупал работу IT (именно сука информационных технологий вообще) на массе уровней: от микрокода и регистров процессора, до сети и web-кодинга, включая пресловутые нейронки и системы принятия решений, которые я изучал ещё в 00х. Знание, что устроено в смежных и не очень отраслях на самом деле здорово повышает уровень понимания происходящего.
Ну и, я, за время обушения в шараге, успел практически писать на: LISP, Turbo Pascal, C, C++, Delphi, Assembler, PHP, JS и ещё паре встроенных ЯП.
После этого однажды пришлось разбираться в коде на ASP, оказалось, что я его читаю чуть хуже родного, потом было ещё много чего, но, например, решив освоить Python я начал писать на нём через неделю.
Решает только то где вы сейчас, и что конкретно вас сюда привело. Что с вышкой, что без, решает что конкретно ты делал, бухал с кентами, играл в компик, смотрел видосики или разъёбывался до смерти пока не научишься делать N / не получишь работу в месте M.
Вуз с одной стороны заставляет шевелиться под угрозой отчисления, но с другой несколько лет заниматься тем к чему душа не всегда лежит, и что не пригодится никогда, только для общего развития, тем самым гробит внутреннюю мотивацию человека. Столько безвольных амёб я нигде, кроме универа, не видел. В вуз надо идти в сознательном возрасте, после 23-25, когда уже закончился пубертат, за конкретной перспективой и конкретными знаниями, желательно ещё и за свои деньги. Многие вместо вуза предпочитают более практичные курсы, где за меньшие время и деньги дают более целенаправленный результат. Хуй знает зачем в эпоху гугла и википедии нужна эрудированность.
Гуглом и википедией тоже нужно уметь пользоваться. Ведь там статьи вероятнее всего пищут всякие овощи, при том часто аганжированные.
Это если политоту читать. А так, по любому алгоритму и CS термину в англовики вполне толковые статьи. В ру вики много откровенной хуйни, которую реально овощи-имитаторы писали, но временами ок.
Ты можешь всё то же самое сказать про школу. Школа не нужна? Или там может дольше 9 классов не надо учиться?
Что тебе дали 10 и 11 классы? Сможешь толково, без общих слов, объяснить, почему эти два года были очень важны в построении твоей карьеры? Матрицы научили умножать, объяснили что такое производная, свой первый html на информатике написал? На это два года нужно?
Фактически продлили психологический концлагерь на 2 года.
10 класс нужен что бы хуитой маятся и одноклассниц мацать - вэ бест тайм ат скул, 11 что бы ботать ЕГЭ и забивать хуй на остальные предметы
В чем я неправ? Где моя ошибка? Неужели функции не могут менять глобальные переменные???
> Можешь пробросить в глобальный через global
Из тела программы в функцию? Как?
Из функции в тело программы я умею https://www.online-python.com/8J7OVpsuqP
Из глобального оно и так доступно на чтение, поиск имени идет снизу вверх.
Но при записи ты затенишь глобальное имя локальным.
https://www.online-python.com/6dSM1qz4Js
Алсо, т.к. глобальные имена доступны, ты можешь мутировать мутируемые структуры вроде словарей и списков и они изменятся.
Ну т.е. там надо глобал а, б и сможешь их менять.
Так это надо глобальную переменную объявлять (мб ещё можно переобъявлять, но это неточно) в теле функции. А я хотел это в теле программы как-то сделать. Но видимо так нельзя, спасибо, вроде разобрался.
теперь надо ещё перевести, что ты имел в виду под мутациями списков
>у меня нет вышки и это не мешает
Да ты просто свою тупость со стороны не видишь.
Даже не понял, что такое исключение из правила, хотя это вообще в школе поясняют.
>но с другой несколько лет заниматься тем к чему душа не всегда лежит
Чел, вся жизнь такой будет. Это тренировка к рутине и обязаловке. Никто в мире не занимается только ему интересным, даже бомжи.
>где за меньшие время и деньги дают более целенаправленный результат
Который актуален гораздо меньшее время (на порядки), чем ВО.
Нет никакой проблемы обучить макаку давить на несколько последовательностей кнопок. Но когда система меняется, все макаки выбрасываются в утиль.
a = 0
def puk():
__global a
__a = 5
Или что ты имел в виду? Как-то изначально запутался, лол.
С мутабельностью просто - ты можешь менять объект без прокидывания через глобал, имея только его имя, потому что он может изменяться. Примитивы вроде чисел или строк не могут, поэтому их обязательно надо прокидывать.
>Который актуален гораздо меньшее время (на порядки), чем ВО
Ты наверно думаешь, что там будут обучать фреймворку и все. Как будто не существует курсов по SQL, http, алгоритмам и т.д. Суть именно в том, что бы настакать только нужные предметы, роадмапы по обучению есть в сети.
>только нужные предметы
Вот это и есть макака. Вещь. Биоробот. И, в конечном итоге, мусор, который легко выбрасывается и нанимается другая макака, с только нужными предметами.
Скоуп это словарь, весь питон построен на словарях, globals это вызов глобального скоупа, каждый раз когда ты вызваешь переменные это просто проверка этих словарей
>И, в конечном итоге, мусор, который легко выбрасывается и нанимается другая макака, с только нужными предметами.
Ты сейчас буквально всю коммерческую разработку описал.
Ладно, тогда какие курсы в ВУЗе имеют долгосрочность знаний и при этом не являются только нужными?
Начинал вкатываться еще во второй питон? При миграции перекатывания использовал six и 2to3?
>Ладно, тогда какие курсы в ВУЗе имеют долгосрочность
У тебя и мышление-то макаки. Ты поэтому не поймёшь, что не курсы важны, а система, лол.
А в разработке разрабатывают люди с вышкой, это таски они рисуют макакам, которых можно на следующую задачу новых набрать.
на 2.7 пришлось пописать кое-где, но я писал сразу совместимо с 3. а вкатывался сразу в питон 3.4
> все макаки выбрасываются в утиль
Влажные фантазии. Я знаю с десяток человек с ВО, у которых выбор либо НИИ за 40к, либо идти в утиль. Выживают только те, кто не переставал учиться, что после курсов, что с ВО.
Дык, тупому, как привести пример систему. Он кукарекает олигофрению типа «в каком курсе преподают систему? Как предмет называется, где системе учат?» Это невообразимая идиотия в медицинском смысле. Все курсы и есть система, челик. Весь ВУЗ сам по себе даёт тебе систему, если ты учишься.
Надо по профилю Во получать, а не просто абы какое.
>Выживают только те, кто не переставал учиться, что после курсов, что с ВО.
Это тупое клише. В смысле, его все знают до уныния. Учиться, когда у тебя системный подход после вышки, гораздо проще и эффективнее, чем ты тупо наберёшь курсов и их отсидишь или заучишь несколько шаблонов.
Да не ври себе, нет никакого системного подхода, есть только привычка переваривать больше информации, проводить больше учебных часов, потому что иначе отчислят. Не получаются у нас на выходе из вуза сплошные учёные и кандидаты наук, только посредственные недоученные работники с некоторым фундаментом эрудированности.
Система состоит из компонентов и связей между ними, курсы в вузе связанны слабо, даже в мат науках. В профессиональных дисциплинах это вообще набор разнородных компетенций
>есть только привычка переваривать больше информации, проводить больше учебных часов, потому что иначе отчислят
Это тебе так кажется. На деле, инженер от нитакусика-самознайки отличается прямо на слух — достаточно речь послушать.
>Не получаются у нас на выходе из вуза сплошные учёные и кандидаты наук
Долбоёб не в курсе, что они на выходе с аспирантуры должны случаться. На выходе из ВУЗа — инженеры.
>эрудированности
С твоим дрочем на курсы, которые тебе нужны для фрилансирования телеграм-ботов микрозаймов, эрудиция тебе не грозит.
Сразу видно, белый господин зашёл пояснить онанистам их место. Увожаю.
>а из методики их подбора
Методика это когда студентов дрочат матаном на первом курсе, они его забывают после экзаменов, а потом преподают на проф занятия на 3-4 и про матан на них даже не вспоминают?
>они его забывают после экзаменов
Чел, если ты забываешь базовые курсы сразу после курса, тебе в ПТУ надо. Собственно, весь диалог с тобой — тому доказательство. Ты просто тупой. Макака.
Это ещё с того треда было понятно, но ты никак в это не можешь поверить.
Ты кривую забывания не наебешь, если не используешь знания и не повторяешь их, то через год от них уже ничего не остаётся
Ну используй, кто мешает. Делай лабы, пиши семинары, курсовые, делай пет-проекты и так далее. В ВУЗе нагрузят и не забудешь. Потом — сам себе буратино.
>через год от них уже ничего не остаётся
У тебя кривая олигофрена, что ли? Нормальный человек и через 15 лет будет что-то там помнить, при случае даже освежит. А уж как что применять, это на всю жизнь, если натренировался. Это вообще в стороне от кривой. Если помнишь, что надо сделать градиентный спуск, но его самого не помнишь, то вспомнишь за пять минут, освежив знания в гугле. А вот если никогда не применял и не знаешь. что это, просто прочёл абзац и быстренько сдал лабу, то это к тебе вопросы, к твоей ТУПОСТИ ёбучей.
мозг не может всё уместить. поэтому ненужные знания перезаписываются поверх
помнишь как ты дрочил книжки паттернов и нихуя потом не использовал? а ты в курсе, что стас пьеха встречался с сестрой рэпера тимати? вот теперь это знание затёрло какой-нибудь паттерн
>мозг не может всё уместить. поэтому ненужные знания перезаписываются поверх
Просто у тебя мозг размером с баночку для анализов.
У других всё может.
>это знание затёрло какой-нибудь паттерн
Какое? Чел, ты ТУПОЙ бля, и это вообще навсегда. Дальше будет только хуже, потому что мозг изнашивается. А ты уже тупой.
Ты путаешь перезапись в долговременную память, закрепление и освобождение кратковременной памяти. И это пиздец какая дыра у тебя в «интеллекте» (размером с баночку мочи).
долговременные знания затираются, это факт. если ты решил, что у мозга какой-то необъемный ресурс, то ты даже в школьной физике плох
>долговременные знания затираются, это факт.
Лолъ... тупынький. А что ж за феномен такой, что в старческом возрасте люди начинают плохо помнить события дня, но очень хорошо — события детства, в мельчайших подробностях? Не затирается ничего, куколд тупой.
>если ты решил, что у мозга какой-то необъемный ресурс
У твоего мозга ресурс — баночка мочи. Я это сказал. Не додумывай за меня ничего.
Не правяраў, але паспрабуй дадаць да save_image() радкі:
# dadać sviatła vyjavie
enhancer = ImageEnhance.Brightness(img_resized)
img_resized = enhancer.enhance(1.5) # 1 = biaz zmienaŭ
https://pastebin.com/d6XLDRKH
можешь проверить себя и вспомнить в мельчайших подробностях что-то, что ты учил 10 лет назад, и чем с тех пор не пользовался. хуй ты что вспомнишь. у тебя могут быть только остаточный призрак этих воспоминаний, потому что нейроны затерлись новыми знаниями о том что стас пьеха встречался с сестрой тимати
что за странный бзик на банках с мочой? отхлебнул что ли по ошибке?
Ну, я у примеру, вспоминаю как я на первом курсе учил матрицы, уравнения по крамеру или как его там. Это было как раз десять лет назад. Я не помню подробности, но знаю что такая штука есть и если нужно будет - загуглю.
>Я не помню подробности, но знаю что такая штука есть
это и есть "призрак воспоминаний". точнее, остатки нейронных связей, поверх которых записана другая инфа. чем дальше в лес, тем больше тебе придется "загуглить"
Человеческая память устроена совсем иначе, чем вот запись на бумаге-доске или там на жёстком диске компьютера. Это нейросеть очень хитрой архитектуры.
Просто нет какого-то конкретного места, где что-то хранится, или что-то поверх другого перезатирается.
Ещё есть прикол в том, что вот обычные образные воспоминания не хранятся, они перевоспроизводятся. То, что ты помнишь и детства, это не воспоминания, а плод фантазии много раз переписанный, далёкий от реальности. Масса опытов-исследований по этому поводу была.
Обучение кстати не о том, чтобы много чего запомнить, а о том, чтобы взаимосвязи между своими знаниями строить, уметь абстрагироваться, находить общие паттерны-идеи в разных знаниях, реализациях и т.п., это и называется системой.
память это нейронные связи. старые неиспользуемые связи разрушаются в процессе забывания, механизма освобождения места для новой инфы. новые связи образуются в процессе обучения поверх забытого
поэтому для воспоминания чего-то, что ты учил год назад, тебе надо это что-то "загуглить". банально часть нейронных связей уже разрушилась в процессе забывания. и нейроны перевязались, храня другую инфу
поэтому нет смысла распыляться на всякую модную фреймворко-поебень, которая через 5 лет никому не нужна будет. но важно помнить, что возраст дмитрия нагиева 55 лет
>можешь проверить себя и вспомнить в мельчайших подробностях что-то, что ты учил 10 лет назад, и чем с тех пор не пользовался.
Могу. тебя это удивляет?
А потому что ты — тупая макака с ICQ = 3,5, а у меня — советский университет за плечами.
>нейроны затерлись новыми знаниями
Не затираются нейроны, не неси ебанатской ереси.
> у меня — советский университет за плечами
так ты еще и скуф престарелый, понятно желание потроллить напоследок в интернете. ну ладно, не буду ломать тебе кайф. тем более, что отвечать не на что, ведь аргументов у тебя нет
У тебя ложное понимание памяти. Наслушался, поди, курсов успешников, в крипту влошился.
ну почти. наслушался родигера и макдермотт и насмотрелся фоток нейронных связей. в таких дискуссиях почему-то всегда самозарождается чувак, который говорит выничавонипанимаете, но при этом всем очевидно, что нихуя не понимает он сам
> родигера и макдермотт
Понятно. Эти вообще 60 лет назад что-то там фантазировали, что сейчас уже детский сад.
>фоток нейронных связей
Фтряпки просто... лучше б поебался, глядя на порнофотки.
википедия тебя подвела друг
Какой только повод не придумают лишь бы не учиться и ждать лучших времён
Помогите с задачкой (вроде простая, но я совсем запутался)
days = ('пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс')
steps = [1500, 3445, 13222, 10000, 12555, 1300, 6000]
result =
Программа должна вернуть список кортежей, каждый из которых содержит два элемента: название дня недели и количество шагов за этот день.
result =list(zip(days, steps)) - знаю что можно сделать так. Ответ зачли, но я хочу полностью понимать всё что пытаюсь учить
По условиям задачи нужно на каждой итерации цикла создавайте кортеж из элементов двух последовательностей с одинаковым индексом и добавляйте его в список result. Или мозги плавятся, или нужно перечитать циклы, я чёт совсем не врубаюсь
Огромное спасибо. Я совсем забыл что "пустые" множества можно создавать в разном формате. Добра тебе !
*пустые переменные и задавать им разные параметры (или как там правильнее сказать) ещё раз спасибо
Файл main_form.ui.py
Это копия, сохраненная 17 июня 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.