Программирование

Ответить в тред Ответить в тред
Питон тред №108 /python/ Аноним 18/12/20 Птн 14:09:55 18834411
just-enough-pyt[...].jpg 53Кб, 750x422
750x422
shutterstock368[...].jpg 596Кб, 1000x657
1000x657
Тред, посвящённый языку программирования Питон, #108

Предыдущий: >>1873283 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться

#######################################

ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года

Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.

— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х

— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4

— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
исходник: https://dumpz.org/bASGKD8cCFDf
Аноним 18/12/20 Птн 15:26:48 18835242
>>1883433 →
Кхм, спасибо.
Значит, первый вариант лучше. Хотя мне не очень нравится загромождать код лишними буквами (типа, почему бы сразу в параметре не установить нужное дефолтное значение, а не оперировать на основании None он или нет), но если так правильнее, то я приму.
Аноним 18/12/20 Птн 15:29:37 18835313
>>1883524
Ах черт, ну конечно.
У меня ж там рандом, а со второй записью self.a всегда будет возвращать одно и то же число, сгенерированное на старте программы. Тогда конечно это херня.
Аноним 18/12/20 Птн 16:27:56 18836574
>КОКОКО У НАС ЯЗЫК БЕЗ ЧЕТКОЙ ТИПИЗАЦИИИ ВСЕ РАБОТАЕТ И ТАК ЗАЕБИСЬ
>ПУК СЕРЕНЬК ЦИКЛ ФОР НЕ РАБОТАЕТ С ДАННЫМИ ТИПА ИНТЕДЖЕР)))))
Пиздец параша, нахуй я только время потратил на эту недопарашу? Лучше попробовал доучить кресты.
Аноним 18/12/20 Птн 16:35:42 18836675
>>1883657
Лучше бы ты с мамкиной шеи слез уже.
Аноним 18/12/20 Птн 16:58:01 18836986
image.png 711Кб, 709x572
709x572
>>1883657
Конечно, братан, если ты не осилил чтение ошибок в питоне, но в плюсах тебя однозначно ждет успех.
Аноним 18/12/20 Птн 18:27:42 18837987
>>1883657
а чё не так с фором, просто типичного инт и и++ фора нету и всё тут, а только проход по элементам

Аноним 18/12/20 Птн 18:34:29 18838158
>>1883657
Даун тупой

for i in 'four':
#loop of 0,3

kys
Аноним 18/12/20 Птн 18:35:02 18838189
>>1883798
Не обращай внимание на уточку. Он просто увидил фор из крестов и все что выглядит по другому для него неправильно.
Аноним 18/12/20 Птн 18:38:04 188382210
>>1883698
Главное на C++ начинать с "fuck you", а не с "пошёл нахуй". Иначе сначала придётся курить мануалы по работе с юникод-строками, переводе из одной кодировки в другую и т.п.

Аноним 18/12/20 Птн 19:17:26 188386011
Аноним 18/12/20 Птн 19:22:49 188386812
1357809564141.png 1528Кб, 1152x980
1152x980
>>1883860
>не осилил простейший язык для вката, которым обучают даже пятилетних детишек
>ЭТО НЕ Я ИМБЕЦИЛ, ЭТО ВЫ ГОВНОЕДЫ!
Аноним 18/12/20 Птн 19:27:39 188387713
>>1883868
Мальчик, я на си писал когда ты под стол ходил.
Аноним 18/12/20 Птн 19:32:15 188388614
Аноним 18/12/20 Птн 19:34:14 188388915
>>1883877
Что нибудь кроме лаба1 и лаба2 написал?
Аноним 18/12/20 Птн 19:37:20 188389116
Аноним 18/12/20 Птн 19:39:19 188389417
image.png 247Кб, 680x709
680x709
Аноним 18/12/20 Птн 19:53:31 188390918
Гайз, а программирование на питоне ещё бурно развивается? Или самый мощный бум уже прошел и тем, кто знает джанго в совершенстве можно писать 3 строчки в день, есть пиццу флорентину и не развиваться дальше?
Аноним 18/12/20 Птн 20:01:06 188391919
>>1883877
>не может прочитать документацию по методу range()
>я на си писал
На хуе ты писал.
Аноним 18/12/20 Птн 20:19:34 188394820
>>1883909
Да, развивается. Каждый месяц новый фреймворк, который надо знать. Вот типа FastAPI.

И в целом в тренде надо быть. Например если не знаешь новые фичи по тайпингу из 3.8, то ты заплесневел.

Одно счастье, в 3.9 так ничего не вкатили и в 3.10 не собираются.

Джанго ХЗ, но наверное особенности 3 версии тоже знать надо.
Аноним 18/12/20 Птн 20:32:53 188396321
>>1883948
Как разрабы обычно узнают о новых фичах своего языка?
Аноним 18/12/20 Птн 20:33:30 188396422
>>1883948
Спасибо
Я просто уже месяц в ваш питон вкатываюсь. И думаю: "а надо ли мне оно". Может в инженегрии остаться перспективным специалистом за 320 рублей в час. У нас с начала 00-ых (когда начали везде ПЛК ставить) ничего не изменилось. И то это изменение на мне косвенно сказалось.

Олсо напишу что меня бесит в ваших тредах:
Жалобы, что приходится думать и что вы пишете при этом всего 100 строчек в день. Я, например, могу 2-3 дня над чем-то поразмышлять, а потом как обезьяна месяц сидеть и реализовывать. И я вам в этом действительно завидую.

Добра тебе
Аноним 18/12/20 Птн 20:37:29 188396823
>>1883964
>а потом как обезьяна месяц сидеть и реализовыват
Это например что?
Аноним 18/12/20 Птн 20:38:57 188397124
>>1883948
И ещё вопрос. На моём заводе считается работать 60 часов в неделю - обычным делом (бывали месяца, когда я меньше 70 ч. не работал). А в целом по специальности если звонят в выходные, то обязан ответить иногда и если что зайти на совещание.

Слышал, что у программистов дикие переработки. Насколько дикие?
Аноним 18/12/20 Птн 20:40:31 188397425
>>1883971
>иногда
лишнее
хотел написать, что такое и ночью бывает, но тогда если не предупредили, то можно говорить, что не слышал
Аноним 18/12/20 Птн 20:46:03 188398226
>>1883971
>Слышал, что у программистов дикие переработки
Это зависит от конторы и очень зависит от ПМа. Если твой ПМ - бесхребетный слизняк, который не может или не хочет отстаивать интересы своей команды, то в тебя будут постоянно лететь блокеры, хуёкеры. Типична внезапная смена приоритетов, когда ты два дня корпишь над задачей, а потом она внезапно попадает в холд и надо срочно сделать вот это и вообще оно уже должно быть сделано вчера. В таких условиях твои попытки запланировать свои законные выходные дни могут быть смехотворными. Выходишь в субботу и не ебёт. Потому что НАДА.
Аноним 18/12/20 Птн 20:52:39 188398927
>>1883982
>Типична внезапная смена приоритетов, когда ты два дня корпишь над задачей, а потом она внезапно попадает в холд и надо срочно сделать вот это и вообще оно уже должно быть сделано вчера.

Бля, это моя фирма на 100%. Особенно про вчера.

Но у нас поинтересней. Задача ПМа - выжать из тебя все соки, за как можно меньшие деньги. И обычна цена рабочих часов o-малое от срывания сроков (потому что твою работу ждет десяток других инженегров) или благосклонности заказчиков.
А за сотрудников впрягаются руководители отделов, их цель, чтобы работник никуда не ушел.
Аноним 18/12/20 Птн 21:54:06 188405428
>>1883964
>а потом как обезьяна месяц сидеть и реализовывать
Обычно так и бывает. Месяц строчишь как угорелый, вываливаешь море функционального кода.

Спустя полгода надо добавить маленьку фичу или что-то подправить, ты открываешь код, ругаешься матом на того, кто этот говнокод высрал, неделями думаешь, как именно внести несколько строк кода, чтобы заработало и не развалилось.
Аноним 18/12/20 Птн 21:55:29 188405629
>>1883989
>Бля, это моя фирма на 100%.
90% проектных работ. Причём не только в программировании.

Аноним 18/12/20 Птн 21:58:19 188405830
1.JPG 58Кб, 514x656
514x656
Свойство - это объект с методами, которые позволяют косвенно обращаться к атрибуам и зачастую в чем-либо ограничивают такой косвенный доступ. ©Цитата из книги

Такое впечатления, что автор специально старался написать это максимально непонятно.

Объясните пожалуйста доступным языком, что такое свойство. Например в этой вот программе.
Аноним 18/12/20 Птн 22:00:01 188405931
добрый анон, помоги. вкатываюсь в питон. прочитал и изучил книгу "укус питона" по совету из прошлого треда, и подошел следующий вопрос - что дальше? пока прохожу проект эйлера по питону, но не знаю что именно читать и учить дальше.
Аноним 18/12/20 Птн 22:07:48 188406232
>>1884058
Суть вот в чём.

У тебя объект может иметь какие-то атрибуты, переменные, с которыми ты можешь работать напрямую
class MyClass:
____def __init__(self):
________self.num = 0

obj = MyClass()
obj.num = 123

Это не всегда хорошо, потому что у тебя нет контроля. Ты можешь некорректное значение присвоить, число не из диапазона или не число вообще. Может быть пользователь вообще не должен менять сам эту переменную - например, это счётчик количества вызовов метода и др.

Вот для этого и нужны property. Они для тебя как просто переменные объекта. Но реально прямого доступа у тебя к ним нет, он делается через сеттеры-геттеры.

Вот в этой программе у объекта нет переменной name. Но для пользователя эта переменная есть, всё выглядит так, как будто эта переменная есть. Но ты не можешь присвоить некорректное имя, пустое в данном случае. Ты можешь какие-то дополнительные действия делать, если меняешь имя.

В принципе это лишь синтаксический сахар, без сеттеров-геттеров это делается сознанием методов
setName()
getName()
и работой через них.
Аноним 18/12/20 Птн 22:18:11 188407033
>>1884062
Лол, помню баловался шарпом в бородатые годы, там эти геттеры-сеттеры надо было руками прописывать на каждую хуйню, пиздец занятие.
Потом вроде добавили сахарку под это дело.
Аноним 18/12/20 Птн 22:24:41 188408234
>>1884070
>в бородатые годы
Это в 2005? Авто-проперти добавили сто лет назад
Аноним 18/12/20 Птн 22:29:58 188409335
Аноним 18/12/20 Птн 22:30:16 188409536
А чем заниматься кроме лаба2-то на пайтоне
Аноним 18/12/20 Птн 22:51:58 188414337
>>1884058
В питоне нет свойств, тебя наебали.
Аноним 18/12/20 Птн 22:52:49 188414538
>>1884070
Хуею, что Джава до сих пор не утащила {get; set;} себе.
Аноним 18/12/20 Птн 22:56:43 188415839
>>1883909
Джанго-програмист != пайтон-программист
Аноним 18/12/20 Птн 23:01:02 188417540
Сап прогач. Не прочитал еще ни одной книжки, закончил только что(3 недели) курс на степике, куда двигаться дальше?
Аноним 18/12/20 Птн 23:02:20 188417941
Аноним 18/12/20 Птн 23:03:24 188418142
>>1884179
Поколение пайтон, курс для начинающих
От АйкьюОпшн
Аноним 18/12/20 Птн 23:03:50 188418243
>>1884175
В курс по алгоритмам от CSS.
Аноним 18/12/20 Птн 23:06:54 188418444
Аноним 18/12/20 Птн 23:24:36 188419645
>>1884145
TypeScript первый придумал, c# сперла с TS как обычно, Java слизывает с C# но оооооооченб медленно и криво
Аноним 19/12/20 Суб 02:12:21 188429546
>>1884058
Это связано с инкапсуляцией, если ты не в ооп, то тебе это нахуй не надо, чекай приватный и защищенный методы, а так это гавно без задач.
Аноним 19/12/20 Суб 07:00:08 188434447
сап аноны, допустим есть два beep-звука подлинее и покороче, каким образом можно различить их?
Аноним 19/12/20 Суб 07:12:10 188434548
>>1884344
тупанул, есть последовательность beep сигналов разной длины морзе которая дается на вход, каким образом можно расшифровать эту последовательность? По факту, мне нужно узнать только длину этих сигналов, и дальше уже сопоставлять с алфавитом, но каким образом можно узнать длину сигнала?
Аноним 19/12/20 Суб 08:20:29 188435349
Сап.

Система: Windows 10
Версия питона: 3.9
Библиотека: только стандартная, нет возможности загрузить какие-либо дополнительные пакеты.

В буфере обмена лежит растровое изображение формата .BMP, а точнее скриншот, который туда попал после симулирования нажатия клавиши Print Screen.

Питоновский ctypes позволяет мне взять изображение из буфера обмена и сохранить его в файл, но есть одна проблема, выходной файл имеет большой размер.

После того как я конвертировал BMP в PNG библиотекой Pillow размер уменьшился до приемлемого без каких-либо потерь качества.

Собственно вопрос в том, как на стандартной библиотеке (Pillow в неё к сожалению не входит) возможно конвертировать BMP в PNG ?
Аноним 19/12/20 Суб 08:51:36 188436150
Аноним 19/12/20 Суб 08:55:23 188436351
>>1884345
Посчитать разность времени начала и конца сигналов? Да не, вряд-ли.
Аноним 19/12/20 Суб 09:04:21 188436552
>>1884345
А как получаешь? Через микрофон? Ну так пиши стрим и анализируй любой либой что работает с форматом того стрима, что пишешь. Это примерно как найти начальную { и конечную } но другой формат данных.
Аноним 19/12/20 Суб 12:35:13 188442253
>>1884175
Я уже месяц как вкатываюсь.
У меня была программа: 1 курс от Bioinformatics institute, теперь второй курс. ЕЩё алгоритмы почитал "grokhing alghoritms"
Аноним 19/12/20 Суб 13:49:27 188446554
1608374931488.jpg 27Кб, 644x483
644x483
Сап аноны, почему переход на новую строку вызывает ошибку в функции?
Аноним 19/12/20 Суб 13:59:04 188447755
>>1884465
Потому что open() строит класс, одним из методов которого является метод .write() который что-то записывает в твоей файл.

Вызвать метод во время инициализации класса незя.

Но если очень хочется, то можно, просто вместо реального файла используй виртуальный.
Модуль io класс BytesIO() позволяет сразу что-то в виртуальный файл записать.
Аноним 19/12/20 Суб 13:59:15 188447856
1608375520863.jpg 41Кб, 820x483
820x483
>>1884465
Я там какую-то хуйню на пирил прикрепил. Вот новая пикча.
Почему \n вызывает ошибку при вызове функции?
Аноним 19/12/20 Суб 14:00:54 188448357
Аноним 19/12/20 Суб 14:01:20 188448558
>>1884478
Потому что метод .write() экземпляра класса файла принимает только 1 аргумент, а ты передаешь ему 2 строки.
Напиши "some_function" + "\n" и ошибок не будет.
Аноним 19/12/20 Суб 14:03:56 188448959
Аноним 19/12/20 Суб 15:01:48 188456460
Q all! Как в проектах с гитхаба искать откуда оно все начинается? Точку входа, так сказать. Клонировал проект себе, открыл и охуел от количества файлов и классов. А так хочется посмотреть как люди делают годные вещи, освоить методологию разработки.
Аноним 19/12/20 Суб 15:02:42 188456761
>>1884564
ну бывает если выделить название функции он тебе найдет файл где она объявляется, по-моему это весь функционал подобного рода
Аноним 19/12/20 Суб 15:22:13 188459462
>>1884158
Чем занимается пайтон-программист?
Аноним 19/12/20 Суб 15:37:27 188460663
>>1884594
Душит своего пайтона.
Аноним 19/12/20 Суб 15:41:51 188460964
Аноним 19/12/20 Суб 15:42:37 188461065
>>1884609
Это DS, а не пайтон-программеры
Аноним 19/12/20 Суб 16:35:31 188464566
>>1884594
Логикой. Тут же большая часть - описание полей для моделей и формочек, прочей, можно сказать, серверной версткой, а остальное все за тебя делается.
Аноним 19/12/20 Суб 16:39:39 188464867
>>1884645
И суть даже не в том, что в Джанго ограниченые возможности на кастомизацию логики, а в том, что Джангоебы как правило ограниченные сами по себе и считают, что кроме их фреймворка ничего не существует.
Аноним 19/12/20 Суб 16:56:12 188466568
Двощ, помоги.
Есть одна функция test, которая отдаёт bool или int
Как исправить код так, чтобы не вызывать её два раза:

if test(arg):
var = test(arg)
...

Аноним 19/12/20 Суб 17:00:03 188467169
Аноним 19/12/20 Суб 17:03:05 188467470
>>1884665
Как обычно, стоило спросить и сразу понял, что можно переменную присвоить до проверки...
Аноним 19/12/20 Суб 17:36:23 188471771
>>1883441 (OP)
как я понял, при запуске файла *.py интерпретатор вставляет вместо всех импортов код соответствующих модулей, вместо всех вызовов функций - код самих функций, а есть возможность посмотреть на код, который после всех этих махинаций получится?
не спрашивайте нахуя это мне
Аноним 19/12/20 Суб 18:15:38 188475272
Сап двач
Как можно сделать это через регулярные выражения?
>Найдите все натуральные числа, не находящиеся внутри или на границе слова;

Заранее благодарю вас за помощь
Аноним 19/12/20 Суб 18:31:35 188476373
>>1884665
хуевая логика у тебя, функция должна одно из возвращать
Аноним 19/12/20 Суб 18:32:54 188476474
>>1884763
У меня функция ищет хуйню в хуйне и возвращает фолс если не нашла.
Аноним 19/12/20 Суб 19:59:21 188484175
Господа, помогите, пожалуйста. Хочу в JSON оставить только уникальные ключи. Никак не могу сообразить как сделать. Щит-код тут https://ideone.com/Zy3e6s
Аноним 19/12/20 Суб 20:10:36 188484776
>>1884764
Наверное тогда логичнее делать Optional[int]?
Аноним 19/12/20 Суб 20:14:03 188485477
>>1884841
То есть тебе надо чтобы второго owner2 не было в массиве, да ?
Аноним 19/12/20 Суб 20:25:32 188486178
Аноним 19/12/20 Суб 20:26:29 188486479
>>1884861
пизда
new_owner_id = list(dict.fromkeys(owner_id))
Аноним 19/12/20 Суб 20:34:32 188487180
>>1884864
тут вопрос в том, что в JSON пары {owner_id : media_id}, а твой код вернет только уникальные значения owner_id без пары media_id, что, как сам понимаешь, нас не устраивает. нужен еще один какой-то хитрый ход.
Аноним 19/12/20 Суб 20:36:18 188487681
>>1884871
тут вопрос в том что я тебя про массив спросил, а не про JSON
из json'а лишний owner вместе с media исчезнуть должен ?
Аноним 19/12/20 Суб 20:43:34 188488782
Ты какую-то хуйню обьясняешь, покажи что должно стать из этого жсона.
Аноним 19/12/20 Суб 20:44:59 188488883
>>1884887
внатуре долбоеб какой-то, если есть возможность до преобразования в джсон убрать лишние элементы, нахуя их из итогового джсона убирать
Аноним 19/12/20 Суб 20:54:11 188489284
>>1884876
да, из JSON owner_id вместе с media_id должен уйти. сорян, если туплю.
вот так должно получиться: {'result': [{'owner1': 'media1'}, {'owner2': 'media2'}, {'owner3': 'media3'}]}
Аноним 19/12/20 Суб 20:55:21 188489485
>>1884888
потому что важно сочетание owner_id: media_id. если из начального массива убрать лишний owner_id, то нарушается сочетание с media_id.
Аноним 19/12/20 Суб 21:23:44 188490986
>>1884717
>при запуске файла *.py интерпретатор вставляет вместо всех импортов код соответствующих модулей,
Нет, не верно.
Интерпретатор "делает импорт" и запускает код из модуля только один раз. То есть если ты в нескольких файлах проекта импортируешь скрипт, то он выполнится лишь один раз.

Ты можешь легко в этом убедиться, вставив отладочный print в модуль.

В этом принципиальное отличие от #include в Си.

Импорт - это создание в памяти объекта-модуля.
Аноним 19/12/20 Суб 21:30:02 188491487
improving Аноним 19/12/20 Суб 22:27:57 188495588
Привет всем, есть тут челы на лвл джун которые изучают джангу. Хочу связаться для дальнейшего развития вместе. Я заебался развиваться один
Аноним 19/12/20 Суб 23:25:42 188499489
Аноним 19/12/20 Суб 23:26:11 188499590
>>1884909
ну кстати import.reload() модуль импортирует еще раз
Аноним 20/12/20 Вск 00:14:09 188503191
>>1884955
Привет. Я думаю в джангу вкатываться. Но я пока совсем слаб и изучаю теорию. Думаю до джанги дорасту через месяц.
Вот на этом я остановился >>1884752
Аноним 20/12/20 Вск 00:15:52 188503292
>>1884564
Смотри историю коммитов на гитхабе. Но обычно если проект уровня hello world, забивают на нормальные коммиты
Аноним 20/12/20 Вск 02:51:59 188514193
>>1885031
напиши мне в телегу @chvmq
Аноним 20/12/20 Вск 08:37:17 188519894
Аноним 20/12/20 Вск 11:05:38 188528895
>>1884955
лвл джун это, к сожалению, реализация слабого бэка магазина (товары, корзина, заказ, покупатели и менеджеры) за 3 дня
Аноним 20/12/20 Вск 14:50:52 188542796
>>1885198
Так пихай сразу в зипе в словарь, к чему этот второй заход.
Аноним 20/12/20 Вск 15:05:23 188543597
>>1885288
Где ты видел джунов которые маназины делают за 3 дня? По твоей логике, за год выодит до 100 магазинов. Я мастеров-старперов с таким кол-вом не видел
Аноним 20/12/20 Вск 15:22:47 188544098
Как можно получить координаты окружности нужного диаметра с определённым шагом?
Аноним 20/12/20 Вск 15:30:06 188544299
Screenshot from[...].png 18Кб, 399x240
399x240
>>1885427
>>1885198
Как я понял задачу, должны быть только уникальные значения. То есть owner2 не должен выводиться вообще, поскольку дважды присутствует.

Я бы так сделал: https://ideone.com/sFIHqQ

Сначала считаем, сколько раз owner в owner_id присутствует, можно руками, но корректнее используя collections, потом проходим по owner и добавляем в вывод те элементы, число вхождений которых = 1.

Может быть Counter даже может какие-то ещё для этого инструменты имеет, но я слёту не вижу.

Если данные какие-то особо большие, то можно думать об оптимизациях, в зависимости от данных.

Например, если там словарь размером в сотни тысяч, а уникальных значений единицы, то надо иной подход использовать, чтобы не перебирать весь этот огромный список.
Аноним 20/12/20 Вск 15:31:15 1885443100
>>1885440
Используя синусы и косинусы, понятно же.
Аноним 20/12/20 Вск 16:25:51 1885493101
>>1885442
я так-то мимовкатыш, вообще про collections не слышал.
сделал вроде https://ideone.com/Kcxv9F, щас погоняю на данных, посмотрю где отрабатывает, где не отрабатывает.

>>1885427
вот оно отличие профи от вкатыша. не сообразил, что можно сделать все сразу.
Аноним 20/12/20 Вск 16:31:18 1885503102
>>1885440
любая точка B (x; y), координаты которой удовлетворяют уравнению (x)2 + (y)2 = R2, принадлежит окружности радиуса R или в твоем случае (x)2 + (y)2 = (D/2)2
Аноним 20/12/20 Вск 16:48:55 1885518103
Напишите мне регулярку пожалуйста, надо вытащить только месседж.
Сам не могу, я тупой.

https://pastebin.com/icMuXr3A



Аноним 20/12/20 Вск 16:56:14 1885523104
>>1885518
блядт почему-то удалилось на той хуйне, не понял
короче вот сюда кину как дурачок

<div class="message">
----- BEGIN MESSAGE -----<br />
O3eUssKKCz0Nj2p2JJLrI3dVxmcvBrUgkY0DgAdJZ3m9WB1wbDNJwQvU3xfuPZBZOrsURwtHqGGc8yy91cJoS59Mte684xYIPgtxDM4TjBWh0lhSnQ76M6I5bF353RDIYW5sz0cJsYQjaY1nFYjhVSdWn7RgOlOD8KWyBY7UNO3NCU17JbfvTih6fZcUbRo9saxTYvEC9xgCi7zR8EdRMkNS9QCbyQaQQyAFT47TselAbKi9flRSvvAvb3wzJxgqVGVFBToTXAjZbsZhDGZZ1ql3kHsT5zaR5WnxGCgu2qj3I8abF01wgcprKIaF7bm3XArt2xNUOWOmVOoqEfNLh32SB3nz4AtS0KbS8ODMBhZnVeEqjh2raV9CPn2KNmsEWtnV8QxAXnNJrh0BpSSqESSj6LTKXbeKvrvt8TTW6xvnFlPU4xbygTHcvrMjsRTN9e77XRTUef8JqNukbvIhfgkBxXKQEtuDysBl9l6dq4NHH8RIuqQzx00VNBCiUWMifeuepqiGlVdSUVreb7DzXukBWMJGzmPEq9IGqQcCCfkm0Bq2yUrmfBO1eoyDAd8QdHmuopWQu73lykdX5vabXO212qvsut9y1mSfBEWWCQ700bOWwOXjsPbl6wDrQDPHPxMg2y3ve0m520RoFEyYkz9hVCyB5e8LCLSu9LQeC2auSSInn7bxwbFiD3Jz8IaAjTVjuBoWtohb7QpkNrI9sdhW7Rl5pmvz6gIqIWd1bk390ijDARDSVLFSsROI4a70hGgPskHuuAtlJDP9ljS6UnPd4uMYuJOCfVhy5OTqfcCOGhNRqvObJtfEORt9q7BwTJVPoE5tHx7dFKVW6zXGT3axKtw1rYoax9PLDL4a92eEDZqzoe6886vIqSAIGOI4NoFg0AhZsluVaLlpPhnOeJmvsN3ZrCT4RpbHPix8tRTus5K8dYMixZDQCxFTZpOGEPekXBihj2CBXcz10c9o1C5tZBcPQQmlwqvkSEr1wUskXSbOVb2MEY6tp995Qlgc<br />
----- END MESSAGE -----<br />
</div>
Аноним 20/12/20 Вск 16:56:21 1885524105
Аноним 20/12/20 Вск 17:02:33 1885529106
>>1885523
Тут тоже хуйня вышла символы табов появились
Сюда залил короче
https://dumpz.org/aZ9BqaRWEWMn
извините за хуйню выше
Аноним 20/12/20 Вск 17:06:04 1885534107
>>1885529
Что document.querySelector('.message').innerText возвращает? Потому как ты запостил визуальное отображдение DevTools, и в зависимости от того, есть ли там linebreaks и любые другие символы типо табов в "сыром тексте" - регекс будет разный.

Можно, конечно, сделать более униваерсальный, но тогда производительность его будет раз в 5-7 хуже.
Аноним 20/12/20 Вск 17:08:26 1885536108
Аноним 20/12/20 Вск 19:27:06 1885626109
>>1884752
Сам разобрался. Достаточно использовать группировку.
Всем изучающим re modul рекомендую тег VERBOSE
Аноним 20/12/20 Вск 20:42:15 1885657110
>>1883441 (OP)
Парни, мне приспичило добавить новый метод в объект, ноч-то я обсираюсь с реализацией

Кратко поясню что творится. Есть Присвоение вроде
self.employee_repository = CachedRepository(EmployeeRepository())

Как вы наверное поняли CachedRepository выступает как декоратор и работа с EmployeeRepository осуществляется через через небольшой набор методов этого декоратора. Мне приспичило его немного расширить, но вносить изменения напрямую в класс CachedRepository для одного моего кейса - уебанство. Я попытался сделать трюк вроде:
self.employee_repository.my_shitty_method = EmployeeRepository.my_shitty_method

Но закономерно обосрался, потому что этот метод первый принятый аргумент постоянно интерпретирует как self да и вообще я работаю с методом не того класса. Как это сделать нормально?
Аноним 20/12/20 Вск 21:23:04 1885704111
>>1885657
Не понял, но КО подсказывает, что надо сделать свой класс, унаследовав его от CachedRepository, и переопределить в нём нужный метод. Причём если не хочется переписывать весь метод, то можно его в твоём классе декорировать

class MyCachedRepository(CachedRepository):
____def shitty_method(self, args):
________do_some_stuff
________ret = CachedRepository.shitty_method(self, args)
________do_more_stuff
________return ret

как идея
Аноним 20/12/20 Вск 21:42:10 1885711112
Cph5i3BUkAUijhn.jpg 153Кб, 915x1200
915x1200
>>1885657
>Как вы наверное поняли CachedRepository выступает как декоратор и работа с EmployeeRepository осуществляется через через небольшой набор методов этого декоратора.

Нет, не поняли.
Аноним 20/12/20 Вск 21:43:51 1885713113
>>1885704
Про super мы конечно же не слышали.
Аноним 21/12/20 Пнд 01:33:09 1885789114
16075426920340.jpg 60Кб, 828x525
828x525
Посоветуйте книжку по питону для неновичка, перекатывающегося с C++ или java или типа того? Чтобы за 3-4 вечера вкатиться и через неделю устроиться на новую работу.
Аноним 21/12/20 Пнд 01:41:52 1885791115
>>1885789
>Чтобы за 3-4 вечера вкатиться и через неделю устроиться на новую работу
Хорошо пошутил.
Аноним 21/12/20 Пнд 02:16:21 1885805116
>>1885791
>>Чтобы за 3-4 вечера вкатиться и через неделю устроиться на новую работу
>Хорошо пошутил.

Человек имеет 20-летний опыт программирования.
Аноним 21/12/20 Пнд 02:59:31 1885817117
>>1885805
>Человек имеет 20-летний опыт программирования.
Это не имеет значения. Питон сильно отличается от крестов или джавы, поэтому перекатится за пару дней не получится.
Аноним 21/12/20 Пнд 04:02:50 1885825118
>>1885817
>Питон сильно отличается от крестов или джавы
Ой ну кому ты лечишь? Бейсик без номеров строк это
Аноним 21/12/20 Пнд 04:03:27 1885826119
Аноним 21/12/20 Пнд 05:04:17 1885836120
>>1885817
В принципе можно устроиться на работу на язык X, не имея никакого опыта работы на языке X. Особенно для таких языков, как питон, на C++/Java сложнее.

Но для этого надо иметь какую-то особую компетентность, нужную в проекте. Просто опыт программирования вообще ни о чём, слишком разные направления есть, ты можешь быть очень крутым в одном, но совершенно не знать другую область и у тебя просто мозги к другой области не подготовлены.
Аноним 21/12/20 Пнд 05:09:24 1885838121
>>1885826
Всем. Ну в смысле очень многим.

Вообще, если когда ты долго пишешь на языке X, а потом за неделю учишь язык Y, ты потом будет на Y писать как на X. А ничего хорошего в этом нет.

Разные языки это разные возможности и поэтому разные подходы к написанию кода и проектированию программы.
Аноним 21/12/20 Пнд 05:36:50 1885841122
>>1885836
>В принципе можно устроиться на работу на язык X, не имея никакого опыта работы на языке X.

Ну не совсем, исходники читал в разное время, естественно

> Особенно для таких языков, как питон, на C++/Java сложнее.
>
>Но для этого надо иметь какую-то особую компетентность, нужную в проекте.

Всё так и есть

Аноним 21/12/20 Пнд 05:37:55 1885842123
>>1885838
>Всем. Ну в смысле очень многим.
>
>Вообще, если когда ты долго пишешь на языке X, а потом за неделю учишь язык Y, ты потом будет на Y писать как на X. А ничего хорошего в этом нет.
>
>Разные языки это разные возможности и поэтому разные подходы к написанию кода и проектированию программы.

Так я именно такую книгу и прошу, в которой будет объясняться не как hello world написать, а в чём нюансы устройства языка.
Аноним 21/12/20 Пнд 08:47:53 1885896124
>>1885826
>Чем?
Динамической типизацией. Сама по себе она не сложная, но если ты до этого много лет писал на джаве, то будет очень сложно отвыкнуть.
Аноним 21/12/20 Пнд 10:24:24 1885979125
>>1885896
А зачем отвыкать?

И, вроде, в пистон зачатки статической типизации завозили?
Аноним 21/12/20 Пнд 11:31:20 1886021126
>>1885979
Оно же просто декларативное для читаемости. Даже если ты объявишь типы питон не будет ругаться если ты положишь туда что нибудь другое.
Аноним 21/12/20 Пнд 13:24:16 1886098127
На всякий случай дублирую в питонтред.

Есть алгоритм на C++, там много файлов и h, и cpp, но графику гораздо удобнее прописать на python.
Как можно вызвать функцию в которую вложено дохуя других функций из питона?
Учить CLI нет ни времени, ни желания надо сдать проект в уни. Про C API знаю, но можно ли там, допустим, написать функцию, которая принимает аргументы из питона, форматирует их и вызывает нормальные cpp функции?
Аноним 21/12/20 Пнд 13:36:57 1886102128
>>1886021
Есть специальные инструменты для контроля. Причём даже в рантайме можно контролировать.

Но это, конечно, не статическая типизация.

Статическая типизация там, где код компилируемый, и переменная отображается на машинный или байт код, и один тип просто физически не может быть заменён другим без специальных телодвижений.

В питоне же всё объект, а переменная это всего id этого объекта. Причём в случае иммутабельных типов вроде int при изменении значения переменной каждый раз меняется ссылка, потому что мы меняем сам объект, а не значение переменной в объекте.

С такой архитектурой добавить статическую типизацию без радикальной переделки платформы невозможно. То есть получается, что помимо id объекта переменная должна ещё хранить как-то его тип и сверять этот тип при каждом изменении значения. Это сложно, криво и накладно.

Любая фича имеет свои большие плюсы и минусы. Динамическая типизация в том числе. В той сфере, в которой используется питон, динамическая типизация скорее в плюс. Многие вещи на C++/Java просто рехнёшься писать, или же они там будут криво и неудобно сделаны.
Аноним 21/12/20 Пнд 13:49:43 1886107129
>>1885842
Как вариант, в шапке есть книга intermediate-python.pdf (и epub возможно). Как раз про разные нюансы и фичи языка.

Хотя и этого недостаточно.

Во-первых полезно поднимать какие-то кишки.

Во-вторых просто нюансов недостаточно, потому что мало знать про инструмент, надо ещё уметь им правильно пользоваться. А это только с опытом приходит.

Потому что вот когда пишешь на одном языке, ты просто привыкаешь решать какие-то задачи одним способом, и даже уже не задумываешься. А тут тебе надо их решать совсем иначе. То есть ты можешь делать, как привык, но это криво будет.

Аноним 21/12/20 Пнд 16:56:28 1886284130
Пистоны памаХите
Есть лист со словарями нада бы сдвинуть все значения в ключе ассет на пустые значения снизу ну мол если одно занчение пусто то один раз, если два - то два раза т.е. на кол-во пустых ключей последних
Аноним 21/12/20 Пнд 16:58:37 1886286131
Screenshot20201[...].png 178Кб, 1577x990
1577x990
Аноним 21/12/20 Пнд 18:06:00 1886347132
Аноним 21/12/20 Пнд 18:15:05 1886355133
Screenshot171231.png 146Кб, 1335x990
1335x990
>>1886347
Та изи же
Вот есть принт первый там дву пустых внизу - это мой кейс
Нужно сдвинуть значения ключей вниз как на принте 2
Только на принте 2 я просто заменил первые 2 на последние а первые потёр но мне нужно именно сдвигать дальше оставляя вначале пустые
Аноним 21/12/20 Пнд 18:22:17 1886357134
>>1886355
У тебя: 1122__ -> __2211
Ты уверен, что должно быть так, а не:
1122__ -> __1122
?
Аноним 21/12/20 Пнд 18:42:22 1886369135
Аноним 21/12/20 Пнд 19:19:11 1886420136
>>1886098
Так тебе что надо из питона с++ вызывать, или из с++ вызывать питон?
Аноним 21/12/20 Пнд 19:32:38 1886444137
>>1886369
Спс, так
В убывающем бы еще порядке
Оно чета key=reversed не ест
Аноним 21/12/20 Пнд 20:00:14 1886460138
Аноним 21/12/20 Пнд 20:05:58 1886466139
Аноним 21/12/20 Пнд 20:33:32 1886486140
Учу джаву. Недавно посмотрел видос про http и там клиент-сервер был на питоне. Очень удивился, что у вас можно возвращать несколько значений из одной функции и это применяется в таких основах.
Это действительно удобно?
Аноним 21/12/20 Пнд 20:40:06 1886492141
Аноним 21/12/20 Пнд 20:54:54 1886512142
>>1886486
Не знаю, что ты видел, наверно, что-то вроде

def foo():
  return 1, "qwerty", 2

Это не несколько значений, а одно, это кортеж(tuple), просто набор значений, коллекция. Здесь нет ничего такого, что было бы принципиально невозможно в джаве, просто в питоне это сделано так, что применять легко удобно и естественно. Да это применяют, но не сказать, что б прям очень часто
Аноним 21/12/20 Пнд 21:11:56 1886525143
Screenshot20201[...].png 56Кб, 1122x427
1122x427
Там использование функции для коннекшона было. Логику то такую можно замутить в джаве завернув в классы и геттеры.
Но вот именно способ прямая противоположность джаве.
С одной стороны вон как легко и лаконично. А с другой думаешь, уж если где то можно запутаться в переменных, то в таких случаях.
Аноним 22/12/20 Втр 01:19:53 1886664144
wojak-pre-doome[...].png 112Кб, 817x920
817x920
Анон, как начать зарабатывать хоть немного денег, чтобы начать платить за квартиру?

Есть ли какие-нибудь несложные задания, которые оплачиваются?
Аноним 22/12/20 Втр 01:22:01 1886665145
>>1886664
Есть простое задание, сдавать туз в аренду, через пару лет будешь человеком. Базарю.
Аноним 22/12/20 Втр 01:23:45 1886666146
>>1886665
>базарю

Хорошо, что ты прошел этот путь.
Но мне что-то ближе к кодингу.
Аноним 22/12/20 Втр 01:25:35 1886667147
>>1886666
Но ты просто подумай, вокруг кодинга - щас хайп, каждый дебик стремится. Задумайся какая конкуренция, в би уже писали что это приводит к снижению зп. И задумайся, сколько анонов хотят того же, и вот, чем ты лучше дургих и почему именно ты?
Аноним 22/12/20 Втр 01:29:50 1886670148
>>1886667
Я просто спросил есть ли работа.
Зачем ты сразу накинулся
Аноним 22/12/20 Втр 01:31:02 1886671149
>>1886670
> есть работа?
да есть. Причем всегда востребованая. И кстати, да, в перервых ты можешь таки кодить в свое удовольствие. Как хобби.
Аноним 22/12/20 Втр 02:14:31 1886679150
image.png 571Кб, 554x1080
554x1080
Аноним 22/12/20 Втр 16:36:39 1887205151
Screenshot 2020[...].png 172Кб, 1386x1026
1386x1026
Как работает команда введенная в терминале
python3 manage.py runserver

python3 manage.py -- Тут все ясно, стартануть файл .py в python3

А вот к чему относится команда runserver я не понимаю?
В man python3 нет ключа runserver.

Как это работает?
Аноним 22/12/20 Втр 16:55:10 1887236152
>>1887205
Это аргументы скрипта. На твоем скрине они сидяят в sys.argv.
Аноним 22/12/20 Втр 17:14:00 1887256153
>>1887236
Благодарствую. Поковырялся там.
Аноним 22/12/20 Втр 20:37:52 1887478154
Пожалуйста научите пользоваться asyncio как PRO.
Где взять инфу?

Конкретная задача:
Каждые 30 секунд запускать 100 одинаковых асинк методов которые отличаются только разными аргументами. Аргументы инициализируются один раз при запуске кода и записываются допустим в лист.
Аноним 22/12/20 Втр 20:47:33 1887482155
>>1887478
Ну спам же какой-то, уебывай.
Аноним 22/12/20 Втр 20:59:26 1887493156
Аноним 22/12/20 Втр 23:07:29 1887559157
Пацаны, а можно как-то узнать, если метод вызвали из функции? Т.е., я перегружаю __add__, но хочу чтобы если его вызывали присваиванием, то возвращался новый инстанс класса, а если вызывали, например, через print(A(anus)+B(пися)) возвращалось что-то другое, гуглить не умею там все на ангельском...
Аноним 23/12/20 Срд 00:45:00 1887617158
Есть челы у кого свои кланы в кодворзе, возьмете меня к себе?
Аноним 23/12/20 Срд 01:07:31 1887635159
Аноним 23/12/20 Срд 01:08:32 1887638160
>>1887635
5ку. Но я стараюсь прогрессировать.
Аноним 23/12/20 Срд 10:20:43 1887829161
>>1887478
и че так и не ответит никто?
>>1887482
Один чел отреагировал и тут же слился
Аноним 23/12/20 Срд 13:23:51 1888046162
Есть Лист в котором лежит один OrderedDict
Как достать этот словарь и записать в переменную чтобы избавится от List-a поверх него в одну строку, ну чтобы переменная была просто словарём а не словарём внутри листа
ну я могу циклом ФО но как-то тупо выглядит
Аноним 23/12/20 Срд 13:42:23 1888079163
image.png 18Кб, 1113x90
1113x90
Вот такую ошибку выдает, если форма в джанго не валидна, но как понять что именно не валидно? Как понять где ошибка?
Аноним 23/12/20 Срд 14:09:52 1888116164
image.png 20Кб, 1083x60
1083x60
>>1888079
Нашла сама, кому интересно вот ответ
Аноним 23/12/20 Срд 14:32:45 1888156165
изображение.png 39Кб, 351x292
351x292
>>1888116
>Нашла
Иди суп учись варить. Программирование не женское дело.
Аноним 23/12/20 Срд 14:33:22 1888157166
>>1888156
я трап, иди в шахту, еблан
Аноним 23/12/20 Срд 14:35:50 1888161167
>>1888157
Что же ты здесь делаешь богомерзкое создание? Зачем явилось в наш мир из глубин ада?
Аноним 23/12/20 Срд 14:42:34 1888172168
Аноним 23/12/20 Срд 14:46:36 1888178169
Как по быстрому вкатиться к вам зная плюсы? Питон в первую очередь нужен для мл и автоматизации рутинных задач.
Аноним 23/12/20 Срд 16:12:06 1888269170
IMG-20201212-WA[...].jpg 116Кб, 1280x1268
1280x1268
Привет аноняши, хочу вкатиться в программирование и начать зарабатывать деньги. Как быстрее всего это сделать? Английский не знаю, компьютер - МакБук 15
Аноним 23/12/20 Срд 17:12:16 1888318171
Есть чо почитать про декораторы и, главное, посмотреть в каких случаях они мастхев? Прикольная штука.
Аноним 23/12/20 Срд 17:42:29 1888359172
>>1888269
научиться гуглить для начала. неожиданно, да?
Аноним 23/12/20 Срд 17:50:53 1888377173
>>1888269
может оно тебе не надо?
Аноним 23/12/20 Срд 19:44:17 1888507174
>>1888359
двачую. без умения искать информацию сложно будет, особенно в погром-ироваии
Аноним 23/12/20 Срд 20:41:45 1888592175
IMG202012232035[...].jpg 6Кб, 451x238
451x238
Аноны, поясните плиз как сделать подобную форму.

Что функция брала как аргумент сет (лист/тупл) и рекурсивно повторяла себя несколько раз, ветвясь, каждый раз дополняя сет новым (но различным для разных ветвей) значением?

Для этого обязательно использовать копию или можно как-то иначе?
Аноним 23/12/20 Срд 21:00:29 1888620176

Коллеги, есть модель A и модель B для изображений для модели A. В модель A загружаю зип архив и через save распаковываю архив и сохраняю через bulk_create() все файлы в модель B в цикле через A.objects.bulk_create([
B(img="media/{}/{}/{}".format(title, number, i), chapter=A)
]), но выходит ошибка Cannot assign "<django.db.models.query_utils.DeferredAttribute object at 0x000001911DF299C8>": "B.chapter" must be a "A" instance.


chapter это форин на модель A


Решил через функция типа. for i in zip: a.obj.create(img="name", chapter=Chapter.obj.last())


но мне кажется это очень плохая практика.
Аноним 23/12/20 Срд 21:12:46 1888645177
>>1883657
Какие кресты, маня, если ты даже это понять не смог?
Уже вижу как тебя в спп треде опускают

>>1884175
Шапка же
Аноним 23/12/20 Срд 21:16:22 1888655178
>>1883657
А почему итератор должен работать с числом?

Ты можешь математически итерировать число? Нет? Ну и соси хуй, быдло.

Питон - один из самых близких к матлогике языков. Твоё возмущение непонятно. Это вполне логично что число нельзя итерировать.
Аноним 24/12/20 Чтв 03:19:54 1888918179
>>1883657
>>КОКОКО У НАС ЯЗЫК БЕЗ ЧЕТКОЙ ТИПИЗАЦИИИ ВСЕ РАБОТАЕТ И ТАК ЗАЕБИСЬ
>>ПУК СЕРЕНЬК ЦИКЛ ФОР НЕ РАБОТАЕТ С ДАННЫМИ ТИПА ИНТЕДЖЕР)))))
>Пиздец параша, нахуй я только время потратил на эту недопарашу? Лучше попробовал доучить кресты.

Вкатывайся к нам, у нас всё ок с этим только вакансий нет
https://2ch.hk/pr/res/1831629.html
Аноним 24/12/20 Чтв 08:53:15 1888969180
Коллеги нужна помощь анона мудрого.

У меня слаг в модели может быть неуникальным. То есть его уникальность идет только по форину в модель которую он привязан.

при попытке перейти по слагу я получаю ошибку, что получено 2 слага. как мне достать именно тот слаг, который мне нужен?
Аноним 24/12/20 Чтв 13:02:51 1889126181
Господа data sience что вы делаете на работе?
Обрабатываете таблички бабы сраки из бухгалтерии и на основании их делать ml модель, презентацию, power bi графику?
Аноним 24/12/20 Чтв 13:54:02 1889185182
Colleagues, good afternoon! There is a model book and a model chapter. Each book has many chapters. Each chapter is tied to a specific book, and if the slug of the chapter is made unique, then when book1 - chapter1, I cannot create book2 - chapter 2, an error is generated. If you make the slug non-unique, then an error is issued that one argument was expected, but 2 was passed.

How can I solve this problem? I want the slug to be a number and django understands that along the path / book1 / 1 / you need to take a slug with number 1, which is tied to book1 specifically, and not to pay attention to the slug with number 1, but tied to book2.

if the slug is unique, then I calmly end up in the right book and the right chapter, but everything collapses when I need to get there as intended.

The path is built like this: / book1 / 1 (chapter) / etc. book2 / 1 / etc

class Book(models.Model):
some code

class Chapter(models.Model):
book= models.ForeignKey(Book, verbose_name="title", on_delete=models.CASCADE)
number = models.PositiveIntegerField(verbose_name="num chapter")
slug = models.SlugField(unique=True, verbose_name="slug_to", null=True, blank=True)

def save(self, args, kwargs):
self.slug = self.number
super().save(
args, kwargs)

Views.py

class Base(View):
def get(self, request, args, kwargs):
book = Book.objects.all()
return render(request, "base.html", context={"book": book})


class BookDetail(DetailView):
model = Book
context_object_name = "book"
template_name = "book_detail.html"
slug_url_kwarg = "slug"

def get_context_data(self,
kwargs):
context = super().get_context_data(kwargs)
context["chapter"] = Chapter.objects.filter(title=self.object)
return context


class ChapterRead(DetailView):
model = Chapter
context_object_name = "chapter"
template_name = "chapter_read.html"
slug_url_kwarg = "int"

def get_context_data(self,
kwargs):
context = super().get_context_data(
kwargs)
context["imgs"] = ImgChapter.objects.filter(chapter=self.object)
return context


urls.py

from django.contrib import admin
from django.urls import path
from .views import



urlpatterns = [
path("", Base.as_view(),name="book_list"),
path("<str:slug>/", BookDetail.as_view(), name="book_detail"),
path("<str:slug>/<str:int>/", ChapterRead.as_view(), name="chapter_detail")
]


html

base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tf</title>
</head>
<body>

{% for i in book%}
<a href="{{ i.slug }}"> {{i.name}}</a>
{% endfor %}


</body>
</html>

book_detail.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{ book.name }}
{% for i in chapter %}
<a href="{{ i.slug }}">{{ i.number }}</a>
{% endfor %}
</body>
</html>

chapter_read.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>

{{ chapter.number }}

{% for i in imgs %}

<img src="{{ i.img.url }}">

{% endfor %}

</body>
</html>
Аноним 24/12/20 Чтв 15:42:12 1889335183
>>1888046
Бро, если найдешь как, скинь. Чота аж интересно стало.
Аноним 24/12/20 Чтв 16:10:04 1889379184
>>1888269
>Как быстрее всего это сделать?
Конечно же, записать на курсы онлайн-программирования Skillbox! Это чудестные прикрастные курсы, где лудшие учетиля тибя научат прогромеровать и уже черз читыре дня ты получиш сиртефекат об акончании и можеш сразу же устроица на работу с зар платой 300к/наносек!
Аноним 24/12/20 Чтв 16:11:10 1889382185
>>1888318
>Есть чо почитать про декораторы и, главное, посмотреть в каких случаях они мастхев?
Да.
Аноним 24/12/20 Чтв 16:15:32 1889386186
>>1886021
>питон не будет ругаться если ты положишь туда что нибудь другое
ИДЕЯ ругается, но только ворнингами, конечно.
Но вообще это довольно раковая хуйня. Особенно когда-то какой-нибудь восторженный еблан, радуясь охуенности питона, пишет метод, который возвращает кортеж из инта, строки, даты, говна, мочи, еще одной строки, неба и Аллаха, а ты потом разгребаешь это дерьмо в дебаге.
Аноним 24/12/20 Чтв 16:20:50 1889392187
Аноним 24/12/20 Чтв 16:27:18 1889400188
>>1888046
А индексацией не достать?
dct = lst[0]
Аноним 24/12/20 Чтв 16:29:32 1889405189
Аноним 24/12/20 Чтв 17:13:21 1889479190
Двачик, помоги с pandas

Датафрейм я считал, но как сделать итератор из этой штуковины, чтобы получить строку я нигде не нашел

И вся суть задания в следующем:
У меня есть таблица в эксель.
В ней 2 листа

Первый лист: params. В нём есть 3 группы столбцов. Каждая группа содержит 2 столбца: имя_параметра и значение_которое_надо_подставить

Второй лист: objects. В нём есть следующие столбцы: имя группы, __неинтересные столбцы, имя_параметра, __неинтересные столбцы, значение_параметра.

Цель - проставить все параметры из первого листа во второй. Как это можно сделать?


Аноним 24/12/20 Чтв 17:16:20 1889486191
>>1889386
Он программист он так видит. Кто ты такой чтобы критиковать его искусство.
Аноним 24/12/20 Чтв 17:19:35 1889491192
Аноним 24/12/20 Чтв 17:20:04 1889492193
>>1885817
Представлю как чел с плюсов, будет в хуилион строчек пытаться добиться оптимизации, в то время как дзен питона говорит "простое лучше чем сложное, явное лучше чем не явное ".
По PEP8 тоже нужно выдрачиваться, не смотря на автокоррекцию IDE.
Аноним 24/12/20 Чтв 17:20:31 1889494194
Дорогие дата инженеры
Что читать и учить чтобы вкатиться в эту сферу?
Аноним 24/12/20 Чтв 17:31:32 1889517195
>>1889479
df1 = pd.read_excel('ЙОБА EXCEL', sheet_name=params)
df2 = pd.read_excel('ЙОБА EXCEL', sheet_name=objects)

возможно df1.stack() для свертывания в длинную

df1.merge(df2, on=[имя_параметра],how='outer')

how='outer' - тут ставишь методы которые тебе нужны (inner,left,right)
Аноним 24/12/20 Чтв 17:31:55 1889518196
>>1889491
Нет, попробую. Не думал, что мне так быстро помогут.
Спасибо!
Аноним 24/12/20 Чтв 17:32:00 1889519197
Анчоусы, помогите с моком разобраться.

Есть объект collect
Есть метод fill
Когда вызываю collect.fill()
То внутри происходит замена полей и разная херня. Этот объект не присваивается никому, только сам себя обновляет. Как замокать его, чтоб он подменялся на этом методе на нужные мне данные?
Аноним 24/12/20 Чтв 17:51:12 1889551198
>>1889486
Я, как минимум, не ебаный джун.
Аноним 24/12/20 Чтв 18:07:28 1889580199
Аноним 24/12/20 Чтв 18:15:58 1889589200
Двач, я тупой и знаю об этом, но я не понимаю!

beaufort = 6 # сильный ветер
is_raining = False # дождя нет
temperature = 16


if (not is_raining or beaufort <= 4) and temperature > 20:
print('Идём гулять, на улице хорошо')

else:
print('Сидим дома, читаем Практикум')

Я не понимаю, как правильно "прочитать" отрицание.
Если is_raining не равно False (т.е. равно True) (т.е. идет дождь)...
То Идем гулять...

Это же не логично!
Аноним 24/12/20 Чтв 18:16:29 1889590201
>>1885657
>>Но закономерно обосрался, потому что этот метод первый принятый аргумент постоянно интерпретирует как self да и вообще я работаю с методом не того класса. Как это сделать нормально?
в статик метод заверни, я про декоратор @staticmethod , при таком декораторе первый аргрумент больше не self, но и self в теле фунции больше использовать нельзя
Аноним 24/12/20 Чтв 18:29:40 1889604202
>>1889589
is_raining переименовываешь в not_raining и приравниваешь это к True, потом
if (not_raining or beaufort <= 4) and temperature > 20:
print('Идём гулять, на улице хорошо')
Аноним 24/12/20 Чтв 18:37:20 1889608203
>>1889604
Так да, это логично и понятно.
Я не могу понять почему написано именно так, как в том примере, который я скинул. Так и нужно?

И, опять же, я правильно читаю if not is_raining:
Если is_raining не равно False (т.е. равно True) (т.е. идет дождь)
?

Аноним 24/12/20 Чтв 19:03:37 1889641204
>>1889589
Если is_raining будет false, то есть дождя нет, то часть логического выражения в скобках будет true. И как будто бы можно идти гулять, если температура норм
Аноним 24/12/20 Чтв 19:11:47 1889645205
>>1889641
Т.е, для совсем тупых:
В итоге мы имеем, что дождь как бы идет, но если температура норм - мы можем идти гулять?
Аноним 24/12/20 Чтв 19:45:26 1889674206
>>1889645
(not is_raining or beaufort <= 4) and temperature > 20

(нет дождя или слабый ветер) и не холодно тогда идем гулять

т.е. в принципе мы согласны и в дождь гулять если ветер слабый, главное чтобы не холодно

равно как мы согласны и в ветер гулять если нет дождя, опять же лишь бы не холоднл

я лично когда в джаваскрипте не понимаю таких вывертов логики открываю консоль браузера и тестирую лол
Аноним 24/12/20 Чтв 19:59:38 1889689207
>>1889379
Купил подписку, начал заниматься. Спасибо за совет, цмок
Аноним 24/12/20 Чтв 20:34:07 1889737208
>>1889551
Будь осторожен. Ты можешь кого нибудь обидеть такими высказываниями.
Аноним 24/12/20 Чтв 21:51:59 1889822209
15996559113200.png 256Кб, 940x788
940x788
15996559113231.png 246Кб, 940x788
940x788
15996559113262.png 291Кб, 940x788
940x788
159964787613876[...].png 334Кб, 940x788
940x788
>>1889689
Умничка, так держать! У тебя все получится!
Аноним 24/12/20 Чтв 22:09:19 1889861210
>>1889674
Так в самом условии стоит it_raining = False.
А в теле уже not is_raining (соответственно, not is_raining == True, т.е. дождь идет. Опять же, следуя логике, если отсутствие дождя it_raining = False)

Пишу не с целью доебать, просто пытаюсь понять, что я делаю не так.
После того как в начал тупить в редакторе - исписал весь лист а4.

И самое странное, что это же, блять, элементарно. Циклы, алгоритмы, рекурсия были намного проще. А тут какой-то пиздец.
Аноним 24/12/20 Чтв 22:20:37 1889880211
>>1889589
Основное правило составления условий: для if ты пишешь положительное утверждение, для elif'ов - все остальное. Никаких ! или not в первой строке не писать, если это возможно. Поэтому:

if (is_raining or beaufort > 4) and temperature <= 20:
--print('Сидим дома, читаем Практикум')

else:
--print('Идём гулять, на улице хорошо')



Поэтому теперь ты можешь спокойно менять булку is_raining с False на True и следовать логике условия.

Этого >>1889589 ни в коем случае не слушать, никаких переменных или методов с not в имени быть не должно, чтобы в коде никогда не было каловой массы вида if not is_not_registered()
Аноним 24/12/20 Чтв 22:30:30 1889893212
>>1889880
Спасибо!

Это пример с Я.Практикума, собственно. Буду знать, еще раз спасибо.
Аноним 24/12/20 Чтв 22:33:30 1889895213
>>1889880
> Основное правило составления условий

Алсо, если ты еще здесь, а где про такие тонкости можно прочитать?

Это Лутц, Кнут и т.д.?
Аноним 24/12/20 Чтв 22:40:38 1889905214
>>1889893
Ну, это плохой пример. Ревью у вменяемого разраба он бы не прошел. Главное правило кода - писать так, чтобы его можно было легко читать. Потому в разработке 90% потраченного времени - это чтение того, что уже есть. Когда ты тратишь дохуя времени, чтобы вникнуть, что за хуйня написана в условии, то должна прийти разумная мысль переписать это говно.
>>1889895
Такие тонкости переходят, что называется, из уст в уста в рабочей среде. Синьоры всегда подпнут джуна на ревью, говнокод не пройдет, что называется. Опять же, в разных коллективах разные нюансы по код-стайлу. Я помню, как в моей рабочей флудилке срались даже по поводу того, надо ли обосабливать ретурны пустой строкой. Спойлер: надо.
Аноним 24/12/20 Чтв 22:41:45 1889910215
Colleagues, good afternoon! There is a model book and a model chapter. Each book has many chapters. Each chapter is tied to a specific book, and if the slug of the chapter is made unique, then when book1 - chapter1, I cannot create book2 - chapter 2, an error is generated. If you make the slug non-unique, then an error is issued that one argument was expected, but 2 was passed.

How can I solve this problem? I want the slug to be a number and django understands that along the path / book1 / 1 / you need to take a slug with number 1, which is tied to book1 specifically, and not to pay attention to the slug with number 1, but tied to book2.

if the slug is unique, then I calmly end up in the right book and the right chapter, but everything collapses when I need to get there as intended.

The path is built like this: / book1 / 1 (chapter) / etc. book2 / 1 / etc

class Book(models.Model):
some code

class Chapter(models.Model):
book= models.ForeignKey(Book, verbose_name="title", on_delete=models.CASCADE)
number = models.PositiveIntegerField(verbose_name="num chapter")
slug = models.SlugField(unique=True, verbose_name="slug_to", null=True, blank=True)

def save(self, args, kwargs):
self.slug = self.number
super().save(args, kwargs)

Views.py

class Base(View):
def get(self, request, args, kwargs):
book = Book.objects.all()
return render(request, "base.html", context={"book": book})


class BookDetail(DetailView):
model = Book
context_object_name = "book"
template_name = "book_detail.html"
slug_url_kwarg = "slug"

def get_context_data(self, kwargs):
context = super().get_context_data(kwargs)
context["chapter"] = Chapter.objects.filter(title=self.object)
return context


class ChapterRead(DetailView):
model = Chapter
context_object_name = "chapter"
template_name = "chapter_read.html"
slug_url_kwarg = "int"

def get_context_data(self, kwargs):
context = super().get_context_data(kwargs)
context["imgs"] = ImgChapter.objects.filter(chapter=self.object)
return context


urls.py

from django.contrib import admin
from django.urls import path
from .views import


urlpatterns = [
path("", Base.as_view(),name="book_list"),
path("<str:slug>/", BookDetail.as_view(), name="book_detail"),
path("<str:slug>/<str:int>/", ChapterRead.as_view(), name="chapter_detail")
]


html

base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tf</title>
</head>
<body>

{% for i in book%}
<a href="{{ i.slug }}"> {{i.name}}</a>
{% endfor %}


</body>
</html>

book_detail.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{ book.name }}
{% for i in chapter %}
<a href="{{ i.slug }}">{{ i.number }}</a>
{% endfor %}
</body>
</html>

chapter_read.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>

{{ chapter.number }}

{% for i in imgs %}

<img src="{{ i.img.url }}">

{% endfor %}

</body>
</html>
Аноним 24/12/20 Чтв 22:44:16 1889911216
>>1889910
Нахер ты это спустя 30 постов репостишь? Просто бампани свой пост.
И нахер ты пишешь на ингрише?
Аноним 24/12/20 Чтв 22:44:17 1889912217
>>1889905
Спасибо, мил человек. Добра тебе.
Аноним 24/12/20 Чтв 22:45:46 1889913218
>>1889911
не можешь в ангельский? помог бы уже давно мне, а не высирал это
Аноним 24/12/20 Чтв 22:51:13 1889916219
>>1889913
>pr
>не можешь в ангельский?
Да, конечно. От качества твоего "англесского" смеемся всем Гарвардом.
>а не высирал это
Высираешься тут только ты своей стеной говнокода без отступов. В шапке куча ссылок на шаринг кода, не хочу постить ссылку, хочу, чтоб скроллить полчаса надо было. Хотя что еще ожидать от мелкобуквы?
Аноним 24/12/20 Чтв 22:54:14 1889917220
>>1889916
https://ru.stackoverflow.com/questions/1223352/Как-во-view-взять-нужный-slug-модели
вот тебе с отступами псина ебаная. Чтобы через 5 минут был ответи дан. Я с утра решения не нашел.

Мой ангельский понимают, мне похую, что он как у хача. Смысл же ясен.

Сттавлю сотку, что ты залетная чмоня не знающая разницы между списком и словарем
Аноним 24/12/20 Чтв 23:05:17 1889922221
>>1889917
Говна поешь, быдло. Разговаривать научись для начала.
Аноним 24/12/20 Чтв 23:07:22 1889924222
>>1889922
пук. срень.

ты обосрался, братец анончик

слишком тяжелая задача для тебя
Аноним 24/12/20 Чтв 23:10:42 1889926223
>>1889924
Как скажешь, мелкобуковка. Сиди и дальше, как лох, без ответа, мне-то что.
Аноним 24/12/20 Чтв 23:14:51 1889928224
>>1889926
топай в свой мирок розовых пони бичара
Аноним 25/12/20 Птн 02:21:30 1890042225
123.JPG 110Кб, 748x815
748x815
Привет!
До внесённых изменений этот код нормально работал.
Я только импортировал подчёркнутый модуль и задал значение атрибутов в методе-конструкторе, который до этого, были = 0
Задание было таким: при создании каждый объекта класса должен получать случайный значения атрибутов. Я подчеркнул их красным.
Ошибок программа не выдаёт, но метод mood возвращает теперь только значение переменной m = "ужасно".
Подскажите, почему так?
Аноним 25/12/20 Птн 02:31:59 1890049226
>>1890042
хз что я сделал, но код начал работать нормально.
Аноним 25/12/20 Птн 02:33:58 1890050227
>>1890042
>>1890049
в этом коде вроде random будет вызван один раз и аргументы по умолчанию будут всегда одинаковы
Аноним 25/12/20 Птн 02:39:38 1890052228
>>1890050
Для всех объектов класса?
Разве метод-конструктор не перезапускается при создании каждого нового объекта?
Аноним 25/12/20 Птн 02:42:16 1890054229
>>1890052
да. для всех.
конструктор перезапустится, но значения аргументов hunger и boredom вычисляются единожды при загрузке модуля
Аноним 25/12/20 Птн 02:45:48 1890056230
>>1890054
вычисляются единожды, когда они записаны в таком виде как здесь
Аноним 25/12/20 Птн 03:46:36 1890080231
123.JPG 14Кб, 430x144
430x144
>>1890056
>>1890054
Спасибо за ответы.
Я импортировал модуль random внутри __init__ и там же присвоил случайные значение нужным атрибутам. Теперь, при создании, каждый объект класса получает разные атрибуты.
Потом подумаю как написать красивее, пока вот так.
Но я выявил новую проблему:
Методы eat и play не меняют значение этих атрибутов.
На что обратить внимание?
Аноним 25/12/20 Птн 03:51:17 1890084232
>>1890080
Нашел в чём была проблема. Глупая ошибка.
Аноним 25/12/20 Птн 08:47:58 1890294233
Кто-нибудь сталкивался с таким видом даты: image_date = "2011-12-04T21:33:40.000Z"? Можно ли как-нибудь распарсить ее через datetime или все-таки как str парсить?
Аноним 25/12/20 Птн 09:25:15 1890303234
>>1890294
>Кто-нибудь сталкивался с таким видом даты: image_date = "2011-12-04T21:33:40.000Z"?
Да.
>Можно ли как-нибудь распарсить ее через datetime
Через dateutil.parser.parse()
Аноним 25/12/20 Птн 09:50:24 1890316235
>>1890303
То, что надо. Спасибо.
Аноним 25/12/20 Птн 10:34:05 1890346236
Clipboard01.jpg 354Кб, 1449x697
1449x697
Господа, как получить количество лайков и комментов (на КПДВ подчеркнуто красным), используя Selenium? Цифры появляются только при наведении курсора на элемент.
Аноним 25/12/20 Птн 10:39:51 1890347237
image.png 381Кб, 700x700
700x700
>>1890346
Воспользоваться АПИ сайта.
Аноним 25/12/20 Птн 10:48:59 1890354238
>>1890347
Пользовался сам? Для меня оно показалось каким-то замудренным. Надо через Фейсбук создавать какое-то приложение, давать разрешения, получать временные токены.
Аноним 25/12/20 Птн 10:57:40 1890358239
>>1890346
>получить количество лайков и комментов, используя Selenium
Это как забивать гвоздь кувалдой, когда есть молоток.
Используй requests, юный падаван.
Аноним 25/12/20 Птн 10:59:22 1890359240
>>1890358
>используй requests
>Цифры появляются только при наведении курсора на элемент.
чел ты?
Аноним 25/12/20 Птн 11:05:35 1890363241
>>1890359
Ты уверен? Пытался инспектировать элемент? Если там не йоба сложный js-скрипт, они просто прячутся в данных элемента.
Аноним 25/12/20 Птн 11:13:47 1890365242
>>1890358
>>1890359
Посоны, погодите, кажется нашел какую-то библиотеку для подобных целей instaloader
Аноним 25/12/20 Птн 12:36:08 1890423243
pycharm64jXGlbJ[...].png 72Кб, 1920x1040
1920x1040
хочу сделать последовательность фибоначчи, что идет не так?
Аноним 25/12/20 Птн 12:42:55 1890432244
>>1890423
Обожаю, когда человеку прямым текстом что-то говорят, например "недопустимый символ 'а' в строке '1254а', преобразование в число невозможно", а он спрашивает: "Чего это от меня шайтан машина хочет?"
Аноним 25/12/20 Птн 12:57:20 1890451245
>>1890432
как я понимаю, когда i=1, то он хочет сложить 1 и 2 индексы, но не находит число на втором индексе, но он же должен был добавить число, когда i был равен нулю.
Аноним 25/12/20 Птн 13:02:29 1890455246
>>1890432
>>1890451
но как пофиксить тогда? или я вообще не смогу так сделать
Аноним 25/12/20 Птн 13:10:25 1890460247
Сап, тред. Помогите с такой темкой.

Достаточно давно изучаю и пишу всякую хрень на питоне и, по моим ощущениям, знаю его синтаксис и функциональность, ну как минимум, на уровне джуна, а вот с проектированием и реальными проектами трабблы дикие.

Грубо говоря, SOLID и базис я знаю, и в принципе соблюдать умею без особых проблем, нюанс в том, что когда дело доходит до действительно модульного проекта, я просто теряюсь, не понимаю с чего начать и, зачастую дропаю, либо начинаю говнокодить с точки зрения ООП забивая на SOLID напрочь. С одной стороны, это неудивительно, а с другой, хочется чето менять.

Проблема imo в отсутствии опыта в работе над хоть сколь-нибудь серьезными вещами в команде, сам себе программируя опыта хорошего кодинга не наберешься. Пытался читать проект на хабе, и это ужас. Даже несколько десятков связанных файлов вызывают приступ нечетаемости, ибо просто невозможно разобраться в идеях создателей, в особенности если классы очень хорошо сделаны в плане абстракций, а строчки импорта доходят до 30-40 строк. Непонятно откуда и куда читать, если особенно если это распределенная асинхронная система.

Короче, как такое бороть? Где искать задания по проге не аля "Напишите программу, которая создаст два класса животных и рассчитает ежедневную необходимость в количестве корма", а более менее реальные кейсы, хоть с каким-нибудь ТЗ, и желательно, примерами кода, который должен был по итогу получится. Где искать конфы таких же рофло-челов, как и я, которые пытаются в код и работают над своим проектом? Хотел бы я в опен-сорс коммитить, но проблема выше не позволяет. Да и кому я со своей экспой нужен там

Извиняюсь за длиннопост, коллеги. Кстати, если у кого есть свои проекты подобного рода, буду заинтересован.
Аноним 25/12/20 Птн 13:16:12 1890464248
>>1890451
Очевидно, первая a запоминается до генерации второго списка, после чего ты начинаешь с нею работать. Уже на второй итерации итератор спрашивает третий элемент a, но у нее их всего два.
Ты не можешь одновременно итерировать массив и тут же его менять в процессе. В твоем случае питон просто запомнил первую декларацию a, а потом начал создавать вторую a, но по окончании, если бы все закончилось успешно, просто перезаписал бы ее.

Тебе нужно создать пустой список, а потом аппендить его в цикле ренжа, причем каждый цикл список будет пополняться на два числа: первым, равным сумме двух последних имеющихся в списке, и вторым, равным сумме первого и того, что перед ним.
Аноним 25/12/20 Птн 13:55:50 1890548249
>>1890464
прости, я не понимаю тебя. можешь пожалуйста написать код?
Аноним 25/12/20 Птн 14:05:37 1890563250
>>1890460
Возьми какую-нибудь не сильно сложную задачу, которую нужно решить лично тебе и сделай все по правилам.
Придется 2-3 раза все переписать с нуля, но экспа появится, базарю.

Мой личный пример - делал для себя быстрый интерфейс на Tkinter для ffmpeg чтобы быстренько нарезать шебм для двача, кек.
С первая версия была лютым говнокодом, с третьей попытки получилась конфетка.
Можно даже оформить и выложить во всеобщий доступ, совсем не стыдно будет, но мне лень.
Такие дела.
Аноним 25/12/20 Птн 14:15:13 1890574251
>>1890563
Спасиб за ответ, думал над этим. Проблема, собсна, в том, что отсутствуют личные задачи, которые я мог бы решать. От нечего делать пытался в написание нормального DS-бота, и тупо стакнулся, рерайтов там была хренова гора, но по итогу все в одно говно скатывалось. Собственно выше потому и спрашивал про всякие кейсы.

Энивэй, за ответ спасибо. Кстати, есть конфы / места где челы делятся своими проектами / ищут группы? Или все сами друг-друга на хабе ищут и находят? Новый во всем этом прогерском окружении, сорян за тупые вопросы.
Аноним 25/12/20 Птн 14:21:55 1890586252
>>1890460
>Хотел бы я в опен-сорс коммитить, но проблема выше не позволяет.
Как раз самое то в попенсорс контрибьютить. И код твой обоссут, и тесты написать попросят. Пока не сделаешь все красиво, пр не примут. Тебе понравится.
Аноним 25/12/20 Птн 14:24:11 1890589253
>>1890586
В очелло ебать не будут?
Аноним 25/12/20 Птн 14:25:42 1890593254
eMjDuD0vSJk.jpg 118Кб, 454x522
454x522
>>1890586
Понял, принял, пошел искать интересные репы.
Аноним 25/12/20 Птн 14:50:39 1890622255
IMG-20201212-WA[...].jpg 116Кб, 1280x1268
1280x1268
Привет аноняши, хочу вкатиться в программирование и начать зарабатывать деньги. Как быстрее всего это сделать? Английский не знаю, компьютер - МакБук 15
Аноним 25/12/20 Птн 16:59:30 1890709256
Мне нужно питоновской фтп либой получить данные о файлах на сервере (рекурсивно) типа: название, размер, дата создания и модификации, путь на сервере.
Как это сделать?
Аноним 25/12/20 Птн 17:13:00 1890724257
Аноним 25/12/20 Птн 18:42:51 1890836258
>>1890548
Я хуйню спизданул, прости.
Вот метод генерации списка Фибоначчи:

def fib_list(length: int) -> list:
--lst = [0, 1]
--for i in range(length - 2):
----new_num = lst[-1] + lst[-2]
----lst.append(new_num)

--return lst
Аноним 25/12/20 Птн 18:43:54 1890837259
>Как быстрее всего это сделать?
Конечно же, записаться на курсы онлайн-программирования Skillbox! Это чудестные прикрастные курсы, где лудшие учетиля тибя научат прогромеровать и уже черз читыре дня ты получиш сиртефекат об акончании и можеш сразу же устроица на работу с зар платой 300к/наносек!
Аноним 25/12/20 Птн 18:46:40 1890842260
>>1890836
для length = 1 неверное значение выдаст
Аноним 25/12/20 Птн 18:50:14 1890844261
>>1890842
Да, правда, проебался.
Ну, логику ты понял, перепедалишь по-нормальному.
Аноним 25/12/20 Птн 18:53:54 1890845262
>>1890724
Не слушай его, дотнет лучше и перспективнее
Аноним 25/12/20 Птн 18:56:02 1890846263
image.png 24Кб, 392x99
392x99
Аноним 25/12/20 Птн 19:14:05 1890854264
>>1890845
Двачую слово "лучше" и с натяжкой "перспективнее". Джава, к сожалению, слишком популярна.
Аноним 25/12/20 Птн 19:14:36 1890855265
Аноним 25/12/20 Птн 19:40:56 1890865266
image.png 118Кб, 1144x684
1144x684
Если у меня стомильёнов таких записей в юрлах, как мне их сделать красивее и презентабильнее? мб есть возможность их группировать по разным переменным?
Аноним 25/12/20 Птн 20:02:55 1890869267
Аноним 25/12/20 Птн 20:03:42 1890871268
>>1890854
Чем лучше? На жабу вакансий вроде больше и денег больше
Чем перспективнее?
Аноним 25/12/20 Птн 20:05:54 1890872269
IMG-20201212-WA[...].jpg 116Кб, 1280x1268
1280x1268
>>1890724
Уже проебал на джавараш 14к, но так ничего и не выучил. Спасибо, не надо
Аноним 25/12/20 Птн 21:13:10 1890892270
>>1890869
туплю очень сильно, попробую разобраться, спасибо. Но на всякий случай еще поищу что-то локальное
Аноним 25/12/20 Птн 21:24:27 1890904271
>>1890872
Пистон на хайпе среди вкатышей, но работы меньше чем на джаве.
Аноним 25/12/20 Птн 21:24:44 1890905272
py.png 76Кб, 1012x748
1012x748
Ребята, помогите решить задачу
Аноним 25/12/20 Птн 21:32:36 1890910273
Аноним 25/12/20 Птн 21:35:10 1890914274
Аноним 25/12/20 Птн 21:35:39 1890915275
>>1890910
Напиши нормальный рест и разбей на несколько роутеров по бизнес логике приложения.
Аноним 25/12/20 Птн 21:41:08 1890919276
>>1890871
Лучше синтаксическими особенностями. У решетки есть автосвойства. У решетки есть божественный Linq. А у твоей жабы есть Linq? А? А?
>На жабу вакансий вроде больше
Я про это и написал.
>денег больше
Не зависит от языка вообще (если это не хтонический Кобол в двух с половиной компаниях на весь мир).
>Чем перспективнее?
Как минимум тем, что делает свою родную замену говноЖСа.
Аноним 25/12/20 Птн 21:42:51 1890921277
>>1890915
я пока 0 в апи, на сколько я понимаю, это и есть рест?
Аноним 25/12/20 Птн 21:45:48 1890924278
159964787214312[...].png 322Кб, 940x788
940x788
>>1890905
Боже, какую же несусветную чушь задают на этих ваших говнокурсах.
И ведь преподносят как "ЭТА ШТОБЫ РАЗВИВАТЬ СМИКАЛАЧКУ И НАГРУЖАТЬ МОСК ПОИСКОМ РИШЕНИЯ ЗОДАЧИ".
Но ведь можно давать задачи, которые действительно имеют отношение к будущей работе.
Аноним 25/12/20 Птн 21:50:53 1890925279
>>1890919
У моей жабы? Если б я писал на жабе, тут бы не сидел и людям моск не ибал.
Бесит, что на шарп в вакансиях требуют ещё и жс
Аноним 25/12/20 Птн 21:52:16 1890926280
>>1890836
я хотел это сделать в одной строчке, типа как на моем пике
Аноним 25/12/20 Птн 21:57:43 1890929281
Аноним 25/12/20 Птн 22:03:45 1890934282
>>1890926
Ну, тебе уже дали ответ одной строчкой.
Аноним 25/12/20 Птн 22:09:31 1890937283
>>1890622
>компьютер - МакБук 15

Не, ну это все, выкатывайся
Аноним 25/12/20 Птн 22:10:10 1890938284
Аноним 25/12/20 Птн 22:10:31 1890939285
>>1890846
спасибо спасибо спасибо
Аноним 25/12/20 Птн 22:33:35 1890957286
>>1890622
>хочу вкатиться в программирование и начать зарабатывать деньги. Как быстрее всего это сделать? Английский не знаю
Тогда твой путь с низов - идешь в тестирование, растешь до автоматизации, перекатываешься в дева, если захочешь.
Аноним 25/12/20 Птн 23:47:23 1890979287
>>1890957
Какой смысл начинать с QA?
Аноним 26/12/20 Суб 00:51:22 1891006288
>>1884465
потому что, сука, буфферинг не может быть "\n". используй именованные параметры тогда newline="\n"
Аноним 26/12/20 Суб 00:56:34 1891013289
>>1890979
Опыт работы, в QA легче возмьмут, если просто в IT шаришь и немного кодить умеешь.
Аноним 26/12/20 Суб 01:20:27 1891030290
Bildschirmfoto [...].png 48Кб, 690x689
690x689
>>1890905
проще пареной репы
Аноним 26/12/20 Суб 01:23:34 1891036291
>>1890905
надеюсь, ошибку в >>1891030 сам найдёшь, иначе что это за обучение будет, ёпта.
Аноним 26/12/20 Суб 01:24:42 1891039292
>>1890924
заебись задачки, простенькие, но со смекалочкой. иначе макакой будешь работать всю жизнь.
Аноним 26/12/20 Суб 01:28:53 1891048293
>>1890979
это как в армии, начинаешь духом. кому-то надо делать хуёвую работу.
Аноним 26/12/20 Суб 01:39:10 1891058294
>>1890924
>Но ведь можно давать задачи, которые действительно имеют отношение к будущей работе.
Ты и в школе, наверное, отказывался математику и физику учить, типа задачки, которые решать заставляют, не имеют отношения к будущей работе.
Аноним 26/12/20 Суб 01:46:35 1891062295
>>1891030
Про то, что у тебя ошибка в suka тебе уже сказали.

suka можно переписать в одну строчку:
def suka(s, line):
____return set(line) >= set(s)

ну и естественно заинлайнить можно после этого
Аноним 26/12/20 Суб 02:03:11 1891066296
>>1891062
ощибку я там по невнимательности сделал, потом исправлять не стал, чтоб номерочки строк остались. а дурилка сам бы нашёл её, при обдумывании происходящего.

кстати, у тебя охуенный финт со сравнениями множеств, моё почтение.
Аноним 26/12/20 Суб 02:56:09 1891111297
>финт со сравнениями множеств
Как это работает?
Аноним 26/12/20 Суб 03:59:12 1891124298
>>1891111
Смотри документацию на множества в питоне
https://docs.python.org/3/library/stdtypes.html#set

С ними иногда можно проделывать довольно много финтов, куда более интересных и практичных.

set("word") - создаёт множество (set) из итерируемого типа, в данном случае из строки, соответственно получится множество букв-символов

для множеств переопределены логические операции, как & (пересечение), | (объединение), ^ (разница).

Для них же переопределены операции >, >=, которые показывают, что одно множество покрывает другое, то есть все элементы одного множества содержатся в другом множестве.

Для тех, кто изучал математику, вещи интуитивно понятные и магии тут особой нет. Надо только помнить факт, что такое поддержано в языке.

В целом иногда довольно полезно быстро проверить, что все элементы какого-то множества содержатся в другом множестве (в списке разрешённых значений, например). Вместо того, чтобы оформлять цикл, можно вот такой финт использовать.
Аноним 26/12/20 Суб 04:54:58 1891155299
Аноним 26/12/20 Суб 10:00:05 1891264300
image.png 85Кб, 609x580
609x580
Нужно обойти более 1к урлов и посчитать время доступа к каждому (допустим, для поиска быстрейшего прокси сервера)

Подскажите, эксперты, такой код имеет смысл или нужно писать нормальный пинг с сокетами и пакетами?
Аноним 26/12/20 Суб 10:21:06 1891272301
>>1891264
Под нормальным пингом ты имеешь в виду icmp? Это вообще не в тему.
В принципе, у тебя норм. Скопируй только все оригинальные заголовки из хрома + компрессию + таки лучше гет, а не хед.
Аноним 26/12/20 Суб 11:05:27 1891289302
>>1891058
В школе я был тупым рабом своих родителей, у меня таких мыслей даже сформироваться не могло. А так да, физику, изо и обж с биологией бы нахуй выкинул из своего курса.
Аноним 26/12/20 Суб 11:24:52 1891298303
>>1885435
>реализация слабого
Не полный функционирующий магазин, а понимание что куда и как взаимодействует хотя бы, минимум я там обозначил
>(товары, корзина, заказ, покупатели и менеджеры)
Аноним 26/12/20 Суб 11:32:51 1891299304
Аноним 26/12/20 Суб 12:24:16 1891323305
Хочу написать рест апи на питоне, что лучше взять: фласк, джанго рест фреймворк или фастапи?
Аноним 26/12/20 Суб 14:16:56 1891412306
>>1891323
лучше взять в рот джангу, с ней дохуя манулов, и работы тоже.
Аноним 26/12/20 Суб 16:11:43 1891467307
>>1891323
У тебя апи само по себе? Или к чему-то? Вот в зависимости от того к чему твоё апи и что делает и надо делать выбор.
Аноним 26/12/20 Суб 16:16:18 1891468308
>>1891467
Как апи может быть само по себе?
Какая разница для апи, кто его потребитель?
Аноним 26/12/20 Суб 16:26:56 1891472309
>>1891323
>Хочу написать рест апи на питоне
Какое-то бессмысленное предложение. Рест - это архитектура взаимодействия сервера и потребителя посредством их общения через рест-запросы. Рест уже существует, как ты его напишешь? Это как сказать: "Хочу сделать барокко с с помощью строительных материалов Леруа Мерлен".
Аноним 26/12/20 Суб 16:33:32 1891474310
>>1891472
Ладно, мистер зануда, хочу написать программу на языке питон, обрабатывающую хттп запросы в рестфул манере. Что там в вашем снобском клубе используют для таких целей?
Аноним 26/12/20 Суб 16:37:53 1891477311
>>1891474
Для начала скажи, будет ли у тебя ГУИ в виде http-страничек с кнопочками? Или это просто бэкенд-общение через консольку?
Аноним 26/12/20 Суб 16:40:28 1891478312
>>1891477
>бэкенд-общение через консольку
Ты объебос какой-то, не пиши мне больше.
Аноним 26/12/20 Суб 16:43:29 1891480313
16079574458600.jpg 77Кб, 640x640
640x640
>>1891478
пошли под пледиком бэкенд-общаться через консольку (:
Аноним 26/12/20 Суб 17:38:08 1891541314
>>1891480
Ты вообще съеби в ужасе, мелкобуква.
Аноним 26/12/20 Суб 18:58:17 1891626315
Зачем нужны два одинаковых по результату импорта?

from . import views
from views import *
Аноним 26/12/20 Суб 20:27:47 1891699316
>>1891480
я бы с ней помурлыкал
Аноним 26/12/20 Суб 20:37:41 1891709317
Ананы, а курс пайтона на datacamp норм? Нет к нему такого хейта как к курсам на htmlacademy?
Аноним 26/12/20 Суб 20:49:53 1891716318
>>1891474
Единственное, что делает твоя программа, это "обрабатывает рестфул запросы"?

И зачем тебе именно рестфул?

Ты определись, на чём тебе делать функционал твоей проги. На том же сделаешь и апи.
Аноним 26/12/20 Суб 21:05:41 1891722319
>>1891626
Результаты импорта не одинаковые. В пером иморте обращение к функициям и классам будет как views.zalupa() а во втором просто zalupa()
Аноним 26/12/20 Суб 21:31:23 1891750320
Что такое рест апи и как его написать?
Аноним 26/12/20 Суб 21:34:26 1891753321
>>1891750
Это замшелый баззворд.
Просто вызов функций через роуты и методы хттп, и то второе не всегда.
Аноним 26/12/20 Суб 21:40:59 1891765322
>>1891048
В QA задачи немного другие.
Аноним 26/12/20 Суб 21:54:59 1891781323
При вызове scipy.integrate.quad передаю limit=2, но все равно вылезает предупреждение: IntegrationWarning: The maximum number of subdivisions (2) has been achieved. То есть алгоритм пытается дальше брать субинтервалы. Как сделать так, чтобы он не пытался этого делать?
Аноним 26/12/20 Суб 22:07:02 1891803324
Есть примерно такая функция:
def f(x):
if x > 0:
return x
else:
return 0

Когда туда передается число, все норм. Когда передается numpy массив, то нет. Как разруливать такую ситуацию правильно?
Аноним 26/12/20 Суб 22:11:49 1891805325
Аноним 26/12/20 Суб 22:23:36 1891815326
Аноним 26/12/20 Суб 22:31:46 1891831327
>>1891815
if type(x) is not int:
raise ValueError('poshel nahui')
Аноним 26/12/20 Суб 22:47:10 1891842328
>>1891831
Ясно, не отвечай мне больше, пожалуйста.
Аноним 26/12/20 Суб 22:54:38 1891846329
>>1891842
Это вполне серьезный ответ.
Аноним 26/12/20 Суб 23:26:13 1891893330
>>1891803
>>1891815
А что должно происходить по твоей задумке если в функцию передается numpy массив?
Аноним 26/12/20 Суб 23:32:22 1891898331
Аноним 26/12/20 Суб 23:34:27 1891899332
>>1891893
Все элементы меньше нуля заменяются нулями.
Аноним 26/12/20 Суб 23:41:55 1891903333
Аноним 26/12/20 Суб 23:46:20 1891905334
>>1891903
Не то. А если мне надо сравнить не с нулем, а заменить нулем?
Аноним 26/12/20 Суб 23:49:43 1891907335
Аноним 26/12/20 Суб 23:57:34 1891909336
>>1891907
Вроде норм, спасибо.
Аноним 27/12/20 Вск 12:28:53 1892193337
>>1889491
>>1889517
Спасибо анончики, я сделал это!
В том числе и благодаря вашим подсказкам
Аноним 27/12/20 Вск 12:32:34 1892197338
>>1890846
Ты сеньёр или тимлид?
ну правда, кем работаешь?
Аноним 27/12/20 Вск 12:57:44 1892207339
m.png 27Кб, 1239x551
1239x551
Анон, объясни мне плиз как функция понимает, что означает переменная m? Это особенность import re?
Аноним 27/12/20 Вск 13:19:29 1892210340
Как выучить Django?
Посмотрел уроки по Python - после нескольких курсов вроде как понял основы.
Учу Джанго - не понимаю паттерн создания сайта. Какие уроки и какие книги могут помочь.
Аноним 27/12/20 Вск 13:21:32 1892213341
>>1892210
И еще вопрос - хочу сделать сайт - стриминговый сервис, по типу GoodGame . ru, что нужно изучать чтобы сделать такой сайт?
Аноним 27/12/20 Вск 13:23:03 1892215342
>>1892207
В нее передаются объекты re.match, те же, что и при обычном поиске. Понимать что с ними должен ты, а не функция, лол.
Аноним 27/12/20 Вск 15:01:14 1892276343
>>1892213
>стриминговый сервис
Большие ресурсы для этого нужны (хороший сервер+трафик), изучать системные вещи, nginx, docker, ffmpeg, протоколы вроде rtmp/rtsp. Если питон использовать, то изучать сети и asyncio.

Аноним 27/12/20 Вск 16:44:00 1892364344
>>1891909
Но np.vectorize вроде еще лучше.
Аноним 27/12/20 Вск 17:02:21 1892387345
>>1892197
Если тебя впечатляют такие однострочники, посмотри:
http://dabeaz.com/py3meta/
Ближе к концу видео он импортирует xml файлы, то есть:
import file
будет помимо file.py искать еще file.xml и загружать его как модуль.
Аноним 27/12/20 Вск 17:08:15 1892400346
Аноним 27/12/20 Вск 17:08:53 1892401347
сап двач.

Хочу сделать юрл типа /title/number. Если перейти в /title/, то все ок, джанго находит такое совпадение, но когда перехожу с title/ на title/number выдается ошибка. Хотя в локальных переменных я вижу , что kwargs получил мой title и number, но почему-то не нашел
https://pastebin.com/TSUWTj8T
Аноним 27/12/20 Вск 17:23:25 1892427348
>>1892387
Он гад новую книгу пишет, но не родит никак.
Аноним 27/12/20 Вск 17:31:51 1892444349
>>1892364
> The vectorize function is provided primarily for convenience, not for performance. The implementation is essentially a for loop.

@np.vectorize
def vectorize(x, a=0):
....return 0 if x < a else x

%timeit vectorize(arr)
2.23 ms ± 22.4 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

%timeit np.where(arr < 0, 0, arr)
63.9 µs ± 310 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
Аноним 27/12/20 Вск 19:04:22 1892610350
Почему kwargs, а не kvargs?
Аноним 27/12/20 Вск 19:05:52 1892611351
Аноним 27/12/20 Вск 19:23:26 1892631352
Аноним 27/12/20 Вск 19:32:33 1892643353
Вот почему lambda а не что-то попроще, пиздец бесит.
Аноним 27/12/20 Вск 19:33:17 1892644354
>>1892643
Двачую, например λ.
Аноним 27/12/20 Вск 19:50:56 1892666355
image.png 28Кб, 795x176
795x176
image.png 50Кб, 470x332
470x332
Аноним 27/12/20 Вск 23:54:26 1892862356
В жс есть такая удобная хуйня - если надо подцепиться к какому-то значению из жсона, то я просто пишу
if (row.pole == 'znachenie') {
}

А в питоне как с этим быть? if json['pole'] == 'znachenie' ?
Аноним 27/12/20 Вск 23:55:23 1892863357
sshot-001.png 8Кб, 980x58
980x58
Помогите с кодом. Есть файл dll в котором нужно изменить строчку Maximum visible distance 1200 на произвольную.

Есть код:
import fileinput, string, sys


def replaceLineInFile(fileName, sourceText, replaceText):
file = open(fileName, "rb")
text = file.read()
file.close()
file = open(fileName, "wb")
file.write(text.replace(sourceText, replaceText))
file.close()
print("All went well, the modifications are done")


new_camera_distance_value = bytes(input("Enter new camera distance value:"), encoding="ascii")
replaceLineInFile("client.dll", b'1200', new_camera_distance_value)


Это для отдаления камеры в доте.
Пикрил - как должно быть
Аноним 28/12/20 Пнд 00:15:59 1892884358
>>1892863
У тебя 1200 может встречаться ранее в файле, replace заменит первое совпадение только. Тебе нужно сначала найти позицию "Maximum visible distance" и уже начиная с нее заменять.
Вообще странно, что значение в виде строки, а не в бинарном формате, может быть ты нашел display значение, которое меняет только то, что отображается где-нибудь в менюшке, но не само отдаление камеры.
Аноним 28/12/20 Пнд 00:23:26 1892892359
>>1892884
Я не понимаю ничего в питоне и кодинге в целом, ни слова не понял из того, что ты сказал
Аноним 28/12/20 Пнд 00:34:54 1892899360
Аноним 28/12/20 Пнд 01:21:30 1892928361
>>1892862
obj = json.loads(stroka_s_json)
if obj['pole'] == 'znachenie:

В JS тоже самое, тебе сначала надо строку в объект превратить с помощью JSON.parse(stroka_s_json)
Аноним 28/12/20 Пнд 01:24:51 1892933362
anim = FuncAnimation(fig, animate, init_func=init, frames=200, interval=10, blit=False, repeat=True)
anim.save('triangular_corr.gif')

Почему при вызове plt.show() анимация проигрывается с нормальной скоростью, а после сохранения в файл становится очень медленной?
Аноним 28/12/20 Пнд 01:57:06 1892958363
>>1892863
Довольно хуевая идея так делать с бинарниками.
Вот тебе хорошая заготовка, надеюсь разберешься.
https://ideone.com/F2DAwX
Аноним 28/12/20 Пнд 04:46:14 1893048364
>>1892899
Должно быть попутал с каким-то другим языком, где replace заменяет только один раз.
Аноним 28/12/20 Пнд 05:03:15 1893050365
>>1892215
Я что с ними делать понимаю. Просто не могу понять, как он берет аргумент в функцию, как он понимает что я в m хочу передать все слова на "х", я же явно это нигде не указываю, вроде бы. Я наверное, что-то не понимаю..
Аноним 28/12/20 Пнд 05:12:15 1893053366
>>1892892
Сори за тупой вопрос, а почему ты вручную не можешь поменять, просто найди строку которую хочешь поменять и поменяй, врятли это в игре, что-то изменит, но строчку можно и вручную поменять
Аноним 28/12/20 Пнд 07:25:40 1893157367
>>1893050
Вторым аргументом sub ты ставишь строку, на которую заменяется каждое совпадение, или функцию, в которые они передаются и заменяются на результат этого вызова.
Аноним 28/12/20 Пнд 09:05:26 1893215368
>>1893157
Ну да в документации так и написанно примерно
(If repl is a function, it is called for every non-overlapping occurrence of pattern. The function takes a single match object argument, and returns the replacement string.)
Просто интересно как именно она это делает, ладно забей, я думаю в соусе можно найти как она это делает.
Аноним 28/12/20 Пнд 09:14:35 1893223369
>>1893215
Что значит как. Проверяется тип аргумента, если это функция, то она вызывается. Это банальный коллбек, дохуя где используется.
Аноним 28/12/20 Пнд 09:53:24 1893252370
Посоветуйте шпаргалку или краткий курс по NumPy. Внутреннюю кухню по мат.статистике знаю, мне бы справочник по функциям типа np.covariation(arr) выдает коээфициент ковариации.
Аноним 28/12/20 Пнд 10:03:34 1893259371
Аноним 28/12/20 Пнд 10:32:10 1893276372
>>1893223
Ну я недавно изучать питон начал, и первый раз такое увидел
Аноним 28/12/20 Пнд 11:41:23 1893311373
>>1883441 (OP)
Как называется различное поведение одного и того же метода в разных классах?
экз в шараге, в интернете такой хуйни вообще нигде не найти
Аноним 28/12/20 Пнд 11:43:23 1893314374
Аноним 28/12/20 Пнд 12:16:32 1893330375
>>1893311
Полиморфизм это называется.
>>1893314
Перегрузка применима к методу только одного класса и в питоне она даже не существует. В нем перегрузка достигается костылением через необязательные (дефолтные) параметры.
Аноним 28/12/20 Пнд 12:21:41 1893331376
>>1893330
Он не про то спрашивает, а про реализацию кастомного класса, для которого работает искаробочный len, например.
Это перегрузка, не?
А то чего в питоне нет, как раз полиморфизм, лол.
Аноним 28/12/20 Пнд 12:32:56 1893339377
>>1893331
Пчел,
>Перегрузка методов – это объявление в классе методов с одинаковыми именами при этом с различными параметрам
В питоне нет Java/C-подобной перегрузки, типа

def a(a: int):
--return a

def a(a: int, b:str):
--return a, b

Код сразу пошлет нахуй при попытке вызвать a(5).


>про реализацию кастомного класса, для которого работает искаробочный len
Это вообще переопределение метода класса.
Аноним 28/12/20 Пнд 12:34:50 1893342378
>>1893339
Ты меня ошарашил, всю жизнь я думал, что полиморфизм это как раз первое, а второе перегрузка, и так же оно работает в том же шарпе, про жабу не знаю.
Аноним 28/12/20 Пнд 12:36:46 1893347379
Вот, например, в питоньем доке то же пишут https://docs.python.org/3/reference/datamodel.html#special-method-names
> A class can implement certain operations that are invoked by special syntax (such as arithmetic operations or subscripting and slicing) by defining methods with special names. This is Python’s approach to operator overloading, allowing classes to define their own behavior with respect to language operators.
Аноним 28/12/20 Пнд 12:58:22 1893357380
Почитал всякую теоретическую хуйню, в итоге оба подхода это способы реализации полиморфизма, хмм.
Аноним 28/12/20 Пнд 12:58:41 1893359381
>>1893342
Полиморфизм - это не первое или второе. Это концепция ООП, предлагающая реализацию и первого, и второго.
>>1893357
Опередил.
Аноним 28/12/20 Пнд 12:59:41 1893361382
1340289833748.jpg 65Кб, 600x600
600x600
>>1893359
ИНКАПСУЛЯЦИЯ - ЭТО СОКРЫТИЕ
Аноним 28/12/20 Пнд 13:05:58 1893368383
>>1893359
Ну это надо почитать какой-то ебанутый жаберский или шарперский кирпич, где половину объема занимают рассказы кто родил кого. В скриптоте мне это не очень интересно - как работает и для чего нужно понятно, а больше и не особо надо.
Аноним 28/12/20 Пнд 13:11:46 1893376384
>>1893368
Ну, если твой потолок - питоноскрипты, то да, ООП не нужен.
Но на будущее: ни одно интервью не обходится без "трех китов ООП".
Аноним 28/12/20 Пнд 13:15:51 1893381385
>>1893376
Сначала надо ебать байты в си, потом ебать абстрактные фабрики, а потом можно уже на пенсию спокойно писать питоновские скрипты.
Аноним 28/12/20 Пнд 13:18:01 1893385386
Аноним 28/12/20 Пнд 14:20:43 1893478387
>>1893330
>В нем перегрузка достигается костылением через необязательные (дефолтные) параметры.
Это не костылирование. Просто перегрузка в стиле C++ и дефолтные параметны несовместимы концептуально и технически.

Ну или очень сложно совместимы, с кучей потенциальных граблей.

При выборе одного из двух я однозначно за параметры по умолчанию. Одна из фишек, за что я просто дико люблю питон, чего не хватает в других языках.
Аноним 28/12/20 Пнд 15:10:22 1893534388
image.png 37Кб, 730x629
730x629
15100605141050.mp4 490Кб, 1280x720, 00:00:06
1280x720
>>1893478
>Просто перегрузка в стиле C++ и дефолтные параметны несовместимы концептуально и технически
Аноним 28/12/20 Пнд 15:49:53 1893566389
>>1893534
Вообще дефолтные параметры и перегрузка несколько разные вещи.

Перегрузка нужна, чтобы разные функции вызывать в зависимости от типа параметра. С учётом, что питон динамически типизируемый, это довольно сложно сделать на уровне языка.

В таких случаях извращаются скорее с isinstance, чем с дефолтными параметрами.

Аноним 28/12/20 Пнд 17:08:50 1893646390
>>1893566
> С учётом, что питон динамически типизируемый, это
Просто ненужно.
Пофиксил тебя.
Аноним 28/12/20 Пнд 18:06:45 1893738391
Screenshot 2020[...].png 33Кб, 298x479
298x479
Правильно ли я понимаю, что 1 и 2 вариант, абсолютно одинаков, и __init__ нужен исключительно для случаев как в варианте 3? Чтобы можно было создавать имена "интерактивно"
Аноним 28/12/20 Пнд 18:10:32 1893742392
>>1893738
Нет, не одинаков. В первом атрибут класса, во втором аттрибут объекта, у каждого объекта свой.
Аноним 28/12/20 Пнд 18:11:26 1893744393
кто подскажет как это говно в Pydantic распарсить?

data = {'TaxPayerVATNumber':'123213213123'}

class TestModel(BaseModel):
tax_payer_vat_number:str


class Config:
alias_generator = to_camel
allow_population_by_field_name = True
arbitrary_types_allowed = True

to_camel не проглатывает.

def to_camel(string:str):
return ''.join(word.capitalize() for word in string.split('_'))
Аноним 28/12/20 Пнд 18:11:57 1893746394
Аноним 28/12/20 Пнд 18:12:28 1893747395
>>1893738
>Правильно ли я понимаю, что 1 и 2 вариант, абсолютно одинаков
Нет, варианты 1 и 2 совершенно разные.
В варианте 1 у объекта не создаётся переменная, name переменная класса. Просто питон видит, что переменная объекта не определена и обращается к переменной класса. Как только ты сделаешь self.name = '' или a.name = '' эта переменная будет создана.

Аноним 28/12/20 Пнд 18:15:46 1893750396
Screenshot 2020[...].png 43Кб, 301x697
301x697
Аноним 28/12/20 Пнд 19:52:49 1893827397
Привет ребят, есть задача сохранять подряд пачку графиков на удаленном сервере(свечи и обычные) рисовал их с помощью finplot но не нашел в его доках функции сохранения. В общем как рисовать и сохранять свечи в большом количестве подряд?
Аноним 28/12/20 Пнд 20:25:02 1893883398
Сап, все-знающий-аноним!

Можете объяснить, почему в данном коде не идет повторения того, что ввел пользователь? Я сделал так, чтобы не выводился "quite" при завершении программы, но при этом, теперь не выводится вообще ничего.

После нескольких тестов заработало само. Класс. Почему-то, на https://www.programiz.com/python-programming/online-compiler/ не всегда выводятся ответы.

Встал другой вопрос:
Почему если if убрать из цикла, он не будет нормально работать?
https://ideone.com/5a4U4p

Аноним 28/12/20 Пнд 21:04:34 1893939399
>>1893883
Лучше юзать repl.it, твой интерпретатор какой-то конченный и работает через жопу.
>Почему если if убрать из цикла, он не будет нормально работать?
Что в твоем понимании "нормально работать"? Он работает именно так, как написан.
Аноним 28/12/20 Пнд 21:10:35 1893945400
>>1893939
>Что в твоем понимании "нормально работать"?
Это будущий заказчик подрастает. Готовится к написанию задач.

Описание в Джире:
%Фичанейм% работает неправильно. Надо, чтобы нормально работала.
Аноним 28/12/20 Пнд 21:14:08 1893952401
photo2020-11-22[...].jpg 71Кб, 1204x1066
1204x1066
>>1893945
>%Фичанейм% работает неправильно
Слишком подробно, можно догадаться.
Лучше
>НИЧЕГО НЕ РАБОТАЕТ!11!!1!!!
Аноним 28/12/20 Пнд 21:46:40 1893989402
>>1893952
>>1893939
Эм, да, коряво получилось. Прошу прощения.

Вот у меня есть цикл. Пока сообщение не quit, сообщением будет то, что вводит пользователь. Вопрос: будет ли message = input(prompt) и для if тоже (который находится не в цикле?) или же message = input(prompt) только в while?
Аноним 28/12/20 Пнд 21:49:42 1893994403
>>1893989
>будет ли message = input(prompt) и для if тоже
Будет.
Аноним 28/12/20 Пнд 22:04:18 1894009404
image.png 78Кб, 1419x666
1419x666
>>1893994
> Будет

Тогда я не могу понять, почему если message = input(prompt) и для if тоже, print(message) не выводит то, что вводится пользователем.

Аноним 28/12/20 Пнд 22:06:57 1894012405
>>1894009
Потому что код не доходит до if. Он в цикле while. А while выполняется заново бесконечное количество раз (до StackOverflowException, конечно, но не в этом случае), пока он True.
Аноним 28/12/20 Пнд 22:09:28 1894017406
>>1894012
Большое спасибо! Действительно забыл про бесконечность цикла.
Аноним 28/12/20 Пнд 22:49:10 1894041407
Как же сложно вкотиться. Я уже 2 месяца по ~4 часа в день учу этот питон, bash
И всё что я могу, так это писать примитивные скрипты. А ещё фрэймворки, паттерны, миллион библиотек, алгоритмы, и всякие книги "программируем как профи" и т.д.
Я думал у вас попроще
Аноним 28/12/20 Пнд 22:49:56 1894042408
>>1894041
Теория автоматов, гит и прочая инфа, что студентики учат 4 года в своих вузиках
Аноним 28/12/20 Пнд 23:08:39 1894054409
>>1894041
Попроще чем что? Дома никогда не научишься кодить, твоя цель устроиться на работу, а для этого упор делай чисто на фреймворки, зазубривание теории и типовых вопросов для вкатунов.
мимокрок
Аноним 28/12/20 Пнд 23:17:48 1894065410
15995573220810.jpg 205Кб, 918x750
918x750
>>1894054
This, а еще пора пилить свой пет-прожект. Похуй что, что взбредет в голову, хоть напоминалка дней рождения, читающая из csv-файлика, которую можно бесконечно наращивать новыми фичами, лишь бы нарабатывать практику кодинга.
Аноним 28/12/20 Пнд 23:19:49 1894068411
Бле есть лист словарей data
в каждом словаре пиздец много ключей-значений, нужно фильтронуть этот лист словарей только оставить в словарях все ключи 'name' и их значения
пишу:
data = [item for item in data for k, v in item.items() if k == 'name']
Получаю исходный лист словарей нихуя не фильтрануло :/
Что ему ему не так?
Аноним 28/12/20 Пнд 23:24:24 1894073412
>>1894065
Пет-прожект слишком громко для миллионого калькулятора. Достаточно выполнить тестовые уровня запилить систему абитуриентов и залить их на гитхаб.
Аноним 28/12/20 Пнд 23:25:12 1894076413
>>1894068
Бле понятно что ему не так
Он просто видит в словаре ключ name и оставляет весь словарь item
Как добиться желаемого эффекта?
Аноним 28/12/20 Пнд 23:41:28 1894082414
Почему в jupyter такое кривой редактор? Ни автокомплита, ни intellisense, который везде уже пихают.
Аноним 28/12/20 Пнд 23:41:46 1894084415
Вопрос, наверное, смешной, но всё же.

Есть класс A, у него есть переменная classvar.

Создаём экземпляр этого класса objA, у objA есть переменная classvar.

Изменяем значение переменной КЛАССА (не экземпляра) на другое значение. Почему значение меняется и уже созданных экземпляров? Это как-то связано может с ссылками на память? Мол, все экземпляры хранят именно ссылку на память, и при изменении переменной изменяется содержимое в памяти, при этом другие экземпляры всё ещё ссылаются на ячейку?
Аноним 28/12/20 Пнд 23:47:00 1894086416
.PNG 62Кб, 612x200
612x200
Вкатывающийся в питон в треде.

Есть один курс, и есть одна простая задачка. Собственно, задачка решена, но криво. Препод курса делает вот такую вещь в решении, которую до этого вообще не показывал - потому и я её нормально назвать не могу (привязывание списка к строке?).

Прошёлся по книжкам - не нахожу чёт.

Подскажите, анончики, как это называется. Прикреплейтед.
Аноним 28/12/20 Пнд 23:49:17 1894087417
>>1894086
Разве это не создание листа и потом вытаскивание его элемента?

v = [1,2,3]
v[1]

сначала ты создаёшь лист "[]", и потом вытаскиваешь значение из созданного [1]
Аноним 28/12/20 Пнд 23:50:56 1894089418
Screenshot225017.png 14Кб, 743x117
743x117
>>1894068
Бля, вот так работает, как сделать в одну строку по типу что выше закоментировано?
Аноним 28/12/20 Пнд 23:51:03 1894090419
>>1894087
Вроде, нет. Ни элемента такого в списке нет (это строка выше), тем более это не является номером элемента в списке.
Аноним 28/12/20 Пнд 23:53:33 1894093420
>>1894090
Всмысле нет? раздели на несколько переменных

mySuperList = ["сыр", "кетчуп"]

myElement = mySuperList[1] (присвоить первый элемент листа mySuperList, то-есть кетчуп)

Только тут это сразу делается

mySuperElement = ["сыр", "кетчуп"][1]

(грубо говоря переменной mySuperElement сразу присваивается значение листа который ты задаёшь прямо в переменной)
Аноним 28/12/20 Пнд 23:54:12 1894094421
>>1894086
сабскрипт оператор
Аноним 29/12/20 Втр 00:38:03 1894139422
Привет всем.
Хочу в бэк программирование вкатитсья, что можете посоветовать для питона?
Аноним 29/12/20 Втр 00:53:42 1894152423
solution.PNG 22Кб, 991x409
991x409
>>1894089
>>1894068
new_data.extend([{k:v} for k,v in item.items() if k == 'key1'][0] for item in data)
Аноним 29/12/20 Втр 02:39:30 1894197424
>>1894084
Потому что переменная classvar одна на всех, в этом и суть переменной класса.
Аноним 29/12/20 Втр 03:08:27 1894212425
>>1894084
Днём было про это уже.

Питон, когда ты спрашиваешь переменную объекта, смотрит сначала, не определена ли эта переменная для объекта. Если определена, то использует её. Если не определена, то смотрит, не определена ли для класса эта переменная.

При этом если ты попытаешься изменить значение переменной объекта, записать что-то в переменную, которая определена для класса, но не объекта, то переменная класса не изменится, а будет создана переменная для этого объекта.

То есть переменная класса это переменная по-умолчанию и только для чтения.
Аноним 29/12/20 Втр 03:43:56 1894229426
Аноним 29/12/20 Втр 04:57:56 1894245427
Аноним 29/12/20 Втр 05:18:58 1894261428
Привет тред.
Хочу сделать такой мини проект, чтобы мозги размять немного, сам не программист, но на работе ебошу иногда скрипты в юпитер ноутбуках, поэтому в целом понимаю что и как, но с какой стороны подойти не знаю.

Хочу раз в n времени проверять есть ли новые посты в паблике в вк. Если есть то проверять содержит ли пост указанный текст. Если содержит, то кидать пуш / смс или любое другое оповещение пользователю. В идеале бы это все оформить в бота в телеге с юзер френдли интерфейсом, чтобы не программист тоже мог воспользоваться, заранее благодарю за советы
Аноним 29/12/20 Втр 07:25:18 1894335429
Аноним 29/12/20 Втр 08:08:21 1894344430
>>1894261
Создай standalone приложение для ВК, получи токены и разрешения использовать АПИ, проделай то же самое с Телеграм. Если бот будет просто чекать посты ВК, то асинхронность не обязательно использовать, а то щас aiogram популярна библиотека. Я в этой асинхронности плаваю как кал сцуко.
Найти бы упражения для отработки асинхронности, многопоточности и всей этой хитрой хуйни. Может кто видел? Можно и для другого языка, главное задачки.
Аноним 29/12/20 Втр 09:11:17 1894364431
>>1894054
>>1894065
Звучит хорошо. Спасибо что поддержали анончики!
А то я совсем поник, когда понял, что соревнуюсь с людьми, которые учились 6 лет этой херне.
Аноним 29/12/20 Втр 09:30:32 1894367432
>>1894090
>Ни элемента такого в списке нет (это строка выше), тем более это не является номером элемента в списке
А ниче, что строка выше - это переменная, равная выполненной функции eval, что есть int?
Аноним 29/12/20 Втр 09:40:37 1894370433
>>1894344
>Найти бы упражения для отработки асинхронности, многопоточности и всей этой хитрой хуйни
В питоне я вкатывался в асинхронность через создание десктопных приложений посредство PyQt. Как известно, приложение по умолчанию работает в одном потоке, и если у тебя есть кнопочка "Просканировать пидоров вокруг", занимающая 10 секунд на выполнение данной операции, то после нажатия на нее десктопное окно попадет в состояние "Не отвечает", пока не пройдет 10 секунд, после чего оно одуплится. Поэтому любые функции должны отрабатываться в отдельном потоке, для чего в Qt есть встроенный QThread. Вот можешь с него начать.
Но в питоне асинхронность пилить довольно заебно.

Вот то ли дело в шарпе, ммм:
public async void ScanFaggotsButtonClick()
{
List<string> faggots = await Task.Run(() => ScanFaggotsInArea(10))
}
Аноним 29/12/20 Втр 12:37:04 1894435434
>>1894245
>>1894152
Годно выглядит, спасибо. И мб подскажите как там в этих ваших продакшенах на смотрят на длиннокод когда можно в одну строку всё сделать генератором? Всем похуй или нет?
Аноним 29/12/20 Втр 12:58:25 1894448435
>>1894435
>Ну за решение в 1 строчку я бы тебе ебнул бы, лучше пиши в несколько строк конкретно это решение потому что оно очень просто читается и с первого раза понятно что происходит, а в 1 строчку ты заебёшся вчитываться в эту сточку ебаную, там же блять лист компрехеншен в методе экстенд у листа и потом [0] сразу хуй пойми чего делает этот 0
Аноним 29/12/20 Втр 13:44:34 1894482436
>>1894435
>Годно выглядит
В случае 'key1' выглядит как полный пиздец, потому что проще напрямую обратиться по ключу key1, чем в цикле проходить по всем ключам и сравнивать с key1. Такое распечатывать и на стенку вешать как шедевр программирования.

Хотя в исходном ТЗ, как я понимаю, надо не по набору ключей, а по чему-то типа регулярки тестировать, тогда такое уже нормально.

Но если будет регулярка или какая другая сложная проверка, то в одну строчку уже не запихнёшь, или уж очень тяжеловесно будет.
Аноним 29/12/20 Втр 13:55:28 1894497437
>>1894482
data = [{"name": "John", "age": 12}, {"name": "Jane", "age": 24}]
result = [{"name" : obj["name"]} for obj in data if "name" in obj]
Аноним 29/12/20 Втр 18:15:46 1894725438
>>1894482
>Хотя в исходном ТЗ, как я понимаю, надо не по набору ключей
Мне нужно было именно по ключу, эта вся хуйня нужна чтобы выдрать из REST нужные мне данные, собрать в словарь и из словаря запилить CSV по шаблону а она удобно пилится csv.DictWriter со словарями
Аноним 29/12/20 Втр 20:05:07 1894813439
>>1894370
>в асинхронность через создание десктопных приложений посредство PyQt
Это всё-таки многопоточность, асинхронность это то, что через asyncio.

Но в неё тоже вкатиться не так просто, имхо лучше с других языков начать с этими технологиями играть.

Я бы посоветовал или JS, или Go глянуть на предмет конкурентного программирования.

В JS промисы и async/await намного более предсказуемые, чем в питоне.
Аноним 29/12/20 Втр 20:22:01 1894817440
Аноним 29/12/20 Втр 21:39:27 1894865441
XRENb.png 80Кб, 1464x617
1464x617
Что за херня? Как бороть? Сливать словари? Или попроще чего будет? Гугл молчит про 2 writerows подряд
Аноним 29/12/20 Втр 21:52:38 1894883442
>>1894865
По-моему, всё правильно делает.
Ну зазипуй словари, но всё равно какая-то хуйня, какой смысл вообще?
Аноним 29/12/20 Втр 22:04:59 1894897443
>>1894883
ну такполучилось что у меня листы с диками. Нужно их записать.
Есть вариант запихнуть всё в один лист но как-то сложно.
Аноним 29/12/20 Втр 22:07:16 1894901444
>>1894883
алсо zip не помог, оно кортеж делает а writerows их не ест
Аноним 29/12/20 Втр 22:09:04 1894902445
>>1894897
Что значит надо их записать?
Они связаны или нет? Почему разное количество?
Аноним 29/12/20 Втр 22:21:57 1894914446
>>1894902
Кол-во одинаково в обоих
разные нужные заголовки в разных словарях, тут либо слить пытаться в один словарь либо хз
Аноним 29/12/20 Втр 22:24:41 1894916447
>>1894865
Для начала сформулируй, что ты именно хочешь. И пример, как это в таблице будет выглядеть.

Потому что тут в одном списке три элемента, в другом два элемента, и визуально они никак между собой не связаны, не пересекаются по каким-либо значениям.

Руками список собери в случае чего.
Аноним 29/12/20 Втр 22:25:55 1894919448
>>1894914
for row, row2 in zip(dict1,dict2):
row.update(row2)
всё.
Аноним 29/12/20 Втр 22:26:25 1894920449
Screenshot212519.png 74Кб, 1617x857
1617x857
>>1894916
Вот тут нагляднее
Я попытался слить в один словарь но не вышло правильно.
У меня есть 2 словаря из которых нужно слепить один csv
Аноним 29/12/20 Втр 22:28:32 1894922450
>>1894813
>Это всё-таки многопоточность, асинхронность это то, что через asyncio
Можешь пояснить языком даунов (хоть как в том примере про электричество и говно), в чем разница?
Мимо
Аноним 29/12/20 Втр 22:29:05 1894923451
>>1894919
Работает, спс
Но я думал мб можно удалить как-то newLine после первого writerows
Аноним 29/12/20 Втр 22:32:32 1894927452
>>1894923
Да это не имеет смысла, специально сделали враппер, чтобы красиво выплюнуть всё по ключам, а ты хочешь это через жопу провернуть для своего наркоманского случая. Делай построчно тогда без этих удобств.
Аноним 29/12/20 Втр 22:39:46 1894935453
>>1894927
Согласен
Поэтому я просто соберу словарь один да и всё как тут >>1894919
посоветовали
Аноним 29/12/20 Втр 22:42:20 1894937454
>>1894920
Можно примерно так
for index, item in enumerate(list1):
____iter.update(list2[index])
Аноним 29/12/20 Втр 22:46:58 1894939455
>>1894922
В случае тредов ты запускаешь задачи, а переключение их происходит в случайные моменты времени. У тебя есть проблема thread safe кода, в остальном тебе адаптировать код не нужно.

asyncio требует основательной переработки кода, принцип асинхронности такой, что задача сама должна отдать управление циклу обработки задач. Обычно ты это делаешь тогда, когда блокируешься на сокетах. Оператор await для задачи позволяет отдать управление, но есть нюансы. В целом асинхронность такая удобнее, чем через треды, более производительная, но нужно, чтобы код поддерживал.

Библиотеки вроде Qt не поддерживают asyncio.

Аноним 29/12/20 Втр 22:51:11 1894943456
Стикер 255Кб, 376x476
376x476
Аноним 29/12/20 Втр 22:54:13 1894949457