Сохранен 514
https://2ch.hk/pr/res/1883441.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Питон тред №108 /python/

 Аноним 18/12/20 Птн 14:09:55 #1 №1883441 
just-enough-python.jpg
shutterstock368881394.jpg
Тред, посвящённый языку программирования Питон, #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 #2 №1883524 
>>1883433 →
Кхм, спасибо.
Значит, первый вариант лучше. Хотя мне не очень нравится загромождать код лишними буквами (типа, почему бы сразу в параметре не установить нужное дефолтное значение, а не оперировать на основании None он или нет), но если так правильнее, то я приму.
Аноним 18/12/20 Птн 15:29:37 #3 №1883531 
>>1883524
Ах черт, ну конечно.
У меня ж там рандом, а со второй записью self.a всегда будет возвращать одно и то же число, сгенерированное на старте программы. Тогда конечно это херня.
Аноним 18/12/20 Птн 16:27:56 #4 №1883657 
>КОКОКО У НАС ЯЗЫК БЕЗ ЧЕТКОЙ ТИПИЗАЦИИИ ВСЕ РАБОТАЕТ И ТАК ЗАЕБИСЬ
>ПУК СЕРЕНЬК ЦИКЛ ФОР НЕ РАБОТАЕТ С ДАННЫМИ ТИПА ИНТЕДЖЕР)))))
Пиздец параша, нахуй я только время потратил на эту недопарашу? Лучше попробовал доучить кресты.
Аноним 18/12/20 Птн 16:35:42 #5 №1883667 
>>1883657
Лучше бы ты с мамкиной шеи слез уже.
Аноним 18/12/20 Птн 16:58:01 #6 №1883698 
image.png
>>1883657
Конечно, братан, если ты не осилил чтение ошибок в питоне, но в плюсах тебя однозначно ждет успех.
Аноним 18/12/20 Птн 18:27:42 #7 №1883798 
>>1883657
а чё не так с фором, просто типичного инт и и++ фора нету и всё тут, а только проход по элементам

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

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

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

Аноним 18/12/20 Птн 19:17:26 #11 №1883860 
>>1883815
>>1883798
>>1883698
>>1883667
Говноеды не палятся. Пиздец питон дегенератский язык, я хуею.
Аноним 18/12/20 Птн 19:22:49 #12 №1883868 
1357809564141.png
>>1883860
>не осилил простейший язык для вката, которым обучают даже пятилетних детишек
>ЭТО НЕ Я ИМБЕЦИЛ, ЭТО ВЫ ГОВНОЕДЫ!
Аноним 18/12/20 Птн 19:27:39 #13 №1883877 
>>1883868
Мальчик, я на си писал когда ты под стол ходил.
Аноним 18/12/20 Птн 19:32:15 #14 №1883886 
>>1883877
Писал, да.
Аноним 18/12/20 Птн 19:34:14 #15 №1883889 
>>1883877
Что нибудь кроме лаба1 и лаба2 написал?
Аноним 18/12/20 Птн 19:37:20 #16 №1883891 
>>1883815
for i in 'four':
f
o
u
r
Аноним 18/12/20 Птн 19:39:19 #17 №1883894 
image.png
>>1883891
Аноним 18/12/20 Птн 19:53:31 #18 №1883909 
Гайз, а программирование на питоне ещё бурно развивается? Или самый мощный бум уже прошел и тем, кто знает джанго в совершенстве можно писать 3 строчки в день, есть пиццу флорентину и не развиваться дальше?
Аноним 18/12/20 Птн 20:01:06 #19 №1883919 
>>1883877
>не может прочитать документацию по методу range()
>я на си писал
На хуе ты писал.
Аноним 18/12/20 Птн 20:19:34 #20 №1883948 
>>1883909
Да, развивается. Каждый месяц новый фреймворк, который надо знать. Вот типа FastAPI.

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

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

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

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

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

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

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

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

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

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

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

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

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

obj = MyClass()
obj.num = 123

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

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

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

В принципе это лишь синтаксический сахар, без сеттеров-геттеров это делается сознанием методов
setName()
getName()
и работой через них.
Аноним 18/12/20 Птн 22:18:11 #33 №1884070 
>>1884062
Лол, помню баловался шарпом в бородатые годы, там эти геттеры-сеттеры надо было руками прописывать на каждую хуйню, пиздец занятие.
Потом вроде добавили сахарку под это дело.
Аноним 18/12/20 Птн 22:24:41 #34 №1884082 
>>1884070
>в бородатые годы
Это в 2005? Авто-проперти добавили сто лет назад
Аноним 18/12/20 Птн 22:29:58 #35 №1884093 
>>1884082
Где-то так, да.
Аноним 18/12/20 Птн 22:30:16 #36 №1884095 
А чем заниматься кроме лаба2-то на пайтоне
Аноним 18/12/20 Птн 22:51:58 #37 №1884143 
>>1884058
В питоне нет свойств, тебя наебали.
Аноним 18/12/20 Птн 22:52:49 #38 №1884145 
>>1884070
Хуею, что Джава до сих пор не утащила {get; set;} себе.
Аноним 18/12/20 Птн 22:56:43 #39 №1884158 
>>1883909
Джанго-програмист != пайтон-программист
Аноним 18/12/20 Птн 23:01:02 #40 №1884175 
Сап прогач. Не прочитал еще ни одной книжки, закончил только что(3 недели) курс на степике, куда двигаться дальше?
Аноним 18/12/20 Птн 23:02:20 #41 №1884179 
>>1884175
Че за курс?
Аноним 18/12/20 Птн 23:03:24 #42 №1884181 
>>1884179
Поколение пайтон, курс для начинающих
От АйкьюОпшн
Аноним 18/12/20 Птн 23:03:50 #43 №1884182 
>>1884175
В курс по алгоритмам от CSS.
Аноним 18/12/20 Птн 23:06:54 #44 №1884184 
>>1884182
Dekuji!
Аноним 18/12/20 Птн 23:24:36 #45 №1884196 
>>1884145
TypeScript первый придумал, c# сперла с TS как обычно, Java слизывает с C# но оооооооченб медленно и криво
Аноним 19/12/20 Суб 02:12:21 #46 №1884295 
>>1884058
Это связано с инкапсуляцией, если ты не в ооп, то тебе это нахуй не надо, чекай приватный и защищенный методы, а так это гавно без задач.
Аноним 19/12/20 Суб 07:00:08 #47 №1884344 
сап аноны, допустим есть два beep-звука подлинее и покороче, каким образом можно различить их?
Аноним 19/12/20 Суб 07:12:10 #48 №1884345 
>>1884344
тупанул, есть последовательность beep сигналов разной длины морзе которая дается на вход, каким образом можно расшифровать эту последовательность? По факту, мне нужно узнать только длину этих сигналов, и дальше уже сопоставлять с алфавитом, но каким образом можно узнать длину сигнала?
Аноним 19/12/20 Суб 08:20:29 #49 №1884353 
Сап.

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

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

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

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

Собственно вопрос в том, как на стандартной библиотеке (Pillow в неё к сожалению не входит) возможно конвертировать BMP в PNG ?
Аноним 19/12/20 Суб 08:51:36 #50 №1884361 
>>1884353
Читаешь это. https://ru.wikipedia.org/wiki/BMP
Потом это https://www.w3.org/TR/PNG/
Пишешь свой конвертер из одного формата в другой.
Аноним 19/12/20 Суб 08:55:23 #51 №1884363 
>>1884345
Посчитать разность времени начала и конца сигналов? Да не, вряд-ли.
Аноним 19/12/20 Суб 09:04:21 #52 №1884365 
>>1884345
А как получаешь? Через микрофон? Ну так пиши стрим и анализируй любой либой что работает с форматом того стрима, что пишешь. Это примерно как найти начальную { и конечную } но другой формат данных.
Аноним 19/12/20 Суб 12:35:13 #53 №1884422 
>>1884175
Я уже месяц как вкатываюсь.
У меня была программа: 1 курс от Bioinformatics institute, теперь второй курс. ЕЩё алгоритмы почитал "grokhing alghoritms"
Аноним 19/12/20 Суб 13:49:27 #54 №1884465 
1608374931488.jpg
Сап аноны, почему переход на новую строку вызывает ошибку в функции?
Аноним 19/12/20 Суб 13:59:04 #55 №1884477 
>>1884465
Потому что open() строит класс, одним из методов которого является метод .write() который что-то записывает в твоей файл.

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

Но если очень хочется, то можно, просто вместо реального файла используй виртуальный.
Модуль io класс BytesIO() позволяет сразу что-то в виртуальный файл записать.
Аноним 19/12/20 Суб 13:59:15 #56 №1884478 
1608375520863.jpg
>>1884465
Я там какую-то хуйню на пирил прикрепил. Вот новая пикча.
Почему \n вызывает ошибку при вызове функции?
Аноним 19/12/20 Суб 14:00:54 #57 №1884483 
>>1884477
Советуй сюда: >>1884478 бро.
Аноним 19/12/20 Суб 14:01:20 #58 №1884485 
>>1884478
Потому что метод .write() экземпляра класса файла принимает только 1 аргумент, а ты передаешь ему 2 строки.
Напиши "some_function" + "\n" и ошибок не будет.
Аноним 19/12/20 Суб 14:03:56 #59 №1884489 
>>1884485
Понял, спасибо.
Аноним 19/12/20 Суб 15:01:48 #60 №1884564 
Q all! Как в проектах с гитхаба искать откуда оно все начинается? Точку входа, так сказать. Клонировал проект себе, открыл и охуел от количества файлов и классов. А так хочется посмотреть как люди делают годные вещи, освоить методологию разработки.
Аноним 19/12/20 Суб 15:02:42 #61 №1884567 
>>1884564
ну бывает если выделить название функции он тебе найдет файл где она объявляется, по-моему это весь функционал подобного рода
Аноним 19/12/20 Суб 15:22:13 #62 №1884594 
>>1884158
Чем занимается пайтон-программист?
Аноним 19/12/20 Суб 15:37:27 #63 №1884606 
>>1884594
Душит своего пайтона.
Аноним 19/12/20 Суб 15:41:51 #64 №1884609 
>>1884594
Математикой
Аноним 19/12/20 Суб 15:42:37 #65 №1884610 
>>1884609
Это DS, а не пайтон-программеры
Аноним 19/12/20 Суб 16:35:31 #66 №1884645 
>>1884594
Логикой. Тут же большая часть - описание полей для моделей и формочек, прочей, можно сказать, серверной версткой, а остальное все за тебя делается.
Аноним 19/12/20 Суб 16:39:39 #67 №1884648 
>>1884645
И суть даже не в том, что в Джанго ограниченые возможности на кастомизацию логики, а в том, что Джангоебы как правило ограниченные сами по себе и считают, что кроме их фреймворка ничего не существует.
Аноним 19/12/20 Суб 16:56:12 #68 №1884665 
Двощ, помоги.
Есть одна функция test, которая отдаёт bool или int
Как исправить код так, чтобы не вызывать её два раза:

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

Аноним 19/12/20 Суб 17:00:03 #69 №1884671 
>>1884665
var = test(arg)
Аноним 19/12/20 Суб 17:03:05 #70 №1884674 
>>1884665
Как обычно, стоило спросить и сразу понял, что можно переменную присвоить до проверки...
Аноним 19/12/20 Суб 17:36:23 #71 №1884717 
>>1883441 (OP)
как я понял, при запуске файла *.py интерпретатор вставляет вместо всех импортов код соответствующих модулей, вместо всех вызовов функций - код самих функций, а есть возможность посмотреть на код, который после всех этих махинаций получится?
не спрашивайте нахуя это мне
Аноним 19/12/20 Суб 18:15:38 #72 №1884752 
Сап двач
Как можно сделать это через регулярные выражения?
>Найдите все натуральные числа, не находящиеся внутри или на границе слова;

Заранее благодарю вас за помощь
Аноним 19/12/20 Суб 18:31:35 #73 №1884763 
>>1884665
хуевая логика у тебя, функция должна одно из возвращать
Аноним 19/12/20 Суб 18:32:54 #74 №1884764 
>>1884763
У меня функция ищет хуйню в хуйне и возвращает фолс если не нашла.
Аноним 19/12/20 Суб 19:59:21 #75 №1884841 
Господа, помогите, пожалуйста. Хочу в JSON оставить только уникальные ключи. Никак не могу сообразить как сделать. Щит-код тут https://ideone.com/Zy3e6s
Аноним 19/12/20 Суб 20:10:36 #76 №1884847 
>>1884764
Наверное тогда логичнее делать Optional[int]?
Аноним 19/12/20 Суб 20:14:03 #77 №1884854 
>>1884841
То есть тебе надо чтобы второго owner2 не было в массиве, да ?
Аноним 19/12/20 Суб 20:25:32 #78 №1884861 
>>1884854
да
Аноним 19/12/20 Суб 20:26:29 #79 №1884864 
>>1884861
пизда
new_owner_id = list(dict.fromkeys(owner_id))
Аноним 19/12/20 Суб 20:34:32 #80 №1884871 
>>1884864
тут вопрос в том, что в JSON пары {owner_id : media_id}, а твой код вернет только уникальные значения owner_id без пары media_id, что, как сам понимаешь, нас не устраивает. нужен еще один какой-то хитрый ход.
Аноним 19/12/20 Суб 20:36:18 #81 №1884876 
>>1884871
тут вопрос в том что я тебя про массив спросил, а не про JSON
из json'а лишний owner вместе с media исчезнуть должен ?
Аноним 19/12/20 Суб 20:43:34 #82 №1884887 
Ты какую-то хуйню обьясняешь, покажи что должно стать из этого жсона.
Аноним 19/12/20 Суб 20:44:59 #83 №1884888 
>>1884887
внатуре долбоеб какой-то, если есть возможность до преобразования в джсон убрать лишние элементы, нахуя их из итогового джсона убирать
Аноним 19/12/20 Суб 20:54:11 #84 №1884892 
>>1884876
да, из JSON owner_id вместе с media_id должен уйти. сорян, если туплю.
вот так должно получиться: {'result': [{'owner1': 'media1'}, {'owner2': 'media2'}, {'owner3': 'media3'}]}
Аноним 19/12/20 Суб 20:55:21 #85 №1884894 
>>1884888
потому что важно сочетание owner_id: media_id. если из начального массива убрать лишний owner_id, то нарушается сочетание с media_id.
Аноним 19/12/20 Суб 21:23:44 #86 №1884909 
>>1884717
>при запуске файла *.py интерпретатор вставляет вместо всех импортов код соответствующих модулей,
Нет, не верно.
Интерпретатор "делает импорт" и запускает код из модуля только один раз. То есть если ты в нескольких файлах проекта импортируешь скрипт, то он выполнится лишь один раз.

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

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

Импорт - это создание в памяти объекта-модуля.
Аноним 19/12/20 Суб 21:30:02 #87 №1884914 
>>1884909
Си си рагацци.
improving Аноним 19/12/20 Суб 22:27:57 #88 №1884955 
Привет всем, есть тут челы на лвл джун которые изучают джангу. Хочу связаться для дальнейшего развития вместе. Я заебался развиваться один
Аноним 19/12/20 Суб 23:25:42 #89 №1884994 
>>1884914
тэйк э ченс оф мии
Аноним 19/12/20 Суб 23:26:11 #90 №1884995 
>>1884909
ну кстати import.reload() модуль импортирует еще раз
Аноним 20/12/20 Вск 00:14:09 #91 №1885031 
>>1884955
Привет. Я думаю в джангу вкатываться. Но я пока совсем слаб и изучаю теорию. Думаю до джанги дорасту через месяц.
Вот на этом я остановился >>1884752
Аноним 20/12/20 Вск 00:15:52 #92 №1885032 
>>1884564
Смотри историю коммитов на гитхабе. Но обычно если проект уровня hello world, забивают на нормальные коммиты
Аноним 20/12/20 Вск 02:51:59 #93 №1885141 
>>1885031
напиши мне в телегу @chvmq
Аноним 20/12/20 Вск 08:37:17 #94 №1885198 
>>1884887
https://ideone.com/Kcxv9F
вот такой код делает по красоте.
Аноним 20/12/20 Вск 11:05:38 #95 №1885288 
>>1884955
лвл джун это, к сожалению, реализация слабого бэка магазина (товары, корзина, заказ, покупатели и менеджеры) за 3 дня
Аноним 20/12/20 Вск 14:50:52 #96 №1885427 
>>1885198
Так пихай сразу в зипе в словарь, к чему этот второй заход.
Аноним 20/12/20 Вск 15:05:23 #97 №1885435 
>>1885288
Где ты видел джунов которые маназины делают за 3 дня? По твоей логике, за год выодит до 100 магазинов. Я мастеров-старперов с таким кол-вом не видел
Аноним 20/12/20 Вск 15:22:47 #98 №1885440 
Как можно получить координаты окружности нужного диаметра с определённым шагом?
Аноним 20/12/20 Вск 15:30:06 #99 №1885442 
Screenshot from 2020-12-20 15-18-57.png
>>1885427
>>1885198
Как я понял задачу, должны быть только уникальные значения. То есть owner2 не должен выводиться вообще, поскольку дважды присутствует.

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

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

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

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

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

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

https://pastebin.com/icMuXr3A



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

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

Можно, конечно, сделать более униваерсальный, но тогда производительность его будет раз в 5-7 хуже.
Аноним 20/12/20 Вск 17:08:26 #108 №1885536 
>>1885529
https://ideone.com/LWCD54
Аноним 20/12/20 Вск 19:27:06 #109 №1885626 
>>1884752
Сам разобрался. Достаточно использовать группировку.
Всем изучающим re modul рекомендую тег VERBOSE
Аноним 20/12/20 Вск 20:42:15 #110 №1885657 
>>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 #111 №1885704 
>>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 #112 №1885711 
Cph5i3BUkAUijhn.jpg
>>1885657
>Как вы наверное поняли CachedRepository выступает как декоратор и работа с EmployeeRepository осуществляется через через небольшой набор методов этого декоратора.

Нет, не поняли.
Аноним 20/12/20 Вск 21:43:51 #113 №1885713 
>>1885704
Про super мы конечно же не слышали.
Аноним 21/12/20 Пнд 01:33:09 #114 №1885789 
16075426920340.jpg
Посоветуйте книжку по питону для неновичка, перекатывающегося с C++ или java или типа того? Чтобы за 3-4 вечера вкатиться и через неделю устроиться на новую работу.
Аноним 21/12/20 Пнд 01:41:52 #115 №1885791 
>>1885789
>Чтобы за 3-4 вечера вкатиться и через неделю устроиться на новую работу
Хорошо пошутил.
Аноним 21/12/20 Пнд 02:16:21 #116 №1885805 
>>1885791
>>Чтобы за 3-4 вечера вкатиться и через неделю устроиться на новую работу
>Хорошо пошутил.

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

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

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

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

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

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

Всё так и есть

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

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

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

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

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

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

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

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

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

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

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

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

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

Аноним 21/12/20 Пнд 16:56:28 #130 №1886284 
Пистоны памаХите
Есть лист со словарями нада бы сдвинуть все значения в ключе ассет на пустые значения снизу ну мол если одно занчение пусто то один раз, если два - то два раза т.е. на кол-во пустых ключей последних
Аноним 21/12/20 Пнд 16:58:37 #131 №1886286 
Screenshot20201221155039.png
>>1886284
отклеилось
Аноним 21/12/20 Пнд 18:06:00 #132 №1886347 
>>1886284
>>1886286
Нихуя непонятно.
Аноним 21/12/20 Пнд 18:15:05 #133 №1886355 
Screenshot171231.png
>>1886347
Та изи же
Вот есть принт первый там дву пустых внизу - это мой кейс
Нужно сдвинуть значения ключей вниз как на принте 2
Только на принте 2 я просто заменил первые 2 на последние а первые потёр но мне нужно именно сдвигать дальше оставляя вначале пустые
Аноним 21/12/20 Пнд 18:22:17 #134 №1886357 
>>1886355
У тебя: 1122__ -> __2211
Ты уверен, что должно быть так, а не:
1122__ -> __1122
?
Аноним 21/12/20 Пнд 18:42:22 #135 №1886369 
>>1886355
Так штоле? https://ideone.com/seGXnq
Аноним 21/12/20 Пнд 19:19:11 #136 №1886420 
>>1886098
Так тебе что надо из питона с++ вызывать, или из с++ вызывать питон?
Аноним 21/12/20 Пнд 19:32:38 #137 №1886444 
>>1886369
Спс, так
В убывающем бы еще порядке
Оно чета key=reversed не ест
Аноним 21/12/20 Пнд 20:00:14 #138 №1886460 
>>1886444
оберни всё в reversed
Аноним 21/12/20 Пнд 20:05:58 #139 №1886466 
>>1886444
sorted(..., reverse=True)
Аноним 21/12/20 Пнд 20:33:32 #140 №1886486 
Учу джаву. Недавно посмотрел видос про http и там клиент-сервер был на питоне. Очень удивился, что у вас можно возвращать несколько значений из одной функции и это применяется в таких основах.
Это действительно удобно?
Аноним 21/12/20 Пнд 20:40:06 #141 №1886492 
>>1886466
>>1886460
Спс, работает как и хотел
Аноним 21/12/20 Пнд 20:54:54 #142 №1886512 
>>1886486
Не знаю, что ты видел, наверно, что-то вроде

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

Это не несколько значений, а одно, это кортеж(tuple), просто набор значений, коллекция. Здесь нет ничего такого, что было бы принципиально невозможно в джаве, просто в питоне это сделано так, что применять легко удобно и естественно. Да это применяют, но не сказать, что б прям очень часто
Аноним 21/12/20 Пнд 21:11:56 #143 №1886525 
Screenshot20201221-210448~2.png
Там использование функции для коннекшона было. Логику то такую можно замутить в джаве завернув в классы и геттеры.
Но вот именно способ прямая противоположность джаве.
С одной стороны вон как легко и лаконично. А с другой думаешь, уж если где то можно запутаться в переменных, то в таких случаях.
Аноним 22/12/20 Втр 01:19:53 #144 №1886664 
wojak-pre-doomer-unshaved.png
Анон, как начать зарабатывать хоть немного денег, чтобы начать платить за квартиру?

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

Хорошо, что ты прошел этот путь.
Но мне что-то ближе к кодингу.
Аноним 22/12/20 Втр 01:25:35 #147 №1886667 
>>1886666
Но ты просто подумай, вокруг кодинга - щас хайп, каждый дебик стремится. Задумайся какая конкуренция, в би уже писали что это приводит к снижению зп. И задумайся, сколько анонов хотят того же, и вот, чем ты лучше дургих и почему именно ты?
Аноним 22/12/20 Втр 01:29:50 #148 №1886670 
>>1886667
Я просто спросил есть ли работа.
Зачем ты сразу накинулся
Аноним 22/12/20 Втр 01:31:02 #149 №1886671 
>>1886670
> есть работа?
да есть. Причем всегда востребованая. И кстати, да, в перервых ты можешь таки кодить в свое удовольствие. Как хобби.
Аноним 22/12/20 Втр 02:14:31 #150 №1886679 
image.png
>>1886107
Спасибо ббро!
Аноним 22/12/20 Втр 16:36:39 #151 №1887205 
Screenshot 2020-12-22 at 18.33.58.png
Как работает команда введенная в терминале
python3 manage.py runserver

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

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

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

Конкретная задача:
Каждые 30 секунд запускать 100 одинаковых асинк методов которые отличаются только разными аргументами. Аргументы инициализируются один раз при запуске кода и записываются допустим в лист.
Аноним 22/12/20 Втр 20:47:33 #155 №1887482 
>>1887478
Ну спам же какой-то, уебывай.
Аноним 22/12/20 Втр 20:59:26 #156 №1887493 
>>1887482
mcstatus + aiogram
Аноним 22/12/20 Втр 23:07:29 #157 №1887559 
Пацаны, а можно как-то узнать, если метод вызвали из функции? Т.е., я перегружаю __add__, но хочу чтобы если его вызывали присваиванием, то возвращался новый инстанс класса, а если вызывали, например, через print(A(anus)+B(пися)) возвращалось что-то другое, гуглить не умею там все на ангельском...
Аноним 23/12/20 Срд 00:45:00 #158 №1887617 
Есть челы у кого свои кланы в кодворзе, возьмете меня к себе?
Аноним 23/12/20 Срд 01:07:31 #159 №1887635 
>>1887617
Какой ранг?
Аноним 23/12/20 Срд 01:08:32 #160 №1887638 
>>1887635
5ку. Но я стараюсь прогрессировать.
Аноним 23/12/20 Срд 10:20:43 #161 №1887829 
>>1887478
и че так и не ответит никто?
>>1887482
Один чел отреагировал и тут же слился
Аноним 23/12/20 Срд 13:23:51 #162 №1888046 
Есть Лист в котором лежит один OrderedDict
Как достать этот словарь и записать в переменную чтобы избавится от List-a поверх него в одну строку, ну чтобы переменная была просто словарём а не словарём внутри листа
ну я могу циклом ФО но как-то тупо выглядит
Аноним 23/12/20 Срд 13:42:23 #163 №1888079 
image.png
Вот такую ошибку выдает, если форма в джанго не валидна, но как понять что именно не валидно? Как понять где ошибка?
Аноним 23/12/20 Срд 14:09:52 #164 №1888116 
image.png
>>1888079
Нашла сама, кому интересно вот ответ
Аноним 23/12/20 Срд 14:32:45 #165 №1888156 
изображение.png
>>1888116
>Нашла
Иди суп учись варить. Программирование не женское дело.
Аноним 23/12/20 Срд 14:33:22 #166 №1888157 
>>1888156
я трап, иди в шахту, еблан
Аноним 23/12/20 Срд 14:35:50 #167 №1888161 
>>1888157
Что же ты здесь делаешь богомерзкое создание? Зачем явилось в наш мир из глубин ада?
Аноним 23/12/20 Срд 14:42:34 #168 №1888172 
>>1888161
OwO
Аноним 23/12/20 Срд 14:46:36 #169 №1888178 
Как по быстрому вкатиться к вам зная плюсы? Питон в первую очередь нужен для мл и автоматизации рутинных задач.
Аноним 23/12/20 Срд 16:12:06 #170 №1888269 
IMG-20201212-WA0007.jpg
Привет аноняши, хочу вкатиться в программирование и начать зарабатывать деньги. Как быстрее всего это сделать? Английский не знаю, компьютер - МакБук 15
Аноним 23/12/20 Срд 17:12:16 #171 №1888318 
Есть чо почитать про декораторы и, главное, посмотреть в каких случаях они мастхев? Прикольная штука.
Аноним 23/12/20 Срд 17:42:29 #172 №1888359 
>>1888269
научиться гуглить для начала. неожиданно, да?
Аноним 23/12/20 Срд 17:50:53 #173 №1888377 
>>1888269
может оно тебе не надо?
Аноним 23/12/20 Срд 19:44:17 #174 №1888507 
>>1888359
двачую. без умения искать информацию сложно будет, особенно в погром-ироваии
Аноним 23/12/20 Срд 20:41:45 #175 №1888592 
IMG20201223203519607.jpg
Аноны, поясните плиз как сделать подобную форму.

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

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

Коллеги, есть модель 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 #177 №1888645 
>>1883657
Какие кресты, маня, если ты даже это понять не смог?
Уже вижу как тебя в спп треде опускают

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

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

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

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

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

при попытке перейти по слагу я получаю ошибку, что получено 2 слага. как мне достать именно тот слаг, который мне нужен?
Аноним 24/12/20 Чтв 13:02:51 #181 №1889126 
Господа data sience что вы делаете на работе?
Обрабатываете таблички бабы сраки из бухгалтерии и на основании их делать ml модель, презентацию, power bi графику?
Аноним 24/12/20 Чтв 13:54:02 #182 №1889185 
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 #183 №1889335 
>>1888046
Бро, если найдешь как, скинь. Чота аж интересно стало.
Аноним 24/12/20 Чтв 16:10:04 #184 №1889379 
>>1888269
>Как быстрее всего это сделать?
Конечно же, записать на курсы онлайн-программирования Skillbox! Это чудестные прикрастные курсы, где лудшие учетиля тибя научат прогромеровать и уже черз читыре дня ты получиш сиртефекат об акончании и можеш сразу же устроица на работу с зар платой 300к/наносек!
Аноним 24/12/20 Чтв 16:11:10 #185 №1889382 
>>1888318
>Есть чо почитать про декораторы и, главное, посмотреть в каких случаях они мастхев?
Да.
Аноним 24/12/20 Чтв 16:15:32 #186 №1889386 
>>1886021
>питон не будет ругаться если ты положишь туда что нибудь другое
ИДЕЯ ругается, но только ворнингами, конечно.
Но вообще это довольно раковая хуйня. Особенно когда-то какой-нибудь восторженный еблан, радуясь охуенности питона, пишет метод, который возвращает кортеж из инта, строки, даты, говна, мочи, еще одной строки, неба и Аллаха, а ты потом разгребаешь это дерьмо в дебаге.
Аноним 24/12/20 Чтв 16:20:50 #187 №1889392 
>>1888046
piston = [{}]
sila, = piston
Аноним 24/12/20 Чтв 16:27:18 #188 №1889400 
>>1888046
А индексацией не достать?
dct = lst[0]
Аноним 24/12/20 Чтв 16:29:32 #189 №1889405 
>>1889400
так не интересно
Аноним 24/12/20 Чтв 17:13:21 #190 №1889479 
Двачик, помоги с pandas

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

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

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

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

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


Аноним 24/12/20 Чтв 17:16:20 #191 №1889486 
>>1889386
Он программист он так видит. Кто ты такой чтобы критиковать его искусство.
Аноним 24/12/20 Чтв 17:19:35 #192 №1889491 
>>1889479
Не пробовал .loc/.iloc?
Аноним 24/12/20 Чтв 17:20:04 #193 №1889492 
>>1885817
Представлю как чел с плюсов, будет в хуилион строчек пытаться добиться оптимизации, в то время как дзен питона говорит "простое лучше чем сложное, явное лучше чем не явное ".
По PEP8 тоже нужно выдрачиваться, не смотря на автокоррекцию IDE.
Аноним 24/12/20 Чтв 17:20:31 #194 №1889494 
Дорогие дата инженеры
Что читать и учить чтобы вкатиться в эту сферу?
Аноним 24/12/20 Чтв 17:31:32 #195 №1889517 
>>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 #196 №1889518 
>>1889491
Нет, попробую. Не думал, что мне так быстро помогут.
Спасибо!
Аноним 24/12/20 Чтв 17:32:00 #197 №1889519 
Анчоусы, помогите с моком разобраться.

Есть объект collect
Есть метод fill
Когда вызываю collect.fill()
То внутри происходит замена полей и разная херня. Этот объект не присваивается никому, только сам себя обновляет. Как замокать его, чтоб он подменялся на этом методе на нужные мне данные?
Аноним 24/12/20 Чтв 17:51:12 #198 №1889551 
>>1889486
Я, как минимум, не ебаный джун.
Аноним 24/12/20 Чтв 18:07:28 #199 №1889580 
>>1883948
всё чел ты заплесневел, в 3.10 запилят паттерн матчтинг как в расте
https://www.python.org/dev/peps/pep-0622/
Аноним 24/12/20 Чтв 18:15:58 #200 №1889589 
Двач, я тупой и знаю об этом, но я не понимаю!

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 #201 №1889590 
>>1885657
>>Но закономерно обосрался, потому что этот метод первый принятый аргумент постоянно интерпретирует как self да и вообще я работаю с методом не того класса. Как это сделать нормально?
в статик метод заверни, я про декоратор @staticmethod , при таком декораторе первый аргрумент больше не self, но и self в теле фунции больше использовать нельзя
Аноним 24/12/20 Чтв 18:29:40 #202 №1889604 
>>1889589
is_raining переименовываешь в not_raining и приравниваешь это к True, потом
if (not_raining or beaufort <= 4) and temperature > 20:
print('Идём гулять, на улице хорошо')
Аноним 24/12/20 Чтв 18:37:20 #203 №1889608 
>>1889604
Так да, это логично и понятно.
Я не могу понять почему написано именно так, как в том примере, который я скинул. Так и нужно?

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

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

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

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

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

я лично когда в джаваскрипте не понимаю таких вывертов логики открываю консоль браузера и тестирую лол
Аноним 24/12/20 Чтв 19:59:38 #207 №1889689 
>>1889379
Купил подписку, начал заниматься. Спасибо за совет, цмок
Аноним 24/12/20 Чтв 20:34:07 #208 №1889737 
>>1889551
Будь осторожен. Ты можешь кого нибудь обидеть такими высказываниями.
Аноним 24/12/20 Чтв 21:51:59 #209 №1889822 
15996559113200.png
15996559113231.png
15996559113262.png
1599647876138768155.png
>>1889689
Умничка, так держать! У тебя все получится!
Аноним 24/12/20 Чтв 22:09:19 #210 №1889861 
>>1889674
Так в самом условии стоит it_raining = False.
А в теле уже not is_raining (соответственно, not is_raining == True, т.е. дождь идет. Опять же, следуя логике, если отсутствие дождя it_raining = False)

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

И самое странное, что это же, блять, элементарно. Циклы, алгоритмы, рекурсия были намного проще. А тут какой-то пиздец.
Аноним 24/12/20 Чтв 22:20:37 #211 №1889880 
>>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 #212 №1889893 
>>1889880
Спасибо!

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

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

Это Лутц, Кнут и т.д.?
Аноним 24/12/20 Чтв 22:40:38 #214 №1889905 
>>1889893
Ну, это плохой пример. Ревью у вменяемого разраба он бы не прошел. Главное правило кода - писать так, чтобы его можно было легко читать. Потому в разработке 90% потраченного времени - это чтение того, что уже есть. Когда ты тратишь дохуя времени, чтобы вникнуть, что за хуйня написана в условии, то должна прийти разумная мысль переписать это говно.
>>1889895
Такие тонкости переходят, что называется, из уст в уста в рабочей среде. Синьоры всегда подпнут джуна на ревью, говнокод не пройдет, что называется. Опять же, в разных коллективах разные нюансы по код-стайлу. Я помню, как в моей рабочей флудилке срались даже по поводу того, надо ли обосабливать ретурны пустой строкой. Спойлер: надо.
Аноним 24/12/20 Чтв 22:41:45 #215 №1889910 
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 #216 №1889911 
>>1889910
Нахер ты это спустя 30 постов репостишь? Просто бампани свой пост.
И нахер ты пишешь на ингрише?
Аноним 24/12/20 Чтв 22:44:17 #217 №1889912 
>>1889905
Спасибо, мил человек. Добра тебе.
Аноним 24/12/20 Чтв 22:45:46 #218 №1889913 
>>1889911
не можешь в ангельский? помог бы уже давно мне, а не высирал это
Аноним 24/12/20 Чтв 22:51:13 #219 №1889916 
>>1889913
>pr
>не можешь в ангельский?
Да, конечно. От качества твоего "англесского" смеемся всем Гарвардом.
>а не высирал это
Высираешься тут только ты своей стеной говнокода без отступов. В шапке куча ссылок на шаринг кода, не хочу постить ссылку, хочу, чтоб скроллить полчаса надо было. Хотя что еще ожидать от мелкобуквы?
Аноним 24/12/20 Чтв 22:54:14 #220 №1889917 
>>1889916
https://ru.stackoverflow.com/questions/1223352/Как-во-view-взять-нужный-slug-модели
вот тебе с отступами псина ебаная. Чтобы через 5 минут был ответи дан. Я с утра решения не нашел.

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

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

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

слишком тяжелая задача для тебя
Аноним 24/12/20 Чтв 23:10:42 #223 №1889926 
>>1889924
Как скажешь, мелкобуковка. Сиди и дальше, как лох, без ответа, мне-то что.
Аноним 24/12/20 Чтв 23:14:51 #224 №1889928 
>>1889926
топай в свой мирок розовых пони бичара
Аноним 25/12/20 Птн 02:21:30 #225 №1890042 
123.JPG
Привет!
До внесённых изменений этот код нормально работал.
Я только импортировал подчёркнутый модуль и задал значение атрибутов в методе-конструкторе, который до этого, были = 0
Задание было таким: при создании каждый объекта класса должен получать случайный значения атрибутов. Я подчеркнул их красным.
Ошибок программа не выдаёт, но метод mood возвращает теперь только значение переменной m = "ужасно".
Подскажите, почему так?
Аноним 25/12/20 Птн 02:31:59 #226 №1890049 
>>1890042
хз что я сделал, но код начал работать нормально.
Аноним 25/12/20 Птн 02:33:58 #227 №1890050 
>>1890042
>>1890049
в этом коде вроде random будет вызван один раз и аргументы по умолчанию будут всегда одинаковы
Аноним 25/12/20 Птн 02:39:38 #228 №1890052 
>>1890050
Для всех объектов класса?
Разве метод-конструктор не перезапускается при создании каждого нового объекта?
Аноним 25/12/20 Птн 02:42:16 #229 №1890054 
>>1890052
да. для всех.
конструктор перезапустится, но значения аргументов hunger и boredom вычисляются единожды при загрузке модуля
Аноним 25/12/20 Птн 02:45:48 #230 №1890056 
>>1890054
вычисляются единожды, когда они записаны в таком виде как здесь
Аноним 25/12/20 Птн 03:46:36 #231 №1890080 
123.JPG
>>1890056
>>1890054
Спасибо за ответы.
Я импортировал модуль random внутри __init__ и там же присвоил случайные значение нужным атрибутам. Теперь, при создании, каждый объект класса получает разные атрибуты.
Потом подумаю как написать красивее, пока вот так.
Но я выявил новую проблему:
Методы eat и play не меняют значение этих атрибутов.
На что обратить внимание?
Аноним 25/12/20 Птн 03:51:17 #232 №1890084 
>>1890080
Нашел в чём была проблема. Глупая ошибка.
Аноним 25/12/20 Птн 08:47:58 #233 №1890294 
Кто-нибудь сталкивался с таким видом даты: image_date = "2011-12-04T21:33:40.000Z"? Можно ли как-нибудь распарсить ее через datetime или все-таки как str парсить?
Аноним 25/12/20 Птн 09:25:15 #234 №1890303 
>>1890294
>Кто-нибудь сталкивался с таким видом даты: image_date = "2011-12-04T21:33:40.000Z"?
Да.
>Можно ли как-нибудь распарсить ее через datetime
Через dateutil.parser.parse()
Аноним 25/12/20 Птн 09:50:24 #235 №1890316 
>>1890303
То, что надо. Спасибо.
Аноним 25/12/20 Птн 10:34:05 #236 №1890346 
Clipboard01.jpg
Господа, как получить количество лайков и комментов (на КПДВ подчеркнуто красным), используя Selenium? Цифры появляются только при наведении курсора на элемент.
Аноним 25/12/20 Птн 10:39:51 #237 №1890347 
image.png
>>1890346
Воспользоваться АПИ сайта.
Аноним 25/12/20 Птн 10:48:59 #238 №1890354 
>>1890347
Пользовался сам? Для меня оно показалось каким-то замудренным. Надо через Фейсбук создавать какое-то приложение, давать разрешения, получать временные токены.
Аноним 25/12/20 Птн 10:57:40 #239 №1890358 
>>1890346
>получить количество лайков и комментов, используя Selenium
Это как забивать гвоздь кувалдой, когда есть молоток.
Используй requests, юный падаван.
Аноним 25/12/20 Птн 10:59:22 #240 №1890359 
>>1890358
>используй requests
>Цифры появляются только при наведении курсора на элемент.
чел ты?
Аноним 25/12/20 Птн 11:05:35 #241 №1890363 
>>1890359
Ты уверен? Пытался инспектировать элемент? Если там не йоба сложный js-скрипт, они просто прячутся в данных элемента.
Аноним 25/12/20 Птн 11:13:47 #242 №1890365 
>>1890358
>>1890359
Посоны, погодите, кажется нашел какую-то библиотеку для подобных целей instaloader
Аноним 25/12/20 Птн 12:36:08 #243 №1890423 
pycharm64jXGlbJ4woX.png
хочу сделать последовательность фибоначчи, что идет не так?
Аноним 25/12/20 Птн 12:42:55 #244 №1890432 
>>1890423
Обожаю, когда человеку прямым текстом что-то говорят, например "недопустимый символ 'а' в строке '1254а', преобразование в число невозможно", а он спрашивает: "Чего это от меня шайтан машина хочет?"
Аноним 25/12/20 Птн 12:57:20 #245 №1890451 
>>1890432
как я понимаю, когда i=1, то он хочет сложить 1 и 2 индексы, но не находит число на втором индексе, но он же должен был добавить число, когда i был равен нулю.
Аноним 25/12/20 Птн 13:02:29 #246 №1890455 
>>1890432
>>1890451
но как пофиксить тогда? или я вообще не смогу так сделать
Аноним 25/12/20 Птн 13:10:25 #247 №1890460 
Сап, тред. Помогите с такой темкой.

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

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

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

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

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

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

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

Энивэй, за ответ спасибо. Кстати, есть конфы / места где челы делятся своими проектами / ищут группы? Или все сами друг-друга на хабе ищут и находят? Новый во всем этом прогерском окружении, сорян за тупые вопросы.
Аноним 25/12/20 Птн 14:21:55 #252 №1890586 
>>1890460
>Хотел бы я в опен-сорс коммитить, но проблема выше не позволяет.
Как раз самое то в попенсорс контрибьютить. И код твой обоссут, и тесты написать попросят. Пока не сделаешь все красиво, пр не примут. Тебе понравится.
Аноним 25/12/20 Птн 14:24:11 #253 №1890589 
>>1890586
В очелло ебать не будут?
Аноним 25/12/20 Птн 14:25:42 #254 №1890593 
eMjDuD0vSJk.jpg
>>1890586
Понял, принял, пошел искать интересные репы.
Аноним 25/12/20 Птн 14:50:39 #255 №1890622 
IMG-20201212-WA0007.jpg
Привет аноняши, хочу вкатиться в программирование и начать зарабатывать деньги. Как быстрее всего это сделать? Английский не знаю, компьютер - МакБук 15
Аноним 25/12/20 Птн 16:59:30 #256 №1890709 
Мне нужно питоновской фтп либой получить данные о файлах на сервере (рекурсивно) типа: название, размер, дата создания и модификации, путь на сервере.
Как это сделать?
Аноним 25/12/20 Птн 17:13:00 #257 №1890724 
>>1890622
Учить джаву.
Аноним 25/12/20 Птн 18:42:51 #258 №1890836 
>>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 #259 №1890837 
>Как быстрее всего это сделать?
Конечно же, записаться на курсы онлайн-программирования Skillbox! Это чудестные прикрастные курсы, где лудшие учетиля тибя научат прогромеровать и уже черз читыре дня ты получиш сиртефекат об акончании и можеш сразу же устроица на работу с зар платой 300к/наносек!
Аноним 25/12/20 Птн 18:46:40 #260 №1890842 
>>1890836
для length = 1 неверное значение выдаст
Аноним 25/12/20 Птн 18:50:14 #261 №1890844 
>>1890842
Да, правда, проебался.
Ну, логику ты понял, перепедалишь по-нормальному.
Аноним 25/12/20 Птн 18:53:54 #262 №1890845 
>>1890724
Не слушай его, дотнет лучше и перспективнее
Аноним 25/12/20 Птн 18:56:02 #263 №1890846 
image.png
>>1890423
Look ma, no hands!
Аноним 25/12/20 Птн 19:14:05 #264 №1890854 
>>1890845
Двачую слово "лучше" и с натяжкой "перспективнее". Джава, к сожалению, слишком популярна.
Аноним 25/12/20 Птн 19:14:36 #265 №1890855 
>>1890846
K P A C U B O
Аноним 25/12/20 Птн 19:40:56 #266 №1890865 
image.png
Если у меня стомильёнов таких записей в юрлах, как мне их сделать красивее и презентабильнее? мб есть возможность их группировать по разным переменным?
Аноним 25/12/20 Птн 20:02:55 #267 №1890869 
>>1890865
замени на graphql
Аноним 25/12/20 Птн 20:03:42 #268 №1890871 
>>1890854
Чем лучше? На жабу вакансий вроде больше и денег больше
Чем перспективнее?
Аноним 25/12/20 Птн 20:05:54 #269 №1890872 
IMG-20201212-WA0007.jpg
>>1890724
Уже проебал на джавараш 14к, но так ничего и не выучил. Спасибо, не надо
Аноним 25/12/20 Птн 21:13:10 #270 №1890892 
>>1890869
туплю очень сильно, попробую разобраться, спасибо. Но на всякий случай еще поищу что-то локальное
Аноним 25/12/20 Птн 21:24:27 #271 №1890904 
>>1890872
Пистон на хайпе среди вкатышей, но работы меньше чем на джаве.
Аноним 25/12/20 Птн 21:24:44 #272 №1890905 
py.png
Ребята, помогите решить задачу
Аноним 25/12/20 Птн 21:32:36 #273 №1890910 
>>1890892
я пошутил же
Аноним 25/12/20 Птн 21:35:10 #274 №1890914 
>>1890910
https://medium.freecodecamp.com/so-whats-this-graphql-thing-i-keep-hearing-about-baf4d36c20cf а я на полном серьезе читаю.. так если это шутка, что делать то?
Аноним 25/12/20 Птн 21:35:39 #275 №1890915 
>>1890910
Напиши нормальный рест и разбей на несколько роутеров по бизнес логике приложения.
Аноним 25/12/20 Птн 21:41:08 #276 №1890919 
>>1890871
Лучше синтаксическими особенностями. У решетки есть автосвойства. У решетки есть божественный Linq. А у твоей жабы есть Linq? А? А?
>На жабу вакансий вроде больше
Я про это и написал.
>денег больше
Не зависит от языка вообще (если это не хтонический Кобол в двух с половиной компаниях на весь мир).
>Чем перспективнее?
Как минимум тем, что делает свою родную замену говноЖСа.
Аноним 25/12/20 Птн 21:42:51 #277 №1890921 
>>1890915
я пока 0 в апи, на сколько я понимаю, это и есть рест?
Аноним 25/12/20 Птн 21:45:48 #278 №1890924 
1599647872143127415.png
>>1890905
Боже, какую же несусветную чушь задают на этих ваших говнокурсах.
И ведь преподносят как "ЭТА ШТОБЫ РАЗВИВАТЬ СМИКАЛАЧКУ И НАГРУЖАТЬ МОСК ПОИСКОМ РИШЕНИЯ ЗОДАЧИ".
Но ведь можно давать задачи, которые действительно имеют отношение к будущей работе.
Аноним 25/12/20 Птн 21:50:53 #279 №1890925 
>>1890919
У моей жабы? Если б я писал на жабе, тут бы не сидел и людям моск не ибал.
Бесит, что на шарп в вакансиях требуют ещё и жс
Аноним 25/12/20 Птн 21:52:16 #280 №1890926 
>>1890836
я хотел это сделать в одной строчке, типа как на моем пике
Аноним 25/12/20 Птн 21:57:43 #281 №1890929 
>>1890921
Погугли REST
Аноним 25/12/20 Птн 22:03:45 #282 №1890934 
>>1890926
Ну, тебе уже дали ответ одной строчкой.
Аноним 25/12/20 Птн 22:09:31 #283 №1890937 
>>1890622
>компьютер - МакБук 15

Не, ну это все, выкатывайся
Аноним 25/12/20 Птн 22:10:10 #284 №1890938 
>>1890934
не сразу заметил
Аноним 25/12/20 Птн 22:10:31 #285 №1890939 
>>1890846
спасибо спасибо спасибо
Аноним 25/12/20 Птн 22:33:35 #286 №1890957 
>>1890622
>хочу вкатиться в программирование и начать зарабатывать деньги. Как быстрее всего это сделать? Английский не знаю
Тогда твой путь с низов - идешь в тестирование, растешь до автоматизации, перекатываешься в дева, если захочешь.
Аноним 25/12/20 Птн 23:47:23 #287 №1890979 
>>1890957
Какой смысл начинать с QA?
Аноним 26/12/20 Суб 00:51:22 #288 №1891006 
>>1884465
потому что, сука, буфферинг не может быть "\n". используй именованные параметры тогда newline="\n"
Аноним 26/12/20 Суб 00:56:34 #289 №1891013 
>>1890979
Опыт работы, в QA легче возмьмут, если просто в IT шаришь и немного кодить умеешь.
Аноним 26/12/20 Суб 01:20:27 #290 №1891030 
Bildschirmfoto von 2020-12-25 23-19-46.png
>>1890905
проще пареной репы
Аноним 26/12/20 Суб 01:23:34 #291 №1891036 
>>1890905
надеюсь, ошибку в >>1891030 сам найдёшь, иначе что это за обучение будет, ёпта.
Аноним 26/12/20 Суб 01:24:42 #292 №1891039 
>>1890924
заебись задачки, простенькие, но со смекалочкой. иначе макакой будешь работать всю жизнь.
Аноним 26/12/20 Суб 01:28:53 #293 №1891048 
>>1890979
это как в армии, начинаешь духом. кому-то надо делать хуёвую работу.
Аноним 26/12/20 Суб 01:39:10 #294 №1891058 
>>1890924
>Но ведь можно давать задачи, которые действительно имеют отношение к будущей работе.
Ты и в школе, наверное, отказывался математику и физику учить, типа задачки, которые решать заставляют, не имеют отношения к будущей работе.
Аноним 26/12/20 Суб 01:46:35 #295 №1891062 
>>1891030
Про то, что у тебя ошибка в suka тебе уже сказали.

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

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

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

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

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

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

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

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

В целом иногда довольно полезно быстро проверить, что все элементы какого-то множества содержатся в другом множестве (в списке разрешённых значений, например). Вместо того, чтобы оформлять цикл, можно вот такой финт использовать.
Аноним 26/12/20 Суб 04:54:58 #299 №1891155 
>>1891124
Спасибо, понял.
Аноним 26/12/20 Суб 10:00:05 #300 №1891264 
image.png
Нужно обойти более 1к урлов и посчитать время доступа к каждому (допустим, для поиска быстрейшего прокси сервера)

Подскажите, эксперты, такой код имеет смысл или нужно писать нормальный пинг с сокетами и пакетами?
Аноним 26/12/20 Суб 10:21:06 #301 №1891272 
>>1891264
Под нормальным пингом ты имеешь в виду icmp? Это вообще не в тему.
В принципе, у тебя норм. Скопируй только все оригинальные заголовки из хрома + компрессию + таки лучше гет, а не хед.
Аноним 26/12/20 Суб 11:05:27 #302 №1891289 
>>1891058
В школе я был тупым рабом своих родителей, у меня таких мыслей даже сформироваться не могло. А так да, физику, изо и обж с биологией бы нахуй выкинул из своего курса.
Аноним 26/12/20 Суб 11:24:52 #303 №1891298 
>>1885435
>реализация слабого
Не полный функционирующий магазин, а понимание что куда и как взаимодействует хотя бы, минимум я там обозначил
>(товары, корзина, заказ, покупатели и менеджеры)
Аноним 26/12/20 Суб 11:32:51 #304 №1891299 
>>1884955
@Flake_DVR
Аноним 26/12/20 Суб 12:24:16 #305 №1891323 
Хочу написать рест апи на питоне, что лучше взять: фласк, джанго рест фреймворк или фастапи?
Аноним 26/12/20 Суб 14:16:56 #306 №1891412 
>>1891323
лучше взять в рот джангу, с ней дохуя манулов, и работы тоже.
Аноним 26/12/20 Суб 16:11:43 #307 №1891467 
>>1891323
У тебя апи само по себе? Или к чему-то? Вот в зависимости от того к чему твоё апи и что делает и надо делать выбор.
Аноним 26/12/20 Суб 16:16:18 #308 №1891468 
>>1891467
Как апи может быть само по себе?
Какая разница для апи, кто его потребитель?
Аноним 26/12/20 Суб 16:26:56 #309 №1891472 
>>1891323
>Хочу написать рест апи на питоне
Какое-то бессмысленное предложение. Рест - это архитектура взаимодействия сервера и потребителя посредством их общения через рест-запросы. Рест уже существует, как ты его напишешь? Это как сказать: "Хочу сделать барокко с с помощью строительных материалов Леруа Мерлен".
Аноним 26/12/20 Суб 16:33:32 #310 №1891474 
>>1891472
Ладно, мистер зануда, хочу написать программу на языке питон, обрабатывающую хттп запросы в рестфул манере. Что там в вашем снобском клубе используют для таких целей?
Аноним 26/12/20 Суб 16:37:53 #311 №1891477 
>>1891474
Для начала скажи, будет ли у тебя ГУИ в виде http-страничек с кнопочками? Или это просто бэкенд-общение через консольку?
Аноним 26/12/20 Суб 16:40:28 #312 №1891478 
>>1891477
>бэкенд-общение через консольку
Ты объебос какой-то, не пиши мне больше.
Аноним 26/12/20 Суб 16:43:29 #313 №1891480 
16079574458600.jpg
>>1891478
пошли под пледиком бэкенд-общаться через консольку (:
Аноним 26/12/20 Суб 17:38:08 #314 №1891541 
>>1891480
Ты вообще съеби в ужасе, мелкобуква.
Аноним 26/12/20 Суб 18:58:17 #315 №1891626 
Зачем нужны два одинаковых по результату импорта?

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

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

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

Когда туда передается число, все норм. Когда передается numpy массив, то нет. Как разруливать такую ситуацию правильно?
Аноним 26/12/20 Суб 22:11:49 #325 №1891805 
>>1891803
type(x) проверяй
Аноним 26/12/20 Суб 22:23:36 #326 №1891815 
>>1891805
А дальше что?
Аноним 26/12/20 Суб 22:31:46 #327 №1891831 
>>1891815
if type(x) is not int:
raise ValueError('poshel nahui')
Аноним 26/12/20 Суб 22:47:10 #328 №1891842 
>>1891831
Ясно, не отвечай мне больше, пожалуйста.
Аноним 26/12/20 Суб 22:54:38 #329 №1891846 
>>1891842
Это вполне серьезный ответ.
Аноним 26/12/20 Суб 23:26:13 #330 №1891893 
>>1891803
>>1891815
А что должно происходить по твоей задумке если в функцию передается numpy массив?
Аноним 26/12/20 Суб 23:32:22 #331 №1891898 
>>1891893
np.all(x > 0)
Аноним 26/12/20 Суб 23:34:27 #332 №1891899 
>>1891893
Все элементы меньше нуля заменяются нулями.
Аноним 26/12/20 Суб 23:41:55 #333 №1891903 
>>1891899
https://numpy.org/doc/stable/reference/generated/numpy.clip.html#numpy.clip
https://numpy.org/doc/stable/reference/generated/numpy.maximum.html#numpy.maximum
Аноним 26/12/20 Суб 23:46:20 #334 №1891905 
>>1891903
Не то. А если мне надо сравнить не с нулем, а заменить нулем?
Аноним 26/12/20 Суб 23:49:43 #335 №1891907 
>>1891905
np.where
Аноним 26/12/20 Суб 23:57:34 #336 №1891909 
>>1891907
Вроде норм, спасибо.
Аноним 27/12/20 Вск 12:28:53 #337 №1892193 
>>1889491
>>1889517
Спасибо анончики, я сделал это!
В том числе и благодаря вашим подсказкам
Аноним 27/12/20 Вск 12:32:34 #338 №1892197 
>>1890846
Ты сеньёр или тимлид?
ну правда, кем работаешь?
Аноним 27/12/20 Вск 12:57:44 #339 №1892207 
m.png
Анон, объясни мне плиз как функция понимает, что означает переменная m? Это особенность import re?
Аноним 27/12/20 Вск 13:19:29 #340 №1892210 
Как выучить Django?
Посмотрел уроки по Python - после нескольких курсов вроде как понял основы.
Учу Джанго - не понимаю паттерн создания сайта. Какие уроки и какие книги могут помочь.
Аноним 27/12/20 Вск 13:21:32 #341 №1892213 
>>1892210
И еще вопрос - хочу сделать сайт - стриминговый сервис, по типу GoodGame . ru, что нужно изучать чтобы сделать такой сайт?
Аноним 27/12/20 Вск 13:23:03 #342 №1892215 
>>1892207
В нее передаются объекты re.match, те же, что и при обычном поиске. Понимать что с ними должен ты, а не функция, лол.
Аноним 27/12/20 Вск 15:01:14 #343 №1892276 
>>1892213
>стриминговый сервис
Большие ресурсы для этого нужны (хороший сервер+трафик), изучать системные вещи, nginx, docker, ffmpeg, протоколы вроде rtmp/rtsp. Если питон использовать, то изучать сети и asyncio.

Аноним 27/12/20 Вск 16:44:00 #344 №1892364 
>>1891909
Но np.vectorize вроде еще лучше.
Аноним 27/12/20 Вск 17:02:21 #345 №1892387 
>>1892197
Если тебя впечатляют такие однострочники, посмотри:
http://dabeaz.com/py3meta/
Ближе к концу видео он импортирует xml файлы, то есть:
import file
будет помимо file.py искать еще file.xml и загружать его как модуль.
Аноним 27/12/20 Вск 17:08:15 #346 №1892400 
>>1890846
Ты охуенный.
Аноним 27/12/20 Вск 17:08:53 #347 №1892401 
сап двач.

Хочу сделать юрл типа /title/number. Если перейти в /title/, то все ок, джанго находит такое совпадение, но когда перехожу с title/ на title/number выдается ошибка. Хотя в локальных переменных я вижу , что kwargs получил мой title и number, но почему-то не нашел
https://pastebin.com/TSUWTj8T
Аноним 27/12/20 Вск 17:23:25 #348 №1892427 
>>1892387
Он гад новую книгу пишет, но не родит никак.
Аноним 27/12/20 Вск 17:31:51 #349 №1892444 
>>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 #350 №1892610 
Почему kwargs, а не kvargs?
Аноним 27/12/20 Вск 19:05:52 #351 №1892611 
>>1892610
keyword
Аноним 27/12/20 Вск 19:23:26 #352 №1892631 
>>1892611
А я думал key-value.
Аноним 27/12/20 Вск 19:32:33 #353 №1892643 
Вот почему lambda а не что-то попроще, пиздец бесит.
Аноним 27/12/20 Вск 19:33:17 #354 №1892644 
>>1892643
Двачую, например λ.
Аноним 27/12/20 Вск 19:50:56 #355 №1892666 
image.png
image.png
>>1892643>>1892644
https://www.modernemacs.com/post/prettify-mode/
Видел подобное и для vscode.
Аноним 27/12/20 Вск 23:54:26 #356 №1892862 
В жс есть такая удобная хуйня - если надо подцепиться к какому-то значению из жсона, то я просто пишу
if (row.pole == 'znachenie') {
}

А в питоне как с этим быть? if json['pole'] == 'znachenie' ?
Аноним 27/12/20 Вск 23:55:23 #357 №1892863 
sshot-001.png
Помогите с кодом. Есть файл 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 #358 №1892884 
>>1892863
У тебя 1200 может встречаться ранее в файле, replace заменит первое совпадение только. Тебе нужно сначала найти позицию "Maximum visible distance" и уже начиная с нее заменять.
Вообще странно, что значение в виде строки, а не в бинарном формате, может быть ты нашел display значение, которое меняет только то, что отображается где-нибудь в менюшке, но не само отдаление камеры.
Аноним 28/12/20 Пнд 00:23:26 #359 №1892892 
>>1892884
Я не понимаю ничего в питоне и кодинге в целом, ни слова не понял из того, что ты сказал
Аноним 28/12/20 Пнд 00:34:54 #360 №1892899 
>>1892884
>replace заменит первое совпадение только
https://docs.python.org/3/library/stdtypes.html#str.replace
Аноним 28/12/20 Пнд 01:21:30 #361 №1892928 
>>1892862
obj = json.loads(stroka_s_json)
if obj['pole'] == 'znachenie:

В JS тоже самое, тебе сначала надо строку в объект превратить с помощью JSON.parse(stroka_s_json)
Аноним 28/12/20 Пнд 01:24:51 #362 №1892933 
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 #363 №1892958 
>>1892863
Довольно хуевая идея так делать с бинарниками.
Вот тебе хорошая заготовка, надеюсь разберешься.
https://ideone.com/F2DAwX
Аноним 28/12/20 Пнд 04:46:14 #364 №1893048 
>>1892899
Должно быть попутал с каким-то другим языком, где replace заменяет только один раз.
Аноним 28/12/20 Пнд 05:03:15 #365 №1893050 
>>1892215
Я что с ними делать понимаю. Просто не могу понять, как он берет аргумент в функцию, как он понимает что я в m хочу передать все слова на "х", я же явно это нигде не указываю, вроде бы. Я наверное, что-то не понимаю..
Аноним 28/12/20 Пнд 05:12:15 #366 №1893053 
>>1892892
Сори за тупой вопрос, а почему ты вручную не можешь поменять, просто найди строку которую хочешь поменять и поменяй, врятли это в игре, что-то изменит, но строчку можно и вручную поменять
Аноним 28/12/20 Пнд 07:25:40 #367 №1893157 
>>1893050
Вторым аргументом sub ты ставишь строку, на которую заменяется каждое совпадение, или функцию, в которые они передаются и заменяются на результат этого вызова.
Аноним 28/12/20 Пнд 09:05:26 #368 №1893215 
>>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 #369 №1893223 
>>1893215
Что значит как. Проверяется тип аргумента, если это функция, то она вызывается. Это банальный коллбек, дохуя где используется.
Аноним 28/12/20 Пнд 09:53:24 #370 №1893252 
Посоветуйте шпаргалку или краткий курс по NumPy. Внутреннюю кухню по мат.статистике знаю, мне бы справочник по функциям типа np.covariation(arr) выдает коээфициент ковариации.
Аноним 28/12/20 Пнд 10:03:34 #371 №1893259 
>>1893252
help(np.covariation)
Аноним 28/12/20 Пнд 10:32:10 #372 №1893276 
>>1893223
Ну я недавно изучать питон начал, и первый раз такое увидел
Аноним 28/12/20 Пнд 11:41:23 #373 №1893311 
>>1883441 (OP)
Как называется различное поведение одного и того же метода в разных классах?
экз в шараге, в интернете такой хуйни вообще нигде не найти
Аноним 28/12/20 Пнд 11:43:23 #374 №1893314 
>>1893311
Перегрузка?
Аноним 28/12/20 Пнд 12:16:32 #375 №1893330 
>>1893311
Полиморфизм это называется.
>>1893314
Перегрузка применима к методу только одного класса и в питоне она даже не существует. В нем перегрузка достигается костылением через необязательные (дефолтные) параметры.
Аноним 28/12/20 Пнд 12:21:41 #376 №1893331 
>>1893330
Он не про то спрашивает, а про реализацию кастомного класса, для которого работает искаробочный len, например.
Это перегрузка, не?
А то чего в питоне нет, как раз полиморфизм, лол.
Аноним 28/12/20 Пнд 12:32:56 #377 №1893339 
>>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 #378 №1893342 
>>1893339
Ты меня ошарашил, всю жизнь я думал, что полиморфизм это как раз первое, а второе перегрузка, и так же оно работает в том же шарпе, про жабу не знаю.
Аноним 28/12/20 Пнд 12:36:46 #379 №1893347 
Вот, например, в питоньем доке то же пишут 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 #380 №1893357 
Почитал всякую теоретическую хуйню, в итоге оба подхода это способы реализации полиморфизма, хмм.
Аноним 28/12/20 Пнд 12:58:41 #381 №1893359 
>>1893342
Полиморфизм - это не первое или второе. Это концепция ООП, предлагающая реализацию и первого, и второго.
>>1893357
Опередил.
Аноним 28/12/20 Пнд 12:59:41 #382 №1893361 
1340289833748.jpg
>>1893359
ИНКАПСУЛЯЦИЯ - ЭТО СОКРЫТИЕ
Аноним 28/12/20 Пнд 13:05:58 #383 №1893368 
>>1893359
Ну это надо почитать какой-то ебанутый жаберский или шарперский кирпич, где половину объема занимают рассказы кто родил кого. В скриптоте мне это не очень интересно - как работает и для чего нужно понятно, а больше и не особо надо.
Аноним 28/12/20 Пнд 13:11:46 #384 №1893376 
>>1893368
Ну, если твой потолок - питоноскрипты, то да, ООП не нужен.
Но на будущее: ни одно интервью не обходится без "трех китов ООП".
Аноним 28/12/20 Пнд 13:15:51 #385 №1893381 
>>1893376
Сначала надо ебать байты в си, потом ебать абстрактные фабрики, а потом можно уже на пенсию спокойно писать питоновские скрипты.
Аноним 28/12/20 Пнд 13:18:01 #386 №1893385 
>>1893381
>в си
В ассемблере.
Аноним 28/12/20 Пнд 14:20:43 #387 №1893478 
>>1893330
>В нем перегрузка достигается костылением через необязательные (дефолтные) параметры.
Это не костылирование. Просто перегрузка в стиле C++ и дефолтные параметны несовместимы концептуально и технически.

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

При выборе одного из двух я однозначно за параметры по умолчанию. Одна из фишек, за что я просто дико люблю питон, чего не хватает в других языках.
Аноним 28/12/20 Пнд 15:10:22 #388 №1893534 
image.png
15100605141050.mp4
>>1893478
>Просто перегрузка в стиле C++ и дефолтные параметны несовместимы концептуально и технически
Аноним 28/12/20 Пнд 15:49:53 #389 №1893566 
>>1893534
Вообще дефолтные параметры и перегрузка несколько разные вещи.

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

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

Аноним 28/12/20 Пнд 17:08:50 #390 №1893646 
>>1893566
> С учётом, что питон динамически типизируемый, это
Просто ненужно.
Пофиксил тебя.
Аноним 28/12/20 Пнд 18:06:45 #391 №1893738 
Screenshot 2020-12-28 at 20.01.35.png
Правильно ли я понимаю, что 1 и 2 вариант, абсолютно одинаков, и __init__ нужен исключительно для случаев как в варианте 3? Чтобы можно было создавать имена "интерактивно"
Аноним 28/12/20 Пнд 18:10:32 #392 №1893742 
>>1893738
Нет, не одинаков. В первом атрибут класса, во втором аттрибут объекта, у каждого объекта свой.
Аноним 28/12/20 Пнд 18:11:26 #393 №1893744 
кто подскажет как это говно в 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 #394 №1893746 
>>1893742
Точно!
Аноним 28/12/20 Пнд 18:12:28 #395 №1893747 
>>1893738
>Правильно ли я понимаю, что 1 и 2 вариант, абсолютно одинаков
Нет, варианты 1 и 2 совершенно разные.
В варианте 1 у объекта не создаётся переменная, name переменная класса. Просто питон видит, что переменная объекта не определена и обращается к переменной класса. Как только ты сделаешь self.name = '' или a.name = '' эта переменная будет создана.

Аноним 28/12/20 Пнд 18:15:46 #396 №1893750 
Screenshot 2020-12-28 at 20.15.01.png
>>1893747
Тебе тоже спасибо.
Аноним 28/12/20 Пнд 19:52:49 #397 №1893827 
Привет ребят, есть задача сохранять подряд пачку графиков на удаленном сервере(свечи и обычные) рисовал их с помощью finplot но не нашел в его доках функции сохранения. В общем как рисовать и сохранять свечи в большом количестве подряд?
Аноним 28/12/20 Пнд 20:25:02 #398 №1893883 
Сап, все-знающий-аноним!

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

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

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

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

Описание в Джире:
%Фичанейм% работает неправильно. Надо, чтобы нормально работала.
Аноним 28/12/20 Пнд 21:14:08 #401 №1893952 
photo2020-11-2219-25-52.jpg
>>1893945
>%Фичанейм% работает неправильно
Слишком подробно, можно догадаться.
Лучше
>НИЧЕГО НЕ РАБОТАЕТ!11!!1!!!
Аноним 28/12/20 Пнд 21:46:40 #402 №1893989 
>>1893952
>>1893939
Эм, да, коряво получилось. Прошу прощения.

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

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

Аноним 28/12/20 Пнд 22:06:57 #405 №1894012 
>>1894009
Потому что код не доходит до if. Он в цикле while. А while выполняется заново бесконечное количество раз (до StackOverflowException, конечно, но не в этом случае), пока он True.
Аноним 28/12/20 Пнд 22:09:28 #406 №1894017 
>>1894012
Большое спасибо! Действительно забыл про бесконечность цикла.
Аноним 28/12/20 Пнд 22:49:10 #407 №1894041 
Как же сложно вкотиться. Я уже 2 месяца по ~4 часа в день учу этот питон, bash
И всё что я могу, так это писать примитивные скрипты. А ещё фрэймворки, паттерны, миллион библиотек, алгоритмы, и всякие книги "программируем как профи" и т.д.
Я думал у вас попроще
Аноним 28/12/20 Пнд 22:49:56 #408 №1894042 
>>1894041
Теория автоматов, гит и прочая инфа, что студентики учат 4 года в своих вузиках
Аноним 28/12/20 Пнд 23:08:39 #409 №1894054 
>>1894041
Попроще чем что? Дома никогда не научишься кодить, твоя цель устроиться на работу, а для этого упор делай чисто на фреймворки, зазубривание теории и типовых вопросов для вкатунов.
мимокрок
Аноним 28/12/20 Пнд 23:17:48 #410 №1894065 
15995573220810.jpg
>>1894054
This, а еще пора пилить свой пет-прожект. Похуй что, что взбредет в голову, хоть напоминалка дней рождения, читающая из csv-файлика, которую можно бесконечно наращивать новыми фичами, лишь бы нарабатывать практику кодинга.
Аноним 28/12/20 Пнд 23:19:49 #411 №1894068 
Бле есть лист словарей data
в каждом словаре пиздец много ключей-значений, нужно фильтронуть этот лист словарей только оставить в словарях все ключи 'name' и их значения
пишу:
data = [item for item in data for k, v in item.items() if k == 'name']
Получаю исходный лист словарей нихуя не фильтрануло :/
Что ему ему не так?
Аноним 28/12/20 Пнд 23:24:24 #412 №1894073 
>>1894065
Пет-прожект слишком громко для миллионого калькулятора. Достаточно выполнить тестовые уровня запилить систему абитуриентов и залить их на гитхаб.
Аноним 28/12/20 Пнд 23:25:12 #413 №1894076 
>>1894068
Бле понятно что ему не так
Он просто видит в словаре ключ name и оставляет весь словарь item
Как добиться желаемого эффекта?
Аноним 28/12/20 Пнд 23:41:28 #414 №1894082 
Почему в jupyter такое кривой редактор? Ни автокомплита, ни intellisense, который везде уже пихают.
Аноним 28/12/20 Пнд 23:41:46 #415 №1894084 
Вопрос, наверное, смешной, но всё же.

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

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

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

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

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

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

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

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

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

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

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

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

(грубо говоря переменной mySuperElement сразу присваивается значение листа который ты задаёшь прямо в переменной)
Аноним 28/12/20 Пнд 23:54:12 #421 №1894094 
>>1894086
сабскрипт оператор
Аноним 29/12/20 Втр 00:38:03 #422 №1894139 
Привет всем.
Хочу в бэк программирование вкатитсья, что можете посоветовать для питона?
Аноним 29/12/20 Втр 00:53:42 #423 №1894152 
solution.PNG
>>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 #424 №1894197 
>>1894084
Потому что переменная classvar одна на всех, в этом и суть переменной класса.
Аноним 29/12/20 Втр 03:08:27 #425 №1894212 
>>1894084
Днём было про это уже.

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

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

То есть переменная класса это переменная по-умолчанию и только для чтения.
Аноним 29/12/20 Втр 03:43:56 #426 №1894229 
>>1894212
Понял, спасибо.
Аноним 29/12/20 Втр 04:57:56 #427 №1894245 
>>1894068
https://ideone.com/BERS5b
Аноним 29/12/20 Втр 05:18:58 #428 №1894261 
Привет тред.
Хочу сделать такой мини проект, чтобы мозги размять немного, сам не программист, но на работе ебошу иногда скрипты в юпитер ноутбуках, поэтому в целом понимаю что и как, но с какой стороны подойти не знаю.

Хочу раз в n времени проверять есть ли новые посты в паблике в вк. Если есть то проверять содержит ли пост указанный текст. Если содержит, то кидать пуш / смс или любое другое оповещение пользователю. В идеале бы это все оформить в бота в телеге с юзер френдли интерфейсом, чтобы не программист тоже мог воспользоваться, заранее благодарю за советы
Аноним 29/12/20 Втр 07:25:18 #429 №1894335 
https://gto76.github.io/python-cheatsheet/
Аноним 29/12/20 Втр 08:08:21 #430 №1894344 
>>1894261
Создай standalone приложение для ВК, получи токены и разрешения использовать АПИ, проделай то же самое с Телеграм. Если бот будет просто чекать посты ВК, то асинхронность не обязательно использовать, а то щас aiogram популярна библиотека. Я в этой асинхронности плаваю как кал сцуко.
Найти бы упражения для отработки асинхронности, многопоточности и всей этой хитрой хуйни. Может кто видел? Можно и для другого языка, главное задачки.
Аноним 29/12/20 Втр 09:11:17 #431 №1894364 
>>1894054
>>1894065
Звучит хорошо. Спасибо что поддержали анончики!
А то я совсем поник, когда понял, что соревнуюсь с людьми, которые учились 6 лет этой херне.
Аноним 29/12/20 Втр 09:30:32 #432 №1894367 
>>1894090
>Ни элемента такого в списке нет (это строка выше), тем более это не является номером элемента в списке
А ниче, что строка выше - это переменная, равная выполненной функции eval, что есть int?
Аноним 29/12/20 Втр 09:40:37 #433 №1894370 
>>1894344
>Найти бы упражения для отработки асинхронности, многопоточности и всей этой хитрой хуйни
В питоне я вкатывался в асинхронность через создание десктопных приложений посредство PyQt. Как известно, приложение по умолчанию работает в одном потоке, и если у тебя есть кнопочка "Просканировать пидоров вокруг", занимающая 10 секунд на выполнение данной операции, то после нажатия на нее десктопное окно попадет в состояние "Не отвечает", пока не пройдет 10 секунд, после чего оно одуплится. Поэтому любые функции должны отрабатываться в отдельном потоке, для чего в Qt есть встроенный QThread. Вот можешь с него начать.
Но в питоне асинхронность пилить довольно заебно.

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

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

Но если будет регулярка или какая другая сложная проверка, то в одну строчку уже не запихнёшь, или уж очень тяжеловесно будет.
Аноним 29/12/20 Втр 13:55:28 #437 №1894497 
>>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 #438 №1894725 
>>1894482
>Хотя в исходном ТЗ, как я понимаю, надо не по набору ключей
Мне нужно было именно по ключу, эта вся хуйня нужна чтобы выдрать из REST нужные мне данные, собрать в словарь и из словаря запилить CSV по шаблону а она удобно пилится csv.DictWriter со словарями
Аноним 29/12/20 Втр 20:05:07 #439 №1894813 
>>1894370
>в асинхронность через создание десктопных приложений посредство PyQt
Это всё-таки многопоточность, асинхронность это то, что через asyncio.

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

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

В JS промисы и async/await намного более предсказуемые, чем в питоне.
Аноним 29/12/20 Втр 20:22:01 #440 №1894817 
>>1894813
Roger that, bro. Go go go
Аноним 29/12/20 Втр 21:39:27 #441 №1894865 
XRENb.png
Что за херня? Как бороть? Сливать словари? Или попроще чего будет? Гугл молчит про 2 writerows подряд
Аноним 29/12/20 Втр 21:52:38 #442 №1894883 
>>1894865
По-моему, всё правильно делает.
Ну зазипуй словари, но всё равно какая-то хуйня, какой смысл вообще?
Аноним 29/12/20 Втр 22:04:59 #443 №1894897 
>>1894883
ну такполучилось что у меня листы с диками. Нужно их записать.
Есть вариант запихнуть всё в один лист но как-то сложно.
Аноним 29/12/20 Втр 22:07:16 #444 №1894901 
>>1894883
алсо zip не помог, оно кортеж делает а writerows их не ест
Аноним 29/12/20 Втр 22:09:04 #445 №1894902 
>>1894897
Что значит надо их записать?
Они связаны или нет? Почему разное количество?
Аноним 29/12/20 Втр 22:21:57 #446 №1894914 
>>1894902
Кол-во одинаково в обоих
разные нужные заголовки в разных словарях, тут либо слить пытаться в один словарь либо хз
Аноним 29/12/20 Втр 22:24:41 #447 №1894916 
>>1894865
Для начала сформулируй, что ты именно хочешь. И пример, как это в таблице будет выглядеть.

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

Руками список собери в случае чего.
Аноним 29/12/20 Втр 22:25:55 #448 №1894919 
>>1894914
for row, row2 in zip(dict1,dict2):
row.update(row2)
всё.
Аноним 29/12/20 Втр 22:26:25 #449 №1894920 
Screenshot212519.png
>>1894916
Вот тут нагляднее
Я попытался слить в один словарь но не вышло правильно.
У меня есть 2 словаря из которых нужно слепить один csv
Аноним 29/12/20 Втр 22:28:32 #450 №1894922 
>>1894813
>Это всё-таки многопоточность, асинхронность это то, что через asyncio
Можешь пояснить языком даунов (хоть как в том примере про электричество и говно), в чем разница?
Мимо
Аноним 29/12/20 Втр 22:29:05 #451 №1894923 
>>1894919
Работает, спс
Но я думал мб можно удалить как-то newLine после первого writerows
Аноним 29/12/20 Втр 22:32:32 #452 №1894927 
>>1894923
Да это не имеет смысла, специально сделали враппер, чтобы красиво выплюнуть всё по ключам, а ты хочешь это через жопу провернуть для своего наркоманского случая. Делай построчно тогда без этих удобств.
Аноним 29/12/20 Втр 22:39:46 #453 №1894935 
>>1894927
Согласен
Поэтому я просто соберу словарь один да и всё как тут >>1894919
посоветовали
Аноним 29/12/20 Втр 22:42:20 #454 №1894937 
>>1894920
Можно примерно так
for index, item in enumerate(list1):
____iter.update(list2[index])
Аноним 29/12/20 Втр 22:46:58 #455 №1894939 
>>1894922
В случае тредов ты запускаешь задачи, а переключение их происходит в случайные моменты времени. У тебя есть проблема thread safe кода, в остальном тебе адаптировать код не нужно.

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

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

Аноним 29/12/20 Втр 22:51:11 #456 №1894943 
Стикер
>>1894939
Сложнааааа.
Аноним 29/12/20 Втр 22:54:13 #457 №1894949 
>>1894943
>Сложнааааа.
Тогда выкатывайся. Программирование - это не твое.
Аноним 30/12/20 Срд 00:05:12 #458 №1895001 
>>1894949
Держи в курсе.
Аноним 30/12/20 Срд 01:32:44 #459 №1895039 
Господа пОгромисты
Можете чекнуть мой гитхаб и сказать куда дальше расти?
Да и вообще скажите про косяки в коде
https://github.com/Tr0ub1e
Аноним 30/12/20 Срд 03:54:06 #460 №1895087 
>>1895039
>Можете чекнуть мой гитхаб
Думаешь кто-то таким занимается в принципе?

Вот зашёл в Wangan-Midnight, ни описания никакого, что это, зачем, как запускать.

Открываю исходник, main.py. Вижу там
start_im = pygame.image.load("C:\\Users\\Tr0ub1e\\Desktop\\Folder3\\mid.png").convert()

Какой-то адовый хардкод, завязанный на какой-то ник, да ещё в винде.

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

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

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

Убрать хардкод, особенно вот эти глобальные пути, завязанные на ник пользователя и на ОС, как вариант добавить конфиг файл.

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

Что подвигает к тому, чтобы смотреть их критически, найти что-нибудь плохое, чтобы плохо думать об авторе. То есть если кто-нибудь будет смотреть, то с подсознательной установкой найти что-нибудь плохое. Все для себя тесты какие-то делают, чтобы что-то пощупать, но не все их на широкую публику выкладывают. Обычно сделают и потом удаляют.

Вот, пример, как недостатки искать:
https://github.com/Tr0ub1e/Auto-Ria-data-research/blob/master/data_analytics.py
Строки 81-111, смотрится стрёмно, дублирование кода, и т.п. Слёту вариант
if i in sorted_value:
____sorted_value += 1
else:
____sorted_value['NaN'] += 1

Игрушку, равно как и другое, запускать не стал. Оценить игрушку в плане качества кода или что посоветовать не могу, немного другими вещами занимаюсь.


рандомно и слёду, не вдумываясь:
https://github.com/Tr0ub1e/music-downloader/blob/master/tools.py
некорректная аннотация, строка 30:
def find_track(req:requests.Request) -> str:
у тебя там генератор строковых значений, а не функция, возвращающая строку

with open(str(path+'/'+filename)+".mp3"
во-первых, os.path.join лучше для этого, хотя не очень критично, и потом, если читаешь что-то по сети и сохраняешь, лучше всё-таки ошибки контролировать, это же штатная ситуация.

Более глобально вопросы есть. Скажем если бы я для себя делал подобную утилиту (что в файле main.py), то разумно предусмотреть возможность, чтобы сохранять не один файл, а много. Один и руками несложно, много уже утомительно. А так, в поле input ввести через пробелы номера, потом уже в скрипте разбить на номера и циклом всё скачать. Просто разумно предусмотреть более ёмкий и при этом полезный функционал, и несложный. Это же главная цель автоматизации.
Аноним 30/12/20 Срд 04:02:30 #461 №1895090 
>>1895039
>>1895087
Дополню себя же. На самом деле сложно что-то советовать. Надо просто делать что-нибудь, изучать, думать над своим кодом, как его улучшить и сделать более надёжным-полезным-читаемым.

Всё сильно зависит от того, что именно ты хочешь осваивать в первую очередь.

Факторов, что можно улучшить, безграничное количество. У любого.

Код может быть местами ужасный, но он и у махровых сеньёров в серьёзных продуктах бывает местами адовый, не говоря уже о средних прогерах. Все иногда говнокодят, куда же без этого.
Аноним 30/12/20 Срд 04:04:44 #462 №1895091 
>>1895087
>____sorted_value += 1
fix
____sorted_value += 1
Аноним 30/12/20 Срд 05:18:51 #463 №1895140 
>>1895039
Там нечего обсуждать, скрипты-однодневки.
Ну да, поюзал либы, решил какие-то задачки, молодец.
Аноним 30/12/20 Срд 06:13:43 #464 №1895185 
>>1894922
я концептуально это понимаю так:
многопоточность - это когда одна команда в формуле-1 может выставить, в зависимости от бюджета, до 4 машин одновременно на трассу. допустим, победа зависит от максимального времени, проведенного на треке, и в этом случае заведомо выигрывает команда, выставившая на трек 4 машины. бедная команда ставит на трек 1 машину и она ездит кольцами, накатывает время, а богатые буратины ставят 4 машины и эти машины за один круг проводят время в 4 раза больше, чем бедняки.

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

гуру асинхронности, правильно понимаю, не?
Аноним 30/12/20 Срд 10:02:04 #465 №1895431 
>>1895087
Man, these are some hard-to-swallow pills I gotta say.
Аноним 30/12/20 Срд 10:10:10 #466 №1895439 
>>1895185
Не совсем. Точнее, понял, но не то. Тебе главное нужно понять разницу между parallel и asynchronous. Оба используют multithreaing (multiprocessing) как базу, но подход местами принципиально иной. Очень часто асинк вообще локов и contest for resources не имеет.
Аноним 30/12/20 Срд 12:58:56 #467 №1895586 
>>1895185

Добавь только что мощность движка обратно пропорциональна количеству машин и гиперпынемобиль команды "HYPERPYNIA"приедет быстрее каждой из машин команды где много машин.

> асинхронность

Это когда пилотов обкололи веществами и им кажется что они едут одновременно, хотя на само деле у них одна тачка и они садятся в неё по очереди, и когда очереждной пилот вылезает из машины он залипает и не помнит ничего до момента как е8го сного пригласят сесть за руль.
Аноним 30/12/20 Срд 14:40:02 #468 №1895654 
>>1895087
Понял, спасибо большое за развернутый ответ)
Аноним 30/12/20 Срд 14:53:25 #469 №1895668 
>>1895185
>правильно понимаю, не?
Не совсем.

Главное, многопоточность была создана не для того, чтобы производительность наращивать. Сама технология разрабатывалась тогда, когда процессоры были одноядерными.

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

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

Разница между тредами и async/await в том, кто отвечает за переключение потоков исполнения и как они происходят. В случае тредов скорее процессор или система, в случайный момент времени. Что просто, но неудобно и не оптимально. В случае async/await отвечает уже сама программа, об этом надо думать, но переключение идёт лишь в нужные моменты, оптимально, за счёт этого код сильно разгоняется.
Аноним 30/12/20 Срд 15:47:56 #470 №1895744 
>>1894922
Допустим, у нас есть Константин Петрович Потоков, добропорядочный семьянин, верный муж и заботливый отец. Петрович будет у нас программой на питоне. Петровичу очень хочется пожрать, но для этого нужно выполнить три задачи: помыть посуду, сварить пельмешки и сходить за хлебом.
Петрович может выполнить все задачи синхронно однопоточно: помыть посуду, потом сварить пельмени, потом сходить за хлебом. Недостаток такого варианта в том, что Петрович бесполезно тратит время, тупо глядя как нагревается вода, а мог бы что-нибудь полезное делать.
Петрович может выполнить задачи асинхронно однопоточно(asyncio): поставить кастрюльку на огонь, пока вода закипает помыть посуду, потом забросить пельмешки и пока они варятся сходить за хлебушком. Тут могут возникнуть проблемы, если нельзя переключится с одной задачи на другую(то есть задача не отдает поток выполнения), например, Петрович так долго ходил за хлебом, что пельмени сгорели.
Петрович может выполнить задачи асинхронно многопоточно(multithreading): позвать семью, каждому выдать по задаче, и лежа на диване ждать доклада об успешном выполнении. Или не лежать на диване, а выполнять одну из задач. При таком раскладе может возникнуть ситуация, когда, допустим, нет чистой кастрюльки и жена ждет пока Петрович её помоет, да еще в коридоре стоит дочка в шубе и валенках, ожидая когда батя даст денег на хлеб. То есть один поток блокирует остальные.
Аноним 30/12/20 Срд 15:57:19 #471 №1895752 
>>1895744
>Допустим, у нас есть Константин Петрович Потоков, добропорядочный семьянин, верный муж и заботливый отец. Петрович будет у нас программой на питоне.
судьба человека
Аноним 30/12/20 Срд 16:07:39 #472 №1895762 
Допустим тебе надо сделать несколько задач:
1) допилить бекенд-фичу, завязанную на кучу разных сервисов, поднятых под докером.
2) изменить дизайн web-based интерфейса, цвета, расположение кнопок и т.п.
3) посмотреть серию анимешного сериала
4) прочитать двач
5) съесть пиццу с колой

Истинная параллельность:
Над монитором висит телевизор, в нём крутится сериал. Перед тобой стоит тарелка с пиццей, ты жуёшь её. Параллельно говоришь, чтобы голосовым набором настрочить пост на двач. Одной рукой набираешь бэкенд часть, другой рисуешь дизайн на другом компьютере.
Это самая эффективная схема, ты независимо делаешь пять дел одновременно.

Многопоточность. У тебя висит секундомер. Каждые две минуты ты переключаешься с задачи на задачу. Посмотрел две минуты аниме, закрыл плеер, загрузил докер, поднял окружение и пилишь свою таску. Через две минуты закрыл редактор, до конца строку с кодом не дописав, взял пиццу, пожевал. Ещё через две минуты убрал тарелку в сторону, рагрузил редактор, рисуешь кнопки. Ещё через две минуты закрыл, открыл двач.

Асинхронность. Открыл бэкенд таску, реализовал часть, закоммитил, закрыл, переключился на пиццу. Сжевал кусок, довольный переключился на двач. Начал писать ответ, дописал, глянул на часы, ужаснулся, что потратил два часа на это, переключился на дизайн. Подвинул кнопку так, что самому понравилось, включил аниме.
Аноним 30/12/20 Срд 16:10:21 #473 №1895764 
>>1894939
>а переключение их происходит в случайные моменты времени
Нет каждый 5 мили секунд если переключение возможно, или 100 машинных операций в питоне 2
Аноним 30/12/20 Срд 16:14:55 #474 №1895768 
>>1895744
Охуенно, схоронил, буду периодически почитывать и вникать.
Аноним 30/12/20 Срд 16:17:46 #475 №1895771 
>>1895744
Так, а когда кнопочка на ГУИ выполняет time.sleep(20), но форма при этом перетаскивается по экрану, не зависая, это асинхронно однопоточно или многопоточно?
Аноним 30/12/20 Срд 16:30:46 #476 №1895786 
>>1895771
time.sleep синхронная функция же, в однопотоке гуй зависнет, ее либо в отдельный поток, либо в отдельный процесс отправлять на выполнение.
Аноним 30/12/20 Срд 16:38:08 #477 №1895796 
>>1883441 (OP)
>python
Аноним 30/12/20 Срд 16:56:11 #478 №1895815 
>>1895786
Так я про случай, когда не виснет. Я хуй знает, как это в пистоне, но в шарпе это достигается через async/await.
Аноним 30/12/20 Срд 16:58:03 #479 №1895816 
>>1895815
Используй асинхронный sleep, очевидно же.
Аноним 30/12/20 Срд 17:01:34 #480 №1895820 
>>1895816
Боже, что за настырность. Я не о том спрашиваю. Я спрашиваю: когда действие кнопки не фризит окно ГУИ, это какой сценарий: асинхронный однопоточный или асинхронный многопоточный?
Аноним 30/12/20 Срд 17:03:17 #481 №1895822 
>>1883441 (OP)
Платиновый вопрос, но стоит ли вкатываться в питон для работы бэкэндером? Или из-за хайпа среди гречневых онлайн курсов теперь вкатиться нуфагу не реально?
Аноним 30/12/20 Срд 17:05:51 #482 №1895825 
>>1895820
В QT такие вещи насколько я знаю разруливаются в многопотоке.
Аноним 30/12/20 Срд 17:09:13 #483 №1895828 
>>1895822
>питон для работы бэкэндером
Не лезь, бля, дебил, сука, ебаный.
Срсли, питон - параша в большом проекте. Что бы там тебе маслятки не навешали на уши, факт остается фактом: динамическая типизация в ООП - кусок говна и идет нахуй.
Можешь питон рассматривать как способ заработка в датасаенсе (функциональное программирование, скриптики-хуиптики), но не более.
Аноним 30/12/20 Срд 17:12:39 #484 №1895833 
>>1895828
Большой проект это сколько строчек кода? Нормально питон заходит если писать чистый код и использовать типизацию.
Аноним 30/12/20 Срд 17:18:20 #485 №1895838 
>>1895828
>динамическая типизация в ООП
Опять ты по всем тредам шатаешься.
Аноним 30/12/20 Срд 17:37:27 #486 №1895852 
15997544969920.png
>>1895833
>если писать чистый код
Ahaha_oh_wow.jpg
Сам себя послушай. В каком мире ты живешь, если пишешь чистый код, приходишь в компанию, где до тебя уже написан чистый код, а главное: где тебе разрешают писать чистый код?
>>1895838
Пикрелейтед.
Аноним 30/12/20 Срд 17:47:34 #487 №1895860 
1521477489117810000.jpg
>>1895744
Весьма доходчиво.
Аноним 30/12/20 Срд 17:58:45 #488 №1895872 
>>1895852
>В каком мире ты живешь, если пишешь чистый код, приходишь в компанию, где до тебя уже написан чистый код
Проблема для всех языков программирования. Ад, который происходит на C/C++/Java куда хлеще, чем на многих других платформах. Статическая типизация этот ад только усиливает, а тяжеловесные системы сборки в стиле cmake+make делают его невыносимым.

Ты окружён жуткой архитектурой, которая конкретно зацементирована, в том числе из-за статической типизации. Потому что у тебя выстроена система классов из дикого количества слоёв наследования, на которую уже всё завязано, тебе надо мелочь какую-нибудь изменить, но добраться до неё невозможно, потому что она где-то в корне иерархии.
Аноним 30/12/20 Срд 18:16:47 #489 №1895889 
Привет тред, мне нужна функция сохранения графика из pyplot в библиотеке finplot, как мне ее вытащить оттуда и добавить в другую библиотеку?
Аноним 30/12/20 Срд 19:02:19 #490 №1895932 
>>1895889
любая картинка это в основном трёхмерный(четырех) тензор с каналами R G B (А), просто возьми этот тензор картинки из finplot и загрузи в pyplot и посредством pyplot сохраняй
Аноним 30/12/20 Срд 19:42:33 #491 №1896002 
>>1895852
Не проблема языка, говна с кучей багов полно на любом легаси проекте, особенно если писали его пидарасы.
Аноним 30/12/20 Срд 21:13:36 #492 №1896106 
>>1895828
петяня, ты новое словосочетание в книге прочитал, чтоли? поясни что за хуйня за такая, и как она проектам жить мешает?
Аноним 30/12/20 Срд 22:09:44 #493 №1896162 
>>1895833
Это опять ты? Буквально недавно тебя в жс-треде обоссывал
На любом проекте есть своя доля говнокода, говнокода нет только там где пишут "для себя и на века", но от таких прожектов всегда отдает легаси-душком. "Чистого кода" на коммерческих проектах нет и не было
Аноним 30/12/20 Срд 23:05:02 #494 №1896215 
>>1896162
>Это опять ты? Буквально недавно тебя в жс-треде обоссывал
Ебать ты шизлонг, можешь меня еще под кроватью поискать, а потом принять таблетки на ночь.
Аноним 30/12/20 Срд 23:16:12 #495 №1896221 
>>1895828
>Срсли, питон - параша в большом проекте. Что бы там тебе маслятки не навешали на уши, факт остается фактом: динамическая типизация в ООП - кусок говна и идет нахуй.
Ты вообще прав, но зачем так подрываться? Бекенд - это не обязательно большой проект.
Аноним 30/12/20 Срд 23:22:03 #496 №1896230 
>>1896215
Если найду - выебу, жопу готовь. 21 см это тебе не шутки нах
Аноним 31/12/20 Чтв 02:14:56 #497 №1896428 
Насколько хороши, полны и актуальны лекции Хирьянова? Понятное дело, что это лишь база (которую он, собсна, и зачитывает первоходам какой то там хабзы). Но мне так нравится его академический стиль повествования... будто реально вернулся в универ на лекцию по АоИПу какому. Стоит ли придерживаться его курса при знакомстве с Питонюгой (помимо чтения профильный литературы само собой)?
Аноним 31/12/20 Чтв 02:53:45 #498 №1896456 
>>1896428
Я их не смотрел, хотя желание было посмотреть, как и некоторые другие большие курсы.

Тыкал в случайные места. Моё мнение, там лекции по алгоритмам, а питон лишь инструмент, на котором их реализуют.

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

С точки зрения именно изучения питона точно нет, плохой вариант. Куда не тыкал, везде какой-то самый минимум, общий для большинства языков. Лучше просто открыть книжку именно по питону, как вариант "intermediate python", в библиотеке в шапке где-то есть (причём на русском вроде бы даже), или в официальной документации, не обязательно всех этих лутцов брать, если прогать более-менее умеешь.

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

Для другого вряд ли.

По стилю мне не очень нравится, я бы деда какого-нибудь предпочёл, но лучше не могу предложить.
Аноним 31/12/20 Чтв 03:28:03 #499 №1896471 
Аноны, привет. Вопрос не совсем по синтаксису питона, так что прошу не бить палками
В общем мне 24, есть 4 года опыта работы в геймдеве, стек юнити-c# и питончик для внутренних утилит + задачи по зрению (ну скелет там распознать и пр) + профильная вышка
И сейчас мне этот геймдев подзаебал - это не похоже на программирование совсем. Думаю перекатиться в питон разработку. Скажите, чем вы занимаетесь вообще ? Какой стек юзаете? Или питон на вашей работе, скорее, вспомогательный язык? Знакомых спросить нет, а после прочтения интернета создается ощущение что на питоне “достаются данные из бд” и “кладутся туда”. Но бля понятно, что такое объяснение только кухаркам подавай и питон разработка - дело не простое. Вообще круто, если кто-нибудь приведет кейс сложной задачи на работе, в идеале, чтобы примерно понимать с каким втф сталкиваются разрабы (а так бы хоть кто-нибудь ответил бы))
Так же вопрос, есть ли вероятность залететь питон прогером с моим беграундом сразу на нормальную позицию? очень не хочется в плане зп терять (было 70).
Буду рад адекватным анонам) спасибо) а то я немного в прострации с этой хуйни
Аноним 31/12/20 Чтв 05:41:52 #500 №1896514 
А есть стримы, где люди программируют онлайн? Хочется посмотреть как они переименовывают классы, методы, переменные, как получают ошибки. Короче, обычная разработка. Я бы посмотрел.
Где-то читал интервью одного прогера из Яндекса, он говорил о том, что они с остальными молодыми приходили посидеть за спиной у Сысоева, смотрели как он кодит.
Аноним 31/12/20 Чтв 07:19:13 #501 №1896531 
>>1896514
есть
Аноним 31/12/20 Чтв 10:13:38 #502 №1896595 
>>1896471
Охуеть. 4 года опыта и 70к? У программистов же зп только 300+
Может мне инженером остаться на тех же 70к
Аноним 31/12/20 Чтв 10:50:50 #503 №1896612 
>>1896595
Да я в очень молодой конторе работал последние два года - у них бабла нихуя нет
Аноним 31/12/20 Чтв 11:02:29 #504 №1896620 
>>1895815
Ну анончик, если синхронная функция не блокирует исполнение гуя, очевидно же что в отдельном потоке она исполняется, значит многопоточная.
>>1895860
Это если не углубляться, а то под капотом там все не совсем так. Как анончик выше писал, там что в асинкио, что в мультитрединге внутри все равно кооперативная многозадачность.
Аноним 31/12/20 Чтв 11:10:02 #505 №1896625 
>>1896612
Ну то есть ты совсем не ради денег работаешь
Аноним 31/12/20 Чтв 11:15:01 #506 №1896628 
>>1896456
Хм, похоже, ты смотрел более поздние его лекции. Я вот прям с первой начал, и там объясняются весьма базовые вещи (що такэ строка, присваивание, ХеллоВорд и т.д.). Мне наоборот показалось, что он начинает с уж совсем низменных понятий.
Аноним 31/12/20 Чтв 12:24:14 #507 №1896686 
>>1896625
да я еще пол года назад в унике был
для студентоны 70к было норм
сейчас подзатрахало как зп, так и место работы
Аноним 31/12/20 Чтв 12:45:54 #508 №1896698 
>>1896686
Тогда вообще круто. Возвращаюсь во вкат в ойти
Аноним 31/12/20 Чтв 14:54:53 #509 №1896785 
Хочу сделать пет проект ввиде аналога хертсоун. Начну пожалуй с бд. На ск это сложно через гуи реализовать. Поиск по бд(класс, редкость карты, стоимость карты)
Сложный запрос (который в себя включает несколько пунктов вышеперечисленных)
Аноним 31/12/20 Чтв 15:13:23 #510 №1896800 
ПЕРЕКАТ
>>1896798 (OP)
>>1896798 (OP)
>>1896798 (OP)
>>1896798 (OP)
>>1896798 (OP)
Аноним 03/01/21 Вск 05:12:12 #511 №1899334 
>>1889928
> топай в свой мирок розовых пони бичара
Да похуй мне щенок ебанный!
Аноним 06/01/21 Срд 00:51:31 #512 №1902082 
Всем драсте, у меня встал вопрос.
Я значит решил с помощью питона связать два компа, чтобы на них можно было играть в пинг понг, ну чтобы мячи через экраны летал. И при попытке передать координаты мяча у меня буфер сокета на сервере забивается из-за того, что на нём висят старые координаты мяча и не удаляюются. Как собственно мне удалить старые координаты мяча из буфера сервера?
https://pastebin.com/1hhJ9Hdr - Это правый кусок программы, у левого логика идентична
https://pastebin.com/cNVCvWiX - Это сам сервер
Аноним 17/01/21 Вск 14:57:28 #513 №1912720 
>>1902082
>буфер сокета на сервере забивается
Это ты как понял ?
Аноним 20/02/21 Суб 01:12:18 #514 №1946976 
>>1896785
В плане БД используй что угодно, есть и для реляционных и для Nosql удобные библы.
В плане графики и гуи есть PyGame.
Но вообще, скажу, что подобные вещи на пайтоне не самое удобное делать. Ну если забавы ряди для себя, то конечно почему бы и нет. Но в целом по удобству, и по эффективности, лучше джавы и c# смотреть.
comments powered by Disqus

Отзывы и предложения