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

Ответить в тред Ответить в тред
Check this out!
Питон тред №123 /python/ Аноним 04/07/21 Вск 00:16:37 20872171
python-by-sommt[...].jpeg 147Кб, 1080x749
1080x749
match.png 31Кб, 917x287
917x287
Тред, посвящённый языку программирования Питон, #123

Предыдущий: >>2072473 (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
Аноним 04/07/21 Вск 09:11:53 20872982
>>2087164 →
>Потом останавливаюсь и понимаю что минуты 3 я думал о том как буду работать с ее кодом, заржал в голос.
Ну ты конечно тормоз, че тут думать инсталишь лабу и готово.
Аноним 04/07/21 Вск 09:46:46 20873123
Аноний, помоги, в нубовопросе.
Как переписать генератор в обычный цикл?
a += [{ } for b, c, d in zip(b0, c0, d0) ]

Как-то так?
for for b, c, d in zip(b0, c0, d0):
__a += [{ }]?

Словарь из генератора в список добавляется? Или я что-то путаю?
Аноним 04/07/21 Вск 11:25:36 20873634
>>2087164 →
Седня иду с подругой и думаю как создать функцию где на вход будет мой хуй, а возвращать она будет сосание.
>>2087174 →
Он странный, не так ли?
Аноним 04/07/21 Вск 12:52:58 20874015
Figure1.png 25Кб, 640x480
640x480
>>2087312

Аноны, кто-нибудь может пояснить как вытащить при помощи панды лаг автокорелляции выше significance level?

Ну на глазок тут можно накинуть около 750, начерновую сойдет, но может есть какой-то готовый инструмент.
Аноним 04/07/21 Вск 13:40:10 20874246
Аноним 04/07/21 Вск 13:40:28 20874257
>>2087312
>Как переписать генератор в обычный цикл?
>a += [{ } for b, c, d in zip(b0, c0, d0) ]
Объясни своими словами, что он вообще должен делать?
Аноним 04/07/21 Вск 13:50:03 20874308
>>2087425
Мне показалось, что это такой способ наплодить словарей по длине наименьшей из трех итераблей. Более очевидный подход будет корявее.
Аноним 04/07/21 Вск 14:03:22 20874349
>>2087430
А зачем тогда 3 переменных? У тебя зип возвращает кортеж.
Аноним 04/07/21 Вск 14:05:09 208743610
>>2087434
Это не у меня, лол. Ну, может кто-то не знает про _.
А может он просто упростил для примера.
Аноним 04/07/21 Вск 15:32:44 208750011
изображение.png 8Кб, 461x336
461x336
Как вы формируете данные, когда пишете crud приложения? Интересует связь с реляционными базами данных, например - есть необходимость вытащить кучу данных и вернуть json. Я могу написать запрос на 3 экрана, и вернуть сразу все нужные данные (в postgres есть всякие json_build_object). А могу сделать сводную таблицу, получить её в питон, и производить манипуляции с данными уже там, но это же кучи циклов/вложенных циклов и прочего groupby. А иногда нельзя сделать сводную таблицу, и приходится делать 2-3 запроса в одной транзакции, и только потом обрабатывать данные. В идее писать общий sql мне не нравятся то, с какими мучениями я потом сталкиваюсь, когда изменяется ТЗ каждый день. А в идее транзакции и обработки данных в python не нравится скорость. В моей проблеме мне как-то поможет ORM, если с postgres мы слезать не собираемся?
Аноним 04/07/21 Вск 15:40:50 208751012
>>2087500
Не ответ на твой вопрос, но что тебе на самом деле нужно, это иде с поддержкой sql. Изменять запросы под изменение задач очевидно, лучше, но не так удобно, поэтому ты и корчишься.
Аноним 04/07/21 Вск 15:43:41 208751413
>>2087500
На нетривиальных задачах орм жидко обосрется.
Аноним 04/07/21 Вск 17:25:54 208758914
>>2087514
Там нетривиальные запросы можно и на чистом sql написать, а orm для крудов оставить
Аноним 04/07/21 Вск 18:55:48 208767515
1374140694703.jpg 80Кб, 550x712
550x712
Как правильно итерировать по двумерной numpy матрице, если мне нужны строки одна за одной?
Аноним 04/07/21 Вск 21:31:03 208777016
Есть ли у пистона приоритизация выполнения в эвент лупе? Например, сначала идут корутины у которых явно await вызывается, а потом таски, call_soon и т.д.

Можно ли из коробки префоркнуть эвентлуп в отдельном процессе в который имеется возможность скидывать определенные таски, если известно, что они не юзают совместные ресурсы или нужно костылить свое решение?
Аноним 04/07/21 Вск 21:33:54 208777217
>>2087770
>Можно ли из коробки
>или нужно костылить свое
Ты уверен, что существуют только эти два варианта?
Аноним 04/07/21 Вск 21:37:27 208777318
>>2087772
Я имею ввиду есть ли что-то что можно за 10-20 минут собрать из готовых компонентов или нужно писать менеджмент IPC
Аноним 04/07/21 Вск 21:41:25 208777719
Аноним 04/07/21 Вск 21:41:33 208777820
>>2087773
Ты не ответил на вопрос.
Аноним 04/07/21 Вск 21:43:12 208778221
>>2087778
Я третий назвал, собрать из готовых компонентов за 10-20 минут. Или ты к слову "костылить" придраться хочешь?
Аноним 04/07/21 Вск 22:29:04 208781522
Кто питонист, тот ест кал
Аноним 04/07/21 Вск 22:33:44 208781623
>>2087815
И давно ты питонист?
Аноним 04/07/21 Вск 23:13:46 208784124
>>2087777
С самого начала были варианты из серии run_in_executor, где ты можешь как в отдельном треде, так и в отдельном процессе что-то запускать.

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

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

Задачу надо подробнее описывать, тогда можно будет какое-нибудь решение предлагать. В общем случае никак. В частных тысячи вариантов. Например, сделать задачу, которая обрабатывает другие задачи, и кормить её через PrimrityQueue, или как-то так она называется.
Аноним 05/07/21 Пнд 09:00:31 208795925
Во время прогона цикла вываливается ошибка
IndexError: index 0 is out of bounds for axis 0 with size 0
Можно как-то получить именно этот элемент, чтобы подебазить его? В логи его записать или что-то ещё?
Аноним 05/07/21 Пнд 10:17:05 208801526
>>2087959
>axis with size 0
Там нет никакого элемента же.
Аноним 05/07/21 Пнд 10:23:40 208801927
>>2087401
гуглил ли ты?
есть какое то
InfluxDB
или это не то?
Аноним 05/07/21 Пнд 14:22:55 208816328
Аноны, новичок в питтоне. Написал программку, скомпилировал ее в exe. Но чет забыл, что она завершиться и консоль тупо закроется. Так вот, как можно сделать завершение программы по нажатию на Enter?
Нашел вот такое решение:

код программы

k = ord(msvcrt.getch()) #считываем код клавиши
if k == 27: # если клавиша Esc
sys.exit() # завершаем программу

Но программа не закрывается. Что не так делаю?
Аноним 05/07/21 Пнд 14:24:48 208816429
>>2088163
>скомпилировал ее в exe
Как?
Аноним 05/07/21 Пнд 14:25:56 208816630
>>2088163
А не, заработало. В IDE не работало, а после компиляции все норм.
Аноним 05/07/21 Пнд 14:28:38 208816731
>>2088163
Да просто input() захуячь.
Аноним 05/07/21 Пнд 15:37:51 208820232
>>2088015
Спасибо, но какая-то херня.
s1 = array([31], dtype=int64)
>>>s1[0]
IndexError: index 0 is out of bounds for axis 0 with size 0
>>>s1.item(0)
IndexError: index 0 is out of bounds for axis 0 with size 0
Аноним 05/07/21 Пнд 15:55:45 208822033
>>2088202
Будьте добры чуть больше контекста. У меня не воспроизводится.
Аноним 05/07/21 Пнд 16:03:41 208822534
>>2088220
У меня есть двумерный массив.
При помощь np.where я получаю массив s1, где указаны позиции строк, удовлетворяющих условию.
Пытаюсь извлечь нужное значение - ошибка.
Пытаюсь сконевертировать массив в список и взять нужный элемент s1.tolist()[0] - то же ошибка.
list index out of range
Что за херня?
Аноним 05/07/21 Пнд 16:14:44 208822635
Вечер в хату, уважаемые.
Кто может на двачовом описать процесс взаимодействия Nginx + Flask app?
Аноним 05/07/21 Пнд 16:19:20 208822836
>>2088226
В ногинске пишешь proxy_pass 127.0.0.1:7654; #а лучше ::1:7654, потому что короче, но это если ипв6 включен
Запускаешь фласку на 7654 порту.
Всё.
Аноним 05/07/21 Пнд 16:22:32 208822937
>>2088225
Может быть условие where не срабатывает ни для одного значения в массиве и в результате ты получаешь пустой массив? Чел...
Аноним 05/07/21 Пнд 16:26:57 208823238
>>2088229
Я вручную дебажу
И вот из этого s1 = array([31], dtype=int64) я не могу 31 вычленить.
Аноним 05/07/21 Пнд 16:31:40 208823339
>>2088232
А откуда ты берешь int64?
Аноним 05/07/21 Пнд 16:33:24 208823440
image.png 5Кб, 285x120
285x120
Аноним 05/07/21 Пнд 16:46:36 208824241
>>2088233
Numpy такой формат выдаёт.
Аноним 05/07/21 Пнд 17:08:09 208825742
>>2088228
Да не, я о принципах работы. Типа от двачера Васи на Nginx пришел запрос в порт 7654 итд.
Аноним 05/07/21 Пнд 18:33:01 208830843
>>2088257
Двачер вася делает запрос на Nginx. Nginx делает запрос во внутренней сетке на приложение в зависимости от настроек. Все.
Аноним 05/07/21 Пнд 18:40:55 208832044
Взял легкий заказ на перевод 5к испанских слов с транскрипцией, частью речи + голосом если возможно.

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

Как так может быть. 2021 году, а таких вещей до сих пор нет.
Аноним 05/07/21 Пнд 18:44:39 208832745
>>2088320
Если бы все это было, то не было бы заказа для тебя.
Аноним 05/07/21 Пнд 18:48:58 208833246
>>2088320
Так заплати и сделай. Сам лошара, что не проверил.
Аноним 05/07/21 Пнд 20:26:52 208841247
>>2088320
Так парси в наглую.
Аноним 05/07/21 Пнд 20:40:40 208842348
>>2088412
Да я бы и спарсил в наглую, но сайтов нигде нормальных нет, есть PyDictionary, окей, там возьмем перевод, есть speechr_recognition, окей тут возьмем аудио, но где взять транскрипцию.
Аноним 05/07/21 Пнд 21:51:20 208848349
>>2088320
>5к испанских слов с транскрипцией
Качаешь словарь (книгу). Там есть и транскрипция и перевод и уточнение значения.
Аноним 05/07/21 Пнд 21:55:41 208849150
>>2088320
В плане голоса присмотрись к синтезатором речи от Яндекса (на нейронках). Дешево и оч качественно.
Аноним 05/07/21 Пнд 22:06:20 208849651
>>2088491
В последний раз там только английский, русский и турецкий были
мимо
Аноним 05/07/21 Пнд 22:16:59 208850652
Screenshot from[...].png 66Кб, 718x602
718x602
Питоногоспода, почему деструктор вызывается сам по себе?

https://ideone.com/YKyAW3

Если запускать код в idle, то этого не происходит.
Аноним 05/07/21 Пнд 22:21:02 208851053
>>2088506
Какой же я долбоеб. Вопрос снят.
Аноним 05/07/21 Пнд 22:22:21 208851254
>>2088506
Вызывается при сборке мусора при завершении скрипта. В интерактивном режиме ты какбе сидишь внутри выполняющегося скрипта, там ничего не уничтожается неявно.
Аноним 06/07/21 Втр 15:00:31 208890755
помогите с python'ом
есть функция, на входе она принимает объект X
есть также другая функция, которая принимает в себя объекты типа X и возвращает значение Y, того же типа что и X (значение Y определяется вторым аргументом функции, пусть будет Z)
я пытаюсь сделать так, чтобы при одинаковых X и разных Z составить список всех получившихся Y
все Z я засунул в список
получается так:
for Z in Z_list:
Y = func(X, Z)

собственно, в чем проблема:
после первого же Z, у меня дефолтное значение переменной X становится равным Y. то есть у меня получается что: после первого цикла Y = func(X, Z_list[0]), после второго Y = func(func(X, Z_list[0]), Z_list[1]) и тд.
почему так происходит и как это исправить??
Аноним 06/07/21 Втр 15:10:26 208891356
>>2088907
Ты где-то обосрался и носишь ссылки на объекты вместо создания новых или мутируешь изначальный объект.
По описанию не скажешь, надо смотреть код.
Аноним 06/07/21 Втр 15:28:20 208893757
>>2088907
Уже написали тебе.

Каким образом ты создаёшь объект Y, когда его возвращаешь?

Если у тебя код вида
def func(X, Z):
____Y = X
____Y.some_property = Z
____return Y

то ты в нём меняешь объект X, Y это ссылка на объект X, а не новый объект.

Тебе надо явно создавать новый объект и копировать в него нужные данные из X.
Аноним 06/07/21 Втр 15:33:35 208894358
Господа, мб знает кто прикольные легкие NoSQL базы,? Хочу что то такое же тупое как редис, просто ключ-значение, только что бы на диск складывались данные а не в оперативу. Пробовал MongoDB и DynamoDB еще, не то вообще.
Аноним 06/07/21 Втр 15:39:18 208894659
>>2088913
>>2088937
да, вся проблема была в ссылке, решил копирование. спасибо большое за ответы.
Аноним 06/07/21 Втр 15:49:20 208895260
Аноним 06/07/21 Втр 15:52:23 208895461
Аноним 06/07/21 Втр 15:57:12 208895662
Аноним 06/07/21 Втр 21:04:56 208920163
image.png 4Кб, 774x61
774x61
Пробую пересесть с pycharm на atom и при вводе команды происходит это. Если просто в cmd, команду написать, то же произойдет. В pycharm все нормально работает.
Аноним 06/07/21 Втр 21:20:37 208921664
>>2089201
Ты в пайчарме через виртуальное окружение запускал?
Аноним 06/07/21 Втр 22:41:30 208926265
Аноним 07/07/21 Срд 00:47:01 208934866
>>2089201
> с pycharm на atom
зачем?
Аноним 07/07/21 Срд 09:09:10 208943367
Ищу фреймворк, что-то типа менеджера задач с вебдыркой. Чтобы можно было запустить длинную задачу POST /task, а затем её статус можно было проверять GET /status. Идеально если она будет очереди разруливать.
Читаю пока про Celery, но как я понял ему нужен брокер сообщений, а мне бы по простому всё в памяти аппы подержать, без зависимостей.
Аноним 07/07/21 Срд 09:57:41 208944668
>>2089433
Проще лучше накати селери или rq.
Для них по сути то только редис один нужен.
Меньше времени потратишь.
Аноним 07/07/21 Срд 11:33:33 208949969
Как удалить несколько переменных?
Через запятую типа
del a, b, c ?
Или каждую отдельно надо удалять?
Аноним 07/07/21 Срд 11:45:43 208951670
>>2089499
Ты это мог в консольке набрать быстрее, чем на вопрос на двач напечать
Аноним 07/07/21 Срд 12:16:43 208955271
ScreenRecorderP[...].mp4 14675Кб, 1274x698, 00:00:48
1274x698
нихуя себе питончик разбушевался, вы только посомтрите на это!
Аноним 07/07/21 Срд 12:48:45 208956772
file-07-06-2021[...].png 6Кб, 1115x628
1115x628
привет питонистам ребятам плечистым. тащем то надо забирать значения RGB строго по диагонали, то бишь по всему скриншоту. сейчас это происходит как изображено на данной пикче

path = r'C:\Users\username\Downloads\filename.png'

im = Image.open(path.encode(), "r")

pix = im.load()
size = im.size
w, h = size[0], size[1]

color_space = [0]

for x, y in zip(range(w), range(h)):
if x % 10 == 0:
R = pix[x, y][0:-1][0]
G = pix[x, y][0:-1][1]
B = pix[x, y][0:-1][2]
RGB = R + G + B
if (color_space[-1] == 0) or (color_space[-1] != RGB):
color_space.append(RGB)

как это сделать красиво математически я не ведаю. т.е. чтобы линия уходила строго в противоположенный угол. принципиально менять ничего нельзя. с меня тонна нефти
Аноним 07/07/21 Срд 12:51:17 208956973
Screenshot35.png 33Кб, 674x417
674x417
Аноним 07/07/21 Срд 12:55:29 208957174
Что написать нюфагу после всевозможных парсеров для полнятия скила и наполнения гитхаба? Что-то идей совершенно нихуя нету.
Аноним 07/07/21 Срд 13:13:10 208960275
15009827789970.jpg 195Кб, 670x365
670x365
Опытный анон, подскажи, ошибка "IndexError: list index out of range" может быть внутренней ошибкой python'a/cython'a?
Вычисляю значение элемента внутри функции - ошибка.
Вычисляю то же самое за пределами функции - всё нормально.
Аноним 07/07/21 Срд 13:23:20 208960676
Аноним 07/07/21 Срд 13:23:59 208960777
>>2089602
Скорее ты обосрался.
Аноним 07/07/21 Срд 13:40:59 208961678
Аноним 07/07/21 Срд 13:45:15 208961779
Аноним 07/07/21 Срд 14:02:14 208962380
>>2089602
вангую у тебя внутри возвращается ебалда на типе листа в листе и тебе надо penis[0]
Аноним 07/07/21 Срд 14:11:02 208963081
image.png 39Кб, 246x1224
246x1224
>>2089567
Вот, пожалуйста, безупречный алгоритм, первая точка переходит в первую, последняя в последнюю.
Цикл по короткой грани считаю идеологически более правильным, потому что при цикле по длинной грани у некоторых точек будет одинаковая координата, так что получатся не точки, а полосочки.
Аноним 07/07/21 Срд 14:39:39 208965182
Анонимные программеры, пытаюсь добавить в существующий код возможность записывать лог в SQLITE. Программа запускается через модуль sched.

scheduler = sched.scheduler(time.time, time.sleep)
scheduler.enter(delay=6, priority=1, action=set_webhook, argument=(mssg,))
t = threading.Thread(target=scheduler.run)
t.start()


Код записи в БД дает следующую ошибку:
SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 140181074405184 and this is thread id 140181047572224.

Внимательно прочитал про threading и как обычно ЯННП. Что надо поменять в коде запуска так, чтобы появилась возможность писать в БД?
Аноним 07/07/21 Срд 14:42:35 208965683
>>2089651
Там при создании подключении есть опция, чтобы оно не бухтело.
Аноним 07/07/21 Срд 14:51:07 208967084
Screenshot39.png 114Кб, 1916x1022
1916x1022
>>2089630
я почти так же сделал
Аноним 07/07/21 Срд 14:59:20 208967885
>>2089670
Что значит почти? У меня по диагонали, у тебя нет.
Аноним 07/07/21 Срд 15:02:59 208967986
>>2089651
>SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 140181074405184 and this is thread id 140181047572224.

Ты передаешь обьект либы/орм как аргумент? Если да то это хуевая практика, нужно передавать первичный ключ и вытаскивать уже внутри таски обьект по ключу если его не удалили к этому времени.
Аноним 07/07/21 Срд 15:05:38 208968487
Аноним 07/07/21 Срд 15:08:01 208968688
Генератор может 2 переменные выдавать?
Вроде
a,b = [c,d for c,d in zip(list1, list2)] ?
Аноним 07/07/21 Срд 15:11:42 208969189
>>2089686
>a,b = [(c,d) for c,d in zip(list1, list2)]
Вот так выдаст
Аноним 07/07/21 Срд 15:14:47 208969390
>>2089691
Разумеется, for a, b in []
И можно просто for a, b in [z for z in zip(list1, list2)]
Аноним 07/07/21 Срд 15:16:20 208969591
>>2089693
К чему эта ебатня, если можно обычный цикл тогда применить?
Аноним 07/07/21 Срд 15:18:11 208969892
>>2089695
А что вы ходите сделать?
Аноним 07/07/21 Срд 15:20:33 208970093
>>2089698
Получить две переменные из генератора.
Аноним 07/07/21 Срд 15:25:18 208970594
>>2089700
a, b = next(generator)
Важно учесть, что когда ты оборачиваешь генератор в список, он все отгенерит в момент формирования списка и никакого next у него уже не будет.
Аноним 07/07/21 Срд 16:16:43 208974895
Как бы реализовать систему лайков/дизлайков в джанге? Есть у кого успешные кейсы? Гугл подсовывает какой-то кал. Пока сделал поля в модельке:

> likes = models.ManyToManyField(User, related_name='sharticle_likes', blank=True)
> dislikes = models.ManyToManyField(User, related_name='sharticle_dislikes', blank=True)

Вопрос - обрабатывать, поставил ли пользователь лайк/дизлайк (и соответственно, будут ему доступны эти элементы, если он уже нажал) будет лучше во вьюшках или на фронте?
Аноним 07/07/21 Срд 16:31:16 208976096
>>2089684
>>2089656
Спасибо, я бы сам хрен догадался туда посмотреть.
Аноним 07/07/21 Срд 17:14:17 208979497
Анон, помоги правильно составить условие выражения.
Есть подвыборки одинакового размера, чьи индексы хранятся отдельно. В одной из подвыборок на определённом положении/индексе есть нужное значение z1.
Мне нужны все значения, которые "больше": т.е. либо они принадлежат к той же выборке, но их индекс больше, либо они принадлежат к следующим выборкам (индекс, тут уже роли не играет).
Т.е. по сути на выходе нужен кортеж с индексом выборки и индексом значения, которое будет "больше".
Аноним 07/07/21 Срд 17:32:02 208982498
Аноним 07/07/21 Срд 17:44:17 208984699
>>2089824
Мне тоже.
>>2089794
Малолетний дегенерат, неспособный сформулировать суть задачи и дрочащий абстракции.
Аноним 07/07/21 Срд 18:00:05 2089867100
>>2089348
В обычном пайчарме нет поддержки css и js. И очень неудобная поддержка html.
Аноним 07/07/21 Срд 18:03:24 2089869101
>>2089748
Твоя схема предусматривает, что пользователь может поставить одновременно лайк и дизлайк одной статье.

Если оставаться в рамках привычных моделей джанги, то тебе нужно поле
like_status = models.ManyToMany('User', through='LikeStatusModel')

class LikeStatusModel(models.Model):
____user = models.ForeighKey('User', ....)
____article = models.ForeighKey('Article', ....)
____status = models.CharField(max_length=6, blank=True, null=True)

значение поля status - это лайки-дизлайки. Надо подумать, какое поле делать, я бы забайтоёбствовал и закодировал всё в Int, чтобы 0 это без отметки, 1 это лайк, 2 это дизлайк и в таком духе. Но можно на базе CharField сделать.

Но если разгонять перформанс, то нужно уже сложнее накручивать.
Аноним 07/07/21 Срд 18:04:17 2089870102
>>2089867
В VSCode всё есть. Бесплатно, без регистрации и без СМС.
Аноним 07/07/21 Срд 18:07:42 2089871103
>>2089870
Он же мелкософтный. Фу-фу-фу.
Аноним 07/07/21 Срд 18:11:04 2089873104
>>2089433
У тебя основная задача как работает, с тредами или через asyncio? То есть каким образом ты в принципе хочешь контролировать, какой статус у задачи?

В случае asyncio ты можешь работать с aiohttp, в случае тредов наверное через flask. Через aiohttp я подобное делал, довольно удобно, надо просто запускать чуть в другом режиме

Смотри про TCPSite и appication runners
https://docs.aiohttp.org/en/stable/web_advanced.html#application-runners

Что-то подобное делают и с фласком, но это если через треды, я никогда так не делал.
Аноним 07/07/21 Срд 18:57:14 2089921105
>>2089871
Как и гитхаб, а, следовательно, и атом ¯\_(ツ)_/¯
Аноним 07/07/21 Срд 19:07:50 2089927106
>>2089921
Фейспалм, я забыл. Теперь уже так. Установил, пока нормальная тема, спасибо.

Аноним 07/07/21 Срд 19:16:00 2089932107
Всем привет, как можно получить в джанге поле у всех элементов querySet без цикла или генератора?
Аноним 07/07/21 Срд 19:23:57 2089940108
0.jpeg 32Кб, 279x423
279x423
>>2089869
О! Спасибо, подумаю над твоим вариантом
Аноним 07/07/21 Срд 19:30:38 2089945109
Аноним 07/07/21 Срд 21:23:44 2090030110
Мой друг спрашивает, почему append у list'а не возвращает себя самого?
Ну ему бы хотелось делать .append(1).append(2).append(3)
Я не смог ему ответить, потому что просто воспринимаю это как данность и пользуюсь extend, если надо добавить больше одного элемента.
Но может вы знаете научный ответ на этот вопрос?
Аноним 07/07/21 Срд 21:49:37 2090037111
Аноним 07/07/21 Срд 22:45:19 2090083112
Аноним 08/07/21 Чтв 02:08:20 2090165113
Are we all going to ignore that fact that the acronym for Python Object Oriented Programming is POOP?
Аноним 08/07/21 Чтв 08:29:03 2090215114
Аноны, учил джаву, захотел что-то поинтереснее в плане машин лёрнинга и так далее.
Как дела в питоне?
Слышал он по всем параметром ахуенен и язык на котором хочется писать писать и еще раз писать.

Перекатываться?
Аноним 08/07/21 Чтв 09:49:36 2090242115
>>2090215
машин лернинг на питоне хуярит как шлюха
дикая просто вещь.
но вот схуяли ты взял что машин лернинг это интересно?
машин лернинг это набор нахуй научных методов с задротскими формулами, которым ты скармливаешь данные.
на выходе получаешь РСА 0,2356985, ПСЖ 56985325, ОКР 0,2565895
пиздец как интересно,.
Аноним 08/07/21 Чтв 11:18:32 2090316116
>>2090242
Ну да, хуета.
Казалось интересным, но видимо ошибся.

Так а что на счет моего вопроса по перекату с джавы?
Куда мне за год проще вкатиться?
Аноним 08/07/21 Чтв 11:19:44 2090318117
Аноним 08/07/21 Чтв 11:25:04 2090327118
>>2090318
Ха-ха, ловко ты его попустил
Аноним 08/07/21 Чтв 11:32:59 2090333119
>>2087217 (OP)
Как на шинде скриптом менять PATH на всю систему, чтобы было на всех командных оболочках
Хочется менять системный интерпретатор пистона на тот что сидит в usb-памяти (pypy3) для собственного удобства
Аноним 08/07/21 Чтв 11:33:07 2090334120
>>2090318
Зачем?
Если у меня заебись работа где я могу заниматься чем хочу и носить гордое имя айтишника?

Просто денежек и самореализации хочется.
Аноним 08/07/21 Чтв 11:33:50 2090335121
>>2090333
бля вопросительный знак забыл
Аноним 08/07/21 Чтв 11:35:53 2090338122
>>2090334
>гордое
представил себе твой диалог с тян:

>а чем ты занимаешься?)
>я программист
>ммм понятно
Аноним 08/07/21 Чтв 11:44:26 2090346123
2021-03-2911-56[...].png 961Кб, 1920x1050
1920x1050
Аноним 08/07/21 Чтв 12:04:31 2090355124
Анон, помогай.
У меня есть два массива, мне надо вычленить из них те элементы, который удовлетворяют условию.

b1 = (array([1, 2], dtype=int64), array([369, 127], dtype=int64), array([0, 0], dtype=int64))
b2 = (array([2], dtype=int64), array([142], dtype=int64), array([1], dtype=int64))

def do_this_faggot(first_list, second_list):
r_list=[]
for a1, a2, b1, b2 in zip_longest(first_list[0], first_list[1], second_list[0], second_list[1]):
print("============")
print("combination")
print((a1, a2, b1, b2))
print("============")

try:
if a1 == b1 and a2 < b2:
print("============")
print("Element is added")
print((a1, a2, b1, b2))
print("============")

r_list.append((a1, a2, b1, b2))
else:
print("============")
print("Element is not added")
print((a1, a2, b1, b2))
print("============")

except:
print("============")
print("Element is not added due to None")
print((a1, a2, b1, b2))
print("============")
continue

print("=============================================")
print("Results")
print(r_list)
print("=============================================")
return r_list

Результат:
============
combination
(1, 369, 2, 142)
============
============
Element is not added
(1, 369, 2, 142)
============
============
combination
(2, 127, None, None)
============
============
Element is not added
(2, 127, None, None)
============
=============================================
Results
[]
=============================================

Где-то ошибка, и по идее список не должен ббыть пустым, потому что есть комбинация удволетовряющая условию:
(2, 127, 2, 142)
Аноним 08/07/21 Чтв 12:07:49 2090361125
Аноним 08/07/21 Чтв 12:12:05 2090370126
Аноним 08/07/21 Чтв 12:15:16 2090376127
>>2090355
Ты не должен постить код таким образом.
Аноним 08/07/21 Чтв 12:16:14 2090378128
Аноним 08/07/21 Чтв 12:18:07 2090381129
>>2090378
Ладно, спасибо за старание, но это все равно плохой код и разбираться мне в нем западло.
Аноним 08/07/21 Чтв 12:21:11 2090384130
>>2090381
>равно плохой код
Тебя принты смущают?
Иначе я бы ошибку не поймал.
Аноним 08/07/21 Чтв 12:23:29 2090388131
>>2090384
Меня смущает, что ты лезешь в программирование.
Проблема понятная: тебе нужны все комбинации элементов, а ты получаешь не все.
Аноним 08/07/21 Чтв 12:26:01 2090391132
>>2090388
>Меня смущает, что ты лезешь в программирование.
Спасибо за беспокойство, но оставь свои смущения при себе.
Я пришёл с вопросом в соответствующий тред, не хочешь или не знаешь как на него ответить - не трать, ни своё, ни моё время.
Спасибо.
Аноним 08/07/21 Чтв 12:28:20 2090394133
>>2090391
Я тебе уже ответил... Был бы ты программист нахуй, ты бы посмотрел, что именно ты передаешь в свои first, second list... Ты зипуешь списки разной длины, ты видишь, что получаются None, но ты все равно просираешься в тред и хамишь мне... Я не вижу предпосылок получить на этом наборе данных то, что ты хочешь.
Аноним 08/07/21 Чтв 12:28:48 2090396134
>>2090391
А я тебя помню, пидораса, был тут уже такой. Сначала глупые вопросы, потом хамство.
Аноним 08/07/21 Чтв 12:34:31 2090401135
>>2090394
>Ты зипуешь списки разной длины, ты видишь, что получаются None, но ты все равно просираешься в тред и хамишь мне...
Вот так и можно было сразу ответить, а не тешить своё чсв.
Спасибо.
>>2090396
> Сначала глупые вопросы,
Для этого тред и создан.
Не видел тут вывески, что только для синьоров с 10+ годами опыта.
>потом хамство.
Я нормально спросил. Не можешь ответить по существу - не отвечай.
А мнение быть кому программистом или нет, я не спрашивал. Оставь при себе, пожалуйста.
Аноним 08/07/21 Чтв 13:09:43 2090419136
>>2090391
ты понимаешь что разбираться в чужом коде тяжелее? Ты его уже написал, ты в своей проблеме по умолчанию можешь проссать лучше здешнего мимокрокодила, которому придётся минут 5 на это потратить.
Это немного невежливо - озадачивать большой, но банальной проблемой. Если бы ты реально пытался её решить, ты бы упёрся в простой вопрос
Аноним 08/07/21 Чтв 13:12:36 2090421137
>>2090419
Спасибо, сформулировал практически то, что я хотел сказать, только не так токсично.
Добавлю, что залетая с проблемой нужно писать, какую именно задачу ты решаешь, а не просто "у меня код должен выдавать такое, а не выдает". Вот это реально неуважение, как будто алгоритм я сам должен додумывать.
Аноним 08/07/21 Чтв 15:21:16 2090547138
Сап, кто напишет функцию вычисления обратного факториала с вводом числа юзером? С меня как обычно
Аноним 08/07/21 Чтв 15:27:18 2090551139
Аноним 08/07/21 Чтв 15:27:42 2090554140
>>2090547
Подразумевается, что это работает целочисленно, то есть если введенное число не является факториалом чего-либо, то функция ничего не вернет?
Аноним 08/07/21 Чтв 15:37:02 2090567141
image.png 44Кб, 1517x444
1517x444
Аноним 08/07/21 Чтв 15:48:14 2090575142
Аноним 08/07/21 Чтв 15:49:04 2090578143
image.png 25Кб, 556x491
556x491
>>2090575
Вот, держи, забыл про ввод числа пользователем.
Аноним 08/07/21 Чтв 17:43:51 2090678144
>>2090355
>>который удовлетворяют условию.
А условие то какое. Выглядит как какая то херня.
Аноним 08/07/21 Чтв 18:17:16 2090704145
image.png 8Кб, 487x123
487x123
Питонисты, как впердолить
>*games, sep = ', '
между двух строк ай лайк геймс + геймслист, разделенный запятыми+ точка?
Аноним 08/07/21 Чтв 18:24:34 2090715146
>>2090704
Всё через запятую, на последнем месте sep=
Аноним 08/07/21 Чтв 18:25:40 2090717147
>>2090704
И вообще не еби мозги, ','.join(games)
Аноним 08/07/21 Чтв 18:29:26 2090728148
>>2090715
>>2090717
>на последнем месте sep=
Тогда он впердолит запятую и после ай лайк геймс, и перед точкой в конце. Можно ли как-то сделать так, чтоб sep= относилось только к списку *games? Про .join знаю
Аноним 08/07/21 Чтв 18:30:53 2090731149
>>2090728
Да-да, я уже понял твою проблему.
Нет, нельзя, включи мозг: sep относится к функции print в целом.
Аноним 08/07/21 Чтв 21:35:14 2090867150
Аноны, допустим у меня есть чат-бот, и есть некоторые его настройки типа используемой валюты. Раньше хранил такие переменные в отдельном модуле config.py, но сейчас появилась необходимость их изменять (присваивать новые значения) в других модулях. Как это лучше сделать? Хранить их в текстовом формате? нюфаня итт
Аноним 08/07/21 Чтв 22:06:41 2090883151
>>2090867
Анон, ну ХЗ что у тебя там.

Тебе фактически нужна БД. Можно использовать внешнюю БД, можно хранить данные в текстовых файлах, в sqlite, в json, yaml и других. Или прикрутить что-нибудь.

Мне кажется, в первом варианте можно где-нибудь в json хратить. Удобно и скрипту работать, и человеку влезть в него легко при необходимости.
Аноним 08/07/21 Чтв 22:06:49 2090884152
>>2090867
Самый простой вариант - .env файл в корне проекта на самой виртуалке, в репозиторий не заливай, а то сеньоры опустят, переменные из которого ты подгружаешь в свое приложение через os.getenv. Идеально подходит для хранения секретов типа токенов и прочей хуйни
Аноним 08/07/21 Чтв 22:09:43 2090887153
>>2090547
Циклом итерируйся по int-овым циферкам и еще свое говно. За тебя код никто писать тут не будет
Аноним 08/07/21 Чтв 22:10:18 2090888154
Аноним 08/07/21 Чтв 22:15:18 2090890155
>>2089932
.values_list('your_field', flat=True)
Аноним 08/07/21 Чтв 22:26:27 2090894156
>>2090884
Ему же еще менять это нужно и как я понял не руками.
Аноним 08/07/21 Чтв 22:38:10 2090895157
Аноним 09/07/21 Птн 11:31:18 2091111158
Почему линуксоиды пишут в продакшн в этих своих линуксах на питоне, если всем вроде как очевидно, что питон это очень прожорливый, ресурсозатратный язык для проверки идей и обучения программированию американских детей с синдромом Дауна? Неужели питон на линуксах такой же быстрый, как C, на котором сама ОС и написана?
Аноним 09/07/21 Птн 11:33:09 2091114159
При переносе кода с платформы windows на linux ошибка:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 5-10: ordinal not in range(128)

В строке вида:
print(Fore.RED + f'\u041e\u0448\

Понимаю что проблема с кодировкой, но тут два вопроса, почему другой подобный код у меня работает нормально а этот файл ему не понравился? И второй как её решить?
Аноним 09/07/21 Птн 11:41:52 2091121160
>>2091114
Локаль кривая в шинуксе.
Аноним 09/07/21 Птн 12:00:42 2091139161
>>2091121
Понял спасибо, пока так решил запускать
PYTHONIOENCODING=utf-8 python3 mycode.py
Аноним 09/07/21 Птн 12:11:37 2091154162
Ебусь уже 3 день с этим вашим ебаным докером, как меня заебала эта айтишечка.
https://ideone.com/kbO8T4
Почему когда запускаю вручную через терминал, то работает, а когда через докер, то контейнер запускается, но локалхост:9000 не работает?
Аноним 09/07/21 Птн 12:18:56 2091164163
>>2091154
А так?
python manage.py runserver 0.0.0.0:9000
Аноним 09/07/21 Птн 12:26:34 2091190164
>>2091164
Спасибо, заработало.
Аноним 09/07/21 Птн 13:25:30 2091234165
В чем подводные держать типа микросервисы тупо в разных потоках, вместо отдельных подов? Ну типа вот запускаем все с одного файла, но у нас есть поток с апихой, потоки с обработчиками вебсокетов, потоки со всякими воркерами для сложных времезатратных операций + у нас есть клиенты для общения со своими базами данных, которые доступны в коде всех этих сервисов во всех потоках, а общаемся мы между ними через залоченую очередь. Это же вроде охуенно, мы можем из любого сервиса напрямую в базу что-то закидывать и доставать оттуда, не использую хттп, еще и минуя при этом сериализацию всякую.
Я знаю, что так не делается, но почему?
Аноним 09/07/21 Птн 13:31:40 2091239166
>>2091111
>для проверки идей
вот это
Стартап же начинают с рисками, никто не уверен что все будет збс. На питоне можно очень быстро написать демо и в целом стартануть, скорость разработки ебейшая и относительно недорого выходит. А потом если все и разрастается, то просто влом переписывать на го бывает. Да и есть вообще такое правило - не оптимизировать пока терпимо работает.
Аноним 09/07/21 Птн 13:41:52 2091248167
>>2089748
к оцениваемой модели поле мэнитумэни что то типа reactions, кароче мэнитумэни к модели юзера и у джанги в мэнитумэни есть что то типа through=..., можно определить модель через которое это отношение будет строится, так вот туда пихаем что то типа
Reaction(model):
VALUE_LIKE = ':D' это чойсы кароч
VALUE_DISLIKE = '>:('

- user = foreignkey(user)
- publication = foreignkey(publication)
- value = charfield(choices=чойсы сюда
Аноним 09/07/21 Птн 13:47:06 2091256168
>>2089748
насчет валидации - на бэке обязательно должен быть какой то механизм, еще у модели reaction просто в meta unique_together=('user', 'publication') а дальше зависит от политики, которую ты хочешь. Например если тебе нужно чтобы пчел мог поменять неудобное мнение ты просто в круде /reactions/ делаешь put реквест и относительно моделек делаешь create_or_update, а если нужно чтобы юзер мог только один раз рейтануть и не мог поменять мнение - у тебя экшон для создания реакции, post и если юзер уже реагировал возращаешь 400 already exists что то типа того
Аноним 09/07/21 Птн 14:39:24 2091308169
>>2091239
Есть же, кстати, всякие pypy и numba для быстрой работы.
Аноним 09/07/21 Птн 15:24:42 2091339170
Одно приложение в centos требует python 3.7+ у меня 3.6
Поставил из исходников, вроде установилось теперь у меня две версии, но pip кривой, требует ssl. Как это вообще можно исправить, возможно ли без сборки скачать python 3.7 с нормальным pip?
Аноним 09/07/21 Птн 15:30:09 2091348171
>>2091234
Поздравляю, ты изобрел монолит! А если в случае с пистоном, то там GIL, и можно параллельно работать только с помощью процессов и тогда начинается ебля IPC
Аноним 09/07/21 Птн 15:37:58 2091356172
>>2091339
>Поставил из исходников
Удаляй. Делай python -m venv venv, активируй его, и устанавливай пипом любую версию, какую хочешь.
Аноним 09/07/21 Птн 16:16:26 2091386173
>>2091356
Это что за нанотехнологии такие?
Аноним 09/07/21 Птн 16:19:46 2091392174
Аноним 09/07/21 Птн 16:20:29 2091393175
>>2091392
Я про любую версию через пип?
Венв это всего лишь симлинк на системный бидон.
Аноним 09/07/21 Птн 16:22:01 2091395176
>>2091393
>Венв это всего лишь симлинк на системный бидон.
Нет. Я ж даже ссылку кинул, почитай.
Аноним 09/07/21 Птн 16:28:12 2091398177
>>2091395
И что я там нового найду?
> It also creates a bin (or Scripts on Windows) subdirectory containing a copy/symlink of the Python binary/binaries (as appropriate for the platform or arguments used at environment creation time). It also creates an (initially empty) lib/pythonX.Y/site-packages subdirectory (on Windows, this is Lib\site-packages).
Создается симлинк (или копируется на шинде) на системный питон, который будет юзать системную же стандартную либу и свою собственную site-packages для установок.
Аноним 09/07/21 Птн 16:31:18 2091402178
>>2091398
>или копируется
Ну вот, скопировал, а потом эту копию обновил. Ты считаешь так нельзя? В пепе, мне кажется, про это было, и я так делал.
Аноним 09/07/21 Птн 16:35:30 2091405179
>>2091402
Что обновил-то? Нужна другая версия питона, причем тут венв вообще?
Аноним 09/07/21 Птн 16:36:42 2091406180
>>2091405
>Что обновил-то?
Питон в венве.
Аноним 09/07/21 Птн 16:38:15 2091407181
>>2091402
Ты что-то не то несёшь.

Вопрос, наверное, о том, как поставить себе в систему 3.8, скажем, если у тебя стоит 3.6.

Вот через pip ты этого не сделаешь. В убунте надо добавлять репозитории, которые "dead snakes".

На тот момент, когда ты venv создаёшь, у тебя уже фактически версия питона зафиксирована, весь venv завязан жёстко на то, какая версия у тебя.
Аноним 09/07/21 Птн 16:38:31 2091408182
>>2091406
Это не один файл заменить, нужно нормальное готовое окружение, и уже на эти окружения и можно заводить венвы для получения разных версий. Ты какую-то норкоманию придумал.
Аноним 09/07/21 Птн 16:40:43 2091409183
>>2091406 >>2091407 >>2091408
А как я это сделал? Тогда было прям рас-рас-и-готово, а сейчас не могу вспомнить, как конкретно.
Аноним 09/07/21 Птн 16:41:05 2091410184
>>2091407
Ставишь нужный питон, от его имени уже делаешь venv
Аноним 09/07/21 Птн 16:42:53 2091412185
>>2091409
Примерно так:
>sudo add-apt-repository ppa:deadsnakes/ppa
>sudo apt-get update
сейчас не проверял. Но точно из deadskakes, в общем загугли.

И будут тебе последние питоны стабильные. У меня убунта, предлагает 3.10 уже сейчас доставить.
Аноним 09/07/21 Птн 16:46:54 2091417186
Аноним 09/07/21 Птн 16:49:37 2091418187
Аноны, какой самый простой путь сохранять словари? Хотел редис взять, но сейчас работаю на винде, куда он ставится только через жопу.
Аноним 09/07/21 Птн 16:49:50 2091419188
>>2091417
Не, я сейчас думаю, что это был pypy и я его просто в венве распаковал, а дальше он сам умеет забрать на себя python в активированном окружении. В общем-то, не важно. Дискуссию-то устроили на 10 постов, а тому анону на центосе этот ответ так единственным и остался.
Аноним 09/07/21 Птн 16:50:58 2091422189
>>2091418
Что скажете за tinydb?
Аноним 09/07/21 Птн 16:52:51 2091425190
Аноним 09/07/21 Птн 16:53:10 2091426191
>>2091418
А с какой целью? use-case какой?

И что из себя словари представляют?

Json/pickle, всякие attr+cattr или pydantic.

Можно в постгрес сохранять.
Аноним 09/07/21 Птн 16:53:11 2091427192
Аноним 09/07/21 Птн 16:54:15 2091431193
>>2091418
Разве? У меня лежит где-то редис под шинду, юзаю его как кэш для парсеров. Это один экзешник, запустил и работает. В общем-то, так он работает и на других ос.
Аноним 09/07/21 Птн 16:54:47 2091433194
>>2091425
SQLite слишком долго транзакции проводит, я вообще думаю просто в json все класть
>>2091426
Юзкейс простой, небольшое приложение распознает цифорки с картинок, а потом сохраняет эти цифорки в словарь, где ключом является id-шник пользователя
Аноним 09/07/21 Птн 16:55:37 2091436195
Аноним 09/07/21 Птн 17:00:19 2091443196
Аноним 09/07/21 Птн 17:01:52 2091446197
>>2091443
Ну это я видел, там редис 3-ей версии, а репа 16-го года
Аноним 09/07/21 Птн 17:03:03 2091448198
>>2091446
И что там поменялось важного?
Аноним 09/07/21 Птн 17:07:44 2091451199
>>2091239
А есть правило сразу делать заебись, а не сначала писать лагучее говно на псевдоязыке, а потом забивать хуй на оптимизацию, как это всегда и происходит? За что сейчас проградристам вообще платят?
Аноним 09/07/21 Птн 17:08:21 2091453200
>>2091419
>Дискуссию-то устроили на 10 постов, а тому анону на центосе этот ответ так единственным и остался.
Бесполезным, потому что так ты не поставишь.

Погуглил, предлагают собирать из исходников.

Дельный совет анону, сноси этот центос, ставть Винду версия ubuntu 20.04 вполне себе годна. Там это реально очень просто делается..
Аноним 09/07/21 Птн 17:09:37 2091455201
>>2091451
> За что сейчас проградристам вообще платят?
За разработку программного обеспечения.
Аноним 09/07/21 Птн 17:10:04 2091456202
>>2091453
Да всё там соберется нормально под центось, просто надо читать инструкцию и гуглить по обстановке, а не хуяк-хуяк и заработало.
Аноним 09/07/21 Птн 17:12:46 2091458203
>>2091456
В убунте бы делаешь хуяк-хуяк, и у тебя всё работает. В освободившееся время ты читаешь инструкции по более полезным вещам.
Аноним 09/07/21 Птн 17:16:08 2091463204
>>2091458
Такое тоже знать и уметь полезно.
Аноним 09/07/21 Птн 19:22:46 2091562205
>>2091451
>А есть правило сразу делать заебись
нету такого правила, бизнесу нахуй оно не нужно, заказчик всегда хочет новых фич побольше и побыстрее

>а не сначала писать лагучее говно на псевдоязыке
по будет сначала не особо лагучим, поэтому заебись, потом, конечно, через какое-то время будет тормознее становится, но если к этому времени проект доживет - можно думать о переписывании отдельных модулей на чем-нибудь побыстрее. Или как ты хотел? По твоему заебись въебать кучу времени и денег на написание той же хуйни только чуть пободрее, чтобы потом стартап провалился как 99.9% других? Ты долбоёб!

>забивать хуй на оптимизацию, как это всегда и происходит?
Если так происходит, значит так надо, схуяли ты решил что ты умнее всех?

>За что сейчас проградристам вообще платят?
В аутсорсинге и аутстафинге за наебывание клиентов, ты так пишешь, как будто не работал никогда, вкатун чтоли?
Аноним 09/07/21 Птн 19:32:52 2091567206
>>2091451
Лол - за что сейчас вообще программистам платят. Посмотри на фронтенд, там джуна так ебут нодой, всякими сборщиками, сасами-лесами и прочей залупой, что на выходе обычный блог с текстом выходит более тяжелый, чем полноценный сайт со свистоперделками (поиск, логин, админка, лайки, карта с драг энд дропом) лет 5 назад.

Вот уж если кого и пинать за тормоза и говнокод, то явно не питонистов.
Аноним 09/07/21 Птн 19:44:50 2091576207
>>2091562
>>2091567
Потом долбоебы наслушаются про тормозной питон и ОПТИМИЗИРУЮТ каждую строчку, третий день вкатываясь.
Аноним 09/07/21 Птн 19:46:15 2091579208
>>2091576
Потому что ТЗ надо смотреть. Если в ТЗ написано - оптимизируешь. Не написано - "хуяк, хуяк и в продакшн".
Аноним 09/07/21 Птн 23:03:35 2091739209
>>2087217 (OP)
Есть строка байт по типу: b"\xff\xd8\xff\xe0" - как декодировать ее в строку?
(почему-то вместо b'\x89PNG' пришла вот эта фигня, хз как ее правильно конвертировать)
Аноним 09/07/21 Птн 23:19:07 2091747210
>>2091739
Это жпег. Зачем в строку?
Аноним 10/07/21 Суб 00:31:41 2091773211
Для класса в языке python можно определить поведение знака +?
Вот чтобы у меня такой код не валился.
class Pidor:
pass


pidor1 = Pidor()
pidor2 = Pidor()
pidor3 = pidor1 + pidor2
Аноним 10/07/21 Суб 00:32:48 2091775212
>>2091773
Магические методы погугли
Аноним 10/07/21 Суб 00:35:06 2091779213
>>2091775
Спасибо, сорян, слишком рано написал на двач, метод add решил все проблемы. Господи, до чего же охуенный язык!
Аноним 10/07/21 Суб 01:57:51 2091827214
Ребята, почему мне не отвечают на резюме? Вот сам кусок скилов из резюме, скинул только скиллы. Под не отвечают имею ввиду что даже на собесы не зовут. Еще я забыл добавить что в резюме есть опыт с фриланса 1 год.

1 - Написано что мне 16 лет, закончил школу, нигде не учусь.
2 - ⦁ I have experience with Aiogram,Selenium,bs4 also in other built-in modules like,os,sys,time,json,math, etc.
⦁ I have experience with Django, I also plan to develop towards Back-End development.
⦁ I have experience with ORM, more specifically SqlAlchemy and Peewee and also have experience with SQL
⦁ Knowledge of HTML/CSS - SASS/SCSS / Bam Methodology, JS/React
⦁ My knowledge of english is pre-intermediate/intermediate.
⦁ Experienced with controlling version like Git.
⦁ Knowledge of OOP, three main principles and why they are needed.
⦁ I know basic algorithms like sorting, graph traversal, binary search, etc
Аноним 10/07/21 Суб 02:01:00 2091828215
>>2091827
Соври что тебе 18
Софт скиллы укажи
Добавь Гитхаб с пет проектами

Бля и заплати 300 рублей какому-нибудь англюсику, у тебя английский текст очень коряво выглядит.
Аноним 10/07/21 Суб 02:24:50 2091833216
>>2091827
>Knowledge of OOP, three main principles
Их четыре.
Аноним 10/07/21 Суб 09:23:29 2091903217
16051773208690.jpg 9Кб, 188x167
188x167
Сап питонач.
Появилась необходимость работать со спарком. А как вобще код то проверять, писать и тестировать? Ну вот есть сервис спарка, я ж ёбана не буду в текстовом редакторе никсов код бахать. А удалённо вроде нельзя запустить, спарк разворачивать локально тоже чот сложно. По идее библиотека sparkа должна сама уметь на локальном запускать? Чото я нихуя непонял короче
Аноним 10/07/21 Суб 10:04:18 2091938218
>>2091827
На мой взгляд написано очень много всего, посмотри резюме других ребят, сократи свое до нескольких строчек, оставь только самое важное, то в чем ты уверен на 100%. Вот пара примеров как сокращать:

"experienced with controlling version like Git." можно сократить до одного слова - git.
"Knowledge of OOP, three main principles and why they are needed." можно сократить до OOP.

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

Мимо пару лет нанимал.
Аноним 10/07/21 Суб 10:13:30 2091947219
>>2091827
>Experienced with controlling version like Git
Breaking news, найден человек-гит!
Аноним 10/07/21 Суб 10:45:38 2091971220
>>2091947
так это в каждой вакансии указывают как требование даже у мидлов, херка не увидит слова и подумает что ты не осилил гит за 5 лет столичного опыта.


Аноним 10/07/21 Суб 11:06:10 2091992221
>>2091971
Я про английский, а не гит, лолка. Он написал что сам контролировал версии, как гит, а не использовал системы контроля версий.
Аноним 10/07/21 Суб 12:32:51 2092050222
>>2091827
Может лучше пет проектов ещё наделай да английский подтяни? В 16 лет вряд ли куда-то возьмут, но на такой вопрос неплохие знания. Хотя может учиться где-то и нужно.
Аноним 10/07/21 Суб 14:04:32 2092159223
А можно переназначить stdin/stdout на локальные файлы? Мне было бы так удобнее тестировать задачки.
Аноним 10/07/21 Суб 15:42:17 2092238224
>>2092159
Прямо в консольке пишешь
./program 1>std.out 2>std.err <std.in
Аноним 10/07/21 Суб 17:55:30 2092382225
Как сделоть чтоб urllib.request.urlopen не вываливался с эксепшоном что у меня HTTP code 403, а давал самому это прочесть в респонсе? Ведь если ловить это исключение, он мне ничего нахуй не даст
Аноним 10/07/21 Суб 17:57:00 2092388226
>>2092382
бтв, requests не могу использовать, работаю с чужим апи, а у него анальные требования и немного своеобразный HTTP
Аноним 10/07/21 Суб 18:10:03 2092407227
Аноны, как запретить трейсинг во время дебаггинга в служебные модули по типу os или codecs?

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

Поверхностный гуглеж не нашел решения.
Аноним 10/07/21 Суб 18:30:44 2092419228
>>2092388
>BaseHandler.http_error_default
>This method is not defined in BaseHandler, but subclasses should override it if they intend to provide a catch-all for otherwise unhandled HTTP errors. It will be called automatically by the OpenerDirector getting the error, and should not normally be called in other circumstances.
>req will be a Request object, fp will be a file-like object with the HTTP error body, code will be the three-digit code of the error, msg will be the user-visible explanation of the code and hdrs will be a mapping object with the headers of the error.
клянусь богом, urllib это самое уродливое что есть в сраном питоне
Аноним 10/07/21 Суб 18:31:27 2092420229
Аноним 10/07/21 Суб 18:41:56 2092433230
>>2092420
но ведь оно не вернёт http.client.HTTPResponse.

Представь, что кто-то хочет защитить свой сайт от питонистов, возвращая 400 на нормальных запросах
Аноним 10/07/21 Суб 18:52:41 2092439231
>>2092419
причём у OpenerDirector нет параметра context через который задаётся ssl/tls, здесь я чешу голову просто
Аноним 10/07/21 Суб 19:05:49 2092448232
>>2092439
__rq = urllib.request
__rq.HTTPDefaultErrorHandler = urllib.request.HTTPHandler
в ответе возвращается None если такой финт делаю
Аноним 10/07/21 Суб 20:02:19 2092477233
>>2092448
class __unhandle(urllib.request.HTTPDefaultErrorHandler):
def http_error_default(self, req=None, fp=None, code=None, msg=None, hdrs=None): return '1234'
__rq = urllib.request
__rq.HTTPDefaultErrorHandler = __unhandle
крч если не криво делать то тут можно превратить параметры в нормальный http.client.HTTPResponse вместо 1234, и тогда норм
но это буквально дописывание языка за его авторов
Аноним 10/07/21 Суб 20:20:34 2092493234
image.png 85Кб, 501x895
501x895
Как вот эта вещь реализована со стороны бд? Каждый раз при новом запросе собираются фильтры для категорий или один раз просчитывается и хранится в бд? И, допустим, при добавление/удаление пересчитывается.
Аноним 10/07/21 Суб 20:23:01 2092497235
>>2092493
Крафтится запрос по кускам.
Может ровные пасаны как-то и хитрее делают.
Аноним 10/07/21 Суб 20:34:47 2092508236
>>2092477
бля не
class __unhandle(urllib.request.HTTPErrorProcessor):
def http_response(self, request, response): return response
def https_response(self, request, response): return response
__rq = urllib.request
__rq.HTTPErrorProcessor = __unhandle
вот так заебись
Аноним 10/07/21 Суб 20:48:25 2092521237
Аноны, несколько тредов назад кидали объемную подборку на русском материалов по питону, гиту, БД, алгоритмам и так далее. Естественно, я ее проебал.
И я буду очень благодарен, если кто-нибудь поймет, про что я и скинет ее.
Аноним 10/07/21 Суб 23:14:54 2092615238
>>2092493
Я такого сам не делал, но тут я уверен делается обычный запрос к беку в котором прописываются все фильтры, бек обрабатывает их, чтобы в запросе к бд все ровно было и возвращает нужные данные
Аноним 10/07/21 Суб 23:22:52 2092626239
>>2092050
Я сделал пару пет проектов, не уровня Хеллоу Ворлд, да, с английским у меня траблы. Но я думаю скорее всего из-за возраста и не зовут никуда. Учиться я не могу, нужно зарабатывать, пока подрабатываю в реале + иногда заказы на фрилансе делаю.
Аноним 11/07/21 Вск 00:37:39 2092650240
depositphotos35[...].jpg 46Кб, 600x397
600x397
Случайно вкатился в микроконтроллеры, такая-то тема.
Берется копеечная хуитка за 2-3 бакса, там можно запустить микропитон - нищереализация питона на голом железе, на борту есть вайфай-блютус и место под файлы. И возможность подключить мильйон всяких примочек.
Я прям удивлен, что это вот так себе существует и прошло мимо меня. По старинке думал, что там какие-то асмы-си и анальная олимпиада.
А оно вон оно как.
https://www.youtube.com/watch?v=r8V2JZ9WJw8
Аноним 11/07/21 Вск 01:57:19 2092669241
Всем привет, нужно собрать приложение pyqt5 под андроид. Нашёл инфу про pyqt-deploy, почитал доки, появилось желание застрелится,нашёл статью на хабре, стало лучше, но на практике повторить не смогу, может кто знает видосов каких про эту библиотеку или ОЧЕНЬ подробных статьей, потому что мороки как я понял там очень много
Аноним 11/07/21 Вск 10:23:19 2092765242
>>2092433
Там ниже написано, ты из ошибки можешь данные читать
Аноним 11/07/21 Вск 11:10:47 2092784243
>>2092615
Звучит все нормально, но я должен пройтись по характеристикам ВСЕХ товаров в категории и вытащить из них значения характеристик. Мне кажется если в категории 2-3к товаров и много запросов, то загнется бд.
Аноним 11/07/21 Вск 11:33:54 2092808244
>>2092784
Тебе не сразу товары показывают, а пачками, достаточно первые 10/25/50 вытащить указав лимиты, а потом оффсетом смещать. Да и с индексами все и так быстро будет.
Аноним 11/07/21 Вск 11:35:17 2092811245
>>2092784
Это называется faceted search.
Судя по 5 сек в гугле, есть готовые решения.
Аноним 11/07/21 Вск 11:38:10 2092815246
>>2092650
Что будет если обвешаться такими штуками как вассерман карманами?
Аноним 11/07/21 Вск 12:19:20 2092851247
image.png 91Кб, 1442x410
1442x410
>>2092808
Еще раз скажу, допустим там стоит фильтр на бренды. Он показывает все бренды в этой категории, не только первой пачки.

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

Характеристика: бренд. Значение характеристики: samsung.
Аноним 11/07/21 Вск 12:20:11 2092854248
>>2092851
P.S. вытащить значения характеристик я смог, но я не считаю это оптимальным путем.
Аноним 11/07/21 Вск 14:19:18 2092976249
>>2092851
В чем суть вопроса я так и не понял? Есть у тебя эндпоинт для товаров и в квери параметрах просто указываешь ?brand=Sumsung, потом на беке достаешь все квери параметры, видишь бренд указан, значит из бд достаешь только самсунг, делаешь пагинацию нужнаю тебе на 10,20,50 и все, в чем проблема то?
Аноним 11/07/21 Вск 14:21:23 2092978250
>>2092851
Может ты имеешь ввиду что фронт должен с бека получать список брендов например? Тогда есть несколько решений, смотря нужно ли тебе что-то поворотливое и сложное делать или простое решение в лоб
Аноним 11/07/21 Вск 14:47:20 2093007251
Может кто нибудь написать скипт или как это там называется (чтоб в группу вк однокласы и канал в телеге автоматом добавлялись просто ссылки на новые видео с ютуба по двум ключевым словам)
Могу криптой оплатить
Аноним 11/07/21 Вск 14:58:36 2093023252
image.png 220Кб, 840x448
840x448
#!/usr/bin/python3 или #!/usr/bin/env python?
Аноним 11/07/21 Вск 15:03:54 2093029253
>>2092765
Ты прав, помню что в исключении был resp который я через перезаписанные функции взялся возвращать

Но мне так лаконичнее, обойтись без дублирования кода в обрабоке исключений (как я уже допилил). Я ж оперирую в зависимости от http тела, к чему мне коды.
Аноним 11/07/21 Вск 15:10:36 2093036254
Аноним 11/07/21 Вск 15:58:08 2093081255
>>2093023
>#!/usr/bin/env python3
Ещё и в тушке версию проверь.

Напрямую задаётся только сустемный шелл.
Аноним 11/07/21 Вск 17:19:50 2093145256
У вас бывало такое берешь заказ, тебе платят наперед и желания заказ делать больше нет, я его сделаю, но вот прям лень полная, ведь деньги уже лежат у тебя.
Аноним 11/07/21 Вск 17:28:23 2093151257
я тут подумал, что раз в параметрах функции не действует self, то можно юзать локальные переменные класса, но тогда неопределённость: мы получим локальные переменные инстанса класса, или переменные абстракции класса?

взялся проверять и чёта магия какая-то
https://ideone.com/07JLOO
><__main__.F object at 0x153ea4e596d8>
как джва превращается в ОБЪЕКТ?
Аноним 11/07/21 Вск 17:32:03 2093153258
>>2093145
Бывает, поэтому наперед не беру, даже если предлагают.

>>2093151
Что блять? Если ты селф не указываешь, то это не значит, что он не придет. Вот он и пришел первым параметром.
11/07/21 Вск 17:38:52 2093158259
>>2093151
бля стоп, я self забыл
Аноним 11/07/21 Вск 19:50:19 2093259260
С кого лучше начинать? С Мэтиза или с Лутца?
(знаю более менее самые основы)
Аноним 11/07/21 Вск 20:43:13 2093296261
>>2093259
Если не боишься в лутце завязнуть, то валяй, он намного полнее.
Аноним 12/07/21 Пнд 09:02:53 2093558262
>>2091356
ссори за нубский вопрос, а как пипом нужную версию установить?
Аноним 12/07/21 Пнд 09:21:28 2093565263
>>2093558
pacman -Suy python3.(нужная версия)
Аноним 12/07/21 Пнд 10:25:51 2093625264
>>2093565
пакман? суй питон? реально?
Аноним 12/07/21 Пнд 10:47:40 2093653265
>>2091903
Во-первых, все удаленно работает отлично.
Любимая фича - поднять удаленный сервер джупитера, подключиться к порту через браузер и дрочить датафреймы в нем. Естественно, основной код в .py файлах.
Да, Спарк разворачивать сложно.
Поэтому берешь Линукс/wsl2/докер, накатываешь анаконду и Pyspark из канала Conda-Forge, плюс 8/11 жабу.
Выбираешь конду как интерпретатор в пичарме, и вуаля.
На Винде дополнительные зависимости, ебля с винутилс, мб хадуп и вроде тормознутее, так что нахуй винду.

Мимо работал с Pyspark.
Аноним 12/07/21 Пнд 13:20:50 2093795266
Двощ, как поставить этот грёбанный dotenv?
Почему всё ставится а это говно нет?
File "/usr/local/lib/python3.7/urllib/request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: SSL is required

----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/fa/5a/6dcdddeaa0ddc0bd331fdd1bc8696d9650ede0cb014083716976174eb4b8/dotenv-0.0.1.tar.gz#sha256=04006132a48e301a40b5bc3e8ea0d667a68981f277bb1785af0f8b9f7958e278 (from https://pypi.org/simple/dotenv/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement dotenv (from versions: 0.0.1, 0.0.2, 0.0.4, 0.0.5)
ERROR: No matching distribution found for dotenv
Аноним 12/07/21 Пнд 13:25:52 2093796267
>>2093795
Кажется разобрался, надо вот так было:
pip install python-dotenv
И нахуя разрабы так делают? Откуда я должен знать что это говно с префиксом python- нужно?
Аноним 12/07/21 Пнд 13:35:17 2093804268
Аноним 12/07/21 Пнд 16:42:33 2093979269
Что сделать, чтобы в jupiter notebook были всплывающие подсказки к коду?
Аноним 12/07/21 Пнд 19:33:57 2094215270
>>2092493
Папа пришел нахуй. Всем сидеть, всем лежать

1. Есть кеш, запросы как правило пойдут к нему
2. Есть полнотекстный поиск, если надо то будет он на каком-нибудь Elastic а не на мускле
3. Есть индексы в БД нахуй. Индексы эффективны епта в том числе и для выражений BETWEEN а не только для единичных значений
Аноним 12/07/21 Пнд 20:34:28 2094259271
>>2087217 (OP)
Хочу из ETL макаки стать дата-инженером, че мне в питоне уметь надо?
Аноним 12/07/21 Пнд 22:03:00 2094342272
Аноны, есть загрузчик данных в таблицу из csv-файла. Пишу скрипт, который сравнивает таблицу и csv-файл, и логирует строки которые не занеслись в базу по каким-то причинам. Пока что написал только для загрузки данных в пустую таблицу, но что делать если она непустая? Скрипту на вход подается только файл-источник и таблица. Как узнать, с каких строк начать сверять данные?
Аноним 12/07/21 Пнд 22:08:23 2094348273
>>2094342
Данные в таблицу добавляются строго в конец? Если да, то я мог бы начать сверять с конца таблицы,. Использую postgresql
Аноним 12/07/21 Пнд 22:15:20 2094351274
Figure2.png 32Кб, 640x480
640x480
Figure1.png 24Кб, 640x480
640x480
Аноны, можете пояснить что за хуйня с numpy.polyfit()?

Почему эта залупа не выдает адекватное приближение 3 степени?

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

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



Аноним 12/07/21 Пнд 22:23:34 2094357275
>>2094342
Если у тебя там не терабайты, то я бы просто хуярил временную таблицу с одним ключевым элементом, а потом одним запросом можно получить разницу.
Хотя это
> которые не занеслись в базу по каким-то причинам
надо решать в тот же момент, а не постфактум искать чо там не прошло.
Аноним 12/07/21 Пнд 23:12:38 2094401276
Анон, подскажи, пожалуйста, такой вопрос.
Есть два результата функции np.where, которая выдаёт массив из 3х одномерных массивов не одинаковых по длине.
Что-то типа:

res 1 = [(array([0], dtype=int64), array([67], dtype=int64), array([0], dtype=int64)), (array([0], dtype=int64), array([71], dtype=int64), array([0], dtype=int64)), (array([0], dtype=int64), array([71], dtype=int64), array([0], dtype=int64)), (array([0], dtype=int64), array([67], dtype=int64), array([0], dtype=int64)), (array([0], dtype=int64), array([81], dtype=int64), array([0], dtype=int64))]
============
res2 = [(array([0], dtype=int64), array([71], dtype=int64), array([1], dtype=int64)), (array([0, 0], dtype=int64), array([83, 84], dtype=int64), array([1, 0], dtype=int64)), (array([0], dtype=int64), array([71], dtype=int64), array([1], dtype=int64)), (array([0], dtype=int64), array([77], dtype=int64), array([1], dtype=int64)), (array([0, 0], dtype=int64), array([83, 84], dtype=int64), array([1, 0], dtype=int64))]

Мне для каждого результата по сути нужно только два массива из трёх, которые надо сравнить друг с другом, после чего оставить только те, что удовлетворяют условию res1[0] == res2[0] and res1[1] <= res2[1] .
Как наиболее эффективно это сделать? Я думал использовать itertools для всех возможных комбинаций, а потом отфильтровать по условию, но на паре примеров получается, что, во-первых, не совсем правильно, во вторых, медленно работает.
Как это можно наиболее эффективно и быстро сделать?
Аноним 12/07/21 Пнд 23:14:20 2094405277
>>2094357
Я не могу хуярить что-либо в бд, скрипт должен работать с любым загрузчиком и любой таблицей изолировано от них
Аноним 12/07/21 Пнд 23:16:48 2094412278
>>2094401
Условие формируется одним из массивов или универсально?

Аноним 12/07/21 Пнд 23:20:49 2094414279
>>2094401
О, опять душный выблядок с массивами, помню тебя.
Аноним 13/07/21 Втр 03:08:40 2094465280
>>2094414
Нумпай это питон лишь с очень большой натяжкой. Это говно нарушает питоний дзен как только можно, поэтому я бы вопросы про нумпаю встречал пассивной агрессией. Молодца.
Аноним 13/07/21 Втр 09:29:26 2094515281
>>2094412
Универсально.
Но тут проблема в следующем:
res1[4] = (array([0], dtype=int64), array([81], dtype=int64), array([0], dtype=int64))
res2[4] = (array([0, 0], dtype=int64), array([83, 84], dtype=int64), array([1, 0], dtype=int64))
Массив массивов во втором случае содержит не 1 элемент, а список.
И мне в таком случае надо проверить все комбинации,
Т.е, т.е., например, res1[4][0] с res2[4][0][0] и res2[4][0][1].
И точно так же второй массив res1[4][1] с res2[4][1][0] и res2[4][1][1]
Может у numpy есть готовое решение?
Аноним 13/07/21 Втр 15:09:03 2094756282
Могучий оффтоп.
Кто какие шрифты юзает в Linux? Или сидите на дефолтных?
Аноним 13/07/21 Втр 15:23:01 2094769283
Аноним 13/07/21 Втр 15:34:26 2094786284
Вопрос по джанге:

В БД есть статья с заголовком "Собираем квантовый генератор случайных чисел". Если в параметр поиска передать отдельные слова "генератор" или "собираем" или последовательность "собираем квантовый" то есть те слова, что стоят рядом в заголовке то Article.objects.filter(header__icontains=search_query) отрабатывает на ура. Но если передать слова, которые есть в заголовке, но не стоят рядом %%i.e. собираем генератор", то такой метод поиска ничего не найдет. Как правильно сделать поиск? Вариант со сплитом параметра поиска в отдельные слова и поиск по ним кажется слишком колхозным, ведь точно в джанге есть решение, ведь есть?...
Аноним 13/07/21 Втр 15:56:51 2094819285
>>2094786
Для этого есть специализированные поисковые движки, искаропки только вот так наивно.
Аноним 13/07/21 Втр 16:18:48 2094828286
>>2094786
Никогда не видел, что бы такой херней занимались. Можешь фильртовать кс сначала по одному слову, а потом отфильтрованный по второму и тд. Но это говно какое то, есть elasticsearch для нормальных людей.
Аноним 13/07/21 Втр 17:39:13 2094895287
Например, есть список [1,2,3]
Можно ли повторить элементы списка N раз в виде
[1,2,3,1,2,3,1,2,3...] ?
Аноним 13/07/21 Втр 17:47:40 2094902288
>>2094895
Сам нашёл
list1 = [1,2,3]
list1*N

Странно, думал, так просто элементы будут умножены на N.
Аноним 13/07/21 Втр 17:48:01 2094904289
Аноним 13/07/21 Втр 17:48:51 2094906290
Аноним 13/07/21 Втр 19:37:14 2095009291
Двач, я очень тупой и не могу решить легчайшую задачу, прошу твоей помощи. Описывать полностью смысла не имеет, так как все, что мне нужно - это просто оператор.
У меня есть список, стоящий из кучи имен и фамилий. 'Имя Фамилия'. Мне нужно посчитать сколько раз встречается в списке ИМЯ "Петя". Я пишу count "Петя", но поиск дает 0 результат. Что логично, ведь "петя" в списке всегда идет совместно с фамилией. Как решить мою задачу? Это делается через count или существует другой способ. Нагуглить не получилось, листал кучу таблиц с операторами к спискам и ничего не нашел. Я ебанат, да
Аноним 13/07/21 Втр 19:56:09 2095024292
>>2095009
count не подходит, потому что он считает только полное совпадение.
Попробуй так:
sum([1 for value in my_list if "Петя" in value])

>я очень тупой
У тебя всё получится.
Аноним 13/07/21 Втр 19:56:19 2095025293
>>2095009
sum(1 for s in lst if s.startswith('петя'))
Аноним 13/07/21 Втр 21:06:34 2095089294
Аноны. Есть задача генерировать небольшой зип архив по одному из роутов в Джанге и отдавать его на фронт. Собрать зип-архив и через HTTPResponse отдать его проблемы не возникло.
>response = HttpResponse(zip_io.getvalue(), content_type='application/x-zip-compressed; charset=utf-8')
>response['Content-Disposition'] = 'attachment; filename=files.zip'
Через тесты сделал запрос на роут, получил байтовую строку с юникод-символами в шестнадцатеричной
>b'PK\x03\x04\x14\x00\x00\x00\x08\x00\x88\xa8\xedR\x08\...."
Но как только дело доходит до запроса с фронта или обычного запроса через постман - вся эта хуйня из нормальной байтовой строки превращается в мешанину из полетевшей кодировки:
>DM�`�<��@�� �M��1�A
Как правильнее передать файл на фронт?
Аноним 13/07/21 Втр 21:19:48 2095105295
Полтора года назад учил питон по пику с дальнейшим желанием вката. Но как закончил читать и делать упражнения, то всё как-то сошло на нет. Не знал, куда двигаться.
1) Вроде всё позабыл, стоит снова её всю проштудировать? Или уже есть варианты получше на русском?
2) Что делать потом, чтобы опять не заглохло дело? Пет-проекты? Учить джангу и sql для бэкенда?
Аноним 13/07/21 Втр 21:20:19 2095107296
Аноним 13/07/21 Втр 21:21:15 2095108297
123.png 84Кб, 250x355
250x355
Аноним 13/07/21 Втр 23:21:10 2095197298
>>2095105
Эту не читал, сорри.

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

Я понимаю твои чувства, тебе стоит понять, для начала, чего ты хочешь и что тебе интересно.
Аноним 13/07/21 Втр 23:34:57 2095208299
>>2095105
У тебя после проработки книги не возникло даже одной идеи для пет-проекта? Печально тобой быть.

Ну напиши блог текстовый с админкой на Питоне. Калькулятор, To Do лист, бот для тг. Совсем идей нет? Пока будешь писать поймешь какие либы и фреймворки нужны.
Аноним 13/07/21 Втр 23:39:26 2095211300
>>2095105
Я эту прочитал и ебанул на фрилансе проектец за 300 баксов, но до этого я знал перл и пхп.
До сих пор чувствую эту вкатунскую неуверенность, но лень углубляться. Сейчас сместился в баш и го, там тоже попасусь и сделаю какие-то проекты, но питон что-то нихуя не становится fluent.
Вообще, после перла все языки кажутся какими-то каличными, жаль, что он умер.
Аноним 13/07/21 Втр 23:40:56 2095214301
>>2095197
>дата сайнс
Давно вкатился?
Какие инструменты используешь?
Сотыгу делаешь?
Аноним 13/07/21 Втр 23:53:16 2095220302
Аноним 13/07/21 Втр 23:58:33 2095223303
image.png 1Кб, 176x46
176x46
Аноним 14/07/21 Срд 00:02:32 2095224304
>>2095220
Пиши свой язык программирования.
Аноним 14/07/21 Срд 00:34:16 2095238305
>>2095214
Пол-года как. Но надо сказать, что я в принципе всегда увлекался матстатом и имел интерес к области и какой-то опыт. Ну и что мне работу предложил знакомый, который счел, что я талантлив. Так что тут быстрый вкат обусловлен тоже знакомствами, по собесам не ходил.

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

Что ты подразумеваешь под инструментами? Библиотеки? Панду, Нампай, Сайпай, Статсмоделс, Пиплот для визуализации. Айдишники? Ну использую Пайскриптер, пробовал Спайдер, но не увидел пока необходимости переходить. Другие языки? R для рассчетов некоторых особо длинных использовал. Немного знаю СКЛ, но самую базу, не использовал в практике, мне кажется, СКЛ нужен сугубо для больших БД либо биологии/физики.

>Сотыгу делаешь?

Сорри, вообще не понимаю о чем ты!

Аноним 14/07/21 Срд 01:13:31 2095263306
>>2095224
С кириллическим синтаксисом.
Аноним 14/07/21 Срд 10:11:33 2095366307
Начал изучать питон, благо есть идея проекта, на котором можно и изучить его.
Подскажите, как принято писать на питоне, все в одном файле или классы, например, раскидывать по файлам отдельным?
Например, мой скрипт будет писать в БД. Создать отдельный класс для БД и все коннекты и функции записи и чтения запихнуть туда, а из основного файла просто вызывать?
Аноним 14/07/21 Срд 10:21:15 2095375308
>>2095366
Как в жабах на каждый пук отдельный файл не надо, но если прям дохуя, то можно на пару отдельных разбить по смыслу.
Аноним 14/07/21 Срд 10:50:41 2095394309
>>2095375
То есть, если у меня в одном файле куча классов это норм?
Чет не могу к такому привыкнуть, не удобно же
Аноним 14/07/21 Срд 10:55:55 2095399310
>>2095394
разбивается обычно по назначению
типа в одном файле у тебя логика, во втором объекты, в третьем еще какой функционал

никто не мешает конечно насрать всё в одном файле
но это неудобно
так можешь хоть по файлу на класс делать но это тоже шиза
Аноним 14/07/21 Срд 10:57:05 2095400311
>>2095394
то есть если ты сделаешь по файлу на класс то тупо нахуй запутаешься и будешь срать импортами как не в себя , лол
Аноним 14/07/21 Срд 11:08:06 2095413312
bump
Аноним 14/07/21 Срд 11:08:23 2095414313
bump
Аноним 14/07/21 Срд 15:17:17 2095656314
>>2093653
Хм, спасибо за ответ. А что конкретно делает конда и джупитер? Конда удалёный интпретатор?
Аноним 14/07/21 Срд 19:02:59 2095811315
Анон, можно ли выражение
for x,z in zip(list1, list2) переписать в виде for x,y, z in zip(enumerate(list1), list2) ?
Аноним 14/07/21 Срд 19:13:44 2095821316
Аноним 14/07/21 Срд 20:45:46 2095894317
Аноним 14/07/21 Срд 20:50:08 2095898318
А когда надо начинать использовать аннотации типов?
Аноним 14/07/21 Срд 20:52:52 2095901319
>>2095898
Для больших проектов, для распространяемых пакетов.
Аноним 14/07/21 Срд 21:19:22 2095924320
>>2095898
Никогда, этот бойлерплейт все раздувает в три раза а профиты очень сомнительные. Лучше уж тогда на джаве кудахтать.
Аноним 14/07/21 Срд 22:05:32 2095961321
>>2095898
Когда начинаешь думать "бля, а что это за объект приходит"
Аноним 15/07/21 Чтв 07:03:04 2096144322
Какого хера 3.9 требует десятую винду? И это единственная актуальная ветка питона сейчас. Что теперь без зонда в жопе в питон нельзя?
Аноним 15/07/21 Чтв 08:04:50 2096150323
Аноним 15/07/21 Чтв 08:09:36 2096151324
>>2096144

Я думал виртуалку Линукса запускать или установить линух в дуалбут. Зондов тоже не хочу
Аноним 15/07/21 Чтв 09:02:12 2096163325
Начал ради интереса изучать питона. Пытаюсь написать программу для угадывания выпавшего числа на кубике с помощью randint.


[code]from random import randint
def dice():
return randint(1,6)
a = int (input('number from 1 to 6 = '))
if a == dice():
print ('you lose')
else:
print('you win')
print ('dice =', dice())[/code]

на выходе получаю
number from 1 to 6 = 5
you win
dice = 4

ЧЯДНТ?
Аноним 15/07/21 Чтв 09:12:15 2096166326
>>2096163
если делаю это не используя создание отдельной функции, то всё работает как надо

from random import randint
dice = randint(1,6)
a = int (input('number from 1 to 6 = '))
if a == dice:
print ('you win')
else:
print('you lose')
print ('dice =', dice)
Аноним 15/07/21 Чтв 09:16:03 2096167327
>>2096163
>>2096166
Ты вызываешь dice два раза, следовательно оно каждый раз по новому рассчитывается
Аноним 15/07/21 Чтв 09:17:57 2096169328
>>2096167
А каким образом можно закрепить первый результат dice чтобы он потом вывелся в самом конце?
Аноним 15/07/21 Чтв 09:29:50 2096181329
>>2096163
>if a == dice():
>print ('you lose')

Почему если число угадано, то игрок проиграл?
Аноним 15/07/21 Чтв 09:31:51 2096184330
>>2096181
я изначально делал русскую рулетку, а потом подумал что это тупо - угадывать в какой ячейке пуля, сперва не заметил, а потом поменял местами win и lose вот тут
>>2096166
Аноним 15/07/21 Чтв 09:41:26 2096188331
>>2096169
Вынести в переменную
dice_value = dice()
Аноним 15/07/21 Чтв 09:47:35 2096194332
>>2096188
Спасибо, сработало.
Аноним 15/07/21 Чтв 11:42:54 2096266333
>>2096144
да заебали вы с зондами, 10 обычная винда, более стаильная чем предыдущие.
если тебя зонды волнуют то поставь лтсб или че там еще есть за урезки
главное бля ходишь со смартом который тебя так ебет зондами что если ты увидел дилдо в посте на дваче то тебе блядь реклама самотыков спамит а тут в винде че то испугался каких то зондов.
винде вообще похуй по сути, там все зонды это гугл хром ну или твой акк майкрософт, никто не запрещает сидеть под автономным аккаунтом или же под левым, зареганным на фейкомыло
Аноним 15/07/21 Чтв 13:08:46 2096306334
>>2095656
Anaconda - менеджер зависимостей + виртуальные окружения + альтернативная библиотека пакетов.
https://anaconda.org/conda-forge/pyspark
Нужно чтобы разные версии пакетов не мешали друг другу.
Отличие от других в том, что она управляет не только питоньими зависимостями, но и библиотеками на других языках.
Можешь поставить вручную все. Тут например описывается пердоленье со спарком на винде.
https://naomi-fridman.medium.com/install-pyspark-to-run-on-jupyter-notebook-on-windows-4ec2009de21f

Jupyter Notebook - это удаленный интерпретатор + веб-интерфейс + свои свистоперделки вроде ячеек, красивого вывода. Проще самому попробовать.
Клиент у тебя в браузере, а сервер может быть как локально, так и где-то удаленно крутиться, лишь бы был доступ к нужному адресу и порту.
Аноним 15/07/21 Чтв 13:18:48 2096318335
>>2096144
А старые что превратились в тыкву?
Тебе же ничего не мешает сидеть на неподдерживаемой 7, некоторые норкоманы и на хр сидят.
Аноним 15/07/21 Чтв 13:30:58 2096334336
>>2096266
Старое железо тоже не нужно?
>>2096318
Нет обновлений. Последнюю версию 3.8 вообще предлагают из исходников собирать - установщика нет. На xp, кстати уже никакой свежий 3.х питон не работает.
Аноним 15/07/21 Чтв 13:33:52 2096340337
пипец, новый тред раз в неделю, вы ебанулись? Лето же!
Аноним 15/07/21 Чтв 13:44:54 2096362338
>>2096334
Не надо ничего собирать.
Заходим на https://www.python.org/downloads/
Там есть список веток, смотрим 3.8, например. Там есть release schedule - PEP569 https://www.python.org/dev/peps/pep-0569

Видим 3.8.10: Monday, 2021-05-03 (final regular bugfix release with binary installers)
Это последний полноценный релиз в эту ветку, есть установщик. Дальше выкладывают только фиксы безопасности в исходниках, это нужно для поддержки легаси, никаких фич там нет.
Аноним 15/07/21 Чтв 13:56:06 2096381339
>>2096340
На лето выкатываешься, а потом усиленно вкатываешься по 26 часов в сутки за два месяца?
Аноним 15/07/21 Чтв 14:05:52 2096391340
>>2096334
ну я сижу на 10 на железе 2014 года, куда еще старее то?
питон так то требователен к ресурсам, на сильно старой некроте с ним очень ебано будешь себя чувствовать
>>2096381
как лучше выкатится на лето?
>>2096340
поясни за лето, нужно чиллить или как?
ты сам как чиллишь?
Аноним 15/07/21 Чтв 14:45:48 2096422341
Какова вероятность что я мог положить парсером крупный сайт? Скрипт парсит разделы барахолки. потом заходит в каждое объвление в разделе, парсит данные и качает картинки. Картинки парсит в многопотоке. Как то подозрительно его падение совпадает с тем как я запускаю скрипт.
Аноним 15/07/21 Чтв 14:48:02 2096423342
>>2096422
Ну всё, суши сухари, сядешь на бутылку за ддос.
Аноним 15/07/21 Чтв 14:54:38 2096426343
>>2096423
Пиздарики если так.
Аноним 15/07/21 Чтв 14:55:18 2096427344
Аноним 15/07/21 Чтв 16:44:45 2096524345
>>2096422
Значит это очень потешный крупный сайт, если он валится от запросов с одной пеки и не имеет защиты от дудоса
Аноним 15/07/21 Чтв 17:05:08 2096540346
>>2096391
Никак не чилю - либо шарюсь в кодах, либо пытаюсь отдыхать в постоянной тревоге за нехватку денежных средств.
Аноним 15/07/21 Чтв 17:36:29 2096555347
Аноним 15/07/21 Чтв 18:35:29 2096614348
>>2096540
зачем ты шаришся в кодах?
почему не работаешь например на стройке?
и почему не чиллишь, пацан? лето же!
Аноним 15/07/21 Чтв 18:39:33 2096621349
>>2096426
зачем ты так жёстко его парсишь?
алсо зачем ты это делаешь?
Аноним 15/07/21 Чтв 19:16:56 2096670350
Есть какое-то согласование именования переменных и функций? На том, на чем сейчас кодирую, привык все функции и переменные писать с большой буквы, если название переменной или функции из двух слов, то пишу так, к примеру, ClearTable(). Мне кажется так намного читабельнее всегда.
Аноним 15/07/21 Чтв 19:24:15 2096683351
>>2096670
Принято маленькие буквы и подчеркивания. Имена классов в кемелкейсе.
Вообще, поставь себе линтер, он будет тебе бухтеть по офф. стилю.
Аноним 15/07/21 Чтв 19:26:19 2096687352
>>2096683
Что за кемелкейс?
И что за линтер? Юзаю пичарм. Туда, как доп.модуль/плагин можно что-то поставить?
Аноним 15/07/21 Чтв 19:28:59 2096693353
>>2096687
В пичарме должно быть искаропки. Подчеркивает и есть аннотация, что не так.
Аноним 15/07/21 Чтв 19:31:21 2096698354
Странно, чем заглавные буквы не угодили в названии переменных и функций, по мне так намного читабельней
Аноним 15/07/21 Чтв 19:32:37 2096699355
>>2096698
В раных языках разная традиция, сложившаяся исторически.
Аноним 15/07/21 Чтв 20:29:55 2096783356
>>2096698
Ебашу в питоне кэмел-кейс без задней мысли. Проблемс?
Аноним 15/07/21 Чтв 22:13:20 2096895357
>>2096783
Обоссут в норм конторе где на каждый коммит запускаются линтеры и тесты.
Аноним 15/07/21 Чтв 22:41:08 2096929358
>>2096895
А может это я их обоссу за неспособность поменять конфигу линтера?
Аноним 15/07/21 Чтв 22:45:44 2096934359
>>2096687
Кемелкейс это когда кемелКейс
Паскалкейс это когда ПаскалКейс
Снейккейс это когда снейк_кейс
Аноним 15/07/21 Чтв 22:51:31 2096942360
>>2096783
В принципе так иногда делают. Даже в стандартной библиотеке такое есть, модуль logging например. И ещё другое есть.

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

Хотя не то, чтобы уникальная история, такое много в каком коде встречается на разных платформах.
Аноним 15/07/21 Чтв 23:05:46 2096967361
>>2096942
У меня снейк_кейс ассоциируется с низкоуровневым байтоебством, а конкретно с сишечкой. Конечно это плохо, когда нет единой стилистики, но для кода на языке высокого уровня кэмел кейс это стандарт на сегодня.
Аноним 15/07/21 Чтв 23:35:17 2096992362
>>2096614
хаха. расскажи мне сказку дядя. лето красное пропела оглянуться не успела, как зима глядит в окно..
Аноним 15/07/21 Чтв 23:42:31 2096999363
Че в питоне можно годами учить в Aiogram - Django?

За день изучения джанги создал простенький E-Commerce в соло, там дофига багов, тестов нет, но прям супер изи с одной докой в руках. Что люди умудряются годами изучать в Django or Aiogram, там же все просто как два пальца об асфальт, шок.
Аноним 15/07/21 Чтв 23:52:35 2097009364
>>2096999
Даннинг-Крюгер, ты?
Аноним 15/07/21 Чтв 23:55:56 2097015365
>>2096999
Хех, тащемта любой фреймворк на любом языке для опытного чела не проблема освоить за пару недель. Культ знания фреймворков это чисто пориджевский тренд, возникший в эпоху массового вката.
Аноним 16/07/21 Птн 00:36:18 2097035366
>>2088956
О, можешь про него подробнее рассказать?
Аноним 16/07/21 Птн 01:02:46 2097050367
>>2097015
>Хех, тащемта любой фреймворк на любом языке для опытного чела не проблема освоить за пару недель.
Это классический Даннинг-Крюгер.

Документация на Джанго это 2000 страниц. Две тысячи! Конечно, там не всё нужно. Правда не всё там изложено.

Но полноценное знание фреймворка подразумевает понимание многих тонкий вещей, надо что-то самому специально ломать, тренироваться на задачах, чтобы понимать слабые места, практики использования осваивать и т.п.
Аноним 16/07/21 Птн 01:07:47 2097051368
изображение.png 4990Кб, 1200x1800
1200x1800
>>2096929
Открывай ротеш, Гвидо писяет на тебя.
Аноним 16/07/21 Птн 01:12:09 2097053369
>>2097051
Надо футболку поменять на майкрософт
>>2096670
Да, в pep8
Аноним 16/07/21 Птн 01:12:27 2097054370
>>2096999
Ну давай запили мне сервис на 10 тысяч челобек с несколькими бд, к которым нужно обращаться параллельно + вставка и обновление данных в реальном времени + все пользователи должны лицезреть обновления в таблицах/диаграммах с возможностью вносить изменения. Изи, хуле.
Аноним 16/07/21 Птн 01:14:28 2097055371
>>2097009
>Даннинг-Крюгер
Пиздаболкин-Харкачевич скорей.
Аноним 16/07/21 Птн 01:32:09 2097064372
>>2097054
Ты неправильные примеры приводишь. Само собой, бывают задачи, которые долго реализовывать, как бы хорошо ты фреймворком и языком не владел.

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

На самом деле такого дохрена. Одна Django ORM чего стоит, со своими запросами, миграциями и другом. И куча других вещей.


Аноним 16/07/21 Птн 07:56:48 2097128373
>>2097064
Ну я за месяц джангу освоил и запилил первый сервис (опыта коммерческой разработки до этого не было). Даже джанга ненужна по итогу, всё на ДРФ переписал (и в будущем видимо придётся на фастапи переписывать). Другое дело, что сейчас нет понимания, моё это или не моё, т.к. "простенько в соло" запилить и долбоёб сможет. А нормально запилить, с редисом, селери, ювикорном и асинхронщиной хуй ты за месяц разберёшься в соло и без чужой помощи.
Аноним 16/07/21 Птн 08:44:37 2097138374
>>2097050
>для опытного чела

Но если ты вкатун, то да, джанга это неебаца хитроумный снаряд
Аноним 16/07/21 Птн 11:13:59 2097219375
Если я держу в оперативе объект, который шарится между разными потоками, есть ли смысл лочить его __gettattribute__ __setattr__ __delattr__? И если я держу такие объекты в питоновом словаре, есть ли смысл лочить этот словарь?
Аноним 16/07/21 Птн 11:17:23 2097225376
>>2097219
При модификации всегда надо лочить, ну и при чтении соответственно смотреть, не модифицирует ли сейчас данные другой поток.
Аноним 16/07/21 Птн 11:23:17 2097231377
>>2097128
>джангу освоил
ты мою колбасу за щеку освоил ;3
не удивлючь если ты вообще не въебываешь как работают сессии, миграции, мб даже мидлвари какие
>Даже джанга ненужна по итогу, всё на ДРФ переписал
на дрф без джанги?
Охуенный фреймворк, конечно можно запилить говно с какой нибудь статьи и решить, что ты изучил джанго, но на самом деле в фреймворке ебанутая масса охуительных фич "из коробки", но про них нужно знать и нужно знать как их комфортно пользовать. Что вообще значит годами изучать? Никто же не сидит годами читая доку. Разбираемся с возможностями по мере необходимости, узнаем что-нибудь новое спустя несколько лет после знакомства, блядь, очевидно же
Аноним 16/07/21 Птн 11:25:03 2097235378
>>2097225
А в каком смысле смотреть? Разве если данные модифицируются под локом, то другой поток не подождет пока операция закончится?
Аноним 16/07/21 Птн 11:32:47 2097239379
>>2097235
Смотреть как раз значит, что все операции чтения данных расшаренного объекта ты заворачиваешь в залоченную секцию
Аноним 16/07/21 Птн 11:33:09 2097241380
>>2096783
Я тоже петух охуевший, езжу по встречке, ссу на других за невозможность ездить нормально и не мешать мне.
>>2096698
А я вот не люблю кэмел-кейс, вообще прямо отвратительно, вот заебись когда у тебя классы большой буквой, с заглавной такие типо важные очень штуки, а методы и переменные маленькие скромные с бледной кожей и тонкими ручками.
Просто как не пишу на чем то с кэмел-кейсом - какой то бардак выходит визуально, в питоне код ровные полосочки одинаковой высоты а с кэмелкейсом буквы сКаЧуТ.Как.ебаНутые, есще этиПереходыВместоНормальнойЧерточкиКотораяКакПробелНоВсеРавноНеПробел. ИМХО_глазам_как_то_проще.
Аноним 16/07/21 Птн 11:34:34 2097243381
>>2096306
Спасибо анончик, то что надо!
Приколхозил в докере, вроде завилось.
Аноним 16/07/21 Птн 11:34:44 2097244382
>>2097239
Спасибо, решил вот пет монолитом написать, убедился что много слишком ебалова в питоне с асинхронностью и потоками, как то с микросервисами проще кажется.
Аноним 16/07/21 Птн 11:41:04 2097249383
>>2097231
>ты мою колбасу за щеку освоил
Очко своё напряги, а то сквозит на весь тред.
>не удивлючь если ты вообще не въебываешь как работают сессии, миграции, мб даже мидлвари какие
Так вы же сами выше кудахтаете, что джанга это хуйня, за 2 недели можно освоить. И зачем мне понимать, как работают хуки в промежуточном слое, если логика прописана в классах типа django.contrib.sessions.middleware.SessionMiddleware и т.п. Что там с миграциями и сессиями разбираться, makemigrations и migrate сложно понять, что делают?
>на дрф без джанги?
На голом дрф, через сериализаторы и контроллер, ну прикрутил ещё сваггер и адфс настроил для вин-аутентификации.
>Охуенный фреймворк, конечно можно запилить говно с какой нибудь статьи и решить, что ты изучил джанго, но на самом деле в фреймворке ебанутая масса охуительных фич "из коробки", но про них нужно знать и нужно знать как их комфортно пользовать.
А я как будто это не знаю, спасибо копетан. Я и написал выше, что свой говносервис первый написал за месяц, тупо читая книгу, оф доки и доки расширении. Сейчас пишу второй сервис для работы с олап-кубами, и пока только с логикой сервиса ебусь 3 неделю. Но это просто я же тупой пральна, а сеньоры с харкача конечно за 2 дня сделают, и сами сервак развернут и задеплоят.
Аноним 16/07/21 Птн 11:41:57 2097251384
>>2097244
Нах тебе вообще эта многопоточность? Заебенил бы на корутинах всё что надо
Аноним 16/07/21 Птн 11:46:02 2097255385
151795290914766[...].jpg 14Кб, 400x266
400x266
>>2097241
>методы и переменные маленькие скромные с бледной кожей и тонкими ручками

Мое ебало, когда вижу подобный мелкокод
Аноним 16/07/21 Птн 11:48:09 2097259386
>>2097251
Есть кароче слой хранилища, там скл и носкл бд + хранилище прямо в оперативе. Хотел что бы оно было доступно всем потокам и корутинам тоже. У меня сейчас в одном потоке апиха, в другом сервер вебсокетов, далее еще хочу воркеров накинуть каких-нибудь. Чтобы все это могло работать как отдельные сервисы в одном кластере, но минуя брокер сообщений и хттп запросы, чтобы не сериализировать джсоны постоянно.
Аноним 16/07/21 Птн 11:50:06 2097263387
>>2097259
А, ну тогда да, разноси это говно по разным процессам. Иначе забажит какой-нибудь вебсокетный код и пизда всему сразу
Аноним 16/07/21 Птн 11:52:21 2097266388
>>2097249
найс слив, мог бы уже не пытаться оправдаться, умей признавать поражение
Аноним 16/07/21 Птн 11:53:02 2097267389
>>2097231
А что там такого уникального в этой джанге, чего не было бы в любых других фреймворках на любых других языках? Роутер? Мидлвари? ORM и шаблонизатор из коробки? Если ты имел когда-нибудь дело с одним фреймворком, считай ты имел дело со всем такими же.
Аноним 16/07/21 Птн 11:53:38 2097268390
Аноним 16/07/21 Птн 11:57:30 2097273391
>>2097267
Ничего уникального, там все очень удобно просто.
Аноним 16/07/21 Птн 11:59:26 2097275392
>>2097273
ЕМНИП все писались кипятком от джанговской админки и прочего contrib-а. Причем в то же самое время ещё больше писались кипятком с рельсы, где было ещё больше батареек и ещё больше удобства
Аноним 16/07/21 Птн 13:19:02 2097364393
>>2097275
Ну вот такой способ быстро сайт наговнякать, большинство сетевых ресурсов не исполняют какую-то сложную логику же, для того и нужно
Аноним 16/07/21 Птн 13:22:20 2097370394
>>2097275
Ну вообще админка как бы заебумбная, ты че
>>2097364
Нормальные апи можно собирать, а тяжелая логика идет в микросервисы на го, не тяжелая но сложная - в микросервисы на питоне
Аноним 16/07/21 Птн 13:23:38 2097372395
>>2097370
>Нормальные апи можно собирать
Если тебе только апи нужно, то ебошишь FastAPI и не извращаешься с синхроностью самой джанги
Аноним 16/07/21 Птн 13:36:40 2097396396
>>2097364
Меня прост удивил местный шизик, который считает что изучение джанги это пипец какое достижение, ведь там столько сложных вещей типа ORM, лол.

А вообще сегодня никто не рендерит страницы шаблонизаторами на бэке. Сегодня модно JAM-stack, изоморфный код и serverless-аппы
Аноним 16/07/21 Птн 14:14:07 2097459397
Пилю апи на фласке, все просто, понятно, ошибок минимум. Сейчас понадобилось реализовать вебсокеты, и я охуел от того, что всё надо переписывать на асинхронный код. Фласк менять на асинхронный аналог, драйвер для бд тоже, сервер с WSGI на ASGI. Можно обойтись без этого говна? Мне просто нужно при пост запросе отправлять сообщение всем вебсокет клиентам.
Аноним 16/07/21 Птн 15:11:12 2097521398
>>2097459
Как ты себе представляешь несколько вебсокетов, крутящихся в одном потоке одновременно?
Аноним 16/07/21 Птн 15:12:52 2097526399
>>2097459
Так есть же библиотеки?
Аноним 16/07/21 Птн 15:53:39 2097547400
Поясните плис за тред и процесс? Тред это нить, канал по которому можно что-то пропустить, тот же веб сокетт. А процесс типо нечто из оси или проги, которые можно также пускать по треду. И типо можно за счет мультитреддинга реализовать мультипроцессинг. Я верно все понял?
Аноним 16/07/21 Птн 16:01:59 2097558401
>>2097547
упд синнхроный кодинг я понимаю, асиннхронный, когда код выполняется поочереди, дискретно, но в итоге получается континум выполнения проги, так?
Аноним 16/07/21 Птн 16:08:57 2097570402
Аноним 16/07/21 Птн 16:12:31 2097574403
>>2097558

Смотри, тхреады, это как человек сел посрать, и давит длинную колбасу, пока не досрёт следубшая не полезет. А асинхронн, это как кролик ебанный какойнибудь, с паузами высирает, но разные какахи. Ну и сооствественно надо учитывать что у одного срущего, может быть несколько жоп.
Аноним 16/07/21 Птн 16:21:43 2097594404
>>2097574
Тогда уж лучше пусть человек будет процессом. Если он срет, а потом блюёт - то это синхронное выполнение, а если одновременно и срет и блюёт то это асинхронное. Добавим второго человека уже будет мультипроцессинг
Аноним 16/07/21 Птн 16:53:07 2097657405
>>2097459
>Мне просто нужно при пост запросе отправлять сообщение всем вебсокет клиентам.
Так и что сложно переписать такое простое приложение? Делай отдельными сервисами: отдельно апи и отдельно сервер вебсокетов.
Аноним 16/07/21 Птн 17:19:26 2097692406
>>2087217 (OP)
У меня эрекция нахуй от одной мысли о создателе пайтона.
Аноним 16/07/21 Птн 17:20:24 2097696407
>>2097594
Ну вроде я верно понял тогда. А как быть с тредом?
Сел посрать - тред. Типо оболочка да?
Срет - это процесс.
Если срет и блюет, это типо асиннхронщина. Если сначал срет, потом блюет это синхроннщина.
Если добавить нового чела, то будет второй процесс да?
А можно двух людей обернуть в тред? И внутри треда делать треды?
Аноним 16/07/21 Птн 19:25:02 2097835408
Ку. Переписываю код неизвестной версии питона на тот язык что используется у меня в проприетарной системе. Почти всё переделал, но никак не могу точно разобрать что делает следующий код:
>block_dispatch_list = [column[indices] for column in dispatch_list]
dispatch_list - это двумерный массив режимов работы оборудования, indices - вектор содержащий индексы указывающие на номер в некотором списке оборудования
на 3.х питон не нашёл документации на конструкцию column[], а это точно служебное слово, такой переменной в коде у меня нигде нет. Кстати если просто вбить в гугл "column for column in" то 70% ссылок ведёт на доки pandas или на описания dataframe у которого синтаксис вообще другой, кекус.
На 2.7 питон нашёл использование row[], и теперь думаю что в block_dispatch_list копируются колонки из dispatch_list только с номерами из indices. Верно?
Аноним 16/07/21 Птн 19:30:55 2097844409
>>2097835
>а это точно служебное слово, такой переменной в коде у меня нигде нет.
Так вот же!
>for column in dispatch_list

А вся конструкция целиком называется генератором списков. (или нет, я на самом деле не знаю, как на русский переводится)
https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions
Аноним 16/07/21 Птн 19:38:57 2097853410
>>2097835
Эта сахарок для циклов, генерирующих списки. Разворачивается в
block_dispatch_list = []
for column in dispatch_list:
___block_dispatch_list.append(column[indices])
Аноним 16/07/21 Птн 19:40:07 2097854411
Аноним 16/07/21 Птн 20:00:53 2097866412
>>2097547
Процесс это инстанс запущенной программы. У него есть собственное виртуальное адресное пространство, набор открытых файловых дескрипторов, ему можно посылать сигналы.

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

У процесса есть как минимум один главный поток, но он может создать себе дополнительные. Создание потоков дешевле создания процессов, но все равно достаточно дорогое, так как требует память под стэк.
Памагите Аноним 16/07/21 Птн 20:52:53 2097906413
изображение.png 141Кб, 1200x630
1200x630
Приветствую вас, мудрые аноны и укратители змей.
В голове еще остались знания питуна, только с ООП беда, еще немного из анаконды есть в голове(флешбеки из библиотек).
Скажите, что прочитать/посмотреть, а так же где найти задания по питуну и конде?
Под анакондой я имею ввиду библиотеки типа тензорфлоу, матплотлиб и тп
да, датасайнс, да математику знаю
Пожалуйста, не писайте на меня
Аноним 17/07/21 Суб 08:39:42 2098150414
Анончики, нужна помощь с архитектурной точки зрения. Как вы рауты к AJAX-запросам именуете? Вот у меня есть форма с мнениями лайками к посту, которая AJAX-post отправляет, а раут не особо замысловатый - /vote/
Аноним 17/07/21 Суб 08:59:26 2098156415
Аноним 17/07/21 Суб 09:05:37 2098158416
>>2098156
Не, мне там рест не нужен пока. Вьюшка передает обратно срендеренный HTML. Потом думаю на Vue + GraphQL переехать
Аноним 17/07/21 Суб 09:40:27 2098181417
>>2097255
ПОЧЕМУ НЕЛЬЗЯ ПИСАТЬ КОД КАПСОМ?
Аноним 17/07/21 Суб 09:56:10 2098188418
>>2097906
обучай перцептроны
Аноним 17/07/21 Суб 10:58:43 2098210419
Сап, в этом итт треди вообще есть опытные змеевики? Мне низачем не нужно, просто хочется знать, почему вы все ещё юзаете пистон. Я уже столько всего на эту тему перечитал, но до сих пор не могу найти ни одного человека, который:
1. Знает несколько ЯП в одной и той же области применения
2. Имеет ИТ вышку
3. Юзает пайтон фуллтайм как основной язык и никуда не собирается при этом
4. Работает в индустрии, а не в науке

Сколько вас таких бедных?
Аноним 17/07/21 Суб 12:56:11 2098329420
>>2098188
С чего начать? Где начинать копать?
Аноним 17/07/21 Суб 12:57:11 2098331421
Поясните плис за архитектуру разработки.
Как я себе это представляю.
Я ставлю цель, и по пунктам реализую ее. Думаю должна быть модульность. То есть модули сделаны в виде процедурного стиля. Потом как-то на основах ООП все собирается и уже реализуется как-то в одном конфигурационном файле в декларативном стиле. Верно я понял?
Аноним 17/07/21 Суб 13:15:26 2098347422
>>2098329
тут уже мои полномочия всё
ну начни с визуализации , линейная регрессия, нормализации, РСА, тнсе, дбскан, там этой хуйни как говна за баней короче
обучение с учителем, без учителя и все такое прочее
а потом переходи на нейросети, сверточные, реккурентные и всё такое, пасан. я сам то в этой хуйне нихуя не понимаю
Аноним 17/07/21 Суб 13:18:21 2098350423
>>2098210
>Имеет ИТ вышку
это вообще дичь чисто для зумеров, ит вышки не существовало наверное до 2017 или позже.
так что ит вышки наверное еще и нет ни у кого.
То, чему учили скажем в 2010 это блядь эвм на перфокартах, это уже устарело лет 8 назад
то есть даже зумерок, который закончил вуз в 2014 там ит вышка уровня бейсика и эвм
Аноним 17/07/21 Суб 13:22:05 2098354424
>>2098350
Давай не будем. Я почему такие критерии привел - матерый питонист может получиться только при несоблюдении как минимум одного из них. Других я до сих пор за 10 лет не видел ни ирл, ни в интернетах.
Аноним 17/07/21 Суб 13:31:35 2098365425
>>2098331
Попробуй в официально-деловом.
Аноним 17/07/21 Суб 14:32:33 2098406426
>>2098210
1) Знаю пистон и ГОвно
2) Заканчиваю заочку
3) ГОвно только для пары сервисов было, остальное пистон
4) Беттинг
Аноним 17/07/21 Суб 14:45:03 2098417427
>>2098365
Не обижайся на слова, надо разобраться что такое архитектура разработки.
Аноним 17/07/21 Суб 14:52:21 2098422428
>>2098406
Го это не их той же оперы вообще. Ну говорю же. Попробуй другое что-нибудь, пистон забросишь нахрен.
Аноним 17/07/21 Суб 14:53:23 2098423429
>>2098417
Ты не разберёшься, пока не дойдешь до прикладных задач (а их у пистона очень немного).
Аноним 17/07/21 Суб 14:55:16 2098426430
Аноним 17/07/21 Суб 15:01:48 2098430431
>>2098426
В 3.10 будет, рассасывайся обратно.
А в чем его критическая необходимость, по-твоему? Есть куча других способов.
Аноним 17/07/21 Суб 15:16:47 2098439432
>>2098430
>В 3.10 будет, рассасывайся обратно.
Там какая-то адовая наркомания, до сих по не вкурил.

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

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

Кстати согласен, что switch не нужен, если язык поддерживает удобный else if, как elif в питоне, то получается эквивалентная конструкция очень легко читаемая.
Аноним 17/07/21 Суб 15:22:16 2098444433
>>2098350
>это вообще дичь чисто для зумеров, ит вышки не существовало наверное до 2017 или позже
Это ты просто зумер, для которого до 2017 года была какая-то другая эпоха, когда мамонты по улицам бродили, а бородатые программисты на счётах от них дубинами отбивались.

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

Но я не буду участвовать в сраче "вышка нинужна", говори что хочешь.
Аноним 17/07/21 Суб 15:30:08 2098448434
>>2098430
Ору, подвезут в октябре 2021. До этого надо было сосать и говорить "почему ита нинужна". Кстати, принципиально не будешь юзать свич, когда появится или прогнешься?
Аноним 17/07/21 Суб 15:33:14 2098451435
>>2098430
А как же принцип ридабилити каунтс? Не могли же они взаимоисключающие параграфы в свой манифест засунуть? Лол, не язык, а просто какой-то набор анти-паттернов.
Аноним 17/07/21 Суб 15:40:25 2098457436
>>2098448
Это и нинужно в большинстве случаев, просто пиздануто из си, где оно хорошо ложилось на концепцию переносимого ассемблера.
Юзать скорее всего не буду, потому что пока оно просочится в мейнстрим, я уже укачусь на другие языки, скорее всего.
Аноним 17/07/21 Суб 15:42:29 2098459437
>>2098448
В чем switch-case преимущество перед if-elif-else?
Аноним 17/07/21 Суб 15:45:06 2098464438
>>2098457
Зочем тогда питон? Я пытаюсь понять с 2013 года и не могу. Даже пишу на нем периодически один проект (который не я начал, естественно). Язык вкатывальщиков, учоных и сисодменов.
Аноним 17/07/21 Суб 15:47:42 2098470439
>>2098459
1. Удобнее читать
2. Не надо изобретать велосипед, если if elif кажется вдруг неудобным (иначе бы switch и не придумывали)
Аноним 17/07/21 Суб 15:50:20 2098473440
>>2098464
> Язык вкатывальщиков, учоных и сисодменов.
Примерно так и есть. Ещё всякие там автоматизации-ETL-дата процессинги.
Не вижу смысла впихивать любой язык во все возможные ниши.
Аноним 17/07/21 Суб 15:51:08 2098475441
>>2098459
Не знаю как в питоне сделают, в норм языках можно ещё и несколько условий сделать на каждый кейс, ифами это может чудовищно выглядеть.
Аноним 17/07/21 Суб 16:09:54 2098495442
>>2098470
>1. Удобнее читать
У тебя отступы для этого.
>иначе бы switch и не придумывали
А четкое понимает зачем это нужно есть?
Просто предъявлять претензии без обоснования своей позиции так себе занятие. Я вот не вижу как switch-case удобней читать.
>>2098475
>можно ещё и несколько условий сделать на каждый кейс
Вложенный цикл. Ничего необычного и разницы с обычным if нет.
> ифами это может чудовищно выглядет
А может выглядеть точно так же.

Не, я понимаю, если бы вы реальную функцию приводили в пример, но "ну так выглядит лучше" - это совсем не то. Вот нахера было в принт засовывать скобки - вот это я не понимаю. Нахера сейчас отсекать кучу народу от новых веток и потом пилить четвертого питона заставляя всех переучиваться так же как со 2 на 3 - тоже непонятно. Там Гвидо мог бы сразу новый язык писать - какого-нибудь ужика или глиста.
Аноним 17/07/21 Суб 16:12:17 2098497443
Ананасы, поясните за микросервисы на питоне:
К примеру я написал 3 модуля, они должны работать параллельно. К примеру каждый из них работает в своем контейнере, соответсвенно GIL у всех свой. А если я создам некий управляющий процесс, который будет запускать эти скрипты через subprocess.call ? Я так понимаю они запускаются в отдельных потоках, но что на счет гила?
Аноним 17/07/21 Суб 16:16:40 2098501444
>>2098497
А что насчет гила? Они сами по себе.
Но в целом это делается не так, а через очереди. Ты в главной хуйне пихаешь задачи в очередь, а воркеры уже автономно оттуда забирают.
Аноним 17/07/21 Суб 16:20:05 2098509445
>>2098495
Может ты просто никогда не писал switch-case? Другим почему-то не нужно доказывать его полезность, он есть практически везде и используется.

>Вложенный цикл
Это называется вложенный велосипед

>А может выглядеть точно так же.
Но там, где if выглядит "точно так же", никому и не приходит в голову юзать switch. Во всех остальных случаях он выглядит чудовищно.

Насчет переучивания - это просто персональная эволюция диктатора Гвидона, скоро допилят до нормального языка общего назначения.
Аноним 17/07/21 Суб 16:26:36 2098516446
>>2098422
А что вместо пистона? Руби мертв, шарподжавы слишком громоздкие, пыха для дебилов как и питон
Аноним 17/07/21 Суб 16:27:04 2098517447
>>2098495
>Вот нахера было в принт засовывать скобки - вот это я не понимаю.
А я как раз понимаю, это необходимо было делать.

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

Оператор print был таким конкретным сктиптовым легаси, который обязательно надо было выпиливать.

Самая лажа была с юникод-строками, вот там они протупили конкретно. Во втором питоне юникод-строки должны были начинаться с u"строка", а в третьем питоне все строки стали юникодными (это тоже очень правильно), но они запретили синтаксис u"строка".

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

Это пиздец как убивало. Несколько лет потребовалось, чтобы потом они разрешили использовать префикс u в третьем питоне, когда это уже перестало быть настолько актуальным.

>Нахера сейчас отсекать кучу народу от новых веток и потом пилить четвертого питона заставляя всех переучиваться так же как со 2 на 3 - тоже непонятно
Четвёртого питона не планируется. В питон добавляют какой-то функционал, но обратная совместимость сохраняется, только модули чистят некоторые, но медленно и предупреждая заранее.

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

Аноним 17/07/21 Суб 16:34:50 2098522448
>>2098509
>Но там, где if выглядит "точно так же", никому и не приходит в голову юзать switch.
Приходит, в основном его только так и использовали, тогда, когда лучше if-else.

Если посмотреть код на C/C++, то там на практике в большинстве случаев у каждого непустого case будет break. А это полная аналогия с if-else.

If-else не делали, потому что другие традиции по скобкам и отступам в C/C++ были.

switch-case дополнительные возможности даёт тогда, когда ты в каком-то case делаешь часть работы, в следующем продолжаешь для более общего случая. Но это редкие случаи, очень запутанная логика и вообще грязный код.
Аноним 17/07/21 Суб 16:39:41 2098525449
>>2098509
>Другим почему-то не нужно доказывать его полезность
Ну теперь понятно почему ты сам не понимаешь зачем он нужен. Просто везде он есть, значит "ну, наверное, нужен". Миллионы мух, ведь не могут ошибаться.
>Это называется вложенный велосипед
К чему это ты? Как у тебя вложенный цикл switch отличается от такого же с if? Тут вообще никакой разницы нет и быть не может.
>никому
Кому "никому"? Ты все посты тут от имени каких-то "всех" пишешь, но конкретики ни в аргументах, ни в использовании так и не привел.
Вообще спор о том какая традиция лучше, а именно спор о тррадициях, а не о функционале считаю пустым.
>>2098517
>У тебя print это функция, соответственно ты можешь работать с ним, как с функцией, обвязки вокруг делать, передавать как параметр куда-нибудь, параметры более хитрым образом передавать и т.п.
Ну так сам принт в скобки и зажимай. Зачем аргумент зажимать?
>Четвёртого питона не планируется. В питон добавляют какой-то функционал, но обратная совместимость сохраняется, только модули чистят некоторые, но медленно и предупреждая заранее.
Это сейчас не планируется. А к 2025 найдут опять неисправимую уязвимость,решат что пришло время и под этим соусом переделают половину синтаксиса.
Аноним 17/07/21 Суб 16:43:33 2098532450
>>2098473
>Не вижу смысла впихивать любой язык во все возможные ниши.
Ты забываешь о том, что язык это платформа.

Питон это не только синтаксис, это ещё большая библиотека в коробке, много сторонних библиотек, удобный pip и venv, сообщество и документация. Почему не питон, когда можно и на питоне?
Аноним 17/07/21 Суб 16:43:54 2098533451
А паттерн матчинг это как
Аноним 17/07/21 Суб 16:49:04 2098538452
>>2098525
>Это сейчас не планируется. А к 2025 найдут опять неисправимую уязвимость,решат что пришло время и под этим соусом переделают половину синтаксиса.
Этого явно уже не будет.

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

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

Поэтому новой ветки не будет. Скорее просто придумают новый язык по мотивам питона, это будет закономерно. Уверен, что произойдёт когда-нибудь, противоречий в языке накопилась масса.
Аноним 17/07/21 Суб 16:49:19 2098539453
>>2098516
Раби жив, как цой. Серьезно, там уже всё придумали, он типа жабы для веба теперь, только не такой душный.
Аноним 17/07/21 Суб 16:51:45 2098540454
>>2098459
Ни в чём, это синтаксический сахар.
мимо asm dev
Аноним 17/07/21 Суб 16:55:54 2098543455
Пацаны, стоит учить питон?
Выучил верстку(html и css) и понял что это хуйня говняная с еблей мардижинами у блоков и стилизированием текста. Короче сумасшедшая хуйня, я не знаю как там можно 500 макетов сверстать и не сойти с ума. Короче решил в бек пойти. Питон норм вариант? Говорят что легкий для новичков. Ну хз. Вот выучу я питон с джанго и фласком и sql, а дальше как? На фрилансе заказы искать чтобы портфолио забить? И потом вофис когда норм портфолио соберется? Подскажите пожалуйста.
Аноним 17/07/21 Суб 16:56:46 2098546456
>>2098543
И да. Начал учить ЖС, он мне в беке бесполезен будет? Мне закончить с ним посоветуете и сразу пойти на питон или как?
Аноним 17/07/21 Суб 16:59:06 2098552457
>>2098543
а дальше как?
NICAQUE
На фрилансе видел на питоний веб только готовых специалистов на живой проект.
Аноним 17/07/21 Суб 16:59:50 2098554458
>>2098525
>К чему это ты? Как у тебя вложенный цикл switch отличается от такого же с if? Тут вообще никакой разницы нет и быть не может.
Switch не нужен вложенный цикл, можно просто добавить условий на один и тот же кейс. А вот if (вложенный_цикл) выглядит как хуйня. Почему цикл вообще? Давай рекурсию юзать, нахрен этот синтаксический сахар?
Аноним 17/07/21 Суб 17:00:48 2098558459
>>2098552
Подожди, то есть практику никак на питон не набить? Чет ты пиздишь
Аноним 17/07/21 Суб 17:02:39 2098562460
>>2098558
Не парься, ты через неделю на что-то другое перескочишь.
Аноним 17/07/21 Суб 17:03:52 2098564461
Аноним 17/07/21 Суб 17:04:42 2098566462
>>2098564
Вот до чего верстка доводит, на людей бросается.
Аноним 17/07/21 Суб 17:06:36 2098571463
>>2098522
>Приходит, в основном его только так и использовали, тогда, когда лучше if-else.
Ну вот смотри как в руби используют:

case item.class.name
when "Meeting"
item.start_time
when "Payment", "InsurancePayment"
item.paid_at
end

А если там целая куча этих вариантов? Как это будет на ифах и вложенных циклах?
Аноним 17/07/21 Суб 17:09:39 2098580464
>>2098554
какой в жопу цикл, вы о чём, аноны?

На условном языке, switch:

switch letter:
____case 'a': do_a(); break;
____case 'b':
____case 'c': do_bc(); break;
____case 'd': do_d();
____case 'e': do_e(); break;

90% кода реально это возможности a-b-c, и они полностью перекладываются на одномерный if-else

if letter == 'a':
____do_a()
elif letter == 'b' or letter == 'c':
____do bc()

Единственный минус, это letter в каждом условии явно указываешь, но зато добавляется дополнительная гибкость, можно более сложные проверки делать, чем в case.

А вот случай d-e уже сложнее, требуется вложенный if-else и немного коряво это будет. Но таких случаев не так много.

Полный аналог switch можно сделать с помощью цикла, может это анон имел в виду. Тогда будет
for _ in range(1):
____if letter == 'd':
________do_d()
____if letter == 'e':
________do_e():
________break

То есть тут не цикл, конечно, тут просто цикл ради оператора break.
Аноним 17/07/21 Суб 17:09:43 2098582465
>>2098571
if item.class.name == 'hui'
elif item.class.name in ('govno', 'mocha')
Аноним 17/07/21 Суб 17:12:42 2098587466
>>2098582
И ещё сто раз item.class.name.
Аноним 17/07/21 Суб 17:14:28 2098590467
>>2098587
КОКОЙ СТРАШНЫЙ ОВЕРХЕД
Аноним 17/07/21 Суб 17:16:01 2098592468
>>2098571
>case item.class.name
>when "Meeting"
>item.start_time
>when "Payment", "InsurancePayment"
>item.paid_at
>end
Чем это хуже чем

_item = item.class.name
if _item == 'Meeting':
____ item.start_time
elif _item in ['Payment', 'InsurancePayment]:
____ item.paid_at()

Ну вот такой список вариантов. Реально, не вижу разницы.

Реально проблемой было, что оператора := не было до 3.8, это был персональный бзик Гвидо, но его переломали в этом и вроде как сломали этим. Без возможностей := действительно многое превращается в ад, в два раза больше строк. Ну не очень часто, но бывает такое.
Аноним 17/07/21 Суб 17:31:46 2098623469
>>2098590
Дело не в оверхеде, читать противно.

>>2098592
Хуже тем, что надо знать, что switch не существует, когда это уже давно де-факто стандарт. Плюс If открывает ненужные возможности и заставляет читать всё от начала до конца, не вхуярили ли там какое-то ещё условие вместо обычного соответствия item чему-то. Когда видишь switch, сразу интуитивно понятно, что мы проверяем одну конкретную вещь, которую сверху написали.
Аноним 17/07/21 Суб 17:39:46 2098649470
>>2098623
По-моему, ты на ходу придумываешь какие-то нелепые придирки. В каждом языке вагон всякого говна и ничего, как-то блять читают.
Аноним 17/07/21 Суб 17:59:01 2098681471
>>2098649
Ну так-то всё придирки, да, можно и на перфокартах. Я просто заебался понимать, почему питон такой, почему в нем всё не как у людей.
Аноним 17/07/21 Суб 18:14:07 2098701472
>>2098347
>я сам то в этой хуйне нихуя не понимаю
Блин, круто
Лан, во всяком случае спасибо
Аноним 17/07/21 Суб 18:57:47 2098784473
Пока местные воюют против свитчей и ифов, я делаю словарь вида {вариант: код} и прямо в месте его создания делаю .get(switch-value, default-branch)()
И никакого бугурта.
Мимо 300ккк-нс джун
Аноним 17/07/21 Суб 19:01:31 2098795474
>>2098331
ап, пояснтие за архитектуру на пистоне.
Аноним 17/07/21 Суб 19:11:09 2098810475
>>2098784
Вот ты главный велосипедист, я этот вариант даже не упоминал, потому что он самый ебанутый.
Аноним 17/07/21 Суб 19:19:24 2098821476
>>2098444
я учился в 2000 году в универе, у нас БЫЛИ МАГНИТЫНЕ ДИСКЕТЫ на 3 мегабайта, чел.
ты щас даже не сможешь написать приложение чтобы оно занимало меньше 3х мегабайт
Аноним 17/07/21 Суб 19:26:28 2098832477
>>2098821
>БЫЛИ МАГНИТЫНЕ ДИСКЕТЫ на 3 мегабайта
Это что за дискеты такие? На полтора помню были, но на три?
Аноним 17/07/21 Суб 19:28:28 2098833478
>>2098832
Старческий склероз, хули.
Аноним 17/07/21 Суб 19:29:14 2098834479
>>2098821
На сишечке напишешь, почему нет?
Аноним 17/07/21 Суб 19:42:58 2098852480
>>2098832
1,44 Mb были.

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

Уравнение касательной, проведённой к графику функции y=sin(x-Pi)+1 в точке его пересечения с осью ординат, имеет вид.
1) y = x+1; 2) y = x-1; 3) y =- x-1; 4) y =1- x.
Правильный вариант: 4.

Мои рассуждения https://imgur.com/bhyPnff
Гляньте, пожалуйста, кто шарит.
Аноним 17/07/21 Суб 20:05:21 2098873481
Аноним 17/07/21 Суб 20:17:44 2098884482
image.png 52Кб, 474x116
474x116
>>2098852
Ты сложно решаешь же. Надопросто понять геометрический смысл переменных.
Вот у тебя y=sin(x-Pi)+1
Что значит +1? Что весь график будетвыше на 1. То что было в y=0, то станет y=1, то, что было y=0.2, станет y=1.2.
Что значит -Pi? Что график сдвинется на Pi влево. Что было x = pi, то станет х=0, что было х=10pi, станет х=9pi.
Базовый график был y=sin(x)

Берёшь картинку, двигаешь график, и получается, что ось оординат пересечётся в точке, которая была x = Pi, y = 0 (можно посчитать любую из них, но и так видно), а стала x = 0, y = 1. Касательная к ней, соответственно, будет
y=-x (потому что график в этом месте падает под 45°
и +1
x = -x+1
Аноним 17/07/21 Суб 20:19:09 2098887483
Аноним 17/07/21 Суб 20:24:08 2098890484
>>2098873
Может теоретически и были, я никогда не видел.
Аноним 17/07/21 Суб 20:28:29 2098892485
>>2098852
Прочитал твои рассуждения, ты вычислил, где она пересекается с осью абсцисс (y=0 => ось x), а ось ординат — это ось y (x = 0)
Аноним 17/07/21 Суб 20:37:18 2098898486
Ушел в репетиторы, уже появилось пару людей которые "забронировали" занятие, первое занятие будет во вторник. Сабж в том, что я вроде много знаю, но мне сложно пояснить все словами, поэтому я начал проходить заново ролики Тимофея и читать Марка Лутца, пишу что то вроде лекций в блокнот, попутно добавляя задачи для решения. Нормально ли это, подумываю отказаться, но с другой стороны деньги хорошие предлагают.
Аноним 17/07/21 Суб 20:40:54 2098900487
>>2098898
Лох прет - не окучишь ты, так другие.
Так что если тебя не напрягает моральная сторона вопроса, то почему бы и нет, лол.
Аноним 17/07/21 Суб 21:03:51 2098915488
Аноним 17/07/21 Суб 21:04:30 2098916489
>>2098898
бля, главное уметь пиздеть.
если ты ебано объясняешь то ты в прососе
Аноним 17/07/21 Суб 21:04:49 2098918490
>>2098900
я например не могу наябывать людей, сынок
Аноним 17/07/21 Суб 21:04:55 2098919491
>>2098915
Я тоже чето таких не припоминаю.
Аноним 17/07/21 Суб 22:32:51 2098977492
>>2098898
>Нормально ли это, подумываю отказаться, но с другой стороны деньги хорошие предлагают.
Попробуй, не получится — вернёшь им деньги, скажешь, что ты неподходящий учитель для их детища.
Аноним 17/07/21 Суб 22:40:40 2098984493
>>2098977
> вернёшь им деньги, скажешь, что ты неподходящий учитель для их детища.
Не надо так делать и кодировать в себе неудачника.

Причём родители будут плохо думать из-за этого.

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

>>2098918
Ты будь готов, что у тебя люди будут непонимать совсем такие вещи, которые вроде бы очевидны. И тебе надо думать не над лутцем, а над тем, как сделать так, чтобы они это поняли.

Вот банально такие вещи, что такое цикл или функция.

Люди не алгоритмы, формальным описанием они не программируются. Крутым программистом тебе не нужно быть, теме надо уметь учить, это разные вещи.
Аноним 17/07/21 Суб 22:43:31 2098987494
>>2098915
Не было. Как дед говорю, который пользовался дискетами.

Там в теории были, но ни стандартные дискеты, ни дисководы такой формат не поддерживали.

То есть технология допускала, но реализовано массово этого не было.
Аноним 17/07/21 Суб 23:50:14 2099042495
image.png 2545Кб, 1280x1280
1280x1280
image.png 126Кб, 300x306
300x306
>>2098984
бля,это не я учить собрался,я прост не могу наебывать. нужно переадресовать твой коммент тому, кто учить собрался.
алсо я бы может и рад учить, но у меня такой бзик что я не могу учить за бабки чему -то , если сам в этом не шарю на 100%.
а шарить в птионе на 100% это надо дрочить лет 5 минимум еври дей разные задачи, что нереально.
>>2098987
я тоже пользовался, вроде 3 мб были. Хотя ХЗ, может припарил уже. но насколько помню были на 3 и на 1,5. на 3 блатные считались
вот нашел даже большего обьема
Аноним 18/07/21 Вск 00:05:41 2099045496
>>2099042
>вот нашел даже большего обьема
Вот если бы ты у себя на антресоли нашёл такие, тогда бы да. Но их не было и нет в постсовке.
Аноним 18/07/21 Вск 00:15:28 2099049497
image.png 250Кб, 1654x1416
1654x1416
>>2098784
Обоссывание высшего уровня, от самого. И ещё такой - вот вам костыль, но эй, осторожнее с этим, а то аттакеры смогут вызвать любой метод! Вот это я понимаю продуманный язык, лаконичный, ничего лишнего, лол.
Аноним 18/07/21 Вск 00:46:41 2099060498
>>2099045
Анон что-то путает, время переписало воспоминания.

Ни разу не видел сам 2.88, хотя слышал тогда, что такие существуют и даже искал по-возможности, меня такие штуки интересовали.

Зашёл сейчас на амазон, там продают очень много дискет, несколько сотен предложений. Отсмотрел первые 10 страниц, то есть 150 предложений, там в основном 3.5 по 1.44 и 720кб, реже 5-ти дюймовые дискеты. Ни одного варианта на 2.88 не вижу. Может где-нибудь есть, но это что-то единичное.

То есть такие дискеты и у американцев были в статусе очень большой экзотики, тогда как 1.44 самый массовый продукт.
Аноним 18/07/21 Вск 00:56:19 2099067499
>>2099042
>алсо я бы может и рад учить, но у меня такой бзик что я не могу учить за бабки чему -то , если сам в этом не шарю на 100%.
>а шарить в птионе на 100% это надо дрочить лет 5 минимум еври дей разные задачи, что нереально.
Чтобы учить программированию противопоказано знать слишком круто. Тебе просто сложно будет обучать.

Это вообще разные скиллы.

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

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

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

А ученику с тобой сложно, потому что тебе вроде как очевидно, а ему нет.

Тому ученику, которому дебри нужны, репетитор скорее всего не нужен, он сам научится по книгам.
Аноним 18/07/21 Вск 01:01:58 2099069500
>>2098898
Я бы хотел кстати попробовать кого-нибудь порепетировать. Как такие предложения найти? И ты вкатунов учить собираешься, или школьников-студентов?

Вкатунов бы, пожалуй, не очень хотел.
Аноним 18/07/21 Вск 01:12:00 2099072501
Парни, решил вкатиться в этот ваш пайтон. Знаю джаву слегка (ну основы + спринг на крудах), эскьюэль + могу верстать и джавоскрипт писать слегка (на уровне компонентов реакта, лол).

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

С чего начать? Вот открыл книжку лутца, а там воды больше чем в моем дипломе по финансам. Просто ебаный океан блядь.
Дайте гайдлайн по книжкам и че там начиная от основ, заканчивая джангой, тестированием и прочему говну. Я вроде так понял что алгоритмы у патлатого на ютубе, это ладно. Че по остальному?
Аноним 18/07/21 Вск 01:30:32 2099075502
>>2099072
можно даже не книжки, можно даже курсы какие-нибудь не инфобизнесменские тока
Аноним 18/07/21 Вск 01:38:57 2099077503
Пиздаа, этот дурак умудрился растянуть начало описания ООП аж до второго тома, а че еще на десяток не растянул? Он че, ебанутый?
Аноним 18/07/21 Вск 01:54:54 2099079504
marklutzlearnin[...].jpg 97Кб, 810x1080
810x1080
6b9gom3pa6e41.jpg 584Кб, 4032x1908
4032x1908
>>2099077
На самом деле это один ебовейший кирпич, тома в переводной.
Алсо, сюрприз, такой кирпич не один, лол.

Но книга хорошая, хоть и старая, в ней реально много всего. В питоновских книжках очень большой перекос в сторону ньюфажеских, которые покрывают небольшую часть для хоть какого-то использования. А попродвинутее мало, Лутц это одна из них.
Аноним 18/07/21 Вск 02:25:47 2099084505
>>2099079
а вообще, есть ли смысл вкатываться в пайтон без мат бэкграунда?
Я уже всю математику забыл к херам, максимум могу простенькие алгоритмы сложность подсчитать, и то там математика особо не нужна, чисто на рефлексах понятно где логарифм, а где степень, а где что-то среднее.
Я так понял, в пайтон идут только для машинлернинга и дата саенс? В джангу крудить никак не устроишься из-за того что пайтон легче чем энтерпрайз языки? Я вроде видал несколько вакансий даже в моем мухосранске на макака-круд работу, но из-за того что язык легче, таких макак будет больше конкурентов, да?
Аноним 18/07/21 Вск 02:45:08 2099085506
>>2099084
Язык не легче, он максимально ебанутый, тупо хайп идёт и всё.
Аноним 18/07/21 Вск 02:47:52 2099087507
>>2099084
Язык не легче, у него более ясный и "красивый-четкий" синтаксис. Имеется в виду не легче js, php и прочего из мира веба.
Аноним 18/07/21 Вск 02:52:35 2099088508
>>2099087
>более ясный и "красивый-четкий" синтаксис
Неконсистентный с самим собой и намеренно нарушающий общепринятые конвенции других языков.
Аноним 18/07/21 Вск 02:56:03 2099089509
>>2099088
Я как нубик говорю, который видел пыху (когда на фрилансе пыхтел), пытался в js, видел джаву (в книжечке и на курсах), видел плюсы у друга.

Питон это такой ЯП, на чей код ты смотришь и можешь почти все понять сразу - вот здесь цикл, вот здесь условие, вот здесь функция, сравнения, переменные и прочее. В начале это прям дикая завлекалочка для вкатуна.
Аноним 18/07/21 Вск 02:57:53 2099092510
Аноны, есть csv-файл, и есть таблица, содержащая данные из этого файла (не все). Как быстро сравнить файл и таблицу и найти разницу в данных?
Сейчас я делаю так: загружаю таблицу в другой csv-файл, и каждую строку из первого файла ищу во втором. Короче, медленно. Можно ли быстрее?
Использую python (можно bash)
Аноним 18/07/21 Вск 02:59:07 2099093511
>>2099089
Только это. Для профессиональной разработки чего-либо - абсолютно непригоден, хотя некоторые умудряются. Медведя тоже можно научить ездить на велосипеде.
Аноним 18/07/21 Вск 03:08:25 2099094512
>>2099092
Сколько файлы весят? Можно пожертвовать памятью если влезет весь файл все строки из первого файла сохранить в множество (set), потом проверка каждой строки будет за O(1) вместо O(n)
Аноним 18/07/21 Вск 03:22:41 2099097513
>>2099093
Прототипирование + не забывай что к Питону прибегают ученые и математики (которые как бе не программисты, но иногда и им надо).
Аноним 18/07/21 Вск 03:47:45 2099100514
>>2099092
спасибо, анон, попробую. На размер файлов ограничений нет, ну думаю порядка ~10к строк
Аноним 18/07/21 Вск 03:48:10 2099101515
Аноним 18/07/21 Вск 07:31:22 2099120516
Аноним 18/07/21 Вск 08:12:54 2099134517
>>2099088
>>2099093
Ты начал джихад против питона, потому что там нет свитч?
Аноним 18/07/21 Вск 09:13:28 2099188518
>>2099097
>Прототипирование
Всегда прикалывало это слово. Такие с умным видом произносят, как будто реально бывает так, что сначала делают на питоне из расчёта, что потом будут переписывать на java/c#.

ЛОЛ, нет, конечно, фантастика. Бывает иногда, что сделают на одной платформе, потом упираются в производительность и переписывают на другую, полностью или частично, но это другое всё-таки.
Аноним 18/07/21 Вск 09:28:43 2099191519
Аноним 18/07/21 Вск 09:32:19 2099196520
>>2099049
Про словари
>Обоссывание высшего уровня, от самого.
чем плохо-то? Кроме аргумента "там рядом перечислен другой вариант с возможным выстрелом в ногу" что-то можешь привести?

Про второй способ - ну какой же яп без способа выстрелить в ногу. Да и выстрелить вряд ли получится - если программист в курсе гетаттра, то очень вероятно, что знает и про то, как защититься от уязвимости такой. Например, способом, описанным на твоем же скрине.
Аноним 18/07/21 Вск 12:07:18 2099285521
Аноним 18/07/21 Вск 12:43:43 2099307522
>>2099188
>потом упираются в производительность
На пистоне можно упереться в производительность или на мат операциях или когда монолит делаешь, для среднего проекта распиленная на микросервисы архитектура нормально подходит. Потом если нагрузка возрастает и девопс начинает приносить жирные счета можно переписать часть системы на что-то более производительное.
Аноним 18/07/21 Вск 13:12:20 2099347523
>>2099307
Легче сразу на чем-то другом писать.

>>2099196
>>2099134
Кажется я потерял остатки уважения к этому языку, когда сам попробовал им воспользоваться. До этого отказывался от мысли, что такой инвалид может быть популярным языком, который везде и всюду суют, думал - ну мало ли какая причуда, значит были на то причины. Но нет, оказалось, не было. Просто главный дезигнер тешил своё эго, а вы теперь попробуйте на этом ехать.
Аноним 18/07/21 Вск 13:21:16 2099356524
>>2099347
>Легче сразу на чем-то другом писать.
Не легче, по скорости разработки ему нет равных, особенно если вы стартап пилите, где фичи нужно каждый спринт по фиче выливать. Для MVP это очень важные качества, так же быстро только на рубях можно.
Аноним 18/07/21 Вск 13:23:44 2099359525
>>2099356
Вот на рубях и надо. Змеиного уродца всегда можно сбоку заюзать, если уж так нужен ML, AI и все такое.
Аноним 18/07/21 Вск 13:26:11 2099364526
>>2099359
>Вот на рубях и надо
Питонячьих разрабов легче искать
Аноним 18/07/21 Вск 13:34:51 2099369527
>>2099092
Что значит "таблица"? эксель что ли?
Делаешь df1 = pd.read_csv("file1.csv"), df2 = pd.read_excel("file2.xlsx"). Нарезаешь столбцы как тебе надо. Можешь даже создать столбцы типо df1['source'] = "file1". И сделать потом pd.concat([df1.drop('source'), df2.drop('source')]).drop_duplicates(keep=False, subset=df1.columns.drop('source')).
Аноним 18/07/21 Вск 13:38:29 2099373528
>>2099364
Сомневаюсь, что профи среди них больше, чем на любой другой ЯП. Может ещё заколебаешься фильтровать. Разве что под обучение набрать, таких да, пруд пруди.
Аноним 18/07/21 Вск 13:45:15 2099382529
>>2099373
>Сомневаюсь, что профи среди них больше, чем на любой другой ЯП
Причем тут другие ЯП если мы про руби и питон говорили? Тебе конкретную задачу назвали под которую питон подходит, MVP для мест, где скорость разработки важна. У рубей в еще в середине десятых проблемы были.
Аноним 18/07/21 Вск 13:49:40 2099387530
>>2099382
Какого плана проблемы? С поиском разрабов?
Аноним 18/07/21 Вск 13:55:11 2099396531
image.png 49Кб, 700x350
700x350
>>2099387
Да, и с вакансиями тоже
Аноним 18/07/21 Вск 14:03:24 2099404532
>>2099396
А, ну лол. Если сейчас как в 2013 - значит всё норм. Не помню, чтобы у кого-то были проблемы. Просто нет хайпа и всё. Все, кто хотят - находят работы и работников. А что за проблемы в середине десятых, если там как раз самый подъем был?
Аноним 18/07/21 Вск 14:08:38 2099407533
>>2099404
>А, ну лол. Если сейчас как в 2013 - значит всё норм.
Кроме того, что с каждый годом идет падение

>А что за проблемы в середине десятых, если там как раз самый подъем был?
Тогда уже начала падать популярность, дроп вакансий произошел с задержкой
Аноним 18/07/21 Вск 14:12:22 2099411534
>>2099407
А почему Руби начал помирать - есть кулстори в виде блогозаписи какой-нибудь?
Аноним 18/07/21 Вск 14:20:56 2099417535
>>2099411
Язык одного фреймворка из которого спиздили киллер фичи в другие фреймворки, типа той же джанги. Как поняли, что можно быстро говнякать сайты на других языках с более широким профилем применения так свалили туда. Да и питонячий асинкио выстрелил в то время, как руби мог только срать тредами с GIL.
Аноним 18/07/21 Вск 14:30:55 2099422536
>>2099417
А можешь рассказать (если знаешь) почему Питон выбрали всякие ученые, математики и прочие люди в науки и около нее для своих моделей и мат. расчетов?
Аноним 18/07/21 Вск 14:47:56 2099437537
>>2099422
Меньше шансов выстрелить себе в ногу + простое написание либ с сишным бекендом
Аноним 18/07/21 Вск 14:53:26 2099447538
>>2099417
>Да и питонячий асинкио выстрелил в то время, как руби мог только срать тредами с GIL.
Чего там выстрелило, когда оно появилось всего лишь 3 года назад? Ещё даже заюзать мало кто успел, наверное.
Аноним 18/07/21 Вск 15:04:49 2099466539
>>2099447
Дед, async/await вышел еще в 2015, 6 лет прошло уже, а еще год до этого можно было через декораторы делать. Аiohttp уже в 2016 релизнулось.
Аноним 18/07/21 Вск 15:23:07 2099484540
>>2099466
Все равно нафиг не нужен для веб-дрисни, а другое в сравнении с руби и не обсуждается.
Аноним 18/07/21 Вск 15:44:05 2099502541
>>2099484
Руби вообще труп. Сначала отвалились рельсы, он зацепился ещё каким-то чудом в области девопс, а теперь его оттуда выпизднул го.
Аноним 18/07/21 Вск 15:48:33 2099503542
>>2099484
>Все равно нафиг не нужен для веб-дрисни
Ну вот захотел я найти асинхронный клиент для amqp
Есть это, не обновляется с 2020 года и поддерживает только дропнутые версии рубей
https://github.com/ruby-amqp/amqp

Есть банни, но там по треду на коннект, что вместе с GIL убивает производительность.
>it maintains its own I/O activity loop in a separate thread, one per connection.

>а другое в сравнении с руби и не обсуждается
Потому что для другого руби не нужны и там нет нужных либ
Аноним 18/07/21 Вск 17:24:25 2099622543
>>2099503
Просто объясни зачем тебе RabbitMQ на руби, если там есть sidekiq? Сложно это понять. Ну типа разве что там какая-то олдовая кодовая база, которую надо перевести на языкнейм, в данном случае пистон.
Аноним 18/07/21 Вск 17:32:43 2099638544
>>2099502
Не знаю чо там отвалилось у вас, я на нем работаю 8 лет и всё ок, основные гемы обновляются регулярно, новых сотрудников дохуя влилось за последний год. Хз, сравнить с питоном не могу, профессионально им не занимался, но то, с чем столкнулся в побочном проектике - неприятно удивило меня.
Аноним 18/07/21 Вск 17:33:03 2099639545
image.png 538Кб, 640x640
640x640
>>2099622
>Просто объясни зачем тебе RabbitMQ на руби, если там есть sidekiq?
>сравнивать бекграунд процессинг и брокер сообщений
Ты серьезно сейчас?
Аноним 18/07/21 Вск 18:11:34 2099660546
>>2099639
Я не вижу особой разницы, объясни мне. Практическую, не вакуумную желательно. Вот эту статью прочитал:
https://stanko.io/rabbitmq-is-more-than-a-sidekiq-replacement-b730d8176fb

>If you are a business, or have a $1000 spare, you can resolve this issue by buying a Sidekiq Pro license which ensures that a job gets executed and comes with other niceties. Personally, I find this price tag too steep (especially since it's recurring) for small/personal projects which lead me to look for alternatives.
Вопрос: а ты уверен, что все перечисленные фичи вообще нужны в small/personal projects?

А вот это уже заставляет задуматься:
>There are some features that are missing in Rabbit, like cron jobs and unique jobs, but they can be added by the clients.

Сron jobs and unique jobs - это вот то, что юзается в проде постоянно.

Как обычно, компромиссы. Если б RabbitMQ был так нужен, его либы были бы свежими как sidekiq.
Аноним 18/07/21 Вск 18:24:31 2099673547
>>2099660
Не, ну ты серьёзно?
Брокер сообщений позволяет соединять кучу разных микросервисов которые могут быть сделаны на совсем разных платформах.

Если внутри монолитного приложения работать, то да, внешний сервис не очень нужен.
Аноним 18/07/21 Вск 18:28:08 2099676548
>>2099660
>Я не вижу особой разницы, объясни мне.
sidekiq корректнее сравнивать с celery, которая может использовать кролика как бекенд. А сам кролик может использоваться просто как брокер сообщений между любыми сервисами на любых языках, лишь бы формат соблюдали.
Вот недавно у меня была интеграция со сторонним продуктом, они как раз предоставляли свою очередь реббита, так как нужно было иметь персистентную очередь. Можно это как канал связи для RPC юзать, очень много кто на этом микросервисы строит.
Аноним 18/07/21 Вск 18:30:41 2099681549
>>2099502
Насчёт трупа спорно, по крайней мере на ХХ количество вакансий по слову "ruby" примерно такое же, как и по "django", меньше, но немного. И на джанго из этих много нерелевантных, где только текст вроде "иметь опыт с каким-нибудь из фреймворков вроде django/flask/aiohttp".

По слову "python", конечно, разница уже десятикратная.
Аноним 18/07/21 Вск 18:35:01 2099683550
>>2099676
Мне кажется тут уже их архитектура вокруг реббита построена, поэтому и так, наверное так удобнее и привычнее им было делать на джаве какой-нибудь. Я с рубями таких сервисов и не встречал. Обычные API и вебхуки везде.
Аноним 18/07/21 Вск 18:42:06 2099689551
>>2099683
Тебе нужно отослать сообщение на сторонний сервис и иметь гарантию, что оно останется в очереди до востребования, даже если сам сервис лежит, что делать будешь?
Аноним 18/07/21 Вск 18:47:16 2099696552
Аноним 18/07/21 Вск 19:43:09 2099802553
>>2099689
Мы же не обсуждаем с очередью или без. Почему это должен быть именно реббит, а не другая очередь + API - малопонятно. Зависит от решаемой задачи в конце концов.
Аноним 18/07/21 Вск 19:46:25 2099812554
>>2099802
Ну найди тогда хоть один клиент для очередей на руби, к которому можно прикрутить любой другой язык и который может работать асинхронно не через треды, это тупиковый путь.
Аноним 18/07/21 Вск 19:51:38 2099817555
>>2099812
А очередь упадёт, что будешь делать?
Аноним 18/07/21 Вск 19:52:55 2099821556
>>2099812
>>2099817
Особенно если у тебя межсервисные сообщения на ней завязаны.
Аноним 18/07/21 Вск 19:53:18 2099822557
>>2099821
*все межсервисные сообщения
Аноним 18/07/21 Вск 19:57:27 2099832558
Аноним 18/07/21 Вск 19:57:38 2099833559
Аноним 18/07/21 Вск 20:12:49 2099848560
image.png 16Кб, 1038x63
1038x63
Аноним 18/07/21 Вск 20:17:50 2099851561
>>2099832
Видишь, ещё фейловер надо накручивать. Короче, это пустой холивар без конкретики. Доебаться можно много до чего, руби от этого не перестает быть эффективным для решения своей основной задачи - "быстро наговнякать веб", как выше сказано. Пистон со всем обилием библиотек всё равно выглядит как инвалид в этом плане и причина почему его юзают в вебе - потому что из него стреляют как из пушки по воробьям по всем задачам сейчас, от юзерлевел-скриптинга до дата майнинга. Удобство необязательно, главное чтоб питонодети имели широкие возможности.
Аноним 18/07/21 Вск 20:26:11 2099862562
>>2099851
>Доебаться можно много до чего, руби от этого не перестает быть эффективным для решения своей основной задачи - "быстро наговнякать веб", как выше сказано.
И зачем выбирать руби, если он не эффективен по I/O? С питоном можно дольше жить перед тем, как придется переписывать проект и даже потом можно переписать частями, так как он позволяет эффективно реализовывать микросервисную архитектуру и постепенно подменять компоненты.
Как я понял из твоих слов на руби ты монолиты пишешь и придется все заново переписывать, если перфоманса перестанет хватать, а не только критически важные компоненты для начала.
Аноним 18/07/21 Вск 20:55:23 2099887563
>>2099817
А если твой сервис с очередью на руби упадёт? Да мало ли чего упасть может.

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

В современном мире глупо завязываться во всём на один язык.
Аноним 18/07/21 Вск 21:22:24 2099908564
>>2099862
Да блин, ты так говоришь, будто это всё нельзя на руби. Именно так и работает, просто без реббита. Что за эффективность по I/O для добавления задачи в очередь? Миллисекунды выгадать хочешь или что?

>Как я понял из твоих слов на руби ты монолиты пишешь и придется все заново переписывать
Нет смысла начинать разработку сразу с микросервисов, с ними будет больше проблем, чем профитов. Не понял почему нужно будет "заново переписывать" что-то. Вынеси критическую часть и живи дальше.

>>2099887
>В современном мире глупо завязываться во всём на один язык.
Предлагаю не завязываться на пистон.
Аноним 18/07/21 Вск 21:25:15 2099912565
Как из байтаррея сделать файлобджект?
Аноним 18/07/21 Вск 21:27:16 2099914566
>>2099908
>Что за эффективность по I/O для добавления задачи в очередь?
Оверхед на смену треда каждого треда при любом запросе, хоть в базу, хоть на прослушивание очереди.
Аноним 18/07/21 Вск 21:29:17 2099917567
Аноним 18/07/21 Вск 21:31:36 2099920568
>>2099917
Не, у меня либа одна позволяет выполнять только 2 операции над её объектом:
сохранить в файл
получить байтаррей

Мне нужен промежуточный вариант, где я получаю RAW байты файла, как в момент записи, но в переменную. Т.е. без записи на диск.
С байтарреями не знаком, что-то с ними ничего не получается сделать.
Аноним 18/07/21 Вск 21:34:48 2099926569
>>2099914
Ну это чушь, нет никакого значимого оверхеда от синхронного выполнения этих действий. Асинхронщина в рамках одного запроса - максимум приятный бонус (если есть чего распараллелить и если это не создаст дополнительных проблем), но уж точно не решающий фактор в выборе инструментов. Больше времени будешь с питоном ебстись.
Аноним 18/07/21 Вск 21:42:25 2099932570
>>2099926
>Ну это чушь, нет никакого значимого оверхеда от синхронного выполнения этих действий.
Ну тупые люди, асинхронные инструменты придумывают зачем-то. Ты настолько сросся со своим стеком, стал некомпетентен во всем остальном.
Аноним 18/07/21 Вск 22:04:09 2099946571
>>2099932
Не для этого их придумывали, лолка. Большинство обычных user flow - синхронны по сути, там нечего параллелить. В ноде это было с самого начала, чет не взлетело.
Аноним 18/07/21 Вск 22:47:37 2099984572
>>2099946
> Большинство обычных user flow - синхронны по сути, там нечего параллелить
Даже поход в базу и на сторонюю апиху от асинхронности выигрывают
Аноним 18/07/21 Вск 23:03:05 2099994573
Бля, откуда столько комментов? лето же!
в день по 100 постов!
Аноним 18/07/21 Вск 23:10:35 2100002574
>>2099984
Я объявил джихад.

>>2099984
Приведи пример, пожалуйста, где эти микросекунды играют какую-то роль для конечного пользователя.
Аноним 18/07/21 Вск 23:12:22 2100004575
Аноним 18/07/21 Вск 23:24:06 2100011576
>>2099946
Нода довольно хорошо взлетела, именно благодаря асинхронности. На ней много чего делали. Потом её поджали другие платформы, тот же питон.

С нодой проблема в том, что там асинхронность больше на коллбэках, куча библиотек на это завязано, а сейчас это не модно, можно async/await. Тут уже сложнее, не так нативно. Сам язык JS говно и npm помойка, тоже против играют.

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

>>2099926
> Больше времени будешь с питоном ебстись.
Нет такой проблемы у питона, самый лучший язык. Но есть проблема в производительности. То же переключение задач в asyncio на самом деле довольно дорогая операция, о каком-то крутом хайлоаде можно забыть.

Но в остальном всё хорошо и те проблемы, которые были в середине десятых, решены. Поэтому питон и полетел вверх.
Аноним 18/07/21 Вск 23:31:35 2100015577
>>2099920
>Т.е. без записи на диск.
Создай временный файл в /tmp/
Как он вообще на диске выглядит, с чего ты взял, что он не точно такой же байтаррей?

>С байтарреями не знаком, что-то с ними ничего не получается сделать.
А что ты с ними хочешь сделать?
Аноним 18/07/21 Вск 23:39:51 2100020578
>>2100015
>Создай временный файл в /tmp/
Тоже как вариант, но контейнер засрётся со временем.

>Как он вообще на диске выглядит, с чего ты взял, что он не точно такой же байтаррей?
На диске там просто байты. Я пробовал переводить байтаррей в байты, но boto3 ругался на него.

>А что ты с ними хочешь сделать?
Я хочу взять файлик и несохраняя его на диск отправить в S3.
Аноним 18/07/21 Вск 23:41:26 2100021579
Аноним 18/07/21 Вск 23:46:29 2100025580
Аноним 19/07/21 Пнд 00:50:14 2100064581
>>2100020
>Я хочу взять файлик и несохраняя его на диск отправить в S3.
s3 же можно подмонтировать в виде файловой системы. Просто сделай так и сохраняй файл на неё. Если не хочешь, то какие ещё есть у s3 интерфейсы?
Аноним 19/07/21 Пнд 00:52:25 2100065582
>>2100064
У boto3 два метода - аплоад файл и аплоад файл-лайк обджект.
Файл мне не нравится т.к. на диск записывать надо, поэтому и пытаюсь понять как мне получить файлобджект.
Аноним 19/07/21 Пнд 01:04:50 2100074583
>>2100065
Тогда mmap, как сказали выше.
Аноним 19/07/21 Пнд 01:15:59 2100077584
>>2100021
>>2100074
Разобрался. Решил проблему через io.

buffer = io.BytesIO()
file.download(out=buffer)
buffer.seek(0)
s3.upload_fileobj(buffer, 'test', 'test')
Аноним 19/07/21 Пнд 14:55:10 2100423585
Аноним 20/07/21 Втр 08:49:32 2100947586
>>2100077
чел ты мудак, я тебе сразу сказал про stringio
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов