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

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

 Аноним 05/12/20 Суб 02:42:42 #1 №1873283 
Python-programming-Microsoft-launches-learning-modules-for-[...].jpg
microsoft-python-ai-artificial-intelligence-course.jpg
Тред, посвящённый языку программирования Питон, #107

Предыдущий: >>1867362 (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
Аноним 05/12/20 Суб 06:26:34 #2 №1873308 
>>1873283 (OP)
Что понимают под автоматизацией систем на пайтоне? Какие задачи решают спомощью неё?
Аноним 05/12/20 Суб 06:38:54 #3 №1873310 
дарова дрыч, начал изучать ctypes и мне не понятно как скомпилировать свою си функцию в длл'ку для импорта, я нашел только как это сделать на linux(я юзаю mingw)
Аноним 05/12/20 Суб 08:46:54 #4 №1873325 
image.png
В чем сакральный смысл?
Аноним 05/12/20 Суб 11:45:35 #5 №1873362 
>>1873325
Пытаешься неизменной переменной присвоить значение.
Аноним 05/12/20 Суб 11:48:48 #6 №1873364 
>>1873325
Обновляют значение, чтобы не исчелзло случайно.
Скорее всего раньше оно делало что-то полезное, а потом так заглушили вместо закомментирования.
Аноним 05/12/20 Суб 11:53:23 #7 №1873365 
>>1873364
>Скорее всего раньше оно делало что-то полезное
t.pythonlets
range и list(range) Аноним 05/12/20 Суб 11:57:52 #8 №1873367 
Правильно ли я понимаю, что основное различие между range(0,1488) и list(range(0,1488)) в способе выдачи данных? Первая функция выдает их в последовательности-бегунке, а вторая сразу хуячит целый список?
Аноним 05/12/20 Суб 12:04:21 #9 №1873370 
>>1873367
Откуда ты придумал бегунок, лол.
Это называется генератор. Применение list вытягивает все значения из него и выдает в виде списка.
Аноним 05/12/20 Суб 12:05:02 #10 №1873372 
>>1873367
Что-то вроде
https://docs.python.org/3/library/stdtypes.html#typesseq-range
Аноним 05/12/20 Суб 12:32:17 #11 №1873389 
>>1873370
Визуально никакой разницы. Выдает одинаково. На каком уровне это можно лучше увидеть в примерах
Аноним 05/12/20 Суб 12:34:34 #12 №1873391 
>>1873389
а, понял теперь
Аноним 05/12/20 Суб 12:34:50 #13 №1873392 
>>1873370
>>1873389
>>1873372
>>1873391
>>1873367
Все. Врубился
Аноним 05/12/20 Суб 12:39:15 #14 №1873394 
>>1873389
Ну вот тебе пример.
Оборачиваем в ещё один генератор с принтом и всё видно.
https://ideone.com/lpzJ7L
Аноним 05/12/20 Суб 12:46:51 #15 №1873395 
>>1873370
Он не итеративный, правда. Через него можно итерировать, но он не выдает итератор.
Аноним 05/12/20 Суб 12:49:50 #16 №1873396 
>>1873395
Лол, как бы по нему итерировались тогда.
Всё, что реализует протокол итератора - итератор.
n = iter(range(1488))
print(next(n))
Аноним 05/12/20 Суб 13:28:29 #17 №1873421 
Короче 2 года пассивно-агрессивно осваивал этого вашего питона (последние курсы универа), а сегодня резко осознал, что это жуткая нубтраба вплане вката на работу. Ибо сейчас каждая собака знает язык + условную джангу, и соответственно пытается вкатится => конкуренция жутчайшая.
Перекатываться во что-то другое не хочется, ибо в принципе повседневно кодить на сабже нравится, модулей на все случаи жизни просто миллионы.
В связи с чем возникла идея дополнительно выучить вью и позиционировать себя как джун фулл стек django, vue.js, postgresql ну и там всякое попутное говно типа докера, очередей итд. Нормальная идея, че думаете?
Аноним 05/12/20 Суб 13:41:46 #18 №1873427 
Я так понимаю, что в питоне операторы более низкого уровня, чем в java?
Аноним 05/12/20 Суб 13:43:28 #19 №1873428 
>>1873427
Да, такие себе операторы, название одно, никакой оперативности.
Аноним 05/12/20 Суб 13:45:15 #20 №1873431 
>>1873428
Ну я имею в виду, что в java операторы больше похожи на функции питона, то есть более громоздкие
Аноним 05/12/20 Суб 13:45:33 #21 №1873432 
>>1873362
Для контекста
https://github.com/johnzero7/HaydeeTools/blob/master/HaydeeImporter.py#L1028
Аноним 05/12/20 Суб 13:47:41 #22 №1873433 
>>1873396
Ты что поехавший?
Range это iterable объект, но это не итератор.
Введи вот это:
type(range(1488))
<class 'range'>

>n = iter(range(1488))
А здесь ты как раз создаешь объект-итератор
>>>n = iter(range(1488))
>>>type(n)
<class 'range_iterator'>
Аноним 05/12/20 Суб 13:48:25 #23 №1873434 
>>1873427
Все, что питоновское - ничем не ниже.
Cython будет ниже
Аноним 05/12/20 Суб 14:07:05 #24 №1873443 
unnamed.jpg
>>1873433
Аноним 05/12/20 Суб 14:15:12 #25 №1873449 
>>1873421
Брат, у тебя вышка есть, а у 90% вкатунов нет. Их даже рассматривать не станут, а твое резюме автоматом залетает в нужную стопку. Алсо, фулстек это днище.
Аноним 05/12/20 Суб 15:21:25 #26 №1873513 
изображение.png
Я что-то не знаю?
Аноним 05/12/20 Суб 15:32:54 #27 №1873519 
>>1873513
Вы нам не подходите.
Аноним 05/12/20 Суб 16:06:53 #28 №1873568 
>>1873513
JSython
Аноним 05/12/20 Суб 16:41:34 #29 №1873614 
>>1873513
Ну, в джанге же есть возможность создавать формы. Да и без джанги есть библиотеки, которые создают фронтенд для веб-приложений на питоне, конечно, под капотом там генерируется html/js/css, но пользователь библиотеки может чисто в питоне все закодить. Кто знает, может, в обозримом будущем webassembly разовьется, и можно будет писать фронтенд действительно на чем угодно, хоть на питоне.
Аноним 05/12/20 Суб 17:34:50 #30 №1873661 
Сап аноны, вопрос от ньюфага. Насколько версия 3.8 актуальна? Есть одна вакансия тестирование, где требуется питон. Есть ли смысл осваивать 3.8 версию?
Аноним 05/12/20 Суб 17:59:16 #31 №1873670 
image.png
image.png
Анон, не шли на хуй
Пытаюсь вырвать текст из программы
На первом пикриле я по hWnd получаю текст из объекта, всё работает отлично
На втором пикриле делаю то же самое, но текст не печатается. Я не прошу подробного ответа, хотя бы скажи, куда гуглить
Аноним 05/12/20 Суб 17:59:54 #32 №1873671 
>>1873661
а ты сейчас на какой?
Аноним 05/12/20 Суб 17:59:57 #33 №1873672 
>>1873661
Что значит осваивать 3.8?
В принципе, можно учить по материалам любой 3+ версии, но лучше 3.6+, дальше уже не особо важно, это несложно подтянуть при желаниии.
Аноним 05/12/20 Суб 18:07:43 #34 №1873681 
>>1873670
Ты вообще делаешь неправильно, эти айдишки будут меняться каждый раз. Надо искать главное окно по тексту, а потом по его чайлд контролам уже.
Аноним 05/12/20 Суб 18:11:14 #35 №1873682 
>>1873681
это я сейчас погуглю, но в итоге всё сведётся к этой функции, как на пикриле, и будет ошибка
Аноним 05/12/20 Суб 18:13:50 #36 №1873684 
>>1873682
Ну хуй знает тогда, посмотри ещё подобные функции, по-моему там несколько штук для разных контролов, т.е. для лейблов и подобного что-то одно, а для эдитбоксов может быть другое.
Аноним 05/12/20 Суб 18:14:37 #37 №1873686 
>>1873684
кинь какой запрос вбить
Аноним 05/12/20 Суб 18:17:23 #38 №1873690 
Я чет даун наверное, но я всё не могу понять, как я должен создать форму в джанге, если данные должны быть помещены не в одну таблицу, а в несколько? Ну вот если у меня БД нормализована, то, например, таблица с заказами будет содержать в себе внешний ключ таблицы с клиентами. Человек выбрал товар и ввел свои данные. Информация о товаре идет в таблицу заказов, а информация о клиенте идет в таблицу клиентов, а в заказы попадает только айди этого клиента. Но вот чет нигде не видел, чтоб так кто-то делал.
Аноним 05/12/20 Суб 18:27:43 #39 №1873694 
>>1873671
на 3.7 кодил год назад
>>1873672
понял, значит просто буду юзать 3.8
Аноним 05/12/20 Суб 21:19:38 #40 №1873775 
>>1873661
В другом треде уже прокомментировал.

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

Есть какие-то конкретные вещи, которые сильно усовершенствуют в версии N. Если эти конкретные вещи изучать по старой версии, то ты немного лезешь в легаси.

Аноним 05/12/20 Суб 21:21:23 #41 №1873776 
Правда, что я могу скопировать чужой код из примера в интернете и форматнуть свой диск?
Аноним 05/12/20 Суб 22:09:50 #42 №1873800 
>>1873776
Никто тебе не запрещает как бы.
Аноним 05/12/20 Суб 22:51:59 #43 №1873828 
>>1873776
Батя сказал разрешает
Аноним 05/12/20 Суб 22:53:28 #44 №1873830 
>>1873661
3.8 добвили sharedMemor, вещь весьма полезная если твоя основная кодебаза - чистый питон и ты не интеропишь
Аноним 05/12/20 Суб 22:56:48 #45 №1873832 
>>1873614
>webassembly
>python
Аноним 05/12/20 Суб 23:30:35 #46 №1873854 
>>1873283 (OP)
>А стоит ли читать Лутца, том номер N?
а стоит ли читать лутца? я вообще полнейшая зелень во всем этом. лутц сможет дать мне уверенное знание синтаксиса для дальнейшего развития в питоне? время и сила воли есть. просто мало ли... вдруг тут уже давно советуют другого автора для начинающих? ведь еще так много разных книжек об одном и том же в закрепе...
Аноним 05/12/20 Суб 23:34:29 #47 №1873858 
>>1873854
>уверенное знание синтаксиса
Чего?
Зачем тебе читать беаную книгу на 400 сраниц дабы знать синтаксис? Я вот за пару вечеров основы подхватил на неделе. Если не уверен в чем-то, вроде return type - в отличие от других языков, кинуть мгновенные print(x) и затетить займет меньше секунды. Питон вообщ оджин из языков которые unironically проще дебажить принтом нежели полноценнымбдебаггером в 80%-90% случавем
Аноним 05/12/20 Суб 23:42:15 #48 №1873860 
image.png
>>1873832
https://rustpython.github.io/demo/
Может он что-то такое имел в виду?
Аноним 05/12/20 Суб 23:46:07 #49 №1873863 
>>1873860
Какой смысл шиппить barebones python interpreter в веб-ассембле? Шип соазу нативный, блять, дебил
Аноним 05/12/20 Суб 23:49:25 #50 №1873865 
>>1873863
Успокойся, никто наверное не станет этого делать в продакшене.
Аноним 06/12/20 Вск 00:35:45 #51 №1873881 
Кто вторым языком что взял для связки с пистоном? Пока выбрал ГОвно и пытаюсь его осилить
Аноним 06/12/20 Вск 00:38:16 #52 №1873884 
>>1873881
Почему не С, если там готовая эко-система с Cython есть? нахуй тебе геморный интероп?
Аноним 06/12/20 Вск 00:45:17 #53 №1873888 
>>1873884
>эко-система с Cython есть
Она забагована, что-то сложнее числодробилок я бы не стал писать
Аноним 06/12/20 Вск 00:48:26 #54 №1873890 
>>1873888
Поясни
Аноним 06/12/20 Вск 00:49:43 #55 №1873891 
>>1873890
Список исусов глянь
https://github.com/cython/cython/issues
Аноним 06/12/20 Вск 01:08:48 #56 №1873898 
>>1873891
And?
https://github.com/ytdl-org/youtube-dl/issues
4k issues, Я ни разу проблем не видал с ним
Твой GO
https://github.com/golang/go/issues

Пиздец, если следовать твоей логике там индия полная
Аноним 06/12/20 Вск 01:13:25 #57 №1873902 
>>1873891
1/2
>>1873898
1/6 и 1/6
Аноним 06/12/20 Вск 02:02:33 #58 №1873929 
>>1873858
ИМХО Лутц не для тех, кто уже дружит с программированием. Слишком много банальщины и воды, при этом устарел, не современных вещей.

А у кого нет приличного опыта разработки, тому может лучше побольше воды. Лучше отложатся некоторые вещи.
Аноним 06/12/20 Вск 02:08:53 #59 №1873934 
>>1873898
>youtube-dl
>4k issues, Я ни разу проблем не видал с ним
Постоянно с ним проблемы, хотя бы потому, что сервисы регулярно что-то меняют и что-то из-за этого ломается.

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

В самом питоне тоже дохрена таких проблем, каких-то багов и недоделок. И на других платформах.
Аноним 06/12/20 Вск 02:16:16 #60 №1873938 
>>1873690
У тебя форму заказа тоже клиент заполняет? Если да, то ты правда даун.
Аноним 06/12/20 Вск 02:21:08 #61 №1873944 
>>1873938
Бля, ну это я для простоты примера, у меня вообще не магазин никакой. В общем есть форма, данные из которой должны попасть в две связанных таблицы, а не в одну.
Аноним 06/12/20 Вск 02:22:05 #62 №1873945 
>>1873449
Двачая адеквату.
Сам вкатился так весной. Крупные компании до сих пор на вышку дрочат, как бы тут не пиздели.
Аноним 06/12/20 Вск 02:31:25 #63 №1873957 
>>1873944
Тут три таблицы по идее надо. Модели, например CliientModel, GoodsModel, OrdersModel
Дальше цепляешь выбранный клиентом товар запросом из GoodsModel
form = ClientForm()
if form.validate_on_submit():
new_client = CliientModel(kwargs - данные о клиенте)
new_order = OrdersModel(client_id=new_client.id,
kwargs - данные о заказе + данные из запроса товара)

Тут я на Фласке писал, он мне ближе. Сам переведешь, надеюсь
Аноним 06/12/20 Вск 02:33:24 #64 №1873960 
>>1873957
Данные о заказе должны быть айди, время и статус, которые автоматически заполняются. Не дай б-г ты дашь клиенту такие данные самому вводить.
Аноним 06/12/20 Вск 02:58:32 #65 №1873978 
>>1873934
Никогда не встерчал, обновлял раз в 2 месяца.

Суть в том, что ты дебилойд. Счетчик "issues" на гитхабе не показатель нифига.

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

Да и вообще, в абсолютном смысле, единственное зачем ты будешь юзать интроп или Cython - для реального параллелизма, ибо Pyton ограничен GIL в этом плане, однако с асинком IO у него проблем нет. ВОт и получается, в итоге, что задачи сведутся к минимуму и cython/C будет 100% за глаза - послал ссфлку на память, цифры закрунчил и вернул результат. Все останое будет на Питоне.
Аноним 06/12/20 Вск 03:02:27 #66 №1873980 
>>1873978
Плюс GO - это такой-же managed language c GC. Нахуя тебе такой интероп? Этот как интероп питона и C# или Джавы.
Интероп делается в нативный тогда, когда приоритетом являетмся производительность до байта, до бита, блять, ибо оверхед овердохуя. Одна из причи почему в НЕТ5 большую часть фнукционала экосистемы C# перенесли в IL/C# вместо нативного кода, ибо оверхед
Аноним 06/12/20 Вск 04:16:20 #67 №1873991 
>>1873957
Спасибо, вроде понял, попробую.
Аноним 06/12/20 Вск 05:34:34 #68 №1873997 
>>1873980
>>1873978
>>1873934
>>1873891
Звиняй, я тупанул, не про Cython имел ввиду а Cpython
Аноним 06/12/20 Вск 07:21:24 #69 №1874009 
Screenshot142.png
Screenshot141.png
Почему тест на первой картинке работает, а на второй нет?
Аноним 06/12/20 Вск 08:18:51 #70 №1874034 
>>1874009
потому что принт возвращает None
Аноним 06/12/20 Вск 10:51:42 #71 №1874058 
image.png
Антош, не шли на хуй. Я всё так же пытаюсь вырвать данные из соседней программы. Пока курил SO случайно прочитал, что в некоторых программах есть защита от парсинга. И вот, например, на пикриле я не смогу получить текст из полей. Это правда?
Аноним 06/12/20 Вск 10:54:10 #72 №1874059 
>>1874009
только вчера узнал, что print(необъявленнаяПеременная) выдаст ошибку
а get(необъявленнаяПеременная) выдаст null
Использование range Аноним 06/12/20 Вск 11:03:46 #73 №1874061 
Почему range/list(range(n)) вступает в конфликт с int? Хочу, чтобы можно было угадать не конкретное число, а число из диапазона



number = list(range(0,3))

while True:
guess = int(input('guess: '))

if guess == number:
print('+.')
break
elif guess < number:
print('-')
else:
print('nope')

exit(0)
Аноним 06/12/20 Вск 11:15:30 #74 №1874065 
>>1874061
Ты инпут вроде как stringa делаешь. Добавь функцию перевода стринга в инт
Аноним 06/12/20 Вск 11:29:47 #75 №1874071 
>>1874065
можно подробнее плиз и с примером
Аноним 06/12/20 Вск 11:39:19 #76 №1874087 
>>1874061
У тебя number - это список [0, 1, 2]
А guess - это число.
Что ты ожидаешь получить при сравнении списка и числа на равенство?
Аноним 06/12/20 Вск 11:55:23 #77 №1874102 
>>1874071
Погугли
Python input int
Python string to int
Аноним 06/12/20 Вск 12:17:38 #78 №1874115 
>>1874102
>>1874087
спасибо анон
Аноним 06/12/20 Вск 14:47:42 #79 №1874233 
Как в Pydantic реализовать такую поебень:

Есть класс pydantic.BaseModel с атрибутами:
login:str
password:str

Мне надо выводить через метод dict() вот это. Overload pydantic запрещает почему-то.

{'Login':'my_login', 'Password':'my_password'}

Аноним 06/12/20 Вск 15:01:10 #80 №1874248 
>>1874233
Сам разобрался.


def to_camel(string: str) -> str:
return string.lower()

class Config:
alias_generator = to_camel
allow_population_by_field_name = True
Аноним 06/12/20 Вск 15:31:33 #81 №1874260 
>>1873283 (OP)
Здравствуйте. Есть ли здесь шарящие за библиотеку telebot. Не могу понять функцию forward_message. Что туда передавать, как, БЛЯДЬ, номер сообщения переселаемого ей писать?

Уважаемые аноны, есть ли хоть один пример простенького бота в телеге с возможностью пересылать сообщения. Желаетльно с комментариями, объясняющими что и как. Все перерыл - не смог найти
Аноним 06/12/20 Вск 15:38:52 #82 №1874264 
>>1874260

bot.forward_message(to_chat_id, from_chat_id, message_id)

id чата откуда берешь сообщение
id чата куда пересылаешь
id сообщения
Аноним 06/12/20 Вск 15:41:25 #83 №1874266 
>>1874260
а ну и номер сообщения надо брать по какому-либо параметру через запрос сообщений из чата: по времени, по id пользователя или по контенты сообщения. Там уж сам реализовываешь как надо.
Аноним 06/12/20 Вск 15:45:36 #84 №1874270 
>>1874266
вот это я вообще не ебу как сделать, мне б самый просто йпример такого бота, я бы запустил и разобрался
Аноним 06/12/20 Вск 15:48:46 #85 №1874275 
>>1874270
Ты долбоеб или где?
Если ты не понимаешь алгоритм процесса, что ты собрался реализовывать?
https://github.com/keselekpermen69/Telegram_Forwarder/blob/master/forwarder/modules/auto_forward.py
Аноним 06/12/20 Вск 16:03:58 #86 №1874287 
>>1874260
Посмотри на Ютубе, там полно примеров. Вроде как от хауди хо самый понятный
Аноним 06/12/20 Вск 16:56:09 #87 №1874322 
>>1874287
>Хауди хо
Это не тот ли чел, который рассказывает как выучить питон за 1 час?
Аноним 06/12/20 Вск 17:03:20 #88 №1874330 
>>1874322
Синтаксис учится за 1 час, инструментарий все время, что работаешь с языком.
Аноним 06/12/20 Вск 17:13:21 #89 №1874345 
Аноны, насколько хорошо нампай вектора дружат с фракциями?

Я вижу, что они работают вместе, но боюсь что посередине кода будет выкинут какой нибудь сюрприз.

С точки зрения нампай фракция - такой же вид намбера как и интегер или флоат, но мб они в чем-то конфликтуют? Не встречалось?
Аноним 06/12/20 Вск 17:22:16 #90 №1874362 
>>1874322
Ты не тот долбеб, который не может открыть Гугл на соседней вкладке?
Аноним 06/12/20 Вск 17:23:52 #91 №1874368 
>>1874322
Ты не тот долбеб, который не может открыть Гугл на соседней вкладке?
Аноним 06/12/20 Вск 17:56:27 #92 №1874412 
AgACAgIAAxkBAAJf91M8HYvHDCWPWQUjZfaR2B6mPNoAALGrzEbxppSqAcS[...].jpg
AgACAgIAAxkBAAJf9lM8HaohmPHtCEFMtfmY8QLajPcAALFrzEbxppSrS5O[...].jpg
AgACAgIAAxkBAAJf9lM8HaohmPHtCEFMtfmY8QLajPcAALFrzEbxppSrS5O[...].jpg
AgACAgIAAxkBAAJf91M8HYvHDCWPWQUjZfaR2B6mPNoAALGrzEbxppSqAcS[...].jpg
Черрипикинг для затравки.
Подскажите, пожалуйста, по практикуму внизу https://younglinux.info/oopython/objects.php. Если сделать функцию просто рандомом определяющую кто кого ударит, то это не интересно. Я решил сделать небольшой оверкилл по этому заданию- сделать классы с наследованием и чтобы дралось любое число войнов.
- есть класс human, атрибут name и health - число, дочерний класс Warrior с прочими параметрами.
Есть 2 (или N) экземпляра Warrior firstwarrior и secondwarrior. Они должны драться, и вся эта логика еще будет реализована через функции.
Я себе представляю это так- в одной функции я соберу вызов трёх функции подряд- первая составляет список имён (name) всех войнов со здоровьем больше 0. Если такой воин один- он подебитель.
Потом вторая берет двух случайных из списка, пусть даже это будет один и тот же вои, который сам себя бъёт и возвращает их имена в список "кто-кому-ударил".
Третья функция берет первого из списка и отнимает его урон от здоровья второго. (тут грамотно нужно бы удалять экземпляр со здоровьем меньше 0, чтобы убрать проверку здоровья в начале)

Я застрял на получении списка атрибутов всех созданных экземпляров класса воин.
Я могу вызвать атрибут name у определенного война типа print(firstwarrior.name) и оно верное.
А как получить список атрибутов всех существующих объектов класса?
https://pastebin.com/Hc2ArdHm листинг.
Буду благодарен за советы.
Аноним 06/12/20 Вск 18:03:27 #93 №1874422 
>>1874412
https://stackoverflow.com/questions/328851/printing-all-instances-of-a-class

По уму, тебе нужно создать было публичный атрибут класса (name-list), куда при инициации вносится новое имя.

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

П. С. Если ты изменишь публичный атрибут призывом к инстансу, то инстанс получит свою отдельную копию публичного атрибута, а не изменит публичный, поэтому избегай этого.
Аноним 06/12/20 Вск 18:03:49 #94 №1874423 
>>1874322
Ты не тот долбеб, который не может открыть Гугл на соседней вкладке?
>>1874412
Пробовал использовать dic ?
Аноним 06/12/20 Вск 18:06:53 #95 №1874427 
>>1874412
wars = [firstwarrior, secondwarrior]

attrs = [w.__dict__ for w in wars]
print(attrs)

вот тебе листинг через comprehension
Аноним 06/12/20 Вск 18:46:33 #96 №1874496 
Анонче как запрограммировать функцию которая при каждом обращении выдаёт следующий элемент из списка. Желательно не передавать в нее ничего
Аноним 06/12/20 Вск 18:51:55 #97 №1874503 
>>1874496
yield
Аноним 06/12/20 Вск 18:52:45 #98 №1874504 
>>1874496
блять только щас догадался засунуть все в класс прописав в инит подгрузку списка, а потом функцией дёргать элементы... сукааа..
Ладно, мб варианты поумнее есть
Аноним 06/12/20 Вск 18:55:54 #99 №1874508 
>>1874504
> прописав в инит подгрузку списка
closure + yield
Аноним 06/12/20 Вск 19:29:18 #100 №1874525 
>>1874496
>>1874504
Читай про итеративные генераторы
Аноним 06/12/20 Вск 19:34:47 #101 №1874529 
15948825366002.jpg
>>1874508
>>1874525
>>1874503
Спасибо Антоны
Аноним 06/12/20 Вск 19:57:25 #102 №1874548 
>>1874275
>долбоеб
считай что так. Я вообще в программирование не шарю.

>>1874287
>хауди хо
Да срать я хотел, дайте мне образец простейшего бота с этой функцией, а там я его допилю.
Аноним 06/12/20 Вск 20:25:40 #103 №1874561 
>>1874548
>считай что так. Я вообще в программирование не шарю.
Очередные вкатыши, считающие что Python простой, потому что инфоцыгане так сказали.

Смотри https://nodered.org/
https://flows.nodered.org/node/node-red-contrib-telegrambot

Там еще доступнее, совсем для дурачков. Перекатывайся нахуй на JS.
Аноним 06/12/20 Вск 20:41:11 #104 №1874581 
>>1874561
>
помогать человеку, который буквально не может открыть гугл
Аноним 06/12/20 Вск 20:45:43 #105 №1874584 
>>1874561
>https://nodered.org/
кекнул конечно, блоками я прогал максимум в 8 классе робота шоб он по линии катался, а тут целый йоба серьезный проект
Аноним 06/12/20 Вск 20:51:19 #106 №1874590 
>>1874584
что тебе надо?
Аноним 06/12/20 Вск 20:52:41 #107 №1874592 
>>1874590
чтобы у бабули прошла ишимия, а что?
Аноним 06/12/20 Вск 20:58:17 #108 №1874597 
>>1874592
зарепортил залётного
Аноним 06/12/20 Вск 21:12:15 #109 №1874612 
>>1874584
И? Наработки IBM брошенные коммьюнити как кость собаке, как и все JS наработки.
Бота для Telegram делал на этой хуйне, все очень просто, еще проще чем на питоне.
Но так как вкатыши часто просто не читают документацию до конца, это вряд ли поможет.
Аноним 06/12/20 Вск 21:40:40 #110 №1874633 
>>1874561
>считающие что Python простой, потому что инфоцыгане так сказали.
Сам по себе Питон простой, еще проще C#
А advancуd concepts везде сложные, в любом языке, ибо обычно требуют SICP и comp-sci
Аноним 07/12/20 Пнд 00:01:49 #111 №1874696 
>>1873283 (OP)
Юзаю sqlalchemy, как понять с какой именно БД я в данный момент работаю (postgresql или mysql например) чтобы выполнить последующий код нужным образом?
Аноним 07/12/20 Пнд 00:17:48 #112 №1874699 
>>1874633
>Сам по себе Питон простой
Под знанием питона обычно подразумевается знание кучи библиотек, которые далеко не простые, и требуют знания тех самых advanced concepts.
Аноним 07/12/20 Пнд 00:29:50 #113 №1874702 
>>1874696
https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.driver
Аноним 07/12/20 Пнд 00:40:32 #114 №1874707 
>>1874561
>вкатыши
так я и не вкатыш, и проект у меня не особ серьезный
Аноним 07/12/20 Пнд 00:50:10 #115 №1874709 
>>1874699
Математика ничего общего не имеет со "знанием языка X"
Большая часть этих бибилиотек идентична для любого другого языка.
Аноним 07/12/20 Пнд 00:53:02 #116 №1874710 
>>1874699
Ты чертовски прав
Сам питон очень прост и его очень быстро можно выучить, а вот его библиотеки очень большие не говоря уже о фреймворках.
Аноним 07/12/20 Пнд 01:21:37 #117 №1874717 
>>1874709
>Математика ничего общего не имеет со "знанием языка X"
Причем здесь математика? Не считая некоторых специфических тем, она в программировании вообще не нужна.
>Большая часть этих бибилиотек идентична для любого другого языка.
Не идентична. Тот же numpy не имеет аналогов ни в одном другом языке, а чтобы научиться им нормально пользоваться нужны месяцы. opencv, pandas, matplotlib - это все большие библиотеки, которые за один вечер не освоишь. Помимо этого придется осваивать типизацию, без которой в больших проектах будет совсем плохо, multithreading/multiprocessing с которыми в питоне заебешься из-за GIL, генераторы с корутинами, лямбды и прочее. Везде свой синтаксис и свои особенности.
Аноним 07/12/20 Пнд 01:24:48 #118 №1874719 
Screenshot from 2020-12-07 01-22-50.png
>>1873432
Для того гит и нужен, чтобы можно было историю коммитов отмотать и посмотреть, что было раньше

Был работающий код, его обрезали, получилось вот то, что ты нашёл.
Аноним 07/12/20 Пнд 01:27:29 #119 №1874720 
>>1873513
>Я что-то не знаю?
Москва. 50k. Не расстраивайся очень сильно.

Скорее всего какая-то компания, где был один разработчик, которые поддерживал веб. Потом он сделал x2, и они ищут нового, а сами мало чего в этих словах понимают.
Аноним 07/12/20 Пнд 01:35:36 #120 №1874721 
>>1874717
>Не идентична. Тот же numpy не имеет аналогов ни в одном другом языке, а чтобы научиться им нормально пользоваться нужны месяцы. opencv, pandas, matplotlib - это все большие библиотеки, которые за один вечер не освоишь.
Все эти бибилотеки ничего общего с питоном и языком не имеюТ, они вообще на С написаны
При желании numpy на C моэно портировать
Аноним 07/12/20 Пнд 01:43:20 #121 №1874723 
>>1874717
> чтобы научиться им нормально пользоваться нужны месяцы
Это столько у тебя ушло? Можешь привести примеры как писал в начале с numpy, через месяц и через 3?
Аноним 07/12/20 Пнд 02:06:06 #122 №1874734 
>>1874723
>Это столько у тебя ушло? Можешь привести примеры как писал в начале с numpy, через месяц и через 3?
Я не помню, сколько точно ушло времени на один numpy, поскольку учил с нуля весь датасаенс и машоб. Библиотек, которыми я постоянно пользуюсь, где-то штук 15-20. На все вместе, включая практически всю стандартную библиотеку и особенности питона, ушло около 2 лет.

Минимальное адекватное понимание numpy - это знать, как ответить на вопросы вот такого уровня: >>1869665 → >>1869685 → . Полное понимание - это не задумываясь вертеть как угодно многомерные массивы, уметь в логические операции над массивами, индексы, минимальные/максимальные/средние значения по осям (например, найти среднее значение RGB у массива из картинок). Короче, когда любую операцию над массивом, которую можно описать одним предложением, ты можешь записать в одну строчку при помощи numpy.
Аноним 07/12/20 Пнд 02:43:03 #123 №1874745 
>>1874734
Ты же понимаешь что вопросы такого
>>1869665 →
уровня решаются в течение 13 секунд содания test.py и написания print(x)?

> Полное понимание - это не задумываясь
В этом то и проблема современных овер 45789е674586784 бибилиотек - implementation details change. За ними сложно уследить. Это как питон 2 и 3- там пиздец изменений. Их невозможно все в голове человеку держать UNLESS ты только этим и хзанимаешься всю жизнь. На эту тему говорил сам автор SICP
https://habr.com/ru/post/282986/
Системы, что мы нынче оперируем, слишком сложные и не надежные. Нужен новый подход, подход "мертвого запоминания простых блоков" не действует, ибо простых систем и блоков больше нет. Индустрия за 20 лет изменилась.
В результате, таких людей, которые воротят нос от тех, кто решает мелкие вопросы на месте путем а-ля "print' вместо запоминания мелочей, который могут постоянно менятьс - вживут. Вы вымрете, это не приспосабливаетесь.
Аноним 07/12/20 Пнд 03:19:13 #124 №1874749 
>>1874745
>уровня решаются в течение 13 секунд содания test.py и написания print(x)?
В том, чтобы тыкать print и смотреть на результат, нет ничего плохого - все с этого начинают. Но это этап вкатывальщика, эффективность которого стремится к нулю. Вместо затраченных 15 минут и 10 строчек кода, вкатывальщик потратит полдня и напишет 100 строк говнокода, а нетривиальные проблемы вообще не сможет решить. В этом и есть отличие сеньора от вкатвальщика - сеньор знает свой стек технологий от и до, и может быстро и эффективно решать на нем задачи.

А статься вообще не про это. Она про то, что не нужно все писать с нуля, и не нужно знать все уровни абстракции, начиная от принципа работы компьютера заканчивая тем, как работает питон.
Аноним 07/12/20 Пнд 05:42:42 #125 №1874760 
>>1874745
Свой стек в любом случае надо знать хорошо. Иначе будешь спотыкаться и делать говнокод.

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

Аноним 07/12/20 Пнд 08:09:49 #126 №1874779 
image.png
>>1874749
> Но это этап вкатывальщика, эффективность которого стремится к нулю.
I don't know, man, если даже Гвидо приходится смотреть, как работает стандартная библиотека, то есть ли шансы у нас, простых смертных?
Аноним 07/12/20 Пнд 08:43:44 #127 №1874785 
Есть аргумент data для которогоя хочу указать любой сласовый тип - list, array, bytearray, bytes, string

Какой тип указать что бы все покрыть?
Аноним 07/12/20 Пнд 08:54:42 #128 №1874792 
>>1874785
Покрыть как бык овцу или что?
Аноним 07/12/20 Пнд 09:03:55 #129 №1874795 
>>1874792
сукатупая

Есть функция
def sdelat_gut(i: int, data: ???)

result = sdelat_gut(1, memoryview([1,2,3,4,5,6]))

Принимает в качестве data list, array, bytearray, bytes, string, memoryview - все слайсаются
Аноним 07/12/20 Пнд 10:56:56 #130 №1874847 
>>1874785
collections.abc.Sequence
Аноним 07/12/20 Пнд 11:47:59 #131 №1874876 
>>1874847
Ловко ты его приложил!
Аноним 07/12/20 Пнд 12:55:00 #132 №1874900 
Sup, /pr/!

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

Заранее благодарю!
Аноним 07/12/20 Пнд 12:59:25 #133 №1874901 
Что лучше выбрать вторым языком: C# точеный или GO дроченый?
Аноним 07/12/20 Пнд 13:04:13 #134 №1874902 
Mayoi.jpg
>>1874900
>Будет солиднее
Не будет, что то говно, что это
Аноним 07/12/20 Пнд 13:04:45 #135 №1874903 
>>1874901
Если для связки с пистоном, то ГОвно
Аноним 07/12/20 Пнд 13:06:11 #136 №1874904 
>>1874903
Шарп никак с пистоном не связать нельзя?
Аноним 07/12/20 Пнд 13:30:46 #137 №1874914 
>>1874904
Просто шарп это энтерпрайз ебанина с анальными стандартами.
Го для молодых и шутливых, как и пистон, да и для одного и того же используются. Очень часто в вакансиях их связка идёт, так как с питона начинают критические сервисы переписывать.
Аноним 07/12/20 Пнд 19:51:43 #138 №1875123 
Что из годного можно читануть после первой книги Лутца? "Fluent Python" Ramalho и "Effective Python" Slatkin'а норм будет или есть что-то годное промежуточное?
Аноним 07/12/20 Пнд 20:00:04 #139 №1875134 
Анон, хочу вктатиться в автоматизацию тестирования, сам макака типичная. Выбирал между джавой и питоном, посоветовали начать с питона.
Нашел какой-то фришный курс по питону на stepik для нубов, но там пока стандартные математические задачки и пока непонятно как это все пригодится. Возможно стоит что-то почитать дополнительно из литературы чтобы углубиться в тему?
Как вообще лучше вкатываться в кодинг через питон?
Аноним 07/12/20 Пнд 20:19:08 #140 №1875155 
>>1875134
пока вкатываюсь сам. Говорю о своём опыте. Рекомендую начать с http://pythontutor.ru/lessons/inout_and_arithmetic_operations/
за один вечер он дал больше, чем ютуб за неделю (всё благодаря практике)
Аноним 07/12/20 Пнд 21:03:05 #141 №1875214 
Пистон просто просится стать компилируемым, в проекте все типами обмазано, никаких листов с разными типами данных, вот просто бери и оптимизируй компилятором.
Аноним 07/12/20 Пнд 21:08:32 #142 №1875218 
>>1875214
Тип данных в списке может быть довольно абстрактным, вроде Callable, может быть Union из совершенно разнотипных данных, может быть Any в конце концов.

Так что нет, не получится.
Аноним 07/12/20 Пнд 21:14:32 #143 №1875225 
>>1875218
>Тип данных в списке может быть довольно абстрактным
Это и переписать можно на какой-нибудь class 'func'

>может быть Union из совершенно разнотипных данных
Это дженерик обычный

>быть Any в конце концов
Так вообще моветон писать

Аноним 07/12/20 Пнд 21:41:00 #144 №1875269 
Братишки выручайте. Писал я сервис тесты для бэ и тут наш архитектор выдаёт мне что они фуфло, потому что некоторые сервисы проверяют как сервер возвращает CORS headers.
И поэтому они валятся на контейнерах (которые нам сейчас вживляют).
Потом он пишет, что CORS это механизм защиты браузера и это имеем смысл, Олько если сервис напрямую стучит браузером. Это типа не наш случай, потому что большинство наших сервисов идут через Gateway и соответсвенно это зависит уже от GTW передавать CORS супорт.

Ну и потом пишет свою версию теста, где проверяет Хедеры на содержание Access Control Allow Credentials true.

Что это за ботва и как ее правильно тестить? Спасибо
Аноним 07/12/20 Пнд 22:10:10 #145 №1875306 
>>1874847
codecs.decode будет жаловаться
Аноним 08/12/20 Втр 00:15:56 #146 №1875391 
>>1875269
Проеб в prod/pre-prod/testb версий, мхех.
Тебе дали api для тестирования? Нет? Пусть нахуй идёт.
Аноним 08/12/20 Втр 00:20:57 #147 №1875393 
>>1875214
>>1875225
Каким хуем когда я вот такю простую задачу не могу решить:
>>1874795
Аноним 08/12/20 Втр 00:21:52 #148 №1875395 
Есть два стула: сделать if else или генератор. Входные объекты инстансы классов (наследовать не могу, имплементации команд. Куски кода огромные)
В один из инстансов в метод надо передавать параметр, потому не понимаю как можно реализовать красиво.
Input: command.number
Output: implementation = next(imp for imp in CMD_LIST if imp.command_code == command.number)
return implementation.handle().
Так вот в один из handle надо передать параметр из класса в котором CMD_LIST является атрибутом.
Дичь? Ну так вышло
Аноним 08/12/20 Втр 00:24:12 #149 №1875397 
Вариант конечно затычку в виде kwargs сделать и передать атрибуты основного класса, но может возникнуть путаница
Аноним 08/12/20 Втр 00:46:31 #150 №1875410 
Создавал сайт на Django в PyCharm, виртуальное окружение (venv) создавалось.
Потом попытался выгрузить сайт на сервер, по инструкции из видео с ютуба что-то вбивал в putty - не получилось.
Сейчас пытаюсь создать новый сайт - виртуальное окружение в PyCharm не создается и все файлы в проекте написаны шрифтом красного цвета.
Что это и как это исправить?
Аноним 08/12/20 Втр 01:26:08 #151 №1875424 
>>1875410
Старое окружение удалял?
Аноним 08/12/20 Втр 01:27:10 #152 №1875426 
>>1875410
Когда в командной строке вбиваю pip install venv, вылазит:
ERROR: Could not find a version that satisfies the requirement venv (from versions: none)
ERROR: No matching distribution found for venv
Аноним 08/12/20 Втр 01:27:28 #153 №1875427 
>>1875424
Нет, а как?
Аноним 08/12/20 Втр 01:31:03 #154 №1875430 
>>1875427
Ручками прямо папку venv и другие сопутствующие гитигнор-вещи. Потом в настройках Pycharm удаляешь интерпретатор для старого виртуального окружения и создаешь новый.
Аноним 08/12/20 Втр 01:32:51 #155 №1875433 
>>1875430
>Ручками прямо папку venv
Откуда ее удалять?
Аноним 08/12/20 Втр 01:35:53 #156 №1875435 
>>1875433
Из корня, вестимо.
Аноним 08/12/20 Втр 02:44:56 #157 №1875466 
venv отсутствует.jpg
Создаю проекты в PyCharm - в проекте отсутствует venv. Как исправить?
Аноним 08/12/20 Втр 02:54:32 #158 №1875468 
>>1875466
python -m venv .env
Аноним 08/12/20 Втр 02:56:47 #159 №1875470 
>>1875468
Антош, а почему файлы в проекте горят красным?
Аноним 08/12/20 Втр 03:04:34 #160 №1875473 
>>1875470
Без понятия, узнаешь ответ - скажи
Аноним 08/12/20 Втр 03:05:13 #161 №1875474 
>>1875470
Без понятия, узнаешь ответ - скажи
Аноним 08/12/20 Втр 04:16:53 #162 №1875482 
Аноны, я потерял мотивацию искать работу спустя 2,5 месяца, думаю продолжу минимум после сессии и тут я начал думать, хочу объективного ответа, а не от продаванов всяких курсов насколько нужна вышка, насколько нужна вышка программистом, насколько нужна вышка прикладным математиком-программистом. Я хочу стать настоящим профессионалом, но учусь на инженера и вопрос в том что я получаю техническую вышку, при этом я не ботаю 24/7, у меня есть время страдать хуйней, но корачка будет не программиста, другой вариант пробовать переводится на программиста, но там придется тратить сильно больше времени на учебу, а я боюсь не смогу еще деньги находить на еду тогда, вопрос стоит ли переводится на программиста и последнее, независимо от того где я учусь сейчас я мечтаю поступить в магу вышки на эти дата саенсы, надеюсь за 2,5 года хоть на платку смогу поступить, мне кажется тогда у меня точно есть будущее, посоветуйте что мне делать. Алсо хочу добавить, что мне интересно именно программирование и математика, а не получить навык и быть макакой даже 300к/нс, я бы хотел работать над чем-то действительно сложным и интересным. Особенно интересует мнение анонов с вышкой, которые докатились на мидлов хотя бы
Аноним 08/12/20 Втр 04:19:47 #163 №1875483 
>>1875482
Добавлю на всякий, я понимаю что я и так смогу вкатится, вопрос в том дает ли вышка действительно особую систему знаний, связи, проекты и т.д или лучше самому все наверстать, а ближе к синьерству там разберусь и всем будет плевать на мой диплом?
Аноним 08/12/20 Втр 04:20:45 #164 №1875484 
>>1875470
Гит подсвечивает, если не знаешь что это, то забей, иначе добавь в индекс и закомить
Аноним 08/12/20 Втр 04:25:19 #165 №1875486 
>>1875470
Алсо если ты тот анон с вопросом про деплой сайта на сервер, то не забивай на гит, а сначала узнай что это и почитай в гугле «pip requirements.txt”
Аноним 08/12/20 Втр 04:30:11 #166 №1875487 
>>1875486
Мне тоже кажется что это как-то связано с гитом, это из-за того что я пытался загрузить сайт на git?
Аноним 08/12/20 Втр 04:41:29 #167 №1875490 
>>1875470
>>1875473
>>1875484
>>1875486
>>1875487
Ctrl+Alt+A or selecting Add to VCS - надо было "добавить файлы в VCS" сочетанием клавиш Ctrl+Alt+A, и все файлы стали зелеными. Что бы это VCS не значило.

Аноним 08/12/20 Втр 04:43:09 #168 №1875491 
>>1875490
Правда я так и не понял почему это случилось и почему venv перестало создаваться без команды python -m venv venv.
Загадки, загадки. Только начал учиться программировать - а уже чувствую себя таким заебанным.
Аноним 08/12/20 Втр 04:45:55 #169 №1875492 
>>1875490
Сказал же читай про гит, зря ты за джангу взялся, vcs вершон контрол систем, ты добавил в индекс файлы, советую курс на степике по гиту, а пучарм прекрасная ide, подсвечивает красным файлы вне индекса, зеленым дбавленные, серым закомиченные, синим измененные
Аноним 08/12/20 Втр 04:47:46 #170 №1875494 
>>1875491
Когда создаешь проект есть вкладка с созданием среды, либо без, ты выбрал без создания
Аноним 08/12/20 Втр 05:04:02 #171 №1875495 
>>1875494
Я эту вкладку не вижу.
Аноним 08/12/20 Втр 05:10:04 #172 №1875497 
image.png
>>1875495
Аноним 08/12/20 Втр 05:13:40 #173 №1875498 
>>1875497
и какая из них?
Аноним 08/12/20 Втр 05:19:06 #174 №1875499 
>>1875498
Прошу, почитай что написано на скрине и свой вопрос, думаю все отпадет само
Аноним 08/12/20 Втр 05:21:51 #175 №1875500 
123.jpg
>>1875499
Вот мой скриншот.
Все так же как у тебя. НО venv не создается (раньше создавалось).
Просто интересно в чем проблема - на будущее знать.
Аноним 08/12/20 Втр 05:35:20 #176 №1875501 
>>1875500
Не создается даже если галка создать включена? Первое что я могу посоветовать, приготовится к грению жопы, потому что у тебя пользователь создан на кириллице, возможно это мешает, второе попробуй в консоли(cmd) ввести python3 -V или как там, сам погугли, вероятно питона нет в PATH, тут нужно читать как его добавить, так же почитай про переменные среды, переименуй пользователя, гайд есть на ютубе, а так же приготовься переходить на линукс, иначе будет слишком много проблем в будущем, отдельно гугли саму проблему с тем, что у тебя venv не создается(однако если раньше создавалась и ты включал галку, то я вообще хз что могло поменятсья)
Аноним 08/12/20 Втр 05:42:59 #177 №1875502 
>>1875501
Спасибо за совет.
Когда я делал простенький сайт по курсу itproger (небольшой блог) - venv создавался.
Потом с помощью этого видео - https://www.youtube.com/watch?v=BWtrVIVgA6c - я попытался переместить сайт на хостинг.
Ничего не получилось. Но после этого venv перестал создаваться. Думаю это как-то связано с тем что я создавал виртуальное окружение в putty, хотя это не точно.
По поводу твоего совету по переходу на linux подумаю, спасибо за совет. Как думаешь, какая версия лучше для программиста? Ubuntu?
Аноним 08/12/20 Втр 05:48:53 #178 №1875504 
>>1875502
Я сам вкатывальщик, установил убунту и ни разу не жаловался, думаю ты зря этим занимаешься, пока не разобрался с линуксом ставить на хостинг что-то, еще и без гита сложновато, начни с его-то более простого
Аноним 08/12/20 Втр 05:55:01 #179 №1875507 
>>1875504
Антош, как зарабатывать планируешь на программировании?
Я вот сайты хочу научиться делать - и на upwork с fiverr, английский попутно учу.
Еще думаю java выучить и android приложения пилить, может создам чего вроде Тик-тока и озолочусь.
А ты что планируешь?
Аноним 08/12/20 Втр 05:55:24 #180 №1875508 
>>1875502
https://intellij-support.jetbrains.com/hc/en-us/articles/207241085-Locating-IDE-log-files

Смотри чего в логах
Аноним 08/12/20 Втр 05:58:52 #181 №1875509 
It takes 1 minute on 120Kb project for Pycham to start
It takes 5 seconds for Vscode to start and 3-4secods for exceptions to kick in

Why do you have yourself?
Аноним 08/12/20 Втр 06:06:17 #182 №1875510 
>>1875509
Зато пайчарм не тупит с автокомплитом, особенно на больших библиотеках.
Аноним 08/12/20 Втр 06:07:57 #183 №1875511 
>>1875508
Мне эти логи удалить?
Честно говоря совсем нуб.
Аноним 08/12/20 Втр 06:10:50 #184 №1875513 
>>1875509
> It takes 1 minute on 120Kb
Таки що вы говорите? Как там с ХДД в 2к20?
Небось система ещё пару минут грузится.
Аноним 08/12/20 Втр 06:13:12 #185 №1875514 
>>1875513
Не поясняет факта почему торморзнутое электрон-говно быстрее, but ok
Аноним 08/12/20 Втр 06:16:38 #186 №1875515 
>>1875514
Хз как у анона, но пучарм у меня ещё тянет кучу плагинов и прочей хуйни. Написан он на джаве и тяжеловат при запуске.
При этом вскод тянет парочку плагинов уровня "подсветки код в файле с расширением 'хуйпизда'".
Аноним 08/12/20 Втр 06:18:10 #187 №1875516 
>>1875515
А что тебе нужно из плагинов, к примеру?
Аноним 08/12/20 Втр 06:47:30 #188 №1875525 
>>1875511
научись гуглить, друг, узнай что такое логи
Аноним 08/12/20 Втр 07:04:18 #189 №1875529 
>>1875516
Подсветка синтаксиса, интеграция с различными сторонними системами.
Аноним 08/12/20 Втр 07:16:22 #190 №1875533 
>>1875529
>Подсветка синтаксиса
Семантическая? Она есть у Pylance

> интеграция с различными сторонними системами.
Какими?
Аноним 08/12/20 Втр 07:20:28 #191 №1875534 
https://www.youtube.com/watch?v=jME4-T_hfhQ - пытаюсь создать интернет-магазин.
Когда вбиваю django-admin.py startproject shop, папки shop не появляется.
Чому?
Аноним 08/12/20 Втр 07:22:01 #192 №1875535 
>>1875534
появляется только файл django-admin.py, подсвеченный красным цветом, и в нем написано:
"#!d:\python\shop\scripts\python.exe
# When the django-admin.py deprecation ends, remove this script.
import warnings

from django.core import management

try:
from django.utils.deprecation import RemovedInDjango40Warning
except ImportError:
raise ImportError(
'django-admin.py was deprecated in Django 3.1 and removed in Django '
'4.0. Please manually remove this script from your virtual environment '
'and use django-admin instead.'
)

if __name__ == "__main__":
warnings.warn(
'django-admin.py is deprecated in favor of django-admin.',
RemovedInDjango40Warning,
)
management.execute_from_command_line()"
Аноним 08/12/20 Втр 07:45:12 #193 №1875541 
>>1875483
Открой вакансии работ где собираешься РАБотать и посмотри требуется в них вышка или нет, че ты как маленький. Или ты думаешь на тебя после вуза выстроится очередь работодателей с зп 50-100к? лол
raskol 08/12/20 Втр 10:09:07 #194 №1875574 
Screenshot1.png
Screenshot2.png
Почему так?
Аноним 08/12/20 Втр 10:10:48 #195 №1875575 
>>1875574
Максимально длинное слово.
Аноним 08/12/20 Втр 10:27:06 #196 №1875580 
>>1875575
То есть почему переменная конвертирует индекс в слово?
Аноним 08/12/20 Втр 11:06:19 #197 №1875602 
>>1875580
a возвращает элемент в позиции b
a.index возвращает позицию элемента b в списке, если он там нашелся

Какая переменная конвертирует какой индекс в какое слово? У тебя в коде несколько переменных инициировано, мог бы ее имя назвать, а пока непонятно что тебе непонятно. Правильно и подробно заданный вопрос содержит в себе значительную часть ответа.
Аноним 08/12/20 Втр 11:08:20 #198 №1875604 
image.png
>>1875602
>a возвращает элемент в позиции b
Блять, спасибо абу, что до сих пор ссытся инъекций кода в постах.
Аноним 08/12/20 Втр 13:07:34 #199 №1875677 
Поднял ftp, чтобы всегда иметь доступ к базам данных для своих программ

А сейчас подумал, чем этот метод лучше, чем хранить файлы в обычном dropbox'e
Аноним 08/12/20 Втр 13:43:32 #200 №1875694 
>>1875677
Поднял на VPS?
Аноним 08/12/20 Втр 13:58:17 #201 №1875708 
>>1875694
> VPS
True
Аноним 08/12/20 Втр 14:18:40 #202 №1875721 
>>1875541
Я знаю что есть вакансии где требуется и где не требуется, я не об этом спрашиваю, я говорю о том, возможно ли без вышки стать программистом, а не макакой
Аноним 08/12/20 Втр 14:21:17 #203 №1875722 
>>1875721
да. Ещё вопросы?
Аноним 08/12/20 Втр 14:50:09 #204 №1875737 
>>1875677
Заведи себе rclone
Аноним 08/12/20 Втр 14:51:16 #205 №1875739 
>>1875721
У тебя лекции MIT по программной инженерии выложены в инет бог знает в каком году, если студентам-хирургам ещё нужен доступ в медвузы потому что там им надо на трупах людей тренироваться резать, то комп у тебя итак есть, надеюсь, а больше в вузе ничего нет к чему бы ты не мог получить доступ самообразовываясь, ну разве что вузовский преподаватель по сишке за отсос порекомендует тебя какой-нибудь 1с конторе в твоем городе или студенток в общаге ебать.
Аноним 08/12/20 Втр 16:10:59 #206 №1875844 
image.png
>>1875533
> Pylance
Не только питон
Аноним 08/12/20 Втр 17:23:48 #207 №1875927 
image.png
Привет, хочу переписать этот блок так-как он мне не нравится, как сделать чтобы было красиво и не стыдно самой смотреть?
Аноним 08/12/20 Втр 17:34:06 #208 №1875943 
>>1873283 (OP)
аноны, как в пандосе фильтровать по нескольким строкам?
Наприме есть датафрейм, один из столбцов имена, хочу оставить всех кроме наташ и оксанок.
Убрать только наташ или только окснок работает, но как сразу несколько таких фильтров сделать?
df.loc[df['Name'] != 'Oksanka']
Аноним 08/12/20 Втр 17:42:30 #209 №1875952 
>>1875844
Что?
Аноним 08/12/20 Втр 17:56:25 #210 №1875973 
>>1875943
Тупой вариант - создать
dury = list(Notash, Oksanka)
и потом
if (df.loc[df['Name'] in dury):
sosat()

Понятно что буде O(n)
Можно создать Set или Dict, тогда будет O(1) average, cj спайками
Аноним 08/12/20 Втр 18:20:03 #211 №1875996 
>>1875943
https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#query-python-versus-pandas-syntax-comparison
Аноним 08/12/20 Втр 20:40:43 #212 №1876099 
Вечер добрый, анонимус.
Назрел вопрос. У меня есть несколько словарей в списке. Мне нужно перебрать все значения в списке, но это да черт с ним. Я не понимаю, каким образом взять одно из значений списка (кличку животного) и заключить его в name.


manya = {'kind': 'cat', 'owner': 'dar'}
devil = {'kind': 'dog', 'owner': 'jhon'}
piggy = {'kind': 'pig', 'owner': 'sasha'}

pets = [manya, devil, piggy]

name = ?
for pet in pets:
print("That`s " + pet[name])
Аноним 08/12/20 Втр 20:41:43 #213 №1876102 
>>1875482
Вуз нужен, корочка не нужна
Аноним 08/12/20 Втр 20:43:29 #214 №1876103 
>>1875482
https://vas3k.ru/inside/39/
Аноним 08/12/20 Втр 21:22:28 #215 №1876129 
Можно как-нибудь посмотреть зависимости в pip до установки пакета?
Нужно выяснить какая последняя версия rasa поддерживает tensorflow==1.14 и я задолбался перекачивать релиз за релизом.
Аноним 08/12/20 Втр 21:33:18 #216 №1876138 
>>1876099
Что надо-то? Какие имена подразумеваются? Если manya, devil, piggy, то, чтобы с ними рабоатть, у тебя должны быть соответствующие ключи в словарях {'name': 'manya', 'kind': 'cat', 'owner': 'dar'} и так далее. А так, что-то не ясно, какая у тебя задача
Аноним 08/12/20 Втр 21:42:39 #217 №1876146 
>>1876099
Можешь для pets не список использовать, а словарь, типа
pets = {"manya": manya, "devil": devil, "piggy": piggy}
Аноним 08/12/20 Втр 22:02:56 #218 №1876166 
>>1876099
__name__ но ты долбаеб
Аноним 08/12/20 Втр 23:54:42 #219 №1876231 
Аноны, как же охуенно писать скрипты

3 часа работы - и вот уже с сайта выгружаю тысячи архивных фотографией
4 часа работы - и вот уже при нажатии кнопки в текст вставляется старорусское оскорбление (белебеня) или умная цитата
3 часа работы - и фотографии автоматически редактируются в облаке и сохраняются с красивой нумерацией по дате

как же охуенно, а ведь я раньше неделями дебажил макросы на X7, а тут всё то же самое, но ещё и с распознаванием откликов программы и даже распознаванием изображений, это просто охуенно
Аноним 08/12/20 Втр 23:58:26 #220 №1876233 
>>1875927
Через генератор next
Аноним 09/12/20 Срд 00:54:44 #221 №1876249 
>>1876099
можно вытащить из locals() / globals()
Аноним 09/12/20 Срд 01:02:38 #222 №1876254 
https://2ch.hk/pr/res/1876251.html
Аноним 09/12/20 Срд 10:41:42 #223 №1876368 
Так, аноний, у меня вопрос пизданутый. Нужно разжевать.
Запутался с циклом for и итераторами.

a = [1,2,3,4,5]
b = (1,2,3,4,5)
tulpa = (a,b)

for i in tulpa:
....i = i2
print (tulpa)

Вывод программы: ([1, 2, 3, 4, 5], (1, 2, 3, 4, 5))

То есть ничего не поменялось. Почему? Ну вроде как потому что for создаёт итератор объекта tulpa и работает уже с ним, а не с оригинальным объектом. После выхода из цикла итератор удаляется сборщиком мусора, а оригинальный tulpa не тронут. Такая реализация языка, узнали запомнили. Я же прав? Или нет?

Но это только начало. Давайте запишем умножение в виде краткой формы записи.

a = [1,2,3,4,5]
b = (1,2,3,4,5)
tulpa = (a,b)

for i in tulpa:
....i
= 2
print (tulpa)

вывод: ([1, 2, 3, 4, 5, 1, 2, 3, 4, 5], (1, 2, 3, 4, 5))
То есть в изменяемом объекте поменялось, а в неизменяемом нет. Какого хуя?

Третья часть. Давайте попытаемся применить списковый метод к i в for:

a = [1,2,3,4,5]
tulpa = (a,)

for i in tulpa:
....i.append(2)
print (tulpa)

вывод: ([1, 2, 3, 4, 5, 2],)

То есть работает. То есть здесь i ссылается на элементы кортежа tulpa.
Аноним 09/12/20 Срд 10:46:04 #224 №1876370 
>>1876368
Макаба ожидаемо насрала мне в штаны. Но вы поймёте. Проебались две звёздочки. В первом примере i = i x 2, а во втором i x= 2, где вместо х звёздочка.
Аноним 09/12/20 Срд 10:51:11 #225 №1876372 
https://repl.it/@Soyrates/111#main.py

Вот тут код в читаемом виде.
Аноним 09/12/20 Срд 12:34:33 #226 №1876441 
>>1876368
Это он тебе ещё ошибку не поднял ВМЕСТЕ с применением изменения, как, например, в
>>> r = (3, 4, 5, [11, 22])
>>> r[3] += [33, 44]
TypeError!
>>> r
(3, 4, 5, [11, 22, 33, 44])
Не помещай изменяемые объекты в неизменяемые. Насоздают парадоксов, а потом сами в них влипают.
Аноним 09/12/20 Срд 12:59:33 #227 №1876472 
Анон, выручай.
Есть следующая задача: распарсить текстовый файл c записями следующего формата :

RI.AP.W.1 {@ Rule I.AP.W.1: Maximum AP
}

#IFDEF SHRINK_COMPATIBILITY

RCO.D.5_rec {@ Rule CO.D.5_rec: Recommended Distance
}
RCO.D.6_rec {@ Rule CO.D.6_rec: Recommended Distance
}
#ENDIF

RULES

RCGO2.A.1 { @ Rule CGO2.A.1 : maximum poly > 1000
}

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

from pyparsing import

def pasreDrcFile(File):
drcString = File.read()
outputFile = open('parseddrc.txt', 'w')

keyName = Word(printables)
params = Word(alphanums + "#$%&'()
+,-./:;<=>?@[\]^_`|~" + " " + "\n")
paramsWord = Suppress('{') + params + Suppress('}')
completeNote = keyName + paramsWord
allNotes = OneOrMore(Group(completeNote))

outputFile.write(str(allNotes.searchString(drcString)))
a=allNotes.searchString(drcString)
print a, type(a)
return outputFile

drcFile = open('test.txt', 'r')
outputDRC = pasreDrcFile(drcFile)
drcFile.close()
outputDRC.close()


На выходе получается вот что:


[[['RI.AP.W.1', '@ Rule I.AP.W.1: Maximum AP \n']], [['RCO.D.5_rec', '@ Rule CO.D.5_rec: Recommended Distance \n '], ['RCO.D.6_rec', '@ Rule CO.D.6_rec: Recommended Distance \n ']], [['RCGO2.A.1', '@ Rule CGO2.A.1 : maximum poly > 1000 \n ']]]

То есть он формирует кучу лишних вложенных списков, например кладет запись в дополнительный список если она отделена от предыдущего мусором. Если эту переменную(класса pyparsing.ParseResults) преобразовать в список хоть в ручную через list(a), либо через функцию этой библиотеки .asList(), то получается еще больший пидец в первом случае, либо вид никак не меняется во втором.

Что я делаю не так? Может мне другими средствами нужно с этим работать? Никаких содержательных гайдов по pyparsing не нашел, только совсем простые примеры, а работать с описанием модуля напрямую не хватает опыта, вроде беру оттуда функции, а результата нужного не получаю.
Аноним 09/12/20 Срд 13:42:47 #228 №1876516 
>>1876472

import re

dictionary = {}

with open('file', 'r') as fp:
....for line in fp:
........if re.match("[0-9a-zA-Z_.]+\s+{", line):
........name = line.split(" ")[0]
........content = line.split("{")[1].replace("}", "").strip()
........dictionary[name] = content

print(dictionary)
print(dictionary['RI.AP.W.1']
Аноним 09/12/20 Срд 13:44:03 #229 №1876517 
>>1876516
>import re
>
>dictionary = {}
>
>with open('file', 'r') as fp:
>....for line in fp:
>........if re.match("[0-9a-zA-Z_.]+\s+{", line):
>............name = line.split(" ")[0]
>............content = line.split("{")[1].replace("}", "").strip()
>............dictionary[name] = content
>
>print(dictionary)
>print(dictionary['RI.AP.W.1']

hot-self-fix
Аноним 09/12/20 Срд 13:47:12 #230 №1876523 
>>1876441
Да это абстрактный пример. Можно было тульпу и кортежем сделать. Сути не меняет.
Аноним 09/12/20 Срд 13:50:30 #231 №1876527 
>>1876523
>Сути не меняет.
Суть в том, что помещение изменяемых объектов внутрь неизменяемых создаёт логический парадокс.
Аноним 09/12/20 Срд 13:51:36 #232 №1876529 
>>1876527
Ну я поместил в изменяемый и поведение моей программы не поменялось.
Аноним 09/12/20 Срд 14:26:08 #233 №1876574 
>>1876368
В первом примере вызывается метод https://docs.python.org/3/reference/datamodel.html#object.__mul__
Во втором - https://docs.python.org/3/reference/datamodel.html#object.__imul__
Действуют они по-разному, потому и результаты разные.
Аноним 09/12/20 Срд 14:38:40 #234 №1876585 
>>1876517
Спасибо, братик, почти получилось.
Учитывает только строку в которой была открывающая "{", а дело в том, что записи бывают многострочные размером с целую страницу:

RCGO2.A.1 { @ Rule CGO2.A.1 : maximum poly > 1000
maximum poly > 1000
maximum poly > 1000 maximum poly > 1000

}
Аноним 09/12/20 Срд 14:59:26 #235 №1876595 
>>1876585
Можно добавить таг, который будет проверять конец контента
import re

dictionary = {}

with open('file', 'r') as fp:
name = ""
content = ""
end_of_content = True
for line in fp:
if not end_of_content:
if '}' in line:
end_of_content = True
else:
dictionary[name] += f"\n{line}"
if re.match("[0-9a-zA-Z_.]+\s+{", line):
name = line.split(" ")[0]
content = line.split("{")[1].replace("}", "")
dictionary[name] = content
if '}' not in line:
end_of_content = False


print(dictionary)
Аноним 09/12/20 Срд 14:59:50 #236 №1876596 
>>1876595
>таг
флаг*
Аноним 09/12/20 Срд 15:02:44 #237 №1876599 
Делаю учебный проект, код взят с https://habr.com/ru/post/516236/ . Буду еще подгонять под себя.
Итого выглядит вот так: https://www.codepile.net/pile/LVmAGvVp

Собственно, начиная с 70 строчки выдает ошибку Unresolved reference "N". Помогите нубу, пожалуйста, как корректно определить эту N? выполняю в pycharm
Аноним 09/12/20 Срд 15:24:22 #238 №1876609 
>>1876595
Не робит. Наверное я не так отступы расставляю и функции пиздой идут.
Вот тут
dictionary[name] += f"\n{line}"
f не лишняя?
Аноним 09/12/20 Срд 15:39:45 #239 №1876625 
>>1876599
попробуй заменить N на cnt
Аноним 09/12/20 Срд 16:13:42 #240 №1876656 
>>1876625
А если cnt уже есть выше по коду?
Аноним 09/12/20 Срд 16:15:29 #241 №1876659 
>>1876656
то проблема исчезнет
Аноним 09/12/20 Срд 16:21:13 #242 №1876664 
Снимок экрана 2020-12-09 в 16.19.37.png
>>1876659
Там для построения нужны и N, и cnt если я все правильно понимаю Изначально вот так:

risk = np.zeros(N)
doh = np.zeros(N)
portf = np.zeros((N, cnt))

for n in range(N):
r = randPortf()

portf[n, :] = r
risk[n] = riskPortf(r)
doh[n] = dohPortf(r)

При замене всех N на cnt выходит пикрил то есть множество портфелей он не строит
Аноним 09/12/20 Срд 16:23:45 #243 №1876668 
>>1876664
ну хотя бы от ошибки избавились
Аноним 09/12/20 Срд 16:28:12 #244 №1876677 
>>1876668
> np.zeros
в общем, я не программист, я пока только учусь
я больше не советчик
глянь что делает функция np.zeros и может что придумаешь
https://pyprog.pro/array_creation/zeros.html#:~:text=%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F%20zeros()%20%D0%B2%D0%BE%D0%B7%D0%B2%D1%80%D0%B0%D1%89%D0%B0%D0%B5%D1%82%20%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9,%D1%84%D0%BE%D1%80%D0%BC%D1%8B%20%D0%B8%20%D1%82%D0%B8%D0%BF%D0%B0%2C%20%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%BD%D1%83%D0%BB%D1%8F%D0%BC%D0%B8.&text=%D0%97%D0%B0%D0%B4%D0%B0%D0%B5%D1%82%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D1%8B%20%D0%BD%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D0%BE%D0%B3%D0%BE%20%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0%20%2D%20%D1%86%D0%B5%D0%BB%D0%BE%D0%B5,%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%8F%D0%B5%D1%82%20%D1%82%D0%B8%D0%BF%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%B2%D1%8B%D1%85%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0.
Аноним 09/12/20 Срд 16:36:05 #245 №1876686 
qxhs0o-rcl6u-c0vqelvxwhkn4.png
>>1876668 >>1876677
От ошибки избавились, это да. Нужно подумать, что поставить вместо N, чтобы он строил сразу множества значений risk и doh как на пикрил
Про np.zeros гляну, спасибо
Аноним 09/12/20 Срд 17:00:20 #246 №1876722 
Как можно "раскрыть" внешний список, если у меня список с данными лежит внутри другого бесполезного списка с одним этим элементом?
Аноним 09/12/20 Срд 17:06:30 #247 №1876733 
>>1876722
chain.from_iterable
Аноним 09/12/20 Срд 17:51:48 #248 №1876771 
>>1876733
Чел, ты мне сейчас столько анальной крови сберёг, ты даже не представляешь. Спасибо огромное.
Аноним 09/12/20 Срд 19:09:06 #249 №1876824 
>>1876609
>>1876585
Имя всегда идет с новой строки? И очень большой файл?
Если в память влазит без проблем, тогда проще классикой, бегунком. Читаешь файло со строки до первого { - вот тебе имя, переходишь в режим чтения данных внутри, и двигаешь каретку до закрывающего } - вот тебе данные, резет лупа и снова пошел.
Аноним 09/12/20 Срд 19:34:50 #250 №1876848 
>>1876733
>>1876722
А можно просто через звездочку chain(*iterebales)
Аноним 09/12/20 Срд 21:09:44 #251 №1876919 
>>1876609
>dictionary[name] += f"\n{line}"
>f не лишняя?
Нет, это укороченная версия format() метода, работает, вроде, начиная с версии 3.5 или 3.6, если младше, то вот так:
dictionary[name] += "\n{}".format(line)
Аноним 09/12/20 Срд 22:27:23 #252 №1876973 
Пагни, если сервис реквест тест не пасает спустя 3 минуты. Скажем из-за ошибки сервера, можно ли как-то ускорить окончание теста, чтобы он не ждал все это время? Как-то это регулируется? Грубо говоря снизить timeout до 1 минуты например.
Аноним 09/12/20 Срд 22:56:00 #253 №1876988 
>>1876973
А за сколько обычно отвечает? Минута на запрос это пиздец долго, мне кажется, если это не лонг пулинг какой нибудь
Аноним 10/12/20 Чтв 00:01:48 #254 №1877028 
>>1876973
Ничего не понял. Какой конкретно запрос висит?

Настроить таймаут, очевидно. А вот как, зависит от того, как ты запрос делаешь.
Аноним 10/12/20 Чтв 04:45:28 #255 №1877121 
>>1876988
Если сервер не висит, то отвечает за 5-10 секунд. Согласен, поэтому и хочу изменить.
>>1877028
Да обычный get reques на Сервер с хедерами и прочими параметрами.
Запрос в стиле: request = requests.get(“google.com”, headers=headers)
Аноним 10/12/20 Чтв 08:23:27 #256 №1877149 
>>1877121
Говорят неплохо бы почитать документацию и увидеть что метод get принимает именованный параметр timeout
Аноним 10/12/20 Чтв 10:21:58 #257 №1877160 
>>1876824
Да, всегда с новой строки. Файлы довольно большие, 550Кб вижу, это 10к строк. Бегунком не долго ли будет? Ждать несколько минут не вариант.
Аноним 10/12/20 Чтв 10:59:25 #258 №1877179 
Котаны, продолжаю обучение, надавно спрашивал про создание instancов класса, и мне ответили, что проще инстансы создавать в списке. Я так понял, что вообще если хранящая объект переменная не задана изначально, то объект лучше НУЖНО хранить в чем-то перебираемом-итерируемом типа словаря, списка?
Я не могу насоздавать себе переменных динамически типа:
def names(how_many):
for x in range(how_many):
string = f'Warrior{x} = Warrior()'
eval (string)
names(how_many)
ругается
Warrior0 = Warrior()
^
SyntaxError: invalid syntax
Только списки только хардкор?
И еще из задания от линуксоила- задавать принадлежность команде игрока сгенерированных "войнов" (первая или вторая команда) нужно случайным образом. Делаем класс героя на классе юнит:
class Hero(Unit):
def __init__(self,id= idcounter(),team = random.randint(1,5),level= 1):
Unit.__init__(self,id,team)
self.level = level
И при создании двух героев First = Hero(), Second = Hero() у них почему-то всегда будет одна команда, как будто рандом возвращает всегда одно значение. Если я делаю random в отдельной функции типа def randomteam(): return random.randint (1,5) и уже по умолчанию ставлю
class Hero(Unit):
def __init__(self,id= idcounter(),team = randomteam(),level= 1): то герои получают значение действительно случайное. Почему так?
И где мне лучше писать эту функцию? оно работает, если я пишу в коде просто сначала глобальные переменные типа ID, потом функцию рандома, потом классы. Если я пишу классы до того, как встречается функция, то классы выдают ошибку при попытке генерации объектов. Куда эти функции прячут прогеры? Они выносят их в другие файлы и подключают в начале импортами? Как тогда рационально выносить эти функции чтобы не раздувать main.py? Стоит ли для чего-то глобального выносить каждую функцию отдельно в файл и потом уже в финальном main.py подключать всё? (имю ввиду подключать последние используемые уже в main.py модули)

И вопрос на развитие- как реализуется игровая логика, например, стратежки, а именно расположение функций и переменных в коде- есть глобальная переменная с id объекта где она объявляется? Она загружается при загрузке карты или еще где-то? Есть вывод графики, интерфейса, управления и собственно карта и юниты, и юниты , как я понимаю ООП- они должны быть базовыми классами "Юнит" с параметрами принадлежности игроку, с дочерними классами типа "Пеший"-"Техника" и для "пехотинца" уже подкласс "Человек"-"Орк", чтобы, например, по разному определять урон других юнитов "по оркам +100", и вот действие выделения юнита- оно может быть прописано в GUI или его можно/нужно прописать методами для базового объекта "Юнит" (если выделение оверлап юнит при отпуске мышки сделать переменную выделение True) И это все проверяется игровыми циклами типа фреймов или тиков по 60-n раз в секунду?. Я раньше только Construct немного ковырял, поэтому то, что находится глубоко в движке для меня загадка.
Аноним 10/12/20 Чтв 11:17:11 #259 №1877185 
>>1877179
Блин, ты столько дохуя написал.
Про рандом - значения дефолтных аргументов определяются один раз, при объявлении функции, а не каждый раз при ее запуске.
Обойти можно так
def func(param=None):
if param is None:
param=generate()

Про геймдев - почитай https://gameprogrammingpatterns.com/
Аноним 10/12/20 Чтв 11:35:18 #260 №1877194 
В продолжение поста >>1877179
И вообще- я решал задания на Codewars, всё было нормально кроме специфичного задания с созданием генератора чисел Фибоначи для трибоначи, четыребоначи и т.д. -я просто спасовал через пару часов, т.к. делать это для меня 1) сложно. У меня была обычная школа и дома обычный батя, забиравший провод и говоривший идти погулять к наркоманам на улицу 2) не вижу практической пользы. Мне бы формошлепствовать научиться нормально. Я жмакнул "показать ответ" и увидел, что многое было решено специальными формулами для вычисления, или вообще запросом к OEIS. Как и в прошлых заданиях, где я делал громоздкие конструкции if-else, а лучшими ответами считались короткие записи в одну строку, которые выглядят как будто их писал обфускатор. Я понимаю ценность краткости- её, после получения определённого навыка, проще-быстрее читать. Может она даёт буст к скорости выполнения (сомневаюсь, ну разве что мы не пишем дрова для нвидии на С или базы ютуба, фейсбука и т.д.)? Я даже гуглу задал вопрос- зачем разработчики пишут так кратко? И вот одна статья, которая оставляет вопрос- https://dev.by/news/ctrl-c-razrabotchik. Собственно, вопрос- нужно ли усиленно изучать математику и олимпиадные задачи, если пока что нету навыков формошлепа. Да, для ума это полезно, и забрасывать такие задачи не попробова- моветон. Но, всё же, может позже будет рациональнее изучать нужную тебе ветку? Не думаю, что попаду в НИИ в свои 30 лет, или вообще куда-то на работу. Пистон изучаю скорее для себя и, возможно, для фриланса, потому что работа теряется. А для практики-заказчика- не так уж важна будет предельная скорость работы, оригинальность и краткость кода, так? Ну, по крайней мере, для мелких проектов-решений. Или это будет плохая привычка, и хром тормозит всё больше, скорее всего, потому что там сейчас собралась куча формошлепов?
Аноним 10/12/20 Чтв 11:35:58 #261 №1877195 
>>1877185
спасибо
Аноним 10/12/20 Чтв 14:03:06 #262 №1877250 
>>1877160
>Файлы довольно большие, 550Кб
Большие это 550Мб. Вот тут уже оптимизировать надо. Если меньше 100Мб, то проще считать в память. Если меньше 10Мб, то даже и думать не надо.

В принципе если формат простой, то можно после этого обычными регулярками разобрать, то есть регулярками ищешь имя + скобки. Они работают очень быстро. Правда это для простых случаев, если возможна история, что есть комментарии со скобками, или же скобки могут внутри строковых значений каких-нибудь, то уже придётся извращаться и делать парсер.
Аноним 10/12/20 Чтв 14:32:44 #263 №1877283 
Screenshot from 2020-12-10 14-28-52.png
>>1877250
>>1877160
>>1876472
Вот как пример
https://ideone.com/wg9Ata
Аноним 10/12/20 Чтв 14:36:35 #264 №1877287 
>>1877283
Не очень корректен для ситуаций, когда закрывающая скобочка где-то есть, но не в начале строки. Надо чуть переписать на самом деле, чтобы группа 'value' жрала всё, пока не напорется на правильную закрывающую скобку.

Но смысл в том, что в данном случае скорее всего достаточно обычных регулярок, просто надо использовать режим re.MULTILINE. Pyparser не нужен.
Аноним 10/12/20 Чтв 15:41:04 #265 №1877344 
Как возможно Jinja2 Template перевести обратно в объект XML или хотя бы Dict?
<receipt>
<header align='center'>{{ params[0] }} </header>
<company align='center'> {{ params[1] }} </company>
<inn align='center'> {{ params[2] }} </inn>
</receipt>
Есть такой вот шаблон, jinja2 высирает строку, а мне надо снова объект для парсинга
Аноним 10/12/20 Чтв 15:47:38 #266 №1877351 
>>1877344
сам нашел уже. Костыль в виде xml.etree.cElementTree.fromstring.
Заепца, чо
Аноним 10/12/20 Чтв 18:10:38 #267 №1877487 
>>1877351
Ты целых 6 минут гуглил?
Аноним 10/12/20 Чтв 18:22:06 #268 №1877490 
>>1877487
Да, смотрел может в других templators есть нормальный встроенный метод, но хуй. Костыли костылики
Аноним 10/12/20 Чтв 19:45:52 #269 №1877537 
>>1877149
Спасибо. Читану.
Аноним 10/12/20 Чтв 21:43:11 #270 №1877637 
>>1876129
Попробуй использовать файлы requirements, сделай файл requirements.txt с таким содержанием:

rasa
tensorflow==1.14

А потом набери, pip install -r requirements.txt, желательно в отдельном новом виртуальном окружении. По идее, pip сам должен раздуплить как и что ставить, чтобы результат соответствовал требованиям в файле.
Аноним 10/12/20 Чтв 22:19:01 #271 №1877686 
>>1876129
Вот тут можешь джейсончики попарсить
https://pypi.org/pypi/rasa/1.4.0/json
список версий взять тут https://pypi.org/pypi/rasa/json
Только учти что он requires python>=3.6, поэтому скорее всего у тебя питон древний и pip вынужден ставить 1.13 tf чтобы поставить сиротинушке с некропитоном хоть что-то
Аноним 11/12/20 Птн 01:49:24 #272 №1877795 
Я правильно понял, что асинхронность в питоне реализованна через эвент лупы операционной системы? В линухе epoll, например
А либа uvloop подменяет его на свой, который более эффективно менеджит корутины?
Аноним 11/12/20 Птн 07:49:56 #273 №1877862 
Только узнал, что jsonschema regex работает на своей волне и на самом деле не матчит полностью. Еботина какая-то.
Аноним 11/12/20 Птн 07:55:18 #274 №1877863 
Как с минимальными усилиями сделать фронт с парой виджетов для веб-приложений на фласке, если ты в рот ебал учить стак JS/CSS/HTML параллельно питону, не говоря уж о жсных библиотеках?
Аноним 11/12/20 Птн 11:07:54 #275 №1877908 
Посоны, а в какую сторону думать для того, чтобы понять частоту тонового сигнала входящего?

Есть такой код - https://pastebin.com/E8ssr397
Сгенерировал последовательность тоновых сигналов, записал. Как я могу (опираясь на свой кортеж) получить обратно буквы отдав последовательность тоновых сигналов?
Аноним 11/12/20 Птн 12:05:53 #276 №1877940 
Товарищи, подскажите как детектить битое изображение через opencv?
Аноним 11/12/20 Птн 12:08:25 #277 №1877942 
>>1877908
Если словарик не будет меняться, то я бы сделал обратную мапу еще
reverse_freq = {value: key for key, value in freq.items()}
Аноним 11/12/20 Птн 12:10:21 #278 №1877943 
>>1877942
Да нет, не в этом вопрос. Если я скрипту отдам wav файл с последовательностью тоновых сигналов, как скрипт научить понимать частоту каждого? Сопоставить-то нет проблем. Вот в какую сторону думать.
Аноним 11/12/20 Птн 12:14:10 #279 №1877945 
>>1877943
Вангую, что придется нарезать на куски по паузам и измерять частоту в каком-то numpy или подобной хуйне.
Аноним 11/12/20 Птн 12:38:36 #280 №1877960 
>>1877943
А что представляет из себя файл? Просто набор звуков одинаковой длинны без пауз? Найди какую-нибудь либу, которая показывает частоту и добавь это в массив попутно удаляя последовательные дупликаты
Аноним 11/12/20 Птн 12:41:11 #281 №1877961 
2.mp4
>>1877960
Аноним 11/12/20 Птн 12:42:02 #282 №1877963 
>>1877961
Сначала маркер, потом сообщение. Различия в длительности каждого тона.
Аноним 11/12/20 Птн 13:04:19 #283 №1877981 
Ребята, писал в реверс тему, напишу на всякий случай и сюда, тк не особо шарю в пайтоне.
Решаю ctf
Есть такой вот лог файл: https://hastebin.com/nuxunofumu
Из него вытащил само задание: https://hastebin.com/qikirofoli
Это простой python скрипт, который сам себя расшифровывает

НоооОО! Пароль нам неизвестен. Я насколько понял - пароль 3 символа UTF-8!!!!!! Те 100к в 3 степени вариантов? Это только брутом решать? На том же пайтоне скрипт написать?
Есть идея проверить utf-8 рендж у соли и прочих base64 строк чтоб на основе этой гадости генерить варинаты под брут пароля. Но это низкобальное задание, вряд ли там настолько все сложно..
Аноним 11/12/20 Птн 14:00:48 #284 №1878043 
>>1877981
Не работают твои ссылки.
Аноним 11/12/20 Птн 14:13:28 #285 №1878060 
>>1878043
Спасибо, исправил!
https://justpaste.me/ngK8
https://justpaste.me/ngMO
Аноним 11/12/20 Птн 14:18:59 #286 №1878064 
>>1878043
или ссылки на более удобный интерфейс:
https://ghostbin.co/paste/73dey
https://ghostbin.co/paste/oczmz
Аноним 11/12/20 Птн 14:34:35 #287 №1878081 
>>1877981
>>1878060
Достаточно начать с аски.
https://ideone.com/dj6b3F
Аноним 11/12/20 Птн 15:57:51 #288 №1878137 
OS Linux, в локалях CP1251 принял

newtext = (b'\xCF\xD0\xC8\xC2\xC5\xD2')
print(chardet.detect(newtext))

выводит KOI8-R.

Суть в том, что если печатаю из системы у меня текст нормально определяется принтером и он печатает символы в верной кодировке, из IDE получается хуйня. Не понимаю в чем дело.
Аноним 11/12/20 Птн 16:21:21 #289 №1878150 
>>1878081
огромное спасибо!!!! а то у меня совсем крыша поехала с этим юникодом
Аноним 11/12/20 Птн 16:29:26 #290 №1878154 
Ок, нубский вопрос: как сделать чтобы функция вызывалась через определённое время? Есть что-то проще трединга?
Аноним 11/12/20 Птн 16:35:40 #291 №1878157 
1.webm
Аноним 11/12/20 Птн 16:49:32 #292 №1878179 
>>1878154
Выполнялась один раз или периодично?
Аноним 11/12/20 Птн 18:39:02 #293 №1878254 
>>1878179
Периодически. Скажем n раз через m секунд.
Как вообще такие штуки делаются?
Аноним 11/12/20 Птн 18:47:16 #294 №1878261 
>>1878254
Просто никак не делаются. Обычно через эвент луп или треды.
Аноним 11/12/20 Птн 18:53:32 #295 №1878274 
image.png
Аноним 11/12/20 Птн 18:54:38 #296 №1878276 
>>1878254
https://github.com/dbader/schedule
Аноним 11/12/20 Птн 18:58:37 #297 №1878283 
>>1878276
Пиздато, я теперь автощитпостер.
Аноним 11/12/20 Птн 19:00:26 #298 №1878284 
>>1878276
Какая-то игрушка для детей.
Если есть тяжелые или блокирующие задачи, то всё посыпется.
Аноним 11/12/20 Птн 19:10:25 #299 №1878292 
>>1878284
Документацию не читай - сразу отвечай
https://schedule.readthedocs.io/en/stable/faq.html#how-to-execute-jobs-in-parallel
Аноним 11/12/20 Птн 19:13:25 #300 №1878298 
>>1878276
Точно, можно ведь посмотреть в сторону готовых планировщиков
Аноним 11/12/20 Птн 19:26:46 #301 №1878308 
>>1878292
Ну такое.
Аноним 11/12/20 Птн 23:18:33 #302 №1878480 
>>1878308
> Pyk
Аноним 12/12/20 Суб 00:07:24 #303 №1878508 
>>1873283 (OP)
есть задача: в папке лежат файлы с названиями:
a1.jpg, a2.jpg, a3.jpg, b1.jpg, b2.jpg, b3.jpg, b4.jpg. Программа выбирает в элемент массива список с именами a1.jpg, a2.jpg, a3.jpg, после окончания - создает второй лист в массив с именами b1.jpg, b2.jpg, b3.jpg, b4.jpg
Вопрос, как такое реализовать?
Аноним 12/12/20 Суб 00:22:05 #304 №1878518 
>>1878508
https://ideone.com/ghpug4
Аноним 12/12/20 Суб 01:33:16 #305 №1878561 
image.png
>>1878518
Чуть порядок поменял и рассыпалось
Аноним 12/12/20 Суб 01:37:26 #306 №1878562 
>>1878561
Очевидно, новые группы создаются, когда меняется кей.
Можешь сортировать, хотя при глоббинге будет уже сортировано вроде.
Аноним 12/12/20 Суб 01:52:17 #307 №1878565 
Вот так в любом порядке, но это какая-то уродская конструкция, всё время забываю как оно.
https://ideone.com/X92isi
Аноним 12/12/20 Суб 02:01:53 #308 №1878569 
>>1878565
благодарю
Аноним 12/12/20 Суб 18:50:11 #309 №1878828 
Не совсем понимаю, где в джанге хранить бизнес-логику. Например, я пишу API, и мне нужна функция, которая принимает географические координаты, потом обрабатывает их и возвращает другие координаты. Где мне эту функцию разместить?
Аноним 12/12/20 Суб 19:23:38 #310 №1878853 
>>1878828
Делаешь отдельный файл с логикой и вызываешь из контроллера
Аноним 12/12/20 Суб 19:32:53 #311 №1878860 
>>1878853
Это то, что обычно service называется?
Аноним 12/12/20 Суб 19:39:02 #312 №1878865 
>>1878860
Нет, сервис обычно подразумевает отдельный инстанс приложения
Аноним 12/12/20 Суб 19:48:45 #313 №1878874 
Тут часто задают вопросы и они остаются без ответа. За сколько рублей вы готовы отвечать на вопросы новичка?
Аноним 12/12/20 Суб 20:07:04 #314 №1878884 
Разбираюсь с индийскими pytest тестами. Ну черт с ним половина хотя ты работает. Поставили задачу создать тест сюты для определенных релизов. Например, в релиз А включить эти тесты, в релиз Б - вот те. А в релиз С включить все теста.
Как это сделать грамотнее всего? Через маркёры собирать новый тест файл для каждого релиза? Или через импорты. Тогда импортов будет много. Ещё проблема что там есть сервис тесты, а есть Юай где запускается браузер. Для таких тестов создавать отдельный тест файл?
Аноним 12/12/20 Суб 20:33:42 #315 №1878896 
>>1878874
Меньше мильйона не предлагать.
Аноним 12/12/20 Суб 20:44:24 #316 №1878905 
image.png
>>1873283 (OP)
я делаю программу, которая будет создавать слайдшоу из изображений и музыки, но проблема в том, что мне надо сделать как-то чтобы изображения менялись с такой скорости, пока не закончится видео (длина видео = длине музыки), но они меняются быстро, и получается, что последнее изображение так и висит до конца видео..
пробовал играться с частотой кадров, но это ни к чему не приводило
Аноним 12/12/20 Суб 22:02:29 #317 №1878954 
>>1878896
ясно.
Для всех, кроме москолудов предложение остаётся открытым. Я готов платить анонам, а не дроволомам с пустошного скил фэктори
Аноним 12/12/20 Суб 23:07:56 #318 №1879010 
>>1877637
Я уже руками нашёл, но идея интересная, спасибо. Возьму на вооружение.
Аноним 12/12/20 Суб 23:25:19 #319 №1879021 
>>1878828
https://www.youtube.com/watch?v=HpL6ymFEuu4
Аноним 13/12/20 Вск 08:55:22 #320 №1879159 
Внезапно придумал себе идею для пет проекта (с целью вката на роботу)
Короче сервис-обертка над яндекс маркетом (потенциально не только над ним). Пользователь выбирает услугу/магазин/что-то с большим кол-вом отзывов. Сервис парсит комментарии и с помощью машин лернинга пытается сделать вывод - какое примерно кол-во отзывов могло быть написано ботами/работниками магазина. Чисто лингвистическим анализом, всякие повторяющиеся паттерны в текстах и прочая залупа из этой области.
В качестве вротенда вью, бек джанга, как мл присобачить, пока не знаю.

Че думаете? оценит ли потенциальный даватель зряплаты мои потуги?
Аноним 13/12/20 Вск 09:38:28 #321 №1879171 
>>1879159
звучит круто и применимо (ток на ЯД есть блямба "проверенный покупатель", но даже такие покупатели могут быть ангажированными)

можешь на комментарии в ютубе расширить и вычислять ботов
Аноним 13/12/20 Вск 10:52:03 #322 №1879186 
>>1879159
Ага, не забудь подключить pytorch,tensorflow,мочу,говно,аллаха.
Ох уж эти однострочные машиннообучатели
Аноним 13/12/20 Вск 16:33:22 #323 №1879356 
>>1879186
Если это можно сделать без машиннообучателя, значит будет без него. Это просто, что первое пришло в голову. У меня пока мало познаний в ёба-алгоритмах, 3 курса шараги все-таки.
Говорю же, идея совершенно спонтанно родилась - смотрел какого-то обзорщика на утубе и он такой говорит "бля, не верю отзывам с высокими оценками, всегда все куплено!"
Аноним 13/12/20 Вск 19:43:26 #324 №1879493 
image.png
>>1873283 (OP)
срочно, двач, дедлайн горит///
я закончил писать скрипт, билдю её в .exe через пакет pyinstaller, но после запуска .exe файла, выдается такая ошибка, с чем это может быть связано?
python 3.7
Аноним 13/12/20 Вск 19:57:52 #325 №1879506 
>>1879493
Пчел...
https://www.google.com/search?q=moviepy.audio.fx.all%27+has+no+attribute+%27audio_fadein%27&oq=moviepy.audio.fx.all+has+&aqs=chrome.1.69i57j0i22i30.28999j0j4&client=ms-android-oneplus-rvo3&sourceid=chrome-mobile&ie=UTF-8
Аноним 13/12/20 Вск 20:25:31 #326 №1879553 
>>1879506
чел ты..
я бы не писал сюда, если бы не гуглил,, я уже столько сайтов перешёл, столько способов перепробовал
Аноним 13/12/20 Вск 20:35:41 #327 №1879557 
>>1879493
> python
> windows
> билд в exe
А вы знаете толк в извращениях
Аноним 13/12/20 Вск 20:58:47 #328 №1879570 
>>1879557
> билд в exe
В чём проблема? Как конечный пользователь должен запускать программу?
Аноним 13/12/20 Вск 21:15:46 #329 №1879580 
>>1879570
Наверное потому что питон не лучший выбор для этого.
Аноним 13/12/20 Вск 21:19:44 #330 №1879583 
>>1879356
Обмануть АИ с помобщью АИ легко. Твой анналоиз так же не будет вызывать доверия. Плюс всегда будет понимание что у тебя так же могут купить "анализ" как купили отзывы.
Аноним 13/12/20 Вск 21:52:18 #331 №1879608 
>>1873283 (OP)
Как в Пистоне в датаклассе тайпингом обозначить поле, которое не обязательно? То есть при создании датакласса его может и не быть и это нормально

В тайпскрипте я бы написал:
someField: number,
someUselessField?: string
Аноним 13/12/20 Вск 22:00:41 #332 №1879616 
>>1879608
Optional
Аноним 13/12/20 Вск 22:20:44 #333 №1879643 
>>1879608
Так нельзя, можно лишь сделать Optional() - возвращает value или None. Шортханд для Union[T, None]
Аноним 14/12/20 Пнд 02:24:21 #334 №1879945 
А у вас есть способ выполнить функцию лишь когда его вызывают второй и более раз чтоб по-красивому?
Аноним 14/12/20 Пнд 04:18:36 #335 №1879976 
Не знаю прилично ли такое просить но не мог бы кто-то накатать такую функцию? Не могу осилить, курил за гаражами вместо геометрии с математикой.

Есть точка в центре экрана, есть вторая рандомная в любом месте экрана, нужно построить вектор и на определенном расстоянии вычислить третью точку. То есть на вход подается зеленая и синяя точки + расстояние, на выходе получается красная.
Аноним 14/12/20 Пнд 04:19:05 #336 №1879977 
>>1879976

Пикча отвалилась
Аноним 14/12/20 Пнд 04:20:03 #337 №1879978 
hospade.jpg
>>1879976
Аноним 14/12/20 Пнд 09:42:23 #338 №1880039 
>>1879976
Квадрат гипотенузы гугли
Аноним 14/12/20 Пнд 09:58:22 #339 №1880046 
>>1879945
https://onlinegdb.com/QnnqlIbJ0
Аноним 14/12/20 Пнд 10:07:34 #340 №1880051 
16079088046420.jpg
>>1879976
> и на определенном расстоянии вычислить третью точку
Если у нас не задано направление, то эта красная может находится на любой совершенно позиции на твоём заданном расстоянии, то есть, на окружности с радиусом, равным твоему расстоянию. Разберись для начала с задачей.
На рисунке у тебя они на одной. Прямой. Это тоже внезапное условие или нет?
Аноним 14/12/20 Пнд 10:20:23 #341 №1880059 
>>1879945
По-красивому не умею, держи говнокод https://ideone.com/MoADWq
Аноним 14/12/20 Пнд 10:27:34 #342 №1880063 
>>1880051
И с такими тупыми д₽ачерами я сижу на одной доске

дебс, перечитай условие
Аноним 14/12/20 Пнд 10:42:03 #343 №1880071 
>>1879945
>>1880059
Вот так вроде получше будет https://pastebin.com/c9VL0ZWH
Аноним 14/12/20 Пнд 11:33:34 #344 №1880094 
здаров, двачеры
отвлеку вас от питонячих проблем и задам вопрос (но сначала подводка)
Короче слушал я радио-т недавно, и Бобук, один из ведущих (и человек, к которому в целом у меня доверительное отношение в плане профф области) сказал, что, если ты не делаешь свои пет проекты в свободное время после работы, то ты не считаешься нормальным программистом и программистом вообще
отсюда вопрос: какие у вас пет проекты? и когда вы находите на них время? при условии, что рабочий день (ну лично у меня) никак не нормирован и может занимать от 10 до 16 часов работы в день
Аноним 14/12/20 Пнд 11:39:25 #345 №1880102 
>>1880094
Pet-project'ы для белых людей, у которых рабочий день 4 часа, им платят в 5 раз больше, чем должны и 6 часов в день они на тваттере проводят.
Ты - негр. Куда ты к белым людям лезешь?
Аноним 14/12/20 Пнд 11:57:09 #346 №1880113 
>>1880063
Так условие писал деградант какой-то
> нужно построить вектор и на определенном расстоянии вычислить третью точку
Вектор от чего к чему? Почему это именно вектор, а не прямая? Это важно для задачи? Вычислить точку? Может, координаты вычислить, малолетний дэбил? И на определённом расстоянии от чего?
Короче, либо пиши нормальное условие, либо пиздуй в начальную школу учиться выражать свои мысли.
Аноним 14/12/20 Пнд 12:30:38 #347 №1880131 
>>1880102
а чего, такие белые люди есть? я к ним хочу
Аноним 14/12/20 Пнд 13:00:27 #348 №1880163 
Как называются "магические методы" нормальным языком? А это эти "магические методы" звучит не уважаемо, полюбас есть какое-то около книжное название
Аноним 14/12/20 Пнд 13:17:31 #349 №1880172 
>>1880163
В англоязычных источниках называют dunder методы, от __. Вряд ли есть нормальный переводной вариант.
Аноним 14/12/20 Пнд 13:21:41 #350 №1880173 
>>1880131
Все хотят
Аноним 14/12/20 Пнд 13:22:31 #351 №1880174 
>>1880163
ВОЛШЕБНАЯ ФУНКЦИЯ!
Аноним 14/12/20 Пнд 13:24:15 #352 №1880175 
>>1880163
https://docs.python.org/3/glossary.html#term-special-method
Аноним 14/12/20 Пнд 13:27:03 #353 №1880177 
>>1880113
Пчел, если сложно понять, то знамени для себя слово Виктор словом направление. Хорош Донбасс бомбить
Аноним 14/12/20 Пнд 13:50:10 #354 №1880193 
>>1880163
> Как называются "магические методы" нормальным языком?
Астральные способы.
Аноним 14/12/20 Пнд 15:08:31 #355 №1880232 
>>1873614
Внешний вид в любом случае будет говно говна. Частично может спасти бутстрап но это не точно .
Аноним 14/12/20 Пнд 15:12:22 #356 №1880233 
>>1875470
Запуш в гит, перестанет быть красным. Ставь Линукс пока не поздно, иначе ебаться с виндой будешь больше чем с кодингом.
Аноним 14/12/20 Пнд 15:19:34 #357 №1880239 
>>1880233
>Запуш в гит
в гитхаб
>быстрофикс
Аноним 14/12/20 Пнд 17:32:07 #358 №1880361 
скажите, если я хочу соблюдать все лицензии на что обращать внимание, я даже не знаю могу ли я постгрес использовать или джанго, в каждый продукт нужно залезать и узнавать свободно ли он распространяется??
Аноним 14/12/20 Пнд 18:32:29 #359 №1880423 
Антоши, в треде по математике никто не ответил, хочу здесь поинтересоваться. Задача написать сайт с генерацией примеров по вышмату, нужен алгоритм генерации примеров, что можно найти по этой теме, пока 0 информации, как искать критерии правильности примеров, как составлять и т.д, крч как составители учебников это делают, особенно если примеров в книге 300 штук
Аноним 14/12/20 Пнд 18:58:49 #360 №1880439 
>>1873283 (OP)
Челы, нужна книга по истории языка пайтона, для пополнения библиографического списка, есть ли такие? Просто хоть че-то вставить, наобум писать книгу не хочу, вдруг проверят.
Аноним 14/12/20 Пнд 19:22:46 #361 №1880469 
>>1880423
Студенты
Аноним 14/12/20 Пнд 19:56:39 #362 №1880510 
>>1880439
Дружище, как ты вообще этот тред нашел?
Аноним 14/12/20 Пнд 20:00:38 #363 №1880516 
>>1880510
Що, по тегу.
Аноним 14/12/20 Пнд 20:04:29 #364 №1880523 
>>1880516
Ты пока свою пасту писал не д думал, что можно просто загуглить?
Аноним 14/12/20 Пнд 20:06:06 #365 №1880527 
>>1880523
Так я и гуглил, даже в вике чекнул ссылки.
Аноним 14/12/20 Пнд 20:59:51 #366 №1880580 
изображение.png
>>1880361
Создатели обычно такое пишут на своих сайтах, и в статье на Википедии такие моменты указываются. Чтобы знать наверняка, вот в опенсорсных продуктах прям лежит такой файл LICENSE, там все указанно, продукт распространяется вместе с этим файлом. Если проект лежит на гитхабе, то можно прямо там и посмотреть этот файл, без скачивания всего проекта, можно просто найти файл LICENSE и жмякнуть по нему, а можно на специальною кнопку нажать.Или вот если что-нибудь устанавливаешь, там бывает вылазит окошко, где надо согласится с условиями использования, чтобы продолжить, там и указываются эти условия.
Вот, например, файл LICENSE джанги:
https://github.com/django/django/blob/master/LICENSE
Аноним 14/12/20 Пнд 21:06:18 #367 №1880583 
1607969146071.jpg
На ютубе есть нормальные курсы/лекции по python'у? Кого посоветовать можете?
Аноним 14/12/20 Пнд 21:09:34 #368 №1880584 
>>1880583
> На ютубе есть нормальные курсы/лекции по python'у?
Нет.
/thread
Аноним 14/12/20 Пнд 21:26:50 #369 №1880597 
>>1880583
питон ваще изичный писать на нем сплошное удовольствие
советую прочитать книгу
A Byte of Python
там всего 100стр
Аноним 14/12/20 Пнд 22:56:02 #370 №1880688 
7556b2de3a254ee7a64f29b7a05574fb.jpg
>>1880597
>писать на нем сплошное удовольствие
Аноним 14/12/20 Пнд 23:00:17 #371 №1880695 
meet-the-hackerman-2-dian-sasmika.jpg
А поч питон так популярен у девопсеров?
Аноним 14/12/20 Пнд 23:08:19 #372 №1880706 
ch.mkv
Аноним 14/12/20 Пнд 23:20:17 #373 №1880716 
>>1880695
Легко писать скрипты и автоматизацию, тот же ансибл на питоне, соответственно плагины писать нужно на питоне.
Аноним 14/12/20 Пнд 23:25:45 #374 №1880721 
У вас есть списко кат для тренировки основных алгоритмов и для алгоритмов вообще, чтобы выучить какие есть и тд.
Аноним 14/12/20 Пнд 23:26:31 #375 №1880722 
>>1880423
> крч как составители учебников это делают, особенно если примеров в книге 300 штук
Ну как бы специалисты в конкретном предмете учебники составляют. Люди десятилетиями наукой и образованием занимаются, примеры накапливаются.

А кто ты такой? Для которого всё "вышмат". Тебе по дифференциальной геометрии примеры нужны, по уравнениям в частных производных, по алгебре выссказываний или может ещё по чему-нибудь? Или всё вместе одновременно?
Аноним 14/12/20 Пнд 23:27:29 #376 №1880724 
>>1880721
Достаточно доказать теорему Сосницкого на собесе.
Аноним 14/12/20 Пнд 23:33:47 #377 №1880730 
>>1880716
90% доменов на винде. А ансибл это про линукс.
Аноним 14/12/20 Пнд 23:34:33 #378 №1880732 
>>1880730
Питон тоже про линукс.
Аноним 14/12/20 Пнд 23:40:09 #379 №1880737 
>>1880724
Я серьезно даже не для собеса а чисто для себя, прост каты на основные алгоритмы чтобы посидеть поразбираться ну и чтобы знать что есть такие алги.
Аноним 14/12/20 Пнд 23:52:25 #380 №1880751 
>>1880737
Для этого ничего тренировать не нужно, а нужно читать книгу с теорией. Потом уже увидишь применения.
Аноним 15/12/20 Втр 00:10:40 #381 №1880766 
>>1880732
.Net тоже под линуксом работает.
Аноним 15/12/20 Втр 00:19:38 #382 №1880773 
>>1880751
Долго, жить то когда?
Аноним 15/12/20 Втр 00:42:57 #383 №1880782 
>>1880046
>>1880059
>>1880071
смарите до чего сам додумался:
try:
flag
except NameError:
flag = None
return
меня черти в аду за такое ебать будут?
Аноним 15/12/20 Втр 00:42:59 #384 №1880783 
>>1880773
Вкатываешься за полгода? Или за 30 дней?
Аноним 15/12/20 Втр 03:34:26 #385 №1880863 
>>1880782
Использовать глобальные переменные для таких целей очень дурной тон.

В питоне функция это объект. Объект имеет переменные = атрибуты, лучше их использовать для этих целей. Python-way всё обернуть в декоратор.

Пример декоратора, который пропускает первый вызов и потом делает последующие:
https://ideone.com/6OWqfM

Не нужно менять код функции, нет проблемы использовать подход для нескольких функций.
Аноним 15/12/20 Втр 03:39:15 #386 №1880866 
>>1880863
Альтернативный вариант, не добавлять атрибут, а завести отдельный глобальный словарь (либо хранить его в атрибутах функции-декоратора), где ты считаешь, сколько раз функцию вызвал. Декоратор будет регистрировать функцию в словаре и при каждом вызове увеличивать соответствующий счётчик.

Так в чём-то лучше, поскольку ты не меняешь атрибуты функции, функция уже совсем никак не может узнать, что ты её оборачиваешь, и ты можешь центральным образом мониторить, какие функции ты вызывал, а какие нет.
Аноним 15/12/20 Втр 03:59:31 #387 №1880871 
>>1880751
Мне как-то кинул книгу по алгоритмам, я начал читать, и знатно прихуел, и даже не то что читать я листать заебался. Там даже не код, а псевдокод, и даже не как примеры, а вообще все подряд, и еще при том что книга переводная. Ну полистал и бросил. И почему то все советуют ее, мб это троллинг такой как с боку но пику, хз.
Аноним 15/12/20 Втр 09:12:42 #388 №1880940 
Пора бы мне уже свои хэлло ворлд и говнокалькуляторы заворачивать в красивые оболочки. Анонче, посоветуйте туй (на худой конец гуй, но тогда хотя бы максимально универсальный, что бы и для десктопа, а не только для мобилы). Спасибо.
Аноним 15/12/20 Втр 10:39:14 #389 №1880955 
>>1880783
Я хочу за пол года вкатиться. Что делать?
Аноним 15/12/20 Втр 10:48:29 #390 №1880961 
>>1880955
Катись с горки.
Аноним 15/12/20 Втр 13:04:29 #391 №1881016 
>>1880094
В общем согласен, с этим товарищем. Очень странно на собесах наблюдать людей, с 5+ годами опыта, которые рассказывает про то, как классно они решали задачи на работе, при этом, на гитхабе у них лежат лабы из универа, максимум. И всё это ещё более странно выглядит, когда знаешь, что сам пилишь пет проекты и тебе это интересно, коллеги твои пилят их и узнают много нового, изучают технологии.
Аноним 15/12/20 Втр 13:07:19 #392 №1881018 
>>1880871
Low-IQ долбоебушка
Алгоритмы не привязаны к конкретному языку, Big O применимо к любом языку программирования.
Ты никогда не вкатишься, забей.
Аноним 15/12/20 Втр 13:09:17 #393 №1881019 
>>1881016
>при этом, на гитхабе у них лежат лабы из универа, максимум
А что у крутых пацанов лежит?

> когда знаешь, что сам пилишь пет проекты и тебе это интересно, коллеги твои пилят их и узнают много нового, изучают технологии.
И нахуя очередной бложик выкладывать в паблик? Щупанье технологий может быть и в рамках тривиальной задачи.
Аноним 15/12/20 Втр 13:43:10 #394 №1881042 
>>1881019
>А что у крутых пацанов лежит?
Чтобы далеко не ходить, можно у самого бобука и посмотреть https://github.com/bobuk
Аноним 15/12/20 Втр 13:43:16 #395 №1881044 
https://github.com/Ezhvsalate/zookeeper_dump_scripts

Анон я не понимаю. вот выполнил я
$ pip install пакет-нейм
дальше если пытаюсь выполнить
$ пакет-нейм действие-нейм
я получаю
пакент-нейм: command not found

ЧЯДНТ?
Аноним 15/12/20 Втр 13:45:09 #396 №1881048 
>>1881044
PATH?
Аноним 15/12/20 Втр 13:49:41 #397 №1881051 
>>1881048
помогло, спасибо
Аноним 15/12/20 Втр 14:11:37 #398 №1881067 
>>1881042
https://github.com/bobuk/addmeto.cc
Реально, очередной бложик, и он этим гордится?
Аноним 15/12/20 Втр 16:12:07 #399 №1881121 
>>1881019
> А что у крутых пацанов лежит?
Ролл-идей-тред лежит не так далеко, попробуй там.

> И нахуя очередной бложик выкладывать в паблик?
Сделай не очередной бложик. Сделай фреймворк для создания кроссплатформенных ботов, или зайди в идей тред и там выбери что интересное. Задач тысячи, старых либ, которым нужна поддержка, тоже тысячи, но вместо этого анон "не знает что делать" и только бложики пилить может.

> Щупанье технологий может быть и в рамках тривиальной задачи.
Да? Ну вот работаешь ты на галере, юзаете для сбора логов/метрик/визуализациий внутренний продукт <Залупа2000>, приходишь на собес и как тебе помогут знания внутренней хуни, если ты тот же Promtail/Loki/Prometheus/Grafana в глаз никогда не видел и только "читал що такое есть, да", а попробовать то и негде. Тру стори с недавнего собеса. И да, с этими технологиями я познакомился в пет проекте, как и с Sentry, к примеру, потом было приятно о них на собесе сказать и применить в работе.
Аноним 15/12/20 Втр 16:27:40 #400 №1881153 
>>1881121
>Ролл-идей-тред лежит не так далеко, попробуй там.
Там в основном алгоритмы, а не щупанье новых технологий, да и спиздить к себе проект перетерев гитового автора дело 5 минут.

>Задач тысячи, старых либ, которым нужна поддержка, тоже тысячи, но вместо этого анон "не знает что делать" и только бложики пилить может.
Ковыряние в легаси говне это "пощупать новые технологии", это ковыряние в легаси говне

>Да? Ну вот работаешь ты на галере, юзаете для сбора логов/метрик/визуализациий внутренний продукт <Залупа2000>, приходишь на собес и как тебе помогут знания внутренней хуни, если ты тот же Promtail/Loki/Prometheus/Grafana в глаз никогда не видел и только "читал що такое есть, да", а попробовать то и негде.
Да, для этого пет проекты и делаю. Только вот смысла их выкладывать в паблик не вижу, это никак не приумножает твою ценность как кодера, быстрее опрос по самой технологии сделать.

Да и вообще к гиту, как к показателю мастерства отношусь плохо, если там только говно для щупанья. Плюс уже выше говорил про пиздинг
https://stackoverflow.com/questions/750172/how-to-change-the-author-and-committer-name-and-e-mail-of-multiple-commits-in-gi

И про ценность при найме
https://habr.com/ru/post/350912/
https://www.benfrederickson.com/github-wont-help-with-hiring/
Аноним 15/12/20 Втр 16:35:44 #401 №1881161 
Кто сечет за конфиг для логгера

[handler_dev]
args=('%(logdir)s/dev_emulator.log', 'w+')
logging.config.fileConfig(p, defaults={'logdir': os.getenv('LOG_PATH')})

Пытается писать в /dev_emulator а не $PATH/dev_emulator.log
Аноним 15/12/20 Втр 17:32:45 #402 №1881229 
>>1881153
> спиздить к себе проект
> пиздинг
Вся суть.

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

> пет проекты и делаю
> Только вот смысла их выкладывать в паблик не вижу
> У меня все есть, только я вам это не покажу
Напомнило шуточку про "сосед говорит, что 8 раз за ночь может".

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

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


Аноним 15/12/20 Втр 18:00:12 #403 №1881264 
>>1881229
>Вся суть.
Но доказать, что это твой код, если это не контрибьютинг в попенсорс ты не сможешь.

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

>Напомнило шуточку про "сосед говорит, что 8 раз за ночь может".
While he has written a ton of code at his work in the last year, he hasn't posted anything that can be viewed publicly: he has no public commits, he hasn't created any repositories of his own and he has an insignificant number of followers. Despite all that he's still the best developer I've ever had the pleasure of working with.

>Твой проект\инструмент не обязаны быть популярными, не в счет твои звезды и подписчики, но если тебе есть что показать - огромный плюс.
А статья выше говорит обратное, в подавляющем большинстве случаев его не смотрят.
И пока не предложишь способ определения является ли код действительно кодом кандидата, который он писал когда-то это не имеет смысл.
Аноним 15/12/20 Втр 20:18:42 #404 №1881383 
>>1881161
А os.getenv в каком контексте выполняется?
Аноним 15/12/20 Втр 20:50:49 #405 №1881404 
>>1881383
переназначение переменных, типо Development среда дохуя
Аноним 15/12/20 Втр 22:44:51 #406 №1881499 
>>1873283 (OP)
ньюфаг в питоне, знаю только часть основ по видосикам на тыртубе, пришел сюда за информацией и ахуел: книг в шапке много и хуй знает с чего начать, глаза разбегаются. добрый анон, помоги, напиши название книги которая для этого подойдет больше всего и на русском.
Аноним 15/12/20 Втр 23:12:40 #407 №1881529 
>>1881499
>>1880597
Аноним 15/12/20 Втр 23:23:46 #408 №1881540 
>>1881529
>September 29, 2013
Anon pls, там количество изменения со 2-го на 3-ий коммунити нахуй разорвало в клочья, до такой степени тчо некоторые пердуны все еще на 2-ке сидят, ибо НИСОГЛАСНЫ.
Та книга вообще про 3 не знает
Аноним 15/12/20 Втр 23:45:51 #409 №1881568 
Screenshot69.png
Screenshot70.png
>>1881540
Ебать ты дебилушка. Совсем умом тронулся?
Аноним 15/12/20 Втр 23:52:25 #410 №1881573 
>>1881568
Оригинал от 2013, всего одно издания, согласно офф-page
КТо там дописывал руссКОЮ верСею - хуй знает
Аноним 15/12/20 Втр 23:58:33 #411 №1881576 
Screenshot71.png
>>1881573
> КТо там дописывал руссКОЮ верСею - хуй знает
Дебилушка всё не унимался.
Аноним 16/12/20 Срд 09:26:14 #412 №1881687 
>>1880961
ну помоги мне вкатиться в неё
Аноним 16/12/20 Срд 11:46:02 #413 №1881763 
сап питонобоги!
Я сам тупица, помогите плз, по биологии надо вытащить несколько столбцов из txt файла в строку. И записать их потом в другой файл.
https://dumpz.org/aCAadC743RQg получается вытащить столбец, но не знаю, как его перевести его в одну строку.
Аноним 16/12/20 Срд 11:59:14 #414 №1881764 
>>1881529
спасибо тебе, добрый анон
Аноним 16/12/20 Срд 12:23:07 #415 №1881779 
>>1880597
Присоединяюсь к благодарности, читаю с удовольствием
Аноним 16/12/20 Срд 14:47:12 #416 №1881905 
>>1881763
Там должны быть разделители же. Вот по ним отделяй один столбец от другого
Потом:
arr = []
for i in столбец:
arr.append(i)
string = 'твой разделитель'.join(arr)
Аноним 16/12/20 Срд 14:47:49 #417 №1881906 
>>1881905
макака съел табуляцию, забыл
Аноним 16/12/20 Срд 18:10:36 #418 №1882046 
Здорова пацаны.
Есть стринга, состоящая из столбцов чисел
20 154
51 543
85 351
и т.д.

и есть словарь, где каждому первому числу столбца соответствует стринга
id_to_word = {
20: 'raz',
51: 'dva',
84: 'tri'}

Задача в том, чтобы первое число каждого столбца поменять по словарю на какое-то слово, а потом выблевать такие же столбцы, например:
raz 154
dva 543
tri 85
и т.д.

Как это сделать? Не понимаю. При этом надо учитывать, что во втором столбце могут быть числа как в первом столбце, их переводить не надо. Числа в первом столбце не по порядку и не подряд.
Аноним 16/12/20 Срд 18:51:30 #419 №1882065 
>>1882046
https://ideone.com/hXPKF2
Аноним 16/12/20 Срд 18:55:23 #420 №1882069 
Как с помощью регулярных выражений выделить этот фрагмент ссылки?

/2020/12/15/11392/
Аноним 16/12/20 Срд 19:41:31 #421 №1882090 
>>1882069
.+(/2020/12/15/11392/).+
Аноним 16/12/20 Срд 19:45:28 #422 №1882094 
>>1882065
Охуеть! Как это работает, анончик?
Аноним 16/12/20 Срд 19:58:02 #423 №1882096 
>>1882094
Ищем ключи в начале строчек и заменяем на их же значения.
Аноним 16/12/20 Срд 22:19:59 #424 №1882201 
>>1882065
охуеть. Что означает fr перед строкой?
Аноним 16/12/20 Срд 22:49:57 #425 №1882232 
le3iimRqBr1qe91wdo1500.jpg
>>1882201
Это f-строка и r-строка одновременно.
Аноним 16/12/20 Срд 23:14:13 #426 №1882244 
>>1882232
Жестко, я думал всегда, что r строка контрит f строку
Аноним 16/12/20 Срд 23:19:22 #427 №1882250 
>>1882244
Схуя ли? r просто выключает слэш, на котором всякие спецсимволы и последовательности сидят.
Аноним 17/12/20 Чтв 00:01:36 #428 №1882265 
Кто-нибудь работал с Pony Orm? Совершенно непонятно, как там сделать юнион. Что-то вроде result_query = query1.union(query2)
Аноним 17/12/20 Чтв 02:51:56 #429 №1882343 
1487157599137736202.jpg
Никак не получается побороть циклы над списками.
Вот анон, в чем разница между
for i in spisok
for i in range(spisok)
for i in range(0, len(spisok))?

Я так понимаю, в первом случае я итерирую по объектам внутри списка. А во втором и третьем случае?

А если мне надо совершить в этом цикле какое-то действие с объектом списка (например добавить его в другой список), то это будет
spisok2.append(i) или
spisok2.append(spisok)?
Аноним 17/12/20 Чтв 02:54:59 #430 №1882345 
1608162898542.jpeg
>>1882343
> spisok2.append(spisok)?
Макаба съела квадратные скобки, на всякий случай вместе со скрином.
spisok2.append(spisok)
Аноним 17/12/20 Чтв 03:06:32 #431 №1882358 
>>1873283 (OP)
Ебанные self-ы блять!

Ко-ко-ко, мы хотим чтоб в методах были видны все аргументы, по этому селфы это круто. Но блять, нихуя непонятно как этот селф ПЕРЕДАЁТСЯ блять, сука, любой инстантс класса всегда чтоль методу себя передаёт в первый аргумент??? А если у меня там числа нахуй нужные?? Где посмотреть исходники этого говна!
Аноним 17/12/20 Чтв 04:54:44 #432 №1882390 
>>1882358
self это просто соглашение, что бы вот так называть первый аргумент. В принципе его можно нарушить и назвать как-нибудь иначе, например this. Хотя настоятельно религия требует self.

Когда ты объявляешь метод класса, создаётся какая-то функция, которая даже не метод, а просто функция. Когда ты вызываешь метод объекта, тогда в эту функцию первым параметром передаётся сам объект, а остальными прочие параметры, с которыми ты этот метод вызвал. Вот и всё, никакой магии.
Аноним 17/12/20 Чтв 05:06:13 #433 №1882393 
>>1882358
Всё просто же. Смотри https://ideone.com/Oyhu19
Строки 11 и 12 это одно и то же, и вот чтобы не носить этот self постоянно за собой, он передается автоматически.
Аноним 17/12/20 Чтв 05:43:04 #434 №1882396 
>>1882090
Спасибо анончек.
Но как быть если цифры рандомные?
Аноним 17/12/20 Чтв 06:09:50 #435 №1882399 
>>1882396
Во, нашел
/(\d+)
Аноним 17/12/20 Чтв 09:43:15 #436 №1882448 
>>1882343
>>1882345
Ты нахуй приносишь примеры, которые в питоне выдадут исключения???
Ты хоть чуть чуть проверяй, иначе не вижу смысла тебе что-то рассказывать
Аноним 17/12/20 Чтв 10:17:26 #437 №1882460 
>>1882448
Проверять чего, придурок?
Аноним 17/12/20 Чтв 10:35:36 #438 №1882467 
7srnBNltOKY.jpg
Нужен сейчас мне сделать бота для Telegram'а (магазин для сайта).
Посоветуйте нужные статьи, видео и прочие ништяки пожалуйста.
Заранее благодарю!
Аноним 17/12/20 Чтв 10:38:23 #439 №1882470 
>>1882467
>бота для Telegram'а
>магазин для сайта
Как это вообще связано?
Аноним 17/12/20 Чтв 10:39:45 #440 №1882471 
>>1882470
Это как у всего раньше был твитор, так теперь должен быть телеграм, чтобы как у людей.
Аноним 17/12/20 Чтв 10:39:56 #441 №1882472 
>>1882470
Ну там не всё продавец будет оформлять лично с их слов. Хочет автоматизировать.
Аноним 17/12/20 Чтв 10:45:29 #442 №1882475 
>>1882467
>>1882472
Жду-недождусь когда твою поделку буду экплойтить на баги и заказы
Аноним 17/12/20 Чтв 10:47:42 #443 №1882477 
>>1882475
https://www.youtube.com/watch?v=akGyNsKEEy8
Аноним 17/12/20 Чтв 10:51:58 #444 №1882480 
>>1882471
>Это как у всего раньше был твитор, так теперь должен быть телеграм, чтобы как у людей.
Пиздос. Все пишут ботов для телеграма, но реально их вообще кто-нибудь использует? Или это зумерские поделки, которые отваливаются еще на стадии идеи?
Аноним 17/12/20 Чтв 10:56:46 #445 №1882483 
всё....mp4
>>1882480
>Или это зумерские поделки
Доа и раньше никто ботов для irc не делал.
Аноним 17/12/20 Чтв 11:02:53 #446 №1882487 
>>1882483
Пиздец ты сравнил.
Современный юзер ту ирку и настроить не сможет небось, сложна.
Аноним 17/12/20 Чтв 11:12:17 #447 №1882494 
пацаны
у меня есть два модуля: один не поддерживает питон 3.8, но поддерживает 3.7. Другой не поддерживает питон 3.7, но поддерживает 3.8
втф и что делать? на 3.6 пилить проект? это ж старье
Аноним 17/12/20 Чтв 11:15:13 #448 №1882496 
>>1882494
Переписать модуль?
Аноним 17/12/20 Чтв 11:18:47 #449 №1882501 
image.png
Привет, аноны. Вопрос к работягам: можете описать свой рабочий день? Пришли на работу, и что? Сразу начинаете по-стахановски закрывать таски? Сколько часов у вас получается работать продуктивно?
Аноним 17/12/20 Чтв 11:19:57 #450 №1882504 
>>1882496
модули не мои, нахуя мне их переписывать?
Аноним 17/12/20 Чтв 11:25:55 #451 №1882511 
16067599966060.png
>>1882504
Дабы они работали? Можно просто дублировать для работы.
Аноним 17/12/20 Чтв 11:26:52 #452 №1882512 
>>1882511
ну как-то радикальненько
неужели нет другого способа?
Аноним 17/12/20 Чтв 12:05:42 #453 №1882547 
>>1882494
>втф и что делать? на 3.6 пилить проект? это ж старье
А что тебе нужно из 3.8?
Аноним 17/12/20 Чтв 12:11:52 #454 №1882551 
>>1882501
Встаю, умываюсь, включаю пеку. Открываю трекер, читаю рабочую почту и смотрю сообщения об ошибках, прилетевшие с тестового стенда. Делаю чай/кофе. Могу сходить посрать. Вот сейчас релиз приближается, сижу собираю релизную ветку. Открываю включаю музыку и поехал. В перерывах читаю сосач, хабр, профильные каналы в телеге. Иногда переключаюсь на свои проекты.
Продуктивно 4-6 часов. Иногда, когда приходится больше 8 часов работать, то и продуктивность 8 и более часов.
Аноним 17/12/20 Чтв 12:19:57 #455 №1882558 
>>1882501
Я на ремоуте сейчас
Встаю в 10, пишу в чатик, что собираюсь делать сегодня, до часу-двух пинаю хуи. Работаю до 4-5 часов и снова пинаю хуи
Аноним 17/12/20 Чтв 12:30:09 #456 №1882562 
>>1882551
Пидр
Аноним 17/12/20 Чтв 13:10:03 #457 №1882598 
>>1882551
>>1882558

Спасибо за ответ.
Аноним 17/12/20 Чтв 13:23:36 #458 №1882615 
>>1882501
А сам как?
Аноним 17/12/20 Чтв 14:00:22 #459 №1882672 
>>1882393
>>1882390
Спасибо за ответы, я понимаю что такое self и то, что это условное название я тоже понимаю. Суть моих вопросов к невидимости передачи аргумента, и опасение за то, что в будущем такого будет ещё больше.
Аноним 17/12/20 Чтв 14:09:43 #460 №1882687 
>>1873283 (OP)
Как мне сделать вызов print()? У меня нет принтера.
Аноним 17/12/20 Чтв 14:10:17 #461 №1882688 
>>1882460
for i in range(spisok)
Аноним 17/12/20 Чтв 14:11:08 #462 №1882689 
>>1882615
>
>
С 9(10) до 12 бездельничаю, обедаю и начинаю работать(удалённо), 4 часа работаю, час гуляю, потом ещё 3-4 часа работаю. В остальное время читаю книги или сайты всякие.
Аноним 17/12/20 Чтв 14:11:55 #463 №1882691 
>>1882343
>for i in range(spisok)
И тут ты открываешь документацию и смотришь, какой тип первого параметра принимает метод range().
Аноним 17/12/20 Чтв 14:38:41 #464 №1882718 
>>1882688
И что ты там проверять собрался?
Аноним 17/12/20 Чтв 15:10:07 #465 №1882749 
>>1882718
Иди читай генераторынахуй
Аноним 17/12/20 Чтв 15:55:21 #466 №1882778 
Зяблы, я JSер и знаю синтаксис питона. Нужен чат-бот или нейросетка или что-то еще для моей простой задачи, которую я опишу и вы меня наверное уже направите. У меня SPA, которое записывает по voice activation аудио файлы (формата mka), которые отправляются по вебсокету на мой бэк express, где конвертируются в ogg и отправляются в Яндекс на распознование. Возвращается строка с текстом. Теперь, мне надо понять че надо-то. Запросов там не много, максимум 10 штук (например : хочу банковскую карту => и мне должен прийти ответ, что ему нужна карта и все я редирект на нужную страницу). Собственно, как я понимаю, мне нужно обучать или переобучать модель под свои хотелки. DS я не планирую становиться, но задачу надо попытаться выполнить, да и тем более интересно. Соотвественно мне нужен гайд/видео или еще что-то, как сделать такую простую нейросеть и самое главное, как ее обучать или переобучать на русском языке. Может быть мне достаточно будет какого-то чатбота или dialoglow? Трудностей я не боюсь
Аноним 17/12/20 Чтв 16:10:19 #467 №1882783 
1.JPG
Вот такая программа из учебника. Глава про ООП, классы.
Объясните пожалуйста, максимально доступным языком: при создании каждого экземпляра класса, параметру object передаётся значение, например "Бобик".
При запуске этой программы, кроме прочего, через метод talk на экран выводиться текст и значение параметра name, который, по непонятым мне причинам имеет значение параметра object.Как так? Ему же не передавали это знание! Как он его получил?
Аноним 17/12/20 Чтв 16:20:31 #468 №1882786 
>>1882783
удваиваю вопрос.
Гипотеза- он передаёт объект и пространство имён объекта присоединяется к методу? я вообще лох, лучше обоссыте.
Аноним 17/12/20 Чтв 16:22:28 #469 №1882788 
или при обращении к объекту класса сразу подразумевается пространство имён этого объекта.
Аноним 17/12/20 Чтв 16:25:53 #470 №1882792 
>>1882783
Есть класс Critter. У него есть конструктор класса. Конструктор описывается в методе __init__(), который может принимать значения аргументов. Конструктор - это метод, который всегда вызывается при создании экземпляра класса: crit1 = Critter("Бобик"). Конструктора может и не быть.
В твоем случае конструктор требует указать обязательный аргумент name, таким образом при создании экземпляра класса ты пишешь Critter("Бобик"), после чего конструктор примет "Бобик" за name и будет с ним работать внутри себя.
Видишь магическое слово self? Все методы внутри одного класса должны содержать первым аргументом слово self, чтобы общаться друг с другом и передавать друг другу переменные, перед которыми тоже должны стоять self.
В твоем конструкторе создается переменная self.name, на языке ООП это называется полем класса. При создании экземпляра класса (т.е. вызове метода конструктора) ей присваивается значение "Бобик". Поскольку метод talk() находится в том же классе Critter, отныне он способен работать с полем класса self.name, читать его значение или менять.
Поэтому, когда ты создашь экземпляр crit1, то можешь использовать для него метод класса talk(), который выведет "Меня зовут Бобик".
Аноним 17/12/20 Чтв 16:29:26 #471 №1882796 
>>1882749
И?
Аноним 17/12/20 Чтв 16:36:15 #472 №1882803 
>>1882343
Пчел, че ты как этот?
У тебя есть spisok = [0, 1, 2]
Это готовый список, ты можешь пройтись по нему итератором, поскольку списки (а еще кортежи, словари, множества и даже единичные строки) итерируются.
Поэтому for i in spisok пройдется по каждому значению списка: 0, 1, 2 - и что-то с ним сделает.
Функция range() принимает на вход число и возвращает "типа" список целых чисел от нуля до указанного числа.
С точки зрения итератора, range(2) - это то же самое, что [0, 1, 2].
Поэтому ты либо используешь for i in range(2), либо for i in spisok.
Не надо spisok пихать в range(), последний будет ругаться.
Аноним 17/12/20 Чтв 16:41:45 #473 №1882807 
>>1882792
Спасибо за развёрнутый ответ!
Перечитал несколько раз. Понял назначение self и дополнил представление о роли конструктора.
Единственное что осталось не понятным по этой теме:
роль параметра object, и почему он подсвечен как функция.
Аноним 17/12/20 Чтв 16:48:53 #474 №1882814 
>>1882783
>>1882792
>python
>OOP
извращенцы
Аноним 17/12/20 Чтв 16:57:31 #475 №1882822 
>>1882807
В скобках класса можно указать класс, от которого он будет наследоваться. Object - родительский класс Critter; последний наследуется от первого. Вот только в Пистоне все является объектом, поэтому указывать в скобках object не имеет никакого смысла, ньюфагов это только запутает, поскольку, если не указано иное, object по дефолту будет родителем любого класса. Удали его вместе со скобками и будет тебе счастье.
Аноним 17/12/20 Чтв 16:59:47 #476 №1882823 
>>1882822
Спасибо!
Ты понизил мой градус страданий над питоном!
Аноним 17/12/20 Чтв 17:00:40 #477 №1882824 
>>1882814
Python обильно используется для автоматизации тестирования. Без ООП в подобном проекте делать нехуй.
Аноним 17/12/20 Чтв 17:02:36 #478 №1882826 
>>1882823
Тебе нужно подрочить PyQt5, вся его суть строится на ООП. К концу написания своего первого рабочего десктопного приложения ты освоишь ООП.
Аноним 17/12/20 Чтв 17:08:02 #479 №1882829 
>>1882814
в пистоне самый классный ООП, чисто сокрытие данных, ведь наследия считай нет.
Аноним 17/12/20 Чтв 17:10:37 #480 №1882835 
>>1882829
Обозначение структуры для данных - не ООП, как бы.
Аноним 17/12/20 Чтв 17:11:33 #481 №1882836 
>>1882803
Ничего не понимаю. Я делал задачки на codingbat.com, и так среди них есть вот такая:
https://codingbat.com/prob/p119308

Правильный код под нее: https://ideone.com/Mfnkio
Почему здесь итерируется по рейнджу списка минус один? Что это вообще значит?
Аноним 17/12/20 Чтв 17:12:00 #482 №1882838 
>>1882829
>в пистоне самый классный ООП
Такое мог сказать только отбитый питонист. ООП в питоне - кусок говна.
>чисто сокрытие данных
Сокрытие, обеспечивающееся не нормальным модификатором доступа типа private, а ублюдочными андерскорами, реализация 10/10.
>наследия считай нет
Ебанько?
Аноним 17/12/20 Чтв 17:12:57 #483 №1882839 
>>1882835
Контракты можно через абстракные классы описывать
Аноним 17/12/20 Чтв 17:13:03 #484 №1882840 
>>1882836
Потому что len возвращает int?
Аноним 17/12/20 Чтв 17:16:25 #485 №1882844 
>>1882836
Тебе бы надо почитать базовую инфу по массивам данных и как они индексируются. Это общая информация comp sci, не конкретно питона.
Аноним 17/12/20 Чтв 17:17:25 #486 №1882845 
>>1882840
https://www.geeksforgeeks.org/iterate-over-a-list-in-python/ а почему вот тут вторым примером приводится итерация по списку через range?
>>1882844
Есть какой-нибудь хороший материал по этой теме? Русский/английский не важно.
Аноним 17/12/20 Чтв 17:19:18 #487 №1882847 
>>1882845
> Есть какой-нибудь хороший материал по этой теме? Русский/английский не важно.
Информатика?
Можно поискать на ЮТ иностранный курс Computer Science basics
Аноним 17/12/20 Чтв 17:25:24 #488 №1882848 
>>1882845
>почему вот тут вторым примером приводится итерация по списку через range?
Да не по списку, блять, а по ДЛИНЕ списка. Ты буквы читать умеешь?
length = len(list)
for i in range(length):
Аноним 17/12/20 Чтв 17:47:52 #489 №1882877 
>>1882343
for i in range(spisok) - хуйня какая-то
for i in range(0, len(spisok)) - 0 можно не писать, а так это стандартный способ итерации по индексам коллекции, хотя проще с enumerate.

Что вообще такое range?
range(начало, конец, шаг) возвращает итератор на массиве целых чисел от начала(включительно) до конца(не включаем) с заданным шагом(если не указывать, то будет 1)

Что это значит:
Получим все значения из итератора через list

list(range(5)) -> [0, 1, 2, 3, 4]
list(range(5, 11)) -> [5, 6, 7, 8, 9, 10]
list(range(5, 11, 3)) -> [5, 8]

Можно задать отрицательный шаг, но тогда начало и конец тоже нужно менять местами.

list(range(11, 5, -1)) -> [11, 10, 9, 8, 7, 6]
Аноним 17/12/20 Чтв 18:01:50 #490 №1882899 
Да вы ему не объянсите ничего, там нет понимания вообще.
Надо самостоятельно дрочить, пока на щелкнет это самое понимание.
Это же вообще начало начал.
Аноним 17/12/20 Чтв 19:06:48 #491 №1882960 
>>1882899
Двачую. Сегодня циклы с ренжем, завтра он придет: "А как работает if else?"
Аноним 17/12/20 Чтв 19:26:29 #492 №1882976 
>>1882358
>любой инстантс класса всегда чтоль методу себя передаёт в первый аргумент
Это так. Это и в C# и Java так же, просто происходит чуть менее явно
Аноним 17/12/20 Чтв 19:49:23 #493 №1882988 
Есть куча классов декорированных Dataclass'ом в которые я данные заворачиваю для type hint приемлимых. Как народ структурирует это все? Сейчас я просто вынес это в model.py и импортирую оттуда понадобности.
Аноним 17/12/20 Чтв 20:17:44 #494 №1883003 
1.JPG
Разбираю атрибут класса.

В книге написано: "Значение присваивается только ОДИН РАЗ, при ПЕРВОМ ОБЪЯВЛЕНИИ класса."

В этой программе, метод-конструктор __init__ при создании каждого объекта класса, повышает значение атрибута total на 1.
Мне кажется, что этот факт перечёркивает вышеупомянутое утверждение из книги.

В книге ошибка? Подскажите как это понимать.
Аноним 17/12/20 Чтв 20:29:59 #495 №1883012 
>>1883003
А, я знаю! Атрибут КЛАССА, именно класса, а если атрибутом объекта класса- это каждый раз при инициализации нового объекта.
Аноним 17/12/20 Чтв 20:31:21 #496 №1883015 
>>1883003
Ну так ты обьявил класс и стало 0, дальше делай что хочешь с ним.
Аноним 17/12/20 Чтв 20:37:12 #497 №1883019 
>>1883012
>>1883015
Спасибо. Доступно и понятно.
Аноним 17/12/20 Чтв 20:41:56 #498 №1883024 
>>1882672
Передача self вовсе не невидимая.

Ты обращаешься к методу как
my_obj.foo()
или
self.foo(), если изнутри объекта

Вот фактически эта первая часть и переезжает в виде первого параметра в foo

В принципе ты можешь даже явный вызов сделать. Если у тебя класс MyClass и метод foo
class MyClass:
____def foo(self):
________print('foo')

my_obj = MyClass()
ты можешь вместо my_obj.foo()
делать
MyClass.foo(my_obj)

Логика такая, что питон, когда видит запуск метода с точкой, лезет в объект, берёт его класс, вызывает функцию из класса, подставив первым тот самый объект.

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

Тот же JS/php/c++ более запутанные, потому что там this используется, который как бы неизвестно откуда берётся.
Аноним 17/12/20 Чтв 22:20:29 #499 №1883086 
Посоны, можно ли в Django в контроллере проверить как-нибудь то, что пользователь вошел или нет? Типа пользователь заходит на сайт, передается запрос с помощью маршрута в контроллер, а в контроллере можно проверить тип если пользователь уже зареган, то получить одну страницу и одни данные, ну а если не вошел, то другую страницу и другие данные? Я чёт пробовал проверять через if request.user, но что-то не работает особо. Мне кажется request подходит, если из формы данные получаешь.
Аноним 17/12/20 Чтв 22:36:57 #500 №1883097 
существуют ли на Ютубе годные каналы с гайдами по питону?
 Аноним 17/12/20 Чтв 23:02:13 #501 №1883111 
Котаны, перекат скоро. А зачем вообще нужно ООП? Какое практическое применение есть кроме моделирования в играх типа стратегий или пары похожих объектов? Нужны ли классы для того же Джанго? Зачем ООП может встретиться в работе сайта или бд?
Аноним 18/12/20 Птн 00:22:23 #502 №1883150 
>>1883111
Чтобы устроиться на работу.
Аноним 18/12/20 Птн 00:24:21 #503 №1883153 
>>1883111
Какую-то ты банальщину спрашиваешь.

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

Как иначе работать с кучей объектов одновременно?

Все эти принципы появились из чисто практических соображений.

Просто объект вообще выделяется очень много где, без этого никак. А уж в крудах, которые чаще всего делают на Джанго, ну совсем никак.

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

Чтобы это прочувствовать, нужно просто попробовать что-то большое написать без ООП и с ООП. В конце концов ты сам это ООП и переизобретёшь, если думать над кодом будешь.
Аноним 18/12/20 Птн 00:39:21 #504 №1883167 
image.png
Ну што, как проходит вкат?
Аноним 18/12/20 Птн 00:45:36 #505 №1883183 
>>1883167
Вкатил себе за щеку.
 Аноним 18/12/20 Птн 06:02:30 #506 №1883263 
>>1883153
Ну я чуть-чуть не представляю практики. Например есть бд для регистрирующихся людей на сайте. У пользователя есть выбор параметра пол и можно выбрать м или ж или боевой вертолёт и для боевого вертолёта будет создан необычный подкласс, которому выдача фильтрует только таких же людей из базы? Илл 50 прочих полов тоже своя сущность типа вертолёт заднеприводный, гирокоптер, субмарина с ракетами вода космос и тогда, возможно, мне понадобятся классы для взаимодействия между объектами по разному, чтобы не писать много if в регулярных выражениях? Я просто загуглил в чём смысл ООП или практическое применение, и вторая статья с критикой всех столпов- полиморфизма, потому что переносится всё равно очень много аргументов, наследуемость - в новый проект всё равно без редактора не потащишь, инеапсуляция- якобы прячет код от разработчика. Мне бы кто объяснил как дураку. Та же инеапсуляция- например обрезает пространство имён, нпследумость- для одного проекта будет работать и сэкономит время на код. Полиморфизм- ну это я наверное смешиваю его с наследуемостью, якобы для разных объектов можно использовать тот же код (вызов), если прописывать специфические функции, так? Скорее всего я просто сам ещё не лез во что-то крупнее скриптов, задачек для школьников или чат-бота просто, нужно глянуть примеры... Пойду.
Аноним 18/12/20 Птн 08:06:32 #507 №1883279 
>>1883167
Для мухосрани какой нибудь норм.
Аноним 18/12/20 Птн 08:07:46 #508 №1883280 
>>1883153
Тогда и словарь это ООП.
Аноним 18/12/20 Птн 12:37:32 #509 №1883376 
>>1882778
бамп
Аноним 18/12/20 Птн 12:48:00 #510 №1883384 
def generate_val(): return randint(0, 10)

Как лучше оформлять необязательный аргумент в классе ниже и почему?

class A:
--def __init__(self, a=None):
----self.a = a or self.generate_val()


или

class A:
--def __init__(self, a=self.generate_val()):
----self.a = a
Аноним 18/12/20 Птн 12:49:00 #511 №1883387 
>>1883384
Бля, там у методов self стоит по ошибки, игнорируйте.
Аноним 18/12/20 Птн 13:27:16 #512 №1883411 
>>1883167
В 51 он только в свой манямирок вкатится.
Аноним 18/12/20 Птн 14:03:47 #513 №1883433 
>>1883384
Во втором случае generate_val() будет вызван только один раз, во время старта скрипта, а не создания экземпляра класса. В первом случае будет вызываться каждый раз, когда создаётся объект этого класса.

Скорее всего ожидается поведение такое, какое должно быть в случае (1).

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

Однако в случае как здесь в каких-то извращённых случаях может требоваться поведение как в (2). Хотя в этом случае оформлять всё равно лучше иначе, например инициилизировать какую-нибудь переменную уровня класса таким образом, а внутри конструктора уже копировать её значение.
Аноним 18/12/20 Птн 14:10:46 #514 №1883442 
ПЕРЕКАТ
>>1883441 (OP)
>>1883441 (OP)
>>1883441 (OP)
>>1883441 (OP)
>>1883441 (OP)
Аноним 19/12/20 Суб 10:04:21 #515 №1884376 
test
comments powered by Disqus

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