Этого треда уже нет.
Это копия, сохраненная 1 августа 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Питон тред №123 /python/ 2087217 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #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
2 2087298
>>2087164 →

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


Ну ты конечно тормоз, че тут думать инсталишь лабу и готово.
3 2087312
Аноний, помоги, в нубовопросе.
Как переписать генератор в обычный цикл?
a += [{ } for b, c, d in zip(b0, c0, d0) ]

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

Словарь из генератора в список добавляется? Или я что-то путаю?
4 2087363
>>2087164 →
Седня иду с подругой и думаю как создать функцию где на вход будет мой хуй, а возвращать она будет сосание.
>>2087174 →
Он странный, не так ли?
Figure1.png25 Кб, 640x480
5 2087401
>>087312

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

Ну на глазок тут можно накинуть около 750, начерновую сойдет, но может есть какой-то готовый инструмент.
6 2087424
>>087312
Да, но лучше с append.
7 2087425
>>087312

>Как переписать генератор в обычный цикл?


>a += [{ } for b, c, d in zip(b0, c0, d0) ]


Объясни своими словами, что он вообще должен делать?
8 2087430
>>087425
Мне показалось, что это такой способ наплодить словарей по длине наименьшей из трех итераблей. Более очевидный подход будет корявее.
9 2087434
>>087430
А зачем тогда 3 переменных? У тебя зип возвращает кортеж.
10 2087436
>>087434
Это не у меня, лол. Ну, может кто-то не знает про _.
А может он просто упростил для примера.
изображение.png8 Кб, 461x336
11 2087500
Как вы формируете данные, когда пишете crud приложения? Интересует связь с реляционными базами данных, например - есть необходимость вытащить кучу данных и вернуть json. Я могу написать запрос на 3 экрана, и вернуть сразу все нужные данные (в postgres есть всякие json_build_object). А могу сделать сводную таблицу, получить её в питон, и производить манипуляции с данными уже там, но это же кучи циклов/вложенных циклов и прочего groupby. А иногда нельзя сделать сводную таблицу, и приходится делать 2-3 запроса в одной транзакции, и только потом обрабатывать данные. В идее писать общий sql мне не нравятся то, с какими мучениями я потом сталкиваюсь, когда изменяется ТЗ каждый день. А в идее транзакции и обработки данных в python не нравится скорость. В моей проблеме мне как-то поможет ORM, если с postgres мы слезать не собираемся?
12 2087510
>>087500
Не ответ на твой вопрос, но что тебе на самом деле нужно, это иде с поддержкой sql. Изменять запросы под изменение задач очевидно, лучше, но не так удобно, поэтому ты и корчишься.
13 2087514
>>087500
На нетривиальных задачах орм жидко обосрется.
14 2087589
>>087514
Там нетривиальные запросы можно и на чистом sql написать, а orm для крудов оставить
1374140694703.jpg80 Кб, 550x712
15 2087675
Как правильно итерировать по двумерной numpy матрице, если мне нужны строки одна за одной?
16 2087770
Есть ли у пистона приоритизация выполнения в эвент лупе? Например, сначала идут корутины у которых явно await вызывается, а потом таски, call_soon и т.д.

Можно ли из коробки префоркнуть эвентлуп в отдельном процессе в который имеется возможность скидывать определенные таски, если известно, что они не юзают совместные ресурсы или нужно костылить свое решение?
17 2087772
>>087770

>Можно ли из коробки


>или нужно костылить свое


Ты уверен, что существуют только эти два варианта?
18 2087773
>>087772
Я имею ввиду есть ли что-то что можно за 10-20 минут собрать из готовых компонентов или нужно писать менеджмент IPC
19 2087777
>>087773
Нашел, самое время на 3.9 обновится
https://docs.python.org/3/library/asyncio-task.html#running-in-threads
20 2087778
>>087773
Ты не ответил на вопрос.
21 2087782
>>087778
Я третий назвал, собрать из готовых компонентов за 10-20 минут. Или ты к слову "костылить" придраться хочешь?
22 2087815
Кто питонист, тот ест кал
23 2087816
>>087815
И давно ты питонист?
24 2087841
>>087777
С самого начала были варианты из серии run_in_executor, где ты можешь как в отдельном треде, так и в отдельном процессе что-то запускать.

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

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

Задачу надо подробнее описывать, тогда можно будет какое-нибудь решение предлагать. В общем случае никак. В частных тысячи вариантов. Например, сделать задачу, которая обрабатывает другие задачи, и кормить её через PrimrityQueue, или как-то так она называется.
25 2087959
Во время прогона цикла вываливается ошибка
IndexError: index 0 is out of bounds for axis 0 with size 0
Можно как-то получить именно этот элемент, чтобы подебазить его? В логи его записать или что-то ещё?
26 2088015
>>087959

>axis with size 0


Там нет никакого элемента же.
27 2088019
>>087401
гуглил ли ты?
есть какое то
InfluxDB
или это не то?
28 2088163
Аноны, новичок в питтоне. Написал программку, скомпилировал ее в exe. Но чет забыл, что она завершиться и консоль тупо закроется. Так вот, как можно сделать завершение программы по нажатию на Enter?
Нашел вот такое решение:

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

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

Но программа не закрывается. Что не так делаю?
29 2088164
>>088163

>скомпилировал ее в exe


Как?
30 2088166
>>088163
А не, заработало. В IDE не работало, а после компиляции все норм.
31 2088167
>>088163
Да просто input() захуячь.
32 2088202
>>088015
Спасибо, но какая-то херня.
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
33 2088220
>>088202
Будьте добры чуть больше контекста. У меня не воспроизводится.
34 2088225
>>088220
У меня есть двумерный массив.
При помощь np.where я получаю массив s1, где указаны позиции строк, удовлетворяющих условию.
Пытаюсь извлечь нужное значение - ошибка.
Пытаюсь сконевертировать массив в список и взять нужный элемент s1.tolist()[0] - то же ошибка.
list index out of range
Что за херня?
35 2088226
Вечер в хату, уважаемые.
Кто может на двачовом описать процесс взаимодействия Nginx + Flask app?
36 2088228
>>088226
В ногинске пишешь proxy_pass 127.0.0.1:7654; #а лучше ::1:7654, потому что короче, но это если ипв6 включен
Запускаешь фласку на 7654 порту.
Всё.
37 2088229
>>088225
Может быть условие where не срабатывает ни для одного значения в массиве и в результате ты получаешь пустой массив? Чел...
38 2088232
>>088229
Я вручную дебажу
И вот из этого s1 = array([31], dtype=int64) я не могу 31 вычленить.
39 2088233
>>088232
А откуда ты берешь int64?
image.png5 Кб, 285x120
40 2088234
>>088232
Не знаю, чел(
41 2088242
>>088233
Numpy такой формат выдаёт.
42 2088257
>>088228
Да не, я о принципах работы. Типа от двачера Васи на Nginx пришел запрос в порт 7654 итд.
43 2088308
>>088257
Двачер вася делает запрос на Nginx. Nginx делает запрос во внутренней сетке на приложение в зависимости от настроек. Все.
44 2088320
Взял легкий заказ на перевод 5к испанских слов с транскрипцией, частью речи + голосом если возможно.

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

Как так может быть. 2021 году, а таких вещей до сих пор нет.
45 2088327
>>088320
Если бы все это было, то не было бы заказа для тебя.
46 2088332
>>088320
Так заплати и сделай. Сам лошара, что не проверил.
47 2088412
>>088320
Так парси в наглую.
48 2088423
>>088412
Да я бы и спарсил в наглую, но сайтов нигде нормальных нет, есть PyDictionary, окей, там возьмем перевод, есть speechr_recognition, окей тут возьмем аудио, но где взять транскрипцию.
49 2088483
>>088320

>5к испанских слов с транскрипцией


Качаешь словарь (книгу). Там есть и транскрипция и перевод и уточнение значения.
50 2088491
>>088320
В плане голоса присмотрись к синтезатором речи от Яндекса (на нейронках). Дешево и оч качественно.
51 2088496
>>088491
В последний раз там только английский, русский и турецкий были
мимо
Screenshot from 2021-07-05 22-15-32.png66 Кб, 718x602
52 2088506
Питоногоспода, почему деструктор вызывается сам по себе?

https://ideone.com/YKyAW3

Если запускать код в idle, то этого не происходит.
53 2088510
>>088506
Какой же я долбоеб. Вопрос снят.
54 2088512
>>088506
Вызывается при сборке мусора при завершении скрипта. В интерактивном режиме ты какбе сидишь внутри выполняющегося скрипта, там ничего не уничтожается неявно.
55 2088907
помогите с 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]) и тд.
почему так происходит и как это исправить??
56 2088913
>>088907
Ты где-то обосрался и носишь ссылки на объекты вместо создания новых или мутируешь изначальный объект.
По описанию не скажешь, надо смотреть код.
57 2088937
>>088907
Уже написали тебе.

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

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

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

Тебе надо явно создавать новый объект и копировать в него нужные данные из X.
58 2088943
Господа, мб знает кто прикольные легкие NoSQL базы,? Хочу что то такое же тупое как редис, просто ключ-значение, только что бы на диск складывались данные а не в оперативу. Пробовал MongoDB и DynamoDB еще, не то вообще.
59 2088946
>>088913
>>088937
да, вся проблема была в ссылке, решил копирование. спасибо большое за ответы.
60 2088952
>>088943
Кто тебе мешает SQLite использовать как хранилище для ключ-значение? Можешь использовать https://pypi.org/project/sqlitedict/ или написать свой костыль.
Можешь юзать LevelDB, если не лень пердолиться - https://plyvel.readthedocs.io/en/latest/index.html
Ну, или какой-нибудь https://tinydb.readthedocs.io/en/latest/ (если ты говноед).
61 2088954
62 2088956
>>088943
aerospike
image.png4 Кб, 774x61
63 2089201
Пробую пересесть с pycharm на atom и при вводе команды происходит это. Если просто в cmd, команду написать, то же произойдет. В pycharm все нормально работает.
64 2089216
>>089201
Ты в пайчарме через виртуальное окружение запускал?
65 2089262
>>089216
Да, понял, спасибо.
66 2089348
>>089201

> с pycharm на atom


зачем?
67 2089433
Ищу фреймворк, что-то типа менеджера задач с вебдыркой. Чтобы можно было запустить длинную задачу POST /task, а затем её статус можно было проверять GET /status. Идеально если она будет очереди разруливать.
Читаю пока про Celery, но как я понял ему нужен брокер сообщений, а мне бы по простому всё в памяти аппы подержать, без зависимостей.
68 2089446
>>089433
Проще лучше накати селери или rq.
Для них по сути то только редис один нужен.
Меньше времени потратишь.
69 2089499
Как удалить несколько переменных?
Через запятую типа
del a, b, c ?
Или каждую отдельно надо удалять?
70 2089516
>>089499
Ты это мог в консольке набрать быстрее, чем на вопрос на двач напечать
ScreenRecorderProject11.mp414,3 Мб, mp4,
1274x698, 0:48
71 2089552
нихуя себе питончик разбушевался, вы только посомтрите на это!
file-07-06-202112-53-54.png6 Кб, 1115x628
72 2089567
привет питонистам ребятам плечистым. тащем то надо забирать значения 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)

как это сделать красиво математически я не ведаю. т.е. чтобы линия уходила строго в противоположенный угол. принципиально менять ничего нельзя. с меня тонна нефти
Screenshot35.png33 Кб, 674x417
73 2089569
>>089567
быстрофикс
74 2089571
Что написать нюфагу после всевозможных парсеров для полнятия скила и наполнения гитхаба? Что-то идей совершенно нихуя нету.
15009827789970.jpg195 Кб, 670x365
75 2089602
Опытный анон, подскажи, ошибка "IndexError: list index out of range" может быть внутренней ошибкой python'a/cython'a?
Вычисляю значение элемента внутри функции - ошибка.
Вычисляю то же самое за пределами функции - всё нормально.
76 2089606
>>089567
Брезенхем же.
77 2089607
>>089602
Скорее ты обосрался.
78 2089616
>>089607
ну это классика
79 2089617
>>089602
Код кинь
80 2089623
>>089602
вангую у тебя внутри возвращается ебалда на типе листа в листе и тебе надо penis[0]
image.png39 Кб, 246x1224
81 2089630
>>089567
Вот, пожалуйста, безупречный алгоритм, первая точка переходит в первую, последняя в последнюю.
Цикл по короткой грани считаю идеологически более правильным, потому что при цикле по длинной грани у некоторых точек будет одинаковая координата, так что получатся не точки, а полосочки.
82 2089651
Анонимные программеры, пытаюсь добавить в существующий код возможность записывать лог в 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 и как обычно ЯННП. Что надо поменять в коде запуска так, чтобы появилась возможность писать в БД?
83 2089656
>>089651
Там при создании подключении есть опция, чтобы оно не бухтело.
Screenshot39.png114 Кб, 1916x1022
84 2089670
>>089630
я почти так же сделал
85 2089678
>>089670
Что значит почти? У меня по диагонали, у тебя нет.
86 2089679
>>089651

>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.



Ты передаешь обьект либы/орм как аргумент? Если да то это хуевая практика, нужно передавать первичный ключ и вытаскивать уже внутри таски обьект по ключу если его не удалили к этому времени.
87 2089684
>>089656
>>089651
Ага, check_same_thread=False
88 2089686
Генератор может 2 переменные выдавать?
Вроде
a,b = [c,d for c,d in zip(list1, list2)] ?
89 2089691
>>089686

>a,b = [(c,d) for c,d in zip(list1, list2)]


Вот так выдаст
90 2089693
>>089691
Разумеется, for a, b in []
И можно просто for a, b in [z for z in zip(list1, list2)]
91 2089695
>>089693
К чему эта ебатня, если можно обычный цикл тогда применить?
92 2089698
>>089695
А что вы ходите сделать?
93 2089700
>>089698
Получить две переменные из генератора.
94 2089705
>>089700
a, b = next(generator)
Важно учесть, что когда ты оборачиваешь генератор в список, он все отгенерит в момент формирования списка и никакого next у него уже не будет.
95 2089748
Как бы реализовать систему лайков/дизлайков в джанге? Есть у кого успешные кейсы? Гугл подсовывает какой-то кал. Пока сделал поля в модельке:

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


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



Вопрос - обрабатывать, поставил ли пользователь лайк/дизлайк (и соответственно, будут ему доступны эти элементы, если он уже нажал) будет лучше во вьюшках или на фронте?
96 2089760
>>089684
>>089656
Спасибо, я бы сам хрен догадался туда посмотреть.
97 2089794
Анон, помоги правильно составить условие выражения.
Есть подвыборки одинакового размера, чьи индексы хранятся отдельно. В одной из подвыборок на определённом положении/индексе есть нужное значение z1.
Мне нужны все значения, которые "больше": т.е. либо они принадлежат к той же выборке, но их индекс больше, либо они принадлежат к следующим выборкам (индекс, тут уже роли не играет).
Т.е. по сути на выходе нужен кортеж с индексом выборки и индексом значения, которое будет "больше".
98 2089824
>>089794
Нихуя не понятно.
99 2089846
>>089824
Мне тоже.
>>089794
Малолетний дегенерат, неспособный сформулировать суть задачи и дрочащий абстракции.
100 2089867
>>089348
В обычном пайчарме нет поддержки css и js. И очень неудобная поддержка html.
101 2089869
>>089748
Твоя схема предусматривает, что пользователь может поставить одновременно лайк и дизлайк одной статье.

Если оставаться в рамках привычных моделей джанги, то тебе нужно поле
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 сделать.

Но если разгонять перформанс, то нужно уже сложнее накручивать.
102 2089870
>>089867
В VSCode всё есть. Бесплатно, без регистрации и без СМС.
103 2089871
>>089870
Он же мелкософтный. Фу-фу-фу.
104 2089873
>>089433
У тебя основная задача как работает, с тредами или через asyncio? То есть каким образом ты в принципе хочешь контролировать, какой статус у задачи?

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

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

Что-то подобное делают и с фласком, но это если через треды, я никогда так не делал.
105 2089921
>>089871
Как и гитхаб, а, следовательно, и атом ¯\_(ツ)_/¯
106 2089927
>>089921
Фейспалм, я забыл. Теперь уже так. Установил, пока нормальная тема, спасибо.
107 2089932
Всем привет, как можно получить в джанге поле у всех элементов querySet без цикла или генератора?
0.jpeg32 Кб, 279x423
108 2089940
>>089869
О! Спасибо, подумаю над твоим вариантом
109 2089945
>>089871
vscodium есть
110 2090030
Мой друг спрашивает, почему append у list'а не возвращает себя самого?
Ну ему бы хотелось делать .append(1).append(2).append(3)
Я не смог ему ответить, потому что просто воспринимаю это как данность и пользуюсь extend, если надо добавить больше одного элемента.
Но может вы знаете научный ответ на этот вопрос?
111 2090037
>>090030

>Но может вы знаете научный ответ на этот вопрос?


Гвидон не захотел
https://mail.python.org/pipermail/python-dev/2003-October/038855.html
112 2090083
>>089433
Рекомендую FastAPI, как-то так можно
https://pastebin.com/pFFji0xh
113 2090165
Are we all going to ignore that fact that the acronym for Python Object Oriented Programming is POOP?
114 2090215
Аноны, учил джаву, захотел что-то поинтереснее в плане машин лёрнинга и так далее.
Как дела в питоне?
Слышал он по всем параметром ахуенен и язык на котором хочется писать писать и еще раз писать.

Перекатываться?
115 2090242
>>090215
машин лернинг на питоне хуярит как шлюха
дикая просто вещь.
но вот схуяли ты взял что машин лернинг это интересно?
машин лернинг это набор нахуй научных методов с задротскими формулами, которым ты скармливаешь данные.
на выходе получаешь РСА 0,2356985, ПСЖ 56985325, ОКР 0,2565895
пиздец как интересно,.
116 2090316
>>090242
Ну да, хуета.
Казалось интересным, но видимо ошибся.

Так а что на счет моего вопроса по перекату с джавы?
Куда мне за год проще вкатиться?
117 2090318
>>090316
В курьеры.
118 2090327
>>090318
Ха-ха, ловко ты его попустил
119 2090333
>>087217 (OP)
Как на шинде скриптом менять PATH на всю систему, чтобы было на всех командных оболочках
Хочется менять системный интерпретатор пистона на тот что сидит в usb-памяти (pypy3) для собственного удобства
120 2090334
>>090318
Зачем?
Если у меня заебись работа где я могу заниматься чем хочу и носить гордое имя айтишника?

Просто денежек и самореализации хочется.
121 2090335
>>090333
бля вопросительный знак забыл
122 2090338
>>090334

>гордое


представил себе твой диалог с тян:

>а чем ты занимаешься?)


>я программист


>ммм понятно

2021-03-2911-56-52.png961 Кб, 1920x1050
123 2090346
124 2090355
Анон, помогай.
У меня есть два массива, мне надо вычленить из них те элементы, который удовлетворяют условию.

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)
124 2090355
Анон, помогай.
У меня есть два массива, мне надо вычленить из них те элементы, который удовлетворяют условию.

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)
125 2090361
>>090355

>int64


это чо цитон?
126 2090370
127 2090376
>>090355
Ты не должен постить код таким образом.
128 2090378
>>090376>>090355
Посыпаю голову пеплом:
https://ideone.com/xOGQsj
129 2090381
>>090378
Ладно, спасибо за старание, но это все равно плохой код и разбираться мне в нем западло.
130 2090384
>>090381

>равно плохой код


Тебя принты смущают?
Иначе я бы ошибку не поймал.
131 2090388
>>090384
Меня смущает, что ты лезешь в программирование.
Проблема понятная: тебе нужны все комбинации элементов, а ты получаешь не все.
132 2090391
>>090388

>Меня смущает, что ты лезешь в программирование.


Спасибо за беспокойство, но оставь свои смущения при себе.
Я пришёл с вопросом в соответствующий тред, не хочешь или не знаешь как на него ответить - не трать, ни своё, ни моё время.
Спасибо.
133 2090394
>>090391
Я тебе уже ответил... Был бы ты программист нахуй, ты бы посмотрел, что именно ты передаешь в свои first, second list... Ты зипуешь списки разной длины, ты видишь, что получаются None, но ты все равно просираешься в тред и хамишь мне... Я не вижу предпосылок получить на этом наборе данных то, что ты хочешь.
134 2090396
>>090391
А я тебя помню, пидораса, был тут уже такой. Сначала глупые вопросы, потом хамство.
135 2090401
>>090394

>Ты зипуешь списки разной длины, ты видишь, что получаются None, но ты все равно просираешься в тред и хамишь мне...


Вот так и можно было сразу ответить, а не тешить своё чсв.
Спасибо.
>>090396

> Сначала глупые вопросы,


Для этого тред и создан.
Не видел тут вывески, что только для синьоров с 10+ годами опыта.

>потом хамство.


Я нормально спросил. Не можешь ответить по существу - не отвечай.
А мнение быть кому программистом или нет, я не спрашивал. Оставь при себе, пожалуйста.
136 2090419
>>090391
ты понимаешь что разбираться в чужом коде тяжелее? Ты его уже написал, ты в своей проблеме по умолчанию можешь проссать лучше здешнего мимокрокодила, которому придётся минут 5 на это потратить.
Это немного невежливо - озадачивать большой, но банальной проблемой. Если бы ты реально пытался её решить, ты бы упёрся в простой вопрос
137 2090421
>>090419
Спасибо, сформулировал практически то, что я хотел сказать, только не так токсично.
Добавлю, что залетая с проблемой нужно писать, какую именно задачу ты решаешь, а не просто "у меня код должен выдавать такое, а не выдает". Вот это реально неуважение, как будто алгоритм я сам должен додумывать.
138 2090547
Сап, кто напишет функцию вычисления обратного факториала с вводом числа юзером? С меня как обычно
139 2090551
>>090547
Написал.
140 2090554
>>090547
Подразумевается, что это работает целочисленно, то есть если введенное число не является факториалом чего-либо, то функция ничего не вернет?
image.png44 Кб, 1517x444
141 2090567
>>090551
Тоже написал.
142 2090575
image.png25 Кб, 556x491
143 2090578
>>090575
Вот, держи, забыл про ввод числа пользователем.
144 2090678
>>090355

>>который удовлетворяют условию.


А условие то какое. Выглядит как какая то херня.
image.png8 Кб, 487x123
145 2090704
Питонисты, как впердолить

>*games, sep = ', '


между двух строк ай лайк геймс + геймслист, разделенный запятыми+ точка?
146 2090715
>>090704
Всё через запятую, на последнем месте sep=
147 2090717
>>090704
И вообще не еби мозги, ','.join(games)
148 2090728
>>090715
>>090717

>на последнем месте sep=


Тогда он впердолит запятую и после ай лайк геймс, и перед точкой в конце. Можно ли как-то сделать так, чтоб sep= относилось только к списку *games? Про .join знаю
149 2090731
>>090728
Да-да, я уже понял твою проблему.
Нет, нельзя, включи мозг: sep относится к функции print в целом.
150 2090867
Аноны, допустим у меня есть чат-бот, и есть некоторые его настройки типа используемой валюты. Раньше хранил такие переменные в отдельном модуле config.py, но сейчас появилась необходимость их изменять (присваивать новые значения) в других модулях. Как это лучше сделать? Хранить их в текстовом формате? нюфаня итт
151 2090883
>>090867
Анон, ну ХЗ что у тебя там.

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

Мне кажется, в первом варианте можно где-нибудь в json хратить. Удобно и скрипту работать, и человеку влезть в него легко при необходимости.
152 2090884
>>090867
Самый простой вариант - .env файл в корне проекта на самой виртуалке, в репозиторий не заливай, а то сеньоры опустят, переменные из которого ты подгружаешь в свое приложение через os.getenv. Идеально подходит для хранения секретов типа токенов и прочей хуйни
153 2090887
>>090547
Циклом итерируйся по int-овым циферкам и еще свое говно. За тебя код никто писать тут не будет
154 2090888
>>090887
ищи*
155 2090890
>>089932
.values_list('your_field', flat=True)
156 2090894
>>090884
Ему же еще менять это нужно и как я понял не руками.
157 2090895
>>090883
>>090884
Спасибо аноны <3
158 2091111
Почему линуксоиды пишут в продакшн в этих своих линуксах на питоне, если всем вроде как очевидно, что питон это очень прожорливый, ресурсозатратный язык для проверки идей и обучения программированию американских детей с синдромом Дауна? Неужели питон на линуксах такой же быстрый, как C, на котором сама ОС и написана?
159 2091114
При переносе кода с платформы windows на linux ошибка:

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

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

Понимаю что проблема с кодировкой, но тут два вопроса, почему другой подобный код у меня работает нормально а этот файл ему не понравился? И второй как её решить?
160 2091121
>>091114
Локаль кривая в шинуксе.
161 2091139
>>091121
Понял спасибо, пока так решил запускать
PYTHONIOENCODING=utf-8 python3 mycode.py
162 2091154
Ебусь уже 3 день с этим вашим ебаным докером, как меня заебала эта айтишечка.
https://ideone.com/kbO8T4
Почему когда запускаю вручную через терминал, то работает, а когда через докер, то контейнер запускается, но локалхост:9000 не работает?
163 2091164
>>091154
А так?
python manage.py runserver 0.0.0.0:9000
164 2091190
>>091164
Спасибо, заработало.
165 2091234
В чем подводные держать типа микросервисы тупо в разных потоках, вместо отдельных подов? Ну типа вот запускаем все с одного файла, но у нас есть поток с апихой, потоки с обработчиками вебсокетов, потоки со всякими воркерами для сложных времезатратных операций + у нас есть клиенты для общения со своими базами данных, которые доступны в коде всех этих сервисов во всех потоках, а общаемся мы между ними через залоченую очередь. Это же вроде охуенно, мы можем из любого сервиса напрямую в базу что-то закидывать и доставать оттуда, не использую хттп, еще и минуя при этом сериализацию всякую.
Я знаю, что так не делается, но почему?
166 2091239
>>091111

>для проверки идей


вот это
Стартап же начинают с рисками, никто не уверен что все будет збс. На питоне можно очень быстро написать демо и в целом стартануть, скорость разработки ебейшая и относительно недорого выходит. А потом если все и разрастается, то просто влом переписывать на го бывает. Да и есть вообще такое правило - не оптимизировать пока терпимо работает.
167 2091248
>>089748
к оцениваемой модели поле мэнитумэни что то типа reactions, кароче мэнитумэни к модели юзера и у джанги в мэнитумэни есть что то типа through=..., можно определить модель через которое это отношение будет строится, так вот туда пихаем что то типа
Reaction(model):
VALUE_LIKE = ':D' это чойсы кароч
VALUE_DISLIKE = '>:('

- user = foreignkey(user)
- publication = foreignkey(publication)
- value = charfield(choices=чойсы сюда
168 2091256
>>089748
насчет валидации - на бэке обязательно должен быть какой то механизм, еще у модели reaction просто в meta unique_together=('user', 'publication') а дальше зависит от политики, которую ты хочешь. Например если тебе нужно чтобы пчел мог поменять неудобное мнение ты просто в круде /reactions/ делаешь put реквест и относительно моделек делаешь create_or_update, а если нужно чтобы юзер мог только один раз рейтануть и не мог поменять мнение - у тебя экшон для создания реакции, post и если юзер уже реагировал возращаешь 400 already exists что то типа того
169 2091308
>>091239
Есть же, кстати, всякие pypy и numba для быстрой работы.
170 2091339
Одно приложение в centos требует python 3.7+ у меня 3.6
Поставил из исходников, вроде установилось теперь у меня две версии, но pip кривой, требует ssl. Как это вообще можно исправить, возможно ли без сборки скачать python 3.7 с нормальным pip?
171 2091348
>>091234
Поздравляю, ты изобрел монолит! А если в случае с пистоном, то там GIL, и можно параллельно работать только с помощью процессов и тогда начинается ебля IPC
172 2091356
>>091339

>Поставил из исходников


Удаляй. Делай python -m venv venv, активируй его, и устанавливай пипом любую версию, какую хочешь.
173 2091386
>>091356
Это что за нанотехнологии такие?
174 2091392
>>091386
Я понимаю, пользователи центоса могли и не слышать, но это New in version 3.3.
https://docs.python.org/3.6/library/venv.html
175 2091393
>>091392
Я про любую версию через пип?
Венв это всего лишь симлинк на системный бидон.
176 2091395
>>091393

>Венв это всего лишь симлинк на системный бидон.


Нет. Я ж даже ссылку кинул, почитай.
177 2091398
>>091395
И что я там нового найду?

> 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 для установок.
178 2091402
>>091398

>или копируется


Ну вот, скопировал, а потом эту копию обновил. Ты считаешь так нельзя? В пепе, мне кажется, про это было, и я так делал.
179 2091405
>>091402
Что обновил-то? Нужна другая версия питона, причем тут венв вообще?
180 2091406
>>091405

>Что обновил-то?


Питон в венве.
181 2091407
>>091402
Ты что-то не то несёшь.

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

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

На тот момент, когда ты venv создаёшь, у тебя уже фактически версия питона зафиксирована, весь venv завязан жёстко на то, какая версия у тебя.
182 2091408
>>091406
Это не один файл заменить, нужно нормальное готовое окружение, и уже на эти окружения и можно заводить венвы для получения разных версий. Ты какую-то норкоманию придумал.
183 2091409
>>091406 >>091407 >>091408
А как я это сделал? Тогда было прям рас-рас-и-готово, а сейчас не могу вспомнить, как конкретно.
184 2091410
>>091407
Ставишь нужный питон, от его имени уже делаешь venv
185 2091412
>>091409
Примерно так:

>sudo add-apt-repository ppa:deadsnakes/ppa


>sudo apt-get update


сейчас не проверял. Но точно из deadskakes, в общем загугли.

И будут тебе последние питоны стабильные. У меня убунта, предлагает 3.10 уже сейчас доставить.
186 2091417
>>091409
Приснилось можетю
187 2091418
Аноны, какой самый простой путь сохранять словари? Хотел редис взять, но сейчас работаю на винде, куда он ставится только через жопу.
188 2091419
>>091417
Не, я сейчас думаю, что это был pypy и я его просто в венве распаковал, а дальше он сам умеет забрать на себя python в активированном окружении. В общем-то, не важно. Дискуссию-то устроили на 10 постов, а тому анону на центосе этот ответ так единственным и остался.
189 2091422
>>091418
Что скажете за tinydb?
190 2091425
>>091418
SQlite, pickle
191 2091426
>>091418
А с какой целью? use-case какой?

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

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

Можно в постгрес сохранять.
192 2091427
>>091418
В докер засунь.
193 2091431
>>091418
Разве? У меня лежит где-то редис под шинду, юзаю его как кэш для парсеров. Это один экзешник, запустил и работает. В общем-то, так он работает и на других ос.
194 2091433
>>091425
SQLite слишком долго транзакции проводит, я вообще думаю просто в json все класть
>>091426
Юзкейс простой, небольшое приложение распознает цифорки с картинок, а потом сохраняет эти цифорки в словарь, где ключом является id-шник пользователя
195 2091436
>>091431
Прям без wsl?
196 2091443
>>091436
Да, я сейчас глянул, вроде оно https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504
Запускается redis-server redis.windows.conf, этих двух файлов достаточно.
197 2091446
>>091443
Ну это я видел, там редис 3-ей версии, а репа 16-го года
198 2091448
>>091446
И что там поменялось важного?
199 2091451
>>091239
А есть правило сразу делать заебись, а не сначала писать лагучее говно на псевдоязыке, а потом забивать хуй на оптимизацию, как это всегда и происходит? За что сейчас проградристам вообще платят?
200 2091453
>>091419

>Дискуссию-то устроили на 10 постов, а тому анону на центосе этот ответ так единственным и остался.


Бесполезным, потому что так ты не поставишь.

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

Дельный совет анону, сноси этот центос, ставть Винду версия ubuntu 20.04 вполне себе годна. Там это реально очень просто делается..
201 2091455
>>091451

> За что сейчас проградристам вообще платят?


За разработку программного обеспечения.
202 2091456
>>091453
Да всё там соберется нормально под центось, просто надо читать инструкцию и гуглить по обстановке, а не хуяк-хуяк и заработало.
203 2091458
>>091456
В убунте бы делаешь хуяк-хуяк, и у тебя всё работает. В освободившееся время ты читаешь инструкции по более полезным вещам.
204 2091463
>>091458
Такое тоже знать и уметь полезно.
205 2091562
>>091451

>А есть правило сразу делать заебись


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

>а не сначала писать лагучее говно на псевдоязыке


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

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


Если так происходит, значит так надо, схуяли ты решил что ты умнее всех?

>За что сейчас проградристам вообще платят?


В аутсорсинге и аутстафинге за наебывание клиентов, ты так пишешь, как будто не работал никогда, вкатун чтоли?
206 2091567
>>091451
Лол - за что сейчас вообще программистам платят. Посмотри на фронтенд, там джуна так ебут нодой, всякими сборщиками, сасами-лесами и прочей залупой, что на выходе обычный блог с текстом выходит более тяжелый, чем полноценный сайт со свистоперделками (поиск, логин, админка, лайки, карта с драг энд дропом) лет 5 назад.

Вот уж если кого и пинать за тормоза и говнокод, то явно не питонистов.
207 2091576
>>091562
>>091567
Потом долбоебы наслушаются про тормозной питон и ОПТИМИЗИРУЮТ каждую строчку, третий день вкатываясь.
208 2091579
>>091576
Потому что ТЗ надо смотреть. Если в ТЗ написано - оптимизируешь. Не написано - "хуяк, хуяк и в продакшн".
209 2091739
>>087217 (OP)
Есть строка байт по типу: b"\xff\xd8\xff\xe0" - как декодировать ее в строку?
(почему-то вместо b'\x89PNG' пришла вот эта фигня, хз как ее правильно конвертировать)
210 2091747
>>091739
Это жпег. Зачем в строку?
211 2091773
Для класса в языке python можно определить поведение знака +?
Вот чтобы у меня такой код не валился.
class Pidor:
pass

pidor1 = Pidor()
pidor2 = Pidor()
pidor3 = pidor1 + pidor2
212 2091775
>>091773
Магические методы погугли
213 2091779
>>091775
Спасибо, сорян, слишком рано написал на двач, метод add решил все проблемы. Господи, до чего же охуенный язык!
214 2091827
Ребята, почему мне не отвечают на резюме? Вот сам кусок скилов из резюме, скинул только скиллы. Под не отвечают имею ввиду что даже на собесы не зовут. Еще я забыл добавить что в резюме есть опыт с фриланса 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
215 2091828
>>091827
Соври что тебе 18
Софт скиллы укажи
Добавь Гитхаб с пет проектами

Бля и заплати 300 рублей какому-нибудь англюсику, у тебя английский текст очень коряво выглядит.
216 2091833
>>091827

>Knowledge of OOP, three main principles


Их четыре.
16051773208690.jpg9 Кб, 188x167
217 2091903
Сап питонач.
Появилась необходимость работать со спарком. А как вобще код то проверять, писать и тестировать? Ну вот есть сервис спарка, я ж ёбана не буду в текстовом редакторе никсов код бахать. А удалённо вроде нельзя запустить, спарк разворачивать локально тоже чот сложно. По идее библиотека sparkа должна сама уметь на локальном запускать? Чото я нихуя непонял короче
218 2091938
>>091827
На мой взгляд написано очень много всего, посмотри резюме других ребят, сократи свое до нескольких строчек, оставь только самое важное, то в чем ты уверен на 100%. Вот пара примеров как сокращать:

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

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

Мимо пару лет нанимал.
219 2091947
>>091827

>Experienced with controlling version like Git


Breaking news, найден человек-гит!
220 2091971
>>091947
так это в каждой вакансии указывают как требование даже у мидлов, херка не увидит слова и подумает что ты не осилил гит за 5 лет столичного опыта.
221 2091992
>>091971
Я про английский, а не гит, лолка. Он написал что сам контролировал версии, как гит, а не использовал системы контроля версий.
222 2092050
>>091827
Может лучше пет проектов ещё наделай да английский подтяни? В 16 лет вряд ли куда-то возьмут, но на такой вопрос неплохие знания. Хотя может учиться где-то и нужно.
223 2092159
А можно переназначить stdin/stdout на локальные файлы? Мне было бы так удобнее тестировать задачки.
224 2092238
>>092159
Прямо в консольке пишешь
./program 1>std.out 2>std.err <std.in
225 2092382
Как сделоть чтоб urllib.request.urlopen не вываливался с эксепшоном что у меня HTTP code 403, а давал самому это прочесть в респонсе? Ведь если ловить это исключение, он мне ничего нахуй не даст
226 2092388
>>092382
бтв, requests не могу использовать, работаю с чужим апи, а у него анальные требования и немного своеобразный HTTP
227 2092407
Аноны, как запретить трейсинг во время дебаггинга в служебные модули по типу os или codecs?

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

Поверхностный гуглеж не нашел решения.
228 2092419
>>092388

>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 это самое уродливое что есть в сраном питоне
230 2092433
>>092420
но ведь оно не вернёт http.client.HTTPResponse.

Представь, что кто-то хочет защитить свой сайт от питонистов, возвращая 400 на нормальных запросах
231 2092439
>>092419
причём у OpenerDirector нет параметра context через который задаётся ssl/tls, здесь я чешу голову просто
232 2092448
>>092439
__rq = urllib.request
__rq.HTTPDefaultErrorHandler = urllib.request.HTTPHandler
в ответе возвращается None если такой финт делаю
233 2092477
>>092448
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, и тогда норм
но это буквально дописывание языка за его авторов
image.png85 Кб, 501x895
234 2092493
Как вот эта вещь реализована со стороны бд? Каждый раз при новом запросе собираются фильтры для категорий или один раз просчитывается и хранится в бд? И, допустим, при добавление/удаление пересчитывается.
235 2092497
>>092493
Крафтится запрос по кускам.
Может ровные пасаны как-то и хитрее делают.
236 2092508
>>092477
бля не
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
вот так заебись
237 2092521
Аноны, несколько тредов назад кидали объемную подборку на русском материалов по питону, гиту, БД, алгоритмам и так далее. Естественно, я ее проебал.
И я буду очень благодарен, если кто-нибудь поймет, про что я и скинет ее.
238 2092615
>>092493
Я такого сам не делал, но тут я уверен делается обычный запрос к беку в котором прописываются все фильтры, бек обрабатывает их, чтобы в запросе к бд все ровно было и возвращает нужные данные
239 2092626
>>092050
Я сделал пару пет проектов, не уровня Хеллоу Ворлд, да, с английским у меня траблы. Но я думаю скорее всего из-за возраста и не зовут никуда. Учиться я не могу, нужно зарабатывать, пока подрабатываю в реале + иногда заказы на фрилансе делаю.
depositphotos355865096.jpg46 Кб, 600x397
240 2092650
Случайно вкатился в микроконтроллеры, такая-то тема.
Берется копеечная хуитка за 2-3 бакса, там можно запустить микропитон - нищереализация питона на голом железе, на борту есть вайфай-блютус и место под файлы. И возможность подключить мильйон всяких примочек.
Я прям удивлен, что это вот так себе существует и прошло мимо меня. По старинке думал, что там какие-то асмы-си и анальная олимпиада.
А оно вон оно как.
https://www.youtube.com/watch?v=r8V2JZ9WJw8
241 2092669
Всем привет, нужно собрать приложение pyqt5 под андроид. Нашёл инфу про pyqt-deploy, почитал доки, появилось желание застрелится,нашёл статью на хабре, стало лучше, но на практике повторить не смогу, может кто знает видосов каких про эту библиотеку или ОЧЕНЬ подробных статьей, потому что мороки как я понял там очень много
242 2092765
>>092433
Там ниже написано, ты из ошибки можешь данные читать
243 2092784
>>092615
Звучит все нормально, но я должен пройтись по характеристикам ВСЕХ товаров в категории и вытащить из них значения характеристик. Мне кажется если в категории 2-3к товаров и много запросов, то загнется бд.
244 2092808
>>092784
Тебе не сразу товары показывают, а пачками, достаточно первые 10/25/50 вытащить указав лимиты, а потом оффсетом смещать. Да и с индексами все и так быстро будет.
245 2092811
>>092784
Это называется faceted search.
Судя по 5 сек в гугле, есть готовые решения.
246 2092815
>>092650
Что будет если обвешаться такими штуками как вассерман карманами?
image.png91 Кб, 1442x410
247 2092851
>>092808
Еще раз скажу, допустим там стоит фильтр на бренды. Он показывает все бренды в этой категории, не только первой пачки.

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

Характеристика: бренд. Значение характеристики: samsung.
248 2092854
>>092851
P.S. вытащить значения характеристик я смог, но я не считаю это оптимальным путем.
249 2092976
>>092851
В чем суть вопроса я так и не понял? Есть у тебя эндпоинт для товаров и в квери параметрах просто указываешь ?brand=Sumsung, потом на беке достаешь все квери параметры, видишь бренд указан, значит из бд достаешь только самсунг, делаешь пагинацию нужнаю тебе на 10,20,50 и все, в чем проблема то?
250 2092978
>>092851
Может ты имеешь ввиду что фронт должен с бека получать список брендов например? Тогда есть несколько решений, смотря нужно ли тебе что-то поворотливое и сложное делать или простое решение в лоб
251 2093007
Может кто нибудь написать скипт или как это там называется (чтоб в группу вк однокласы и канал в телеге автоматом добавлялись просто ссылки на новые видео с ютуба по двум ключевым словам)
Могу криптой оплатить
image.png220 Кб, 840x448
252 2093023
#!/usr/bin/python3 или #!/usr/bin/env python?
253 2093029
>>092765
Ты прав, помню что в исключении был resp который я через перезаписанные функции взялся возвращать

Но мне так лаконичнее, обойтись без дублирования кода в обрабоке исключений (как я уже допилил). Я ж оперирую в зависимости от http тела, к чему мне коды.
254 2093036
>>093023
Второе, конечно.
255 2093081
>>093023

>#!/usr/bin/env python3


Ещё и в тушке версию проверь.

Напрямую задаётся только сустемный шелл.
256 2093145
У вас бывало такое берешь заказ, тебе платят наперед и желания заказ делать больше нет, я его сделаю, но вот прям лень полная, ведь деньги уже лежат у тебя.
257 2093151
я тут подумал, что раз в параметрах функции не действует self, то можно юзать локальные переменные класса, но тогда неопределённость: мы получим локальные переменные инстанса класса, или переменные абстракции класса?

взялся проверять и чёта магия какая-то
https://ideone.com/07JLOO

><__main__.F object at 0x153ea4e596d8>


как джва превращается в ОБЪЕКТ?
258 2093153
>>093145
Бывает, поэтому наперед не беру, даже если предлагают.

>>093151
Что блять? Если ты селф не указываешь, то это не значит, что он не придет. Вот он и пришел первым параметром.
sage 259 2093158
>>093151
бля стоп, я self забыл
260 2093259
С кого лучше начинать? С Мэтиза или с Лутца?
(знаю более менее самые основы)
261 2093296
>>093259
Если не боишься в лутце завязнуть, то валяй, он намного полнее.
262 2093558
>>091356
ссори за нубский вопрос, а как пипом нужную версию установить?
263 2093565
>>093558
pacman -Suy python3.(нужная версия)
264 2093625
>>093565
пакман? суй питон? реально?
265 2093653
>>091903
Во-первых, все удаленно работает отлично.
Любимая фича - поднять удаленный сервер джупитера, подключиться к порту через браузер и дрочить датафреймы в нем. Естественно, основной код в .py файлах.
Да, Спарк разворачивать сложно.
Поэтому берешь Линукс/wsl2/докер, накатываешь анаконду и Pyspark из канала Conda-Forge, плюс 8/11 жабу.
Выбираешь конду как интерпретатор в пичарме, и вуаля.
На Винде дополнительные зависимости, ебля с винутилс, мб хадуп и вроде тормознутее, так что нахуй винду.

Мимо работал с Pyspark.
266 2093795
Двощ, как поставить этот грёбанный 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
267 2093796
>>093795
Кажется разобрался, надо вот так было:
pip install python-dotenv
И нахуя разрабы так делают? Откуда я должен знать что это говно с префиксом python- нужно?
268 2093804
>>093796
Ты долбаеб? https://pypi.org/project/python-dotenv/ там так и напиисано, криворукий мудак
269 2093979
Что сделать, чтобы в jupiter notebook были всплывающие подсказки к коду?
270 2094215
>>092493
Папа пришел нахуй. Всем сидеть, всем лежать

1. Есть кеш, запросы как правило пойдут к нему
2. Есть полнотекстный поиск, если надо то будет он на каком-нибудь Elastic а не на мускле
3. Есть индексы в БД нахуй. Индексы эффективны епта в том числе и для выражений BETWEEN а не только для единичных значений
271 2094259
>>087217 (OP)
Хочу из ETL макаки стать дата-инженером, че мне в питоне уметь надо?
272 2094342
Аноны, есть загрузчик данных в таблицу из csv-файла. Пишу скрипт, который сравнивает таблицу и csv-файл, и логирует строки которые не занеслись в базу по каким-то причинам. Пока что написал только для загрузки данных в пустую таблицу, но что делать если она непустая? Скрипту на вход подается только файл-источник и таблица. Как узнать, с каких строк начать сверять данные?
273 2094348
>>094342
Данные в таблицу добавляются строго в конец? Если да, то я мог бы начать сверять с конца таблицы,. Использую postgresql
274 2094351
Аноны, можете пояснить что за хуйня с numpy.polyfit()?

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

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

Плотность точек примерно равномерная, то есть нет такого, что кубическая кривая проходит через мульен точек из-за их дикой концентрации.
275 2094357
>>094342
Если у тебя там не терабайты, то я бы просто хуярил временную таблицу с одним ключевым элементом, а потом одним запросом можно получить разницу.
Хотя это

> которые не занеслись в базу по каким-то причинам


надо решать в тот же момент, а не постфактум искать чо там не прошло.
276 2094401
Анон, подскажи, пожалуйста, такой вопрос.
Есть два результата функции 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 для всех возможных комбинаций, а потом отфильтровать по условию, но на паре примеров получается, что, во-первых, не совсем правильно, во вторых, медленно работает.
Как это можно наиболее эффективно и быстро сделать?
277 2094405
>>094357
Я не могу хуярить что-либо в бд, скрипт должен работать с любым загрузчиком и любой таблицей изолировано от них
278 2094412
>>094401
Условие формируется одним из массивов или универсально?
279 2094414
>>094401
О, опять душный выблядок с массивами, помню тебя.
280 2094465
>>094414
Нумпай это питон лишь с очень большой натяжкой. Это говно нарушает питоний дзен как только можно, поэтому я бы вопросы про нумпаю встречал пассивной агрессией. Молодца.
281 2094515
>>094412
Универсально.
Но тут проблема в следующем:
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 есть готовое решение?
282 2094756
Могучий оффтоп.
Кто какие шрифты юзает в Linux? Или сидите на дефолтных?
284 2094786
Вопрос по джанге:

В БД есть статья с заголовком "Собираем квантовый генератор случайных чисел". Если в параметр поиска передать отдельные слова "генератор" или "собираем" или последовательность "собираем квантовый" то есть те слова, что стоят рядом в заголовке то Article.objects.filter(header__icontains=search_query) отрабатывает на ура. Но если передать слова, которые есть в заголовке, но не стоят рядом %%i.e. собираем генератор", то такой метод поиска ничего не найдет. Как правильно сделать поиск? Вариант со сплитом параметра поиска в отдельные слова и поиск по ним кажется слишком колхозным, ведь точно в джанге есть решение, ведь есть?...
285 2094819
>>094786
Для этого есть специализированные поисковые движки, искаропки только вот так наивно.
286 2094828
>>094786
Никогда не видел, что бы такой херней занимались. Можешь фильртовать кс сначала по одному слову, а потом отфильтрованный по второму и тд. Но это говно какое то, есть elasticsearch для нормальных людей.
287 2094895
Например, есть список [1,2,3]
Можно ли повторить элементы списка N раз в виде
[1,2,3,1,2,3,1,2,3...] ?
288 2094902
>>094895
Сам нашёл
list1 = [1,2,3]
list1*N

Странно, думал, так просто элементы будут умножены на N.
289 2094904
>>094895
[1,2,3] * N
290 2094906
>>094904
Спасибо.
291 2095009
Двач, я очень тупой и не могу решить легчайшую задачу, прошу твоей помощи. Описывать полностью смысла не имеет, так как все, что мне нужно - это просто оператор.
У меня есть список, стоящий из кучи имен и фамилий. 'Имя Фамилия'. Мне нужно посчитать сколько раз встречается в списке ИМЯ "Петя". Я пишу count "Петя", но поиск дает 0 результат. Что логично, ведь "петя" в списке всегда идет совместно с фамилией. Как решить мою задачу? Это делается через count или существует другой способ. Нагуглить не получилось, листал кучу таблиц с операторами к спискам и ничего не нашел. Я ебанат, да
292 2095024
>>095009
count не подходит, потому что он считает только полное совпадение.
Попробуй так:
sum([1 for value in my_list if "Петя" in value])

>я очень тупой


У тебя всё получится.
293 2095025
>>095009
sum(1 for s in lst if s.startswith('петя'))
294 2095089
Аноны. Есть задача генерировать небольшой зип архив по одному из роутов в Джанге и отдавать его на фронт. Собрать зип-архив и через 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


Как правильнее передать файл на фронт?
295 2095105
Полтора года назад учил питон по пику с дальнейшим желанием вката. Но как закончил читать и делать упражнения, то всё как-то сошло на нет. Не знал, куда двигаться.
1) Вроде всё позабыл, стоит снова её всю проштудировать? Или уже есть варианты получше на русском?
2) Что делать потом, чтобы опять не заглохло дело? Пет-проекты? Учить джангу и sql для бэкенда?
296 2095107
>>095105
Отвалилось
123.png84 Кб, 250x355
297 2095108
298 2095197
>>095105
Эту не читал, сорри.

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

Я понимаю твои чувства, тебе стоит понять, для начала, чего ты хочешь и что тебе интересно.
299 2095208
>>095105
У тебя после проработки книги не возникло даже одной идеи для пет-проекта? Печально тобой быть.

Ну напиши блог текстовый с админкой на Питоне. Калькулятор, To Do лист, бот для тг. Совсем идей нет? Пока будешь писать поймешь какие либы и фреймворки нужны.
300 2095211
>>095105
Я эту прочитал и ебанул на фрилансе проектец за 300 баксов, но до этого я знал перл и пхп.
До сих пор чувствую эту вкатунскую неуверенность, но лень углубляться. Сейчас сместился в баш и го, там тоже попасусь и сделаю какие-то проекты, но питон что-то нихуя не становится fluent.
Вообще, после перла все языки кажутся какими-то каличными, жаль, что он умер.
301 2095214
>>095197

>дата сайнс


Давно вкатился?
Какие инструменты используешь?
Сотыгу делаешь?
302 2095220
>>095208
Да это же скукота
image.png1 Кб, 176x46
303 2095223
>>095024
>>095025
Спасибо огромное
304 2095224
>>095220
Пиши свой язык программирования.
305 2095238
>>095214
Пол-года как. Но надо сказать, что я в принципе всегда увлекался матстатом и имел интерес к области и какой-то опыт. Ну и что мне работу предложил знакомый, который счел, что я талантлив. Так что тут быстрый вкат обусловлен тоже знакомствами, по собесам не ходил.

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

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

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



Сорри, вообще не понимаю о чем ты!
306 2095263
>>095224
С кириллическим синтаксисом.
307 2095366
Начал изучать питон, благо есть идея проекта, на котором можно и изучить его.
Подскажите, как принято писать на питоне, все в одном файле или классы, например, раскидывать по файлам отдельным?
Например, мой скрипт будет писать в БД. Создать отдельный класс для БД и все коннекты и функции записи и чтения запихнуть туда, а из основного файла просто вызывать?
308 2095375
>>095366
Как в жабах на каждый пук отдельный файл не надо, но если прям дохуя, то можно на пару отдельных разбить по смыслу.
309 2095394
>>095375
То есть, если у меня в одном файле куча классов это норм?
Чет не могу к такому привыкнуть, не удобно же
310 2095399
>>095394
разбивается обычно по назначению
типа в одном файле у тебя логика, во втором объекты, в третьем еще какой функционал

никто не мешает конечно насрать всё в одном файле
но это неудобно
так можешь хоть по файлу на класс делать но это тоже шиза
311 2095400
>>095394
то есть если ты сделаешь по файлу на класс то тупо нахуй запутаешься и будешь срать импортами как не в себя , лол
312 2095413
bump
313 2095414
bump
314 2095656
>>093653
Хм, спасибо за ответ. А что конкретно делает конда и джупитер? Конда удалёный интпретатор?
315 2095811
Анон, можно ли выражение
for x,z in zip(list1, list2) переписать в виде for x,y, z in zip(enumerate(list1), list2) ?
316 2095821
>>095811
for (x, y), z
317 2095894
>>095821
Спасибо
318 2095898
А когда надо начинать использовать аннотации типов?
319 2095901
>>095898
Для больших проектов, для распространяемых пакетов.
320 2095924
>>095898
Никогда, этот бойлерплейт все раздувает в три раза а профиты очень сомнительные. Лучше уж тогда на джаве кудахтать.
321 2095961
>>095898
Когда начинаешь думать "бля, а что это за объект приходит"
322 2096144
Какого хера 3.9 требует десятую винду? И это единственная актуальная ветка питона сейчас. Что теперь без зонда в жопе в питон нельзя?
323 2096150
324 2096151
>>096144

Я думал виртуалку Линукса запускать или установить линух в дуалбут. Зондов тоже не хочу
325 2096163
Начал ради интереса изучать питона. Пытаюсь написать программу для угадывания выпавшего числа на кубике с помощью 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

ЧЯДНТ?
326 2096166
>>096163
если делаю это не используя создание отдельной функции, то всё работает как надо

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)
327 2096167
>>096163
>>096166
Ты вызываешь dice два раза, следовательно оно каждый раз по новому рассчитывается
328 2096169
>>096167
А каким образом можно закрепить первый результат dice чтобы он потом вывелся в самом конце?
329 2096181
>>096163

>if a == dice():


>print ('you lose')



Почему если число угадано, то игрок проиграл?
330 2096184
>>096181
я изначально делал русскую рулетку, а потом подумал что это тупо - угадывать в какой ячейке пуля, сперва не заметил, а потом поменял местами win и lose вот тут
>>096166
331 2096188
>>096169
Вынести в переменную
dice_value = dice()
332 2096194
>>096188
Спасибо, сработало.
333 2096266
>>096144
да заебали вы с зондами, 10 обычная винда, более стаильная чем предыдущие.
если тебя зонды волнуют то поставь лтсб или че там еще есть за урезки
главное бля ходишь со смартом который тебя так ебет зондами что если ты увидел дилдо в посте на дваче то тебе блядь реклама самотыков спамит а тут в винде че то испугался каких то зондов.
винде вообще похуй по сути, там все зонды это гугл хром ну или твой акк майкрософт, никто не запрещает сидеть под автономным аккаунтом или же под левым, зареганным на фейкомыло
334 2096306
>>095656
Anaconda - менеджер зависимостей + виртуальные окружения + альтернативная библиотека пакетов.
https://anaconda.org/conda-forge/pyspark
Нужно чтобы разные версии пакетов не мешали друг другу.
Отличие от других в том, что она управляет не только питоньими зависимостями, но и библиотеками на других языках.
Можешь поставить вручную все. Тут например описывается пердоленье со спарком на винде.
https://naomi-fridman.medium.com/install-pyspark-to-run-on-jupyter-notebook-on-windows-4ec2009de21f

Jupyter Notebook - это удаленный интерпретатор + веб-интерфейс + свои свистоперделки вроде ячеек, красивого вывода. Проще самому попробовать.
Клиент у тебя в браузере, а сервер может быть как локально, так и где-то удаленно крутиться, лишь бы был доступ к нужному адресу и порту.
335 2096318
>>096144
А старые что превратились в тыкву?
Тебе же ничего не мешает сидеть на неподдерживаемой 7, некоторые норкоманы и на хр сидят.
336 2096334
>>096266
Старое железо тоже не нужно?
>>096318
Нет обновлений. Последнюю версию 3.8 вообще предлагают из исходников собирать - установщика нет. На xp, кстати уже никакой свежий 3.х питон не работает.
337 2096340
пипец, новый тред раз в неделю, вы ебанулись? Лето же!
338 2096362
>>096334
Не надо ничего собирать.
Заходим на 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)
Это последний полноценный релиз в эту ветку, есть установщик. Дальше выкладывают только фиксы безопасности в исходниках, это нужно для поддержки легаси, никаких фич там нет.
339 2096381
>>096340
На лето выкатываешься, а потом усиленно вкатываешься по 26 часов в сутки за два месяца?
340 2096391
>>096334
ну я сижу на 10 на железе 2014 года, куда еще старее то?
питон так то требователен к ресурсам, на сильно старой некроте с ним очень ебано будешь себя чувствовать
>>096381
как лучше выкатится на лето?
>>096340
поясни за лето, нужно чиллить или как?
ты сам как чиллишь?
341 2096422
Какова вероятность что я мог положить парсером крупный сайт? Скрипт парсит разделы барахолки. потом заходит в каждое объвление в разделе, парсит данные и качает картинки. Картинки парсит в многопотоке. Как то подозрительно его падение совпадает с тем как я запускаю скрипт.
342 2096423
>>096422
Ну всё, суши сухари, сядешь на бутылку за ддос.
343 2096426
>>096423
Пиздарики если так.
344 2096427
>>092521
pymentor.by
345 2096524
>>096422
Значит это очень потешный крупный сайт, если он валится от запросов с одной пеки и не имеет защиты от дудоса
346 2096540
>>096391
Никак не чилю - либо шарюсь в кодах, либо пытаюсь отдыхать в постоянной тревоге за нехватку денежных средств.
347 2096555
>>096427
Оно, спасибо.
348 2096614
>>096540
зачем ты шаришся в кодах?
почему не работаешь например на стройке?
и почему не чиллишь, пацан? лето же!
349 2096621
>>096426
зачем ты так жёстко его парсишь?
алсо зачем ты это делаешь?
350 2096670
Есть какое-то согласование именования переменных и функций? На том, на чем сейчас кодирую, привык все функции и переменные писать с большой буквы, если название переменной или функции из двух слов, то пишу так, к примеру, ClearTable(). Мне кажется так намного читабельнее всегда.
351 2096683
>>096670
Принято маленькие буквы и подчеркивания. Имена классов в кемелкейсе.
Вообще, поставь себе линтер, он будет тебе бухтеть по офф. стилю.
352 2096687
>>096683
Что за кемелкейс?
И что за линтер? Юзаю пичарм. Туда, как доп.модуль/плагин можно что-то поставить?
353 2096693
>>096687
В пичарме должно быть искаропки. Подчеркивает и есть аннотация, что не так.
354 2096698
Странно, чем заглавные буквы не угодили в названии переменных и функций, по мне так намного читабельней
355 2096699
>>096698
В раных языках разная традиция, сложившаяся исторически.
356 2096783
>>096698
Ебашу в питоне кэмел-кейс без задней мысли. Проблемс?
357 2096895
>>096783
Обоссут в норм конторе где на каждый коммит запускаются линтеры и тесты.
358 2096929
>>096895
А может это я их обоссу за неспособность поменять конфигу линтера?
359 2096934
>>096687
Кемелкейс это когда кемелКейс
Паскалкейс это когда ПаскалКейс
Снейккейс это когда снейк_кейс
360 2096942
>>096783
В принципе так иногда делают. Даже в стандартной библиотеке такое есть, модуль logging например. И ещё другое есть.

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

Хотя не то, чтобы уникальная история, такое много в каком коде встречается на разных платформах.
361 2096967
>>096942
У меня снейк_кейс ассоциируется с низкоуровневым байтоебством, а конкретно с сишечкой. Конечно это плохо, когда нет единой стилистики, но для кода на языке высокого уровня кэмел кейс это стандарт на сегодня.
362 2096992
>>096614
хаха. расскажи мне сказку дядя. лето красное пропела оглянуться не успела, как зима глядит в окно..
363 2096999
Че в питоне можно годами учить в Aiogram - Django?

За день изучения джанги создал простенький E-Commerce в соло, там дофига багов, тестов нет, но прям супер изи с одной докой в руках. Что люди умудряются годами изучать в Django or Aiogram, там же все просто как два пальца об асфальт, шок.
364 2097009
>>096999
Даннинг-Крюгер, ты?
365 2097015
>>096999
Хех, тащемта любой фреймворк на любом языке для опытного чела не проблема освоить за пару недель. Культ знания фреймворков это чисто пориджевский тренд, возникший в эпоху массового вката.
366 2097035
>>088956
О, можешь про него подробнее рассказать?
367 2097050
>>097015

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


Это классический Даннинг-Крюгер.

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

Но полноценное знание фреймворка подразумевает понимание многих тонкий вещей, надо что-то самому специально ломать, тренироваться на задачах, чтобы понимать слабые места, практики использования осваивать и т.п.
изображение.png4,9 Мб, 1200x1800
368 2097051
>>096929
Открывай ротеш, Гвидо писяет на тебя.
369 2097053
>>097051
Надо футболку поменять на майкрософт
>>096670
Да, в pep8
370 2097054
>>096999
Ну давай запили мне сервис на 10 тысяч челобек с несколькими бд, к которым нужно обращаться параллельно + вставка и обновление данных в реальном времени + все пользователи должны лицезреть обновления в таблицах/диаграммах с возможностью вносить изменения. Изи, хуле.
371 2097055
>>097009

>Даннинг-Крюгер


Пиздаболкин-Харкачевич скорей.
372 2097064
>>097054
Ты неправильные примеры приводишь. Само собой, бывают задачи, которые долго реализовывать, как бы хорошо ты фреймворком и языком не владел.

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

На самом деле такого дохрена. Одна Django ORM чего стоит, со своими запросами, миграциями и другом. И куча других вещей.
373 2097128
>>097064
Ну я за месяц джангу освоил и запилил первый сервис (опыта коммерческой разработки до этого не было). Даже джанга ненужна по итогу, всё на ДРФ переписал (и в будущем видимо придётся на фастапи переписывать). Другое дело, что сейчас нет понимания, моё это или не моё, т.к. "простенько в соло" запилить и долбоёб сможет. А нормально запилить, с редисом, селери, ювикорном и асинхронщиной хуй ты за месяц разберёшься в соло и без чужой помощи.
374 2097138
>>097050

>для опытного чела



Но если ты вкатун, то да, джанга это неебаца хитроумный снаряд
375 2097219
Если я держу в оперативе объект, который шарится между разными потоками, есть ли смысл лочить его __gettattribute__ __setattr__ __delattr__? И если я держу такие объекты в питоновом словаре, есть ли смысл лочить этот словарь?
376 2097225
>>097219
При модификации всегда надо лочить, ну и при чтении соответственно смотреть, не модифицирует ли сейчас данные другой поток.
377 2097231
>>097128

>джангу освоил


ты мою колбасу за щеку освоил ;3
не удивлючь если ты вообще не въебываешь как работают сессии, миграции, мб даже мидлвари какие

>Даже джанга ненужна по итогу, всё на ДРФ переписал


на дрф без джанги?
Охуенный фреймворк, конечно можно запилить говно с какой нибудь статьи и решить, что ты изучил джанго, но на самом деле в фреймворке ебанутая масса охуительных фич "из коробки", но про них нужно знать и нужно знать как их комфортно пользовать. Что вообще значит годами изучать? Никто же не сидит годами читая доку. Разбираемся с возможностями по мере необходимости, узнаем что-нибудь новое спустя несколько лет после знакомства, блядь, очевидно же
378 2097235
>>097225
А в каком смысле смотреть? Разве если данные модифицируются под локом, то другой поток не подождет пока операция закончится?
379 2097239
>>097235
Смотреть как раз значит, что все операции чтения данных расшаренного объекта ты заворачиваешь в залоченную секцию
380 2097241
>>096783
Я тоже петух охуевший, езжу по встречке, ссу на других за невозможность ездить нормально и не мешать мне.
>>096698
А я вот не люблю кэмел-кейс, вообще прямо отвратительно, вот заебись когда у тебя классы большой буквой, с заглавной такие типо важные очень штуки, а методы и переменные маленькие скромные с бледной кожей и тонкими ручками.
Просто как не пишу на чем то с кэмел-кейсом - какой то бардак выходит визуально, в питоне код ровные полосочки одинаковой высоты а с кэмелкейсом буквы сКаЧуТ.Как.ебаНутые, есще этиПереходыВместоНормальнойЧерточкиКотораяКакПробелНоВсеРавноНеПробел. ИМХО_глазам_как_то_проще.
381 2097243
>>096306
Спасибо анончик, то что надо!
Приколхозил в докере, вроде завилось.
382 2097244
>>097239
Спасибо, решил вот пет монолитом написать, убедился что много слишком ебалова в питоне с асинхронностью и потоками, как то с микросервисами проще кажется.
383 2097249
>>097231

>ты мою колбасу за щеку освоил


Очко своё напряги, а то сквозит на весь тред.

>не удивлючь если ты вообще не въебываешь как работают сессии, миграции, мб даже мидлвари какие


Так вы же сами выше кудахтаете, что джанга это хуйня, за 2 недели можно освоить. И зачем мне понимать, как работают хуки в промежуточном слое, если логика прописана в классах типа django.contrib.sessions.middleware.SessionMiddleware и т.п. Что там с миграциями и сессиями разбираться, makemigrations и migrate сложно понять, что делают?

>на дрф без джанги?


На голом дрф, через сериализаторы и контроллер, ну прикрутил ещё сваггер и адфс настроил для вин-аутентификации.

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


А я как будто это не знаю, спасибо копетан. Я и написал выше, что свой говносервис первый написал за месяц, тупо читая книгу, оф доки и доки расширении. Сейчас пишу второй сервис для работы с олап-кубами, и пока только с логикой сервиса ебусь 3 неделю. Но это просто я же тупой пральна, а сеньоры с харкача конечно за 2 дня сделают, и сами сервак развернут и задеплоят.
384 2097251
>>097244
Нах тебе вообще эта многопоточность? Заебенил бы на корутинах всё что надо
1517952909147666607.jpg14 Кб, 400x266
385 2097255
>>097241

>методы и переменные маленькие скромные с бледной кожей и тонкими ручками



Мое ебало, когда вижу подобный мелкокод
386 2097259
>>097251
Есть кароче слой хранилища, там скл и носкл бд + хранилище прямо в оперативе. Хотел что бы оно было доступно всем потокам и корутинам тоже. У меня сейчас в одном потоке апиха, в другом сервер вебсокетов, далее еще хочу воркеров накинуть каких-нибудь. Чтобы все это могло работать как отдельные сервисы в одном кластере, но минуя брокер сообщений и хттп запросы, чтобы не сериализировать джсоны постоянно.
387 2097263
>>097259
А, ну тогда да, разноси это говно по разным процессам. Иначе забажит какой-нибудь вебсокетный код и пизда всему сразу
388 2097266
>>097249
найс слив, мог бы уже не пытаться оправдаться, умей признавать поражение
389 2097267
>>097231
А что там такого уникального в этой джанге, чего не было бы в любых других фреймворках на любых других языках? Роутер? Мидлвари? ORM и шаблонизатор из коробки? Если ты имел когда-нибудь дело с одним фреймворком, считай ты имел дело со всем такими же.
390 2097268
>>097266

>пук

391 2097273
>>097267
Ничего уникального, там все очень удобно просто.
392 2097275
>>097273
ЕМНИП все писались кипятком от джанговской админки и прочего contrib-а. Причем в то же самое время ещё больше писались кипятком с рельсы, где было ещё больше батареек и ещё больше удобства
393 2097364
>>097275
Ну вот такой способ быстро сайт наговнякать, большинство сетевых ресурсов не исполняют какую-то сложную логику же, для того и нужно
394 2097370
>>097275
Ну вообще админка как бы заебумбная, ты че
>>097364
Нормальные апи можно собирать, а тяжелая логика идет в микросервисы на го, не тяжелая но сложная - в микросервисы на питоне
395 2097372
>>097370

>Нормальные апи можно собирать


Если тебе только апи нужно, то ебошишь FastAPI и не извращаешься с синхроностью самой джанги
396 2097396
>>097364
Меня прост удивил местный шизик, который считает что изучение джанги это пипец какое достижение, ведь там столько сложных вещей типа ORM, лол.

А вообще сегодня никто не рендерит страницы шаблонизаторами на бэке. Сегодня модно JAM-stack, изоморфный код и serverless-аппы
397 2097459
Пилю апи на фласке, все просто, понятно, ошибок минимум. Сейчас понадобилось реализовать вебсокеты, и я охуел от того, что всё надо переписывать на асинхронный код. Фласк менять на асинхронный аналог, драйвер для бд тоже, сервер с WSGI на ASGI. Можно обойтись без этого говна? Мне просто нужно при пост запросе отправлять сообщение всем вебсокет клиентам.
398 2097521
>>097459
Как ты себе представляешь несколько вебсокетов, крутящихся в одном потоке одновременно?
399 2097526
>>097459
Так есть же библиотеки?
400 2097547
Поясните плис за тред и процесс? Тред это нить, канал по которому можно что-то пропустить, тот же веб сокетт. А процесс типо нечто из оси или проги, которые можно также пускать по треду. И типо можно за счет мультитреддинга реализовать мультипроцессинг. Я верно все понял?
401 2097558
>>097547
упд синнхроный кодинг я понимаю, асиннхронный, когда код выполняется поочереди, дискретно, но в итоге получается континум выполнения проги, так?
402 2097570
>>097547
https://youtu.be/AXkOli6BsBY разжуют и не останется вопросов
403 2097574
>>097558

Смотри, тхреады, это как человек сел посрать, и давит длинную колбасу, пока не досрёт следубшая не полезет. А асинхронн, это как кролик ебанный какойнибудь, с паузами высирает, но разные какахи. Ну и сооствественно надо учитывать что у одного срущего, может быть несколько жоп.
404 2097594
>>097574
Тогда уж лучше пусть человек будет процессом. Если он срет, а потом блюёт - то это синхронное выполнение, а если одновременно и срет и блюёт то это асинхронное. Добавим второго человека уже будет мультипроцессинг
405 2097657
>>097459

>Мне просто нужно при пост запросе отправлять сообщение всем вебсокет клиентам.


Так и что сложно переписать такое простое приложение? Делай отдельными сервисами: отдельно апи и отдельно сервер вебсокетов.
406 2097692
>>087217 (OP)
У меня эрекция нахуй от одной мысли о создателе пайтона.
407 2097696
>>097594
Ну вроде я верно понял тогда. А как быть с тредом?
Сел посрать - тред. Типо оболочка да?
Срет - это процесс.
Если срет и блюет, это типо асиннхронщина. Если сначал срет, потом блюет это синхроннщина.
Если добавить нового чела, то будет второй процесс да?
А можно двух людей обернуть в тред? И внутри треда делать треды?
408 2097835
Ку. Переписываю код неизвестной версии питона на тот язык что используется у меня в проприетарной системе. Почти всё переделал, но никак не могу точно разобрать что делает следующий код:

>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. Верно?
409 2097844
>>097835

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


Так вот же!

>for column in dispatch_list



А вся конструкция целиком называется генератором списков. (или нет, я на самом деле не знаю, как на русский переводится)
https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions
410 2097853
>>097835
Эта сахарок для циклов, генерирующих списки. Разворачивается в
block_dispatch_list = []
for column in dispatch_list:
___block_dispatch_list.append(column[indices])
411 2097854
412 2097866
>>097547
Процесс это инстанс запущенной программы. У него есть собственное виртуальное адресное пространство, набор открытых файловых дескрипторов, ему можно посылать сигналы.

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

У процесса есть как минимум один главный поток, но он может создать себе дополнительные. Создание потоков дешевле создания процессов, но все равно достаточно дорогое, так как требует память под стэк.
изображение.png141 Кб, 1200x630
Памагите 413 2097906
Приветствую вас, мудрые аноны и укратители змей.
В голове еще остались знания питуна, только с ООП беда, еще немного из анаконды есть в голове(флешбеки из библиотек).
Скажите, что прочитать/посмотреть, а так же где найти задания по питуну и конде?
Под анакондой я имею ввиду библиотеки типа тензорфлоу, матплотлиб и тп
да, датасайнс, да математику знаю
Пожалуйста, не писайте на меня
414 2098150
Анончики, нужна помощь с архитектурной точки зрения. Как вы рауты к AJAX-запросам именуете? Вот у меня есть форма с мнениями лайками к посту, которая AJAX-post отправляет, а раут не особо замысловатый - /vote/
415 2098156
>>098150
Rest api
416 2098158
>>098156
Не, мне там рест не нужен пока. Вьюшка передает обратно срендеренный HTML. Потом думаю на Vue + GraphQL переехать
417 2098181
>>097255
ПОЧЕМУ НЕЛЬЗЯ ПИСАТЬ КОД КАПСОМ?
418 2098188
>>097906
обучай перцептроны
419 2098210
Сап, в этом итт треди вообще есть опытные змеевики? Мне низачем не нужно, просто хочется знать, почему вы все ещё юзаете пистон. Я уже столько всего на эту тему перечитал, но до сих пор не могу найти ни одного человека, который:
1. Знает несколько ЯП в одной и той же области применения
2. Имеет ИТ вышку
3. Юзает пайтон фуллтайм как основной язык и никуда не собирается при этом
4. Работает в индустрии, а не в науке

Сколько вас таких бедных?
420 2098329
>>098188
С чего начать? Где начинать копать?
421 2098331
Поясните плис за архитектуру разработки.
Как я себе это представляю.
Я ставлю цель, и по пунктам реализую ее. Думаю должна быть модульность. То есть модули сделаны в виде процедурного стиля. Потом как-то на основах ООП все собирается и уже реализуется как-то в одном конфигурационном файле в декларативном стиле. Верно я понял?
422 2098347
>>098329
тут уже мои полномочия всё
ну начни с визуализации , линейная регрессия, нормализации, РСА, тнсе, дбскан, там этой хуйни как говна за баней короче
обучение с учителем, без учителя и все такое прочее
а потом переходи на нейросети, сверточные, реккурентные и всё такое, пасан. я сам то в этой хуйне нихуя не понимаю
423 2098350
>>098210

>Имеет ИТ вышку


это вообще дичь чисто для зумеров, ит вышки не существовало наверное до 2017 или позже.
так что ит вышки наверное еще и нет ни у кого.
То, чему учили скажем в 2010 это блядь эвм на перфокартах, это уже устарело лет 8 назад
то есть даже зумерок, который закончил вуз в 2014 там ит вышка уровня бейсика и эвм
424 2098354
>>098350
Давай не будем. Я почему такие критерии привел - матерый питонист может получиться только при несоблюдении как минимум одного из них. Других я до сих пор за 10 лет не видел ни ирл, ни в интернетах.
425 2098365
>>098331
Попробуй в официально-деловом.
426 2098406
>>098210
1) Знаю пистон и ГОвно
2) Заканчиваю заочку
3) ГОвно только для пары сервисов было, остальное пистон
4) Беттинг
427 2098417
>>098365
Не обижайся на слова, надо разобраться что такое архитектура разработки.
428 2098422
>>098406
Го это не их той же оперы вообще. Ну говорю же. Попробуй другое что-нибудь, пистон забросишь нахрен.
429 2098423
>>098417
Ты не разберёшься, пока не дойдешь до прикладных задач (а их у пистона очень немного).
430 2098426
TIL: в питонге нет switch
https://stackoverflow.com/questions/46701063/why-doesnt-python-have-switch-case

Как сосётся?
431 2098430
>>098426
В 3.10 будет, рассасывайся обратно.
А в чем его критическая необходимость, по-твоему? Есть куча других способов.
432 2098439
>>098430

>В 3.10 будет, рассасывайся обратно.


Там какая-то адовая наркомания, до сих по не вкурил.

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

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

Кстати согласен, что switch не нужен, если язык поддерживает удобный else if, как elif в питоне, то получается эквивалентная конструкция очень легко читаемая.
433 2098444
>>098350

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


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

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

Но я не буду участвовать в сраче "вышка нинужна", говори что хочешь.
434 2098448
>>098430
Ору, подвезут в октябре 2021. До этого надо было сосать и говорить "почему ита нинужна". Кстати, принципиально не будешь юзать свич, когда появится или прогнешься?
435 2098451
>>098430
А как же принцип ридабилити каунтс? Не могли же они взаимоисключающие параграфы в свой манифест засунуть? Лол, не язык, а просто какой-то набор анти-паттернов.
436 2098457
>>098448
Это и нинужно в большинстве случаев, просто пиздануто из си, где оно хорошо ложилось на концепцию переносимого ассемблера.
Юзать скорее всего не буду, потому что пока оно просочится в мейнстрим, я уже укачусь на другие языки, скорее всего.
437 2098459
>>098448
В чем switch-case преимущество перед if-elif-else?
438 2098464
>>098457
Зочем тогда питон? Я пытаюсь понять с 2013 года и не могу. Даже пишу на нем периодически один проект (который не я начал, естественно). Язык вкатывальщиков, учоных и сисодменов.
439 2098470
>>098459
1. Удобнее читать
2. Не надо изобретать велосипед, если if elif кажется вдруг неудобным (иначе бы switch и не придумывали)
440 2098473
>>098464

> Язык вкатывальщиков, учоных и сисодменов.


Примерно так и есть. Ещё всякие там автоматизации-ETL-дата процессинги.
Не вижу смысла впихивать любой язык во все возможные ниши.
441 2098475
>>098459
Не знаю как в питоне сделают, в норм языках можно ещё и несколько условий сделать на каждый кейс, ифами это может чудовищно выглядеть.
442 2098495
>>098470

>1. Удобнее читать


У тебя отступы для этого.

>иначе бы switch и не придумывали


А четкое понимает зачем это нужно есть?
Просто предъявлять претензии без обоснования своей позиции так себе занятие. Я вот не вижу как switch-case удобней читать.
>>098475

>можно ещё и несколько условий сделать на каждый кейс


Вложенный цикл. Ничего необычного и разницы с обычным if нет.

> ифами это может чудовищно выглядет


А может выглядеть точно так же.

Не, я понимаю, если бы вы реальную функцию приводили в пример, но "ну так выглядит лучше" - это совсем не то. Вот нахера было в принт засовывать скобки - вот это я не понимаю. Нахера сейчас отсекать кучу народу от новых веток и потом пилить четвертого питона заставляя всех переучиваться так же как со 2 на 3 - тоже непонятно. Там Гвидо мог бы сразу новый язык писать - какого-нибудь ужика или глиста.
443 2098497
Ананасы, поясните за микросервисы на питоне:
К примеру я написал 3 модуля, они должны работать параллельно. К примеру каждый из них работает в своем контейнере, соответсвенно GIL у всех свой. А если я создам некий управляющий процесс, который будет запускать эти скрипты через subprocess.call ? Я так понимаю они запускаются в отдельных потоках, но что на счет гила?
444 2098501
>>098497
А что насчет гила? Они сами по себе.
Но в целом это делается не так, а через очереди. Ты в главной хуйне пихаешь задачи в очередь, а воркеры уже автономно оттуда забирают.
445 2098509
>>098495
Может ты просто никогда не писал switch-case? Другим почему-то не нужно доказывать его полезность, он есть практически везде и используется.

>Вложенный цикл


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

>А может выглядеть точно так же.


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

Насчет переучивания - это просто персональная эволюция диктатора Гвидона, скоро допилят до нормального языка общего назначения.
446 2098516
>>098422
А что вместо пистона? Руби мертв, шарподжавы слишком громоздкие, пыха для дебилов как и питон
447 2098517
>>098495

>Вот нахера было в принт засовывать скобки - вот это я не понимаю.


А я как раз понимаю, это необходимо было делать.

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

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

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

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

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

>Нахера сейчас отсекать кучу народу от новых веток и потом пилить четвертого питона заставляя всех переучиваться так же как со 2 на 3 - тоже непонятно


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

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

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


Приходит, в основном его только так и использовали, тогда, когда лучше if-else.

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

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

switch-case дополнительные возможности даёт тогда, когда ты в каком-то case делаешь часть работы, в следующем продолжаешь для более общего случая. Но это редкие случаи, очень запутанная логика и вообще грязный код.
449 2098525
>>098509

>Другим почему-то не нужно доказывать его полезность


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

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


К чему это ты? Как у тебя вложенный цикл switch отличается от такого же с if? Тут вообще никакой разницы нет и быть не может.

>никому


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

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


Ну так сам принт в скобки и зажимай. Зачем аргумент зажимать?

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


Это сейчас не планируется. А к 2025 найдут опять неисправимую уязвимость,решат что пришло время и под этим соусом переделают половину синтаксиса.
450 2098532
>>098473

>Не вижу смысла впихивать любой язык во все возможные ниши.


Ты забываешь о том, что язык это платформа.

Питон это не только синтаксис, это ещё большая библиотека в коробке, много сторонних библиотек, удобный pip и venv, сообщество и документация. Почему не питон, когда можно и на питоне?
451 2098533
А паттерн матчинг это как
452 2098538
>>098525

>Это сейчас не планируется. А к 2025 найдут опять неисправимую уязвимость,решат что пришло время и под этим соусом переделают половину синтаксиса.


Этого явно уже не будет.

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

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

Поэтому новой ветки не будет. Скорее просто придумают новый язык по мотивам питона, это будет закономерно. Уверен, что произойдёт когда-нибудь, противоречий в языке накопилась масса.
453 2098539
>>098516
Раби жив, как цой. Серьезно, там уже всё придумали, он типа жабы для веба теперь, только не такой душный.
454 2098540
>>098459
Ни в чём, это синтаксический сахар.
мимо asm dev
455 2098543
Пацаны, стоит учить питон?
Выучил верстку(html и css) и понял что это хуйня говняная с еблей мардижинами у блоков и стилизированием текста. Короче сумасшедшая хуйня, я не знаю как там можно 500 макетов сверстать и не сойти с ума. Короче решил в бек пойти. Питон норм вариант? Говорят что легкий для новичков. Ну хз. Вот выучу я питон с джанго и фласком и sql, а дальше как? На фрилансе заказы искать чтобы портфолио забить? И потом вофис когда норм портфолио соберется? Подскажите пожалуйста.
456 2098546
>>098543
И да. Начал учить ЖС, он мне в беке бесполезен будет? Мне закончить с ним посоветуете и сразу пойти на питон или как?
457 2098552
>>098543
а дальше как?
NICAQUE
На фрилансе видел на питоний веб только готовых специалистов на живой проект.
458 2098554
>>098525

>К чему это ты? Как у тебя вложенный цикл switch отличается от такого же с if? Тут вообще никакой разницы нет и быть не может.


Switch не нужен вложенный цикл, можно просто добавить условий на один и тот же кейс. А вот if (вложенный_цикл) выглядит как хуйня. Почему цикл вообще? Давай рекурсию юзать, нахрен этот синтаксический сахар?
459 2098558
>>098552
Подожди, то есть практику никак на питон не набить? Чет ты пиздишь
460 2098562
>>098558
Не парься, ты через неделю на что-то другое перескочишь.
461 2098564
>>098562
чел, иди нахуй
462 2098566
>>098564
Вот до чего верстка доводит, на людей бросается.
463 2098571
>>098522

>Приходит, в основном его только так и использовали, тогда, когда лучше if-else.


Ну вот смотри как в руби используют:

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

А если там целая куча этих вариантов? Как это будет на ифах и вложенных циклах?
464 2098580
>>098554
какой в жопу цикл, вы о чём, аноны?

На условном языке, 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.
464 2098580
>>098554
какой в жопу цикл, вы о чём, аноны?

На условном языке, 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.
465 2098582
>>098571
if item.class.name == 'hui'
elif item.class.name in ('govno', 'mocha')
466 2098587
>>098582
И ещё сто раз item.class.name.
467 2098590
>>098587
КОКОЙ СТРАШНЫЙ ОВЕРХЕД
468 2098592
>>098571

>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, это был персональный бзик Гвидо, но его переломали в этом и вроде как сломали этим. Без возможностей := действительно многое превращается в ад, в два раза больше строк. Ну не очень часто, но бывает такое.
469 2098623
>>098590
Дело не в оверхеде, читать противно.

>>098592
Хуже тем, что надо знать, что switch не существует, когда это уже давно де-факто стандарт. Плюс If открывает ненужные возможности и заставляет читать всё от начала до конца, не вхуярили ли там какое-то ещё условие вместо обычного соответствия item чему-то. Когда видишь switch, сразу интуитивно понятно, что мы проверяем одну конкретную вещь, которую сверху написали.
470 2098649
>>098623
По-моему, ты на ходу придумываешь какие-то нелепые придирки. В каждом языке вагон всякого говна и ничего, как-то блять читают.
471 2098681
>>098649
Ну так-то всё придирки, да, можно и на перфокартах. Я просто заебался понимать, почему питон такой, почему в нем всё не как у людей.
472 2098701
>>098347

>я сам то в этой хуйне нихуя не понимаю


Блин, круто
Лан, во всяком случае спасибо
473 2098784
Пока местные воюют против свитчей и ифов, я делаю словарь вида {вариант: код} и прямо в месте его создания делаю .get(switch-value, default-branch)()
И никакого бугурта.
Мимо 300ккк-нс джун
474 2098795
>>098331
ап, пояснтие за архитектуру на пистоне.
475 2098810
>>098784
Вот ты главный велосипедист, я этот вариант даже не упоминал, потому что он самый ебанутый.
476 2098821
>>098444
я учился в 2000 году в универе, у нас БЫЛИ МАГНИТЫНЕ ДИСКЕТЫ на 3 мегабайта, чел.
ты щас даже не сможешь написать приложение чтобы оно занимало меньше 3х мегабайт
477 2098832
>>098821

>БЫЛИ МАГНИТЫНЕ ДИСКЕТЫ на 3 мегабайта


Это что за дискеты такие? На полтора помню были, но на три?
478 2098833
>>098832
Старческий склероз, хули.
479 2098834
>>098821
На сишечке напишешь, почему нет?
480 2098852
>>098832
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
Гляньте, пожалуйста, кто шарит.
481 2098873
>>098832
>>098833
на 2,88 мб были.
image.png52 Кб, 474x116
482 2098884
>>098852
Ты сложно решаешь же. Надопросто понять геометрический смысл переменных.
Вот у тебя 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
483 2098887
>>098884

>x = -x+1


y = -x+1
fix
484 2098890
>>098873
Может теоретически и были, я никогда не видел.
485 2098892
>>098852
Прочитал твои рассуждения, ты вычислил, где она пересекается с осью абсцисс (y=0 => ось x), а ось ординат — это ось y (x = 0)
486 2098898
Ушел в репетиторы, уже появилось пару людей которые "забронировали" занятие, первое занятие будет во вторник. Сабж в том, что я вроде много знаю, но мне сложно пояснить все словами, поэтому я начал проходить заново ролики Тимофея и читать Марка Лутца, пишу что то вроде лекций в блокнот, попутно добавляя задачи для решения. Нормально ли это, подумываю отказаться, но с другой стороны деньги хорошие предлагают.
487 2098900
>>098898
Лох прет - не окучишь ты, так другие.
Так что если тебя не напрягает моральная сторона вопроса, то почему бы и нет, лол.
488 2098915
>>098890
они были повсюду
489 2098916
>>098898
бля, главное уметь пиздеть.
если ты ебано объясняешь то ты в прососе
490 2098918
>>098900
я например не могу наябывать людей, сынок
491 2098919
>>098915
Я тоже чето таких не припоминаю.
492 2098977
>>098898

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


Попробуй, не получится — вернёшь им деньги, скажешь, что ты неподходящий учитель для их детища.
493 2098984
>>098977

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


Не надо так делать и кодировать в себе неудачника.

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

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

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

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

Люди не алгоритмы, формальным описанием они не программируются. Крутым программистом тебе не нужно быть, теме надо уметь учить, это разные вещи.
494 2098987
>>098915
Не было. Как дед говорю, который пользовался дискетами.

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

То есть технология допускала, но реализовано массово этого не было.
495 2099042
>>098984
бля,это не я учить собрался,я прост не могу наебывать. нужно переадресовать твой коммент тому, кто учить собрался.
алсо я бы может и рад учить, но у меня такой бзик что я не могу учить за бабки чему -то , если сам в этом не шарю на 100%.
а шарить в птионе на 100% это надо дрочить лет 5 минимум еври дей разные задачи, что нереально.
>>098987
я тоже пользовался, вроде 3 мб были. Хотя ХЗ, может припарил уже. но насколько помню были на 3 и на 1,5. на 3 блатные считались
вот нашел даже большего обьема
496 2099045
>>099042

>вот нашел даже большего обьема


Вот если бы ты у себя на антресоли нашёл такие, тогда бы да. Но их не было и нет в постсовке.
image.png250 Кб, 1654x1416
497 2099049
>>098784
Обоссывание высшего уровня, от самого. И ещё такой - вот вам костыль, но эй, осторожнее с этим, а то аттакеры смогут вызвать любой метод! Вот это я понимаю продуманный язык, лаконичный, ничего лишнего, лол.
498 2099060
>>099045
Анон что-то путает, время переписало воспоминания.

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

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

То есть такие дискеты и у американцев были в статусе очень большой экзотики, тогда как 1.44 самый массовый продукт.
499 2099067
>>099042

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


>а шарить в птионе на 100% это надо дрочить лет 5 минимум еври дей разные задачи, что нереально.


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

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

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

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

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

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

Тому ученику, которому дебри нужны, репетитор скорее всего не нужен, он сам научится по книгам.
500 2099069
>>098898
Я бы хотел кстати попробовать кого-нибудь порепетировать. Как такие предложения найти? И ты вкатунов учить собираешься, или школьников-студентов?

Вкатунов бы, пожалуй, не очень хотел.
501 2099072
Парни, решил вкатиться в этот ваш пайтон. Знаю джаву слегка (ну основы + спринг на крудах), эскьюэль + могу верстать и джавоскрипт писать слегка (на уровне компонентов реакта, лол).

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

С чего начать? Вот открыл книжку лутца, а там воды больше чем в моем дипломе по финансам. Просто ебаный океан блядь.
Дайте гайдлайн по книжкам и че там начиная от основ, заканчивая джангой, тестированием и прочему говну. Я вроде так понял что алгоритмы у патлатого на ютубе, это ладно. Че по остальному?
502 2099075
>>099072
можно даже не книжки, можно даже курсы какие-нибудь не инфобизнесменские тока
503 2099077
Пиздаа, этот дурак умудрился растянуть начало описания ООП аж до второго тома, а че еще на десяток не растянул? Он че, ебанутый?
504 2099079
>>099077
На самом деле это один ебовейший кирпич, тома в переводной.
Алсо, сюрприз, такой кирпич не один, лол.

Но книга хорошая, хоть и старая, в ней реально много всего. В питоновских книжках очень большой перекос в сторону ньюфажеских, которые покрывают небольшую часть для хоть какого-то использования. А попродвинутее мало, Лутц это одна из них.
505 2099084
>>099079
а вообще, есть ли смысл вкатываться в пайтон без мат бэкграунда?
Я уже всю математику забыл к херам, максимум могу простенькие алгоритмы сложность подсчитать, и то там математика особо не нужна, чисто на рефлексах понятно где логарифм, а где степень, а где что-то среднее.
Я так понял, в пайтон идут только для машинлернинга и дата саенс? В джангу крудить никак не устроишься из-за того что пайтон легче чем энтерпрайз языки? Я вроде видал несколько вакансий даже в моем мухосранске на макака-круд работу, но из-за того что язык легче, таких макак будет больше конкурентов, да?
506 2099085
>>099084
Язык не легче, он максимально ебанутый, тупо хайп идёт и всё.
507 2099087
>>099084
Язык не легче, у него более ясный и "красивый-четкий" синтаксис. Имеется в виду не легче js, php и прочего из мира веба.
508 2099088
>>099087

>более ясный и "красивый-четкий" синтаксис


Неконсистентный с самим собой и намеренно нарушающий общепринятые конвенции других языков.
509 2099089
>>099088
Я как нубик говорю, который видел пыху (когда на фрилансе пыхтел), пытался в js, видел джаву (в книжечке и на курсах), видел плюсы у друга.

Питон это такой ЯП, на чей код ты смотришь и можешь почти все понять сразу - вот здесь цикл, вот здесь условие, вот здесь функция, сравнения, переменные и прочее. В начале это прям дикая завлекалочка для вкатуна.
510 2099092
Аноны, есть csv-файл, и есть таблица, содержащая данные из этого файла (не все). Как быстро сравнить файл и таблицу и найти разницу в данных?
Сейчас я делаю так: загружаю таблицу в другой csv-файл, и каждую строку из первого файла ищу во втором. Короче, медленно. Можно ли быстрее?
Использую python (можно bash)
511 2099093
>>099089
Только это. Для профессиональной разработки чего-либо - абсолютно непригоден, хотя некоторые умудряются. Медведя тоже можно научить ездить на велосипеде.
512 2099094
>>099092
Сколько файлы весят? Можно пожертвовать памятью если влезет весь файл все строки из первого файла сохранить в множество (set), потом проверка каждой строки будет за O(1) вместо O(n)
513 2099097
>>099093
Прототипирование + не забывай что к Питону прибегают ученые и математики (которые как бе не программисты, но иногда и им надо).
514 2099100
>>099092
спасибо, анон, попробую. На размер файлов ограничений нет, ну думаю порядка ~10к строк
515 2099101
516 2099120
>>098892
Бля, спасибо, анон!
517 2099134
>>099088
>>099093
Ты начал джихад против питона, потому что там нет свитч?
518 2099188
>>099097

>Прототипирование


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

ЛОЛ, нет, конечно, фантастика. Бывает иногда, что сделают на одной платформе, потом упираются в производительность и переписывают на другую, полностью или частично, но это другое всё-таки.
519 2099191
>>099188
Почему другое?
520 2099196
>>099049
Про словари

>Обоссывание высшего уровня, от самого.


чем плохо-то? Кроме аргумента "там рядом перечислен другой вариант с возможным выстрелом в ногу" что-то можешь привести?

Про второй способ - ну какой же яп без способа выстрелить в ногу. Да и выстрелить вряд ли получится - если программист в курсе гетаттра, то очень вероятно, что знает и про то, как защититься от уязвимости такой. Например, способом, описанным на твоем же скрине.
521 2099285
>>087217 (OP)

>https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание


Ваша ссылка сдохла
522 2099307
>>099188

>потом упираются в производительность


На пистоне можно упереться в производительность или на мат операциях или когда монолит делаешь, для среднего проекта распиленная на микросервисы архитектура нормально подходит. Потом если нагрузка возрастает и девопс начинает приносить жирные счета можно переписать часть системы на что-то более производительное.
523 2099347
>>099307
Легче сразу на чем-то другом писать.

>>099196
>>099134
Кажется я потерял остатки уважения к этому языку, когда сам попробовал им воспользоваться. До этого отказывался от мысли, что такой инвалид может быть популярным языком, который везде и всюду суют, думал - ну мало ли какая причуда, значит были на то причины. Но нет, оказалось, не было. Просто главный дезигнер тешил своё эго, а вы теперь попробуйте на этом ехать.
524 2099356
>>099347

>Легче сразу на чем-то другом писать.


Не легче, по скорости разработки ему нет равных, особенно если вы стартап пилите, где фичи нужно каждый спринт по фиче выливать. Для MVP это очень важные качества, так же быстро только на рубях можно.
525 2099359
>>099356
Вот на рубях и надо. Змеиного уродца всегда можно сбоку заюзать, если уж так нужен ML, AI и все такое.
526 2099364
>>099359

>Вот на рубях и надо


Питонячьих разрабов легче искать
527 2099369
>>099092
Что значит "таблица"? эксель что ли?
Делаешь 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')).
528 2099373
>>099364
Сомневаюсь, что профи среди них больше, чем на любой другой ЯП. Может ещё заколебаешься фильтровать. Разве что под обучение набрать, таких да, пруд пруди.
529 2099382
>>099373

>Сомневаюсь, что профи среди них больше, чем на любой другой ЯП


Причем тут другие ЯП если мы про руби и питон говорили? Тебе конкретную задачу назвали под которую питон подходит, MVP для мест, где скорость разработки важна. У рубей в еще в середине десятых проблемы были.
530 2099387
>>099382
Какого плана проблемы? С поиском разрабов?
image.png49 Кб, 700x350
531 2099396
>>099387
Да, и с вакансиями тоже
532 2099404
>>099396
А, ну лол. Если сейчас как в 2013 - значит всё норм. Не помню, чтобы у кого-то были проблемы. Просто нет хайпа и всё. Все, кто хотят - находят работы и работников. А что за проблемы в середине десятых, если там как раз самый подъем был?
533 2099407
>>099404

>А, ну лол. Если сейчас как в 2013 - значит всё норм.


Кроме того, что с каждый годом идет падение

>А что за проблемы в середине десятых, если там как раз самый подъем был?


Тогда уже начала падать популярность, дроп вакансий произошел с задержкой
534 2099411
>>099407
А почему Руби начал помирать - есть кулстори в виде блогозаписи какой-нибудь?
535 2099417
>>099411
Язык одного фреймворка из которого спиздили киллер фичи в другие фреймворки, типа той же джанги. Как поняли, что можно быстро говнякать сайты на других языках с более широким профилем применения так свалили туда. Да и питонячий асинкио выстрелил в то время, как руби мог только срать тредами с GIL.
536 2099422
>>099417
А можешь рассказать (если знаешь) почему Питон выбрали всякие ученые, математики и прочие люди в науки и около нее для своих моделей и мат. расчетов?
537 2099437
>>099422
Меньше шансов выстрелить себе в ногу + простое написание либ с сишным бекендом
538 2099447
>>099417

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


Чего там выстрелило, когда оно появилось всего лишь 3 года назад? Ещё даже заюзать мало кто успел, наверное.
539 2099466
>>099447
Дед, async/await вышел еще в 2015, 6 лет прошло уже, а еще год до этого можно было через декораторы делать. Аiohttp уже в 2016 релизнулось.
540 2099484
>>099466
Все равно нафиг не нужен для веб-дрисни, а другое в сравнении с руби и не обсуждается.
541 2099502
>>099484
Руби вообще труп. Сначала отвалились рельсы, он зацепился ещё каким-то чудом в области девопс, а теперь его оттуда выпизднул го.
542 2099503
>>099484

>Все равно нафиг не нужен для веб-дрисни


Ну вот захотел я найти асинхронный клиент для amqp
Есть это, не обновляется с 2020 года и поддерживает только дропнутые версии рубей
https://github.com/ruby-amqp/amqp

Есть банни, но там по треду на коннект, что вместе с GIL убивает производительность.

>it maintains its own I/O activity loop in a separate thread, one per connection.



>а другое в сравнении с руби и не обсуждается


Потому что для другого руби не нужны и там нет нужных либ
543 2099622
>>099503
Просто объясни зачем тебе RabbitMQ на руби, если там есть sidekiq? Сложно это понять. Ну типа разве что там какая-то олдовая кодовая база, которую надо перевести на языкнейм, в данном случае пистон.
544 2099638
>>099502
Не знаю чо там отвалилось у вас, я на нем работаю 8 лет и всё ок, основные гемы обновляются регулярно, новых сотрудников дохуя влилось за последний год. Хз, сравнить с питоном не могу, профессионально им не занимался, но то, с чем столкнулся в побочном проектике - неприятно удивило меня.
image.png538 Кб, 640x640
545 2099639
>>099622

>Просто объясни зачем тебе RabbitMQ на руби, если там есть sidekiq?


>сравнивать бекграунд процессинг и брокер сообщений


Ты серьезно сейчас?
546 2099660
>>099639
Я не вижу особой разницы, объясни мне. Практическую, не вакуумную желательно. Вот эту статью прочитал:
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.
547 2099673
>>099660
Не, ну ты серьёзно?
Брокер сообщений позволяет соединять кучу разных микросервисов которые могут быть сделаны на совсем разных платформах.

Если внутри монолитного приложения работать, то да, внешний сервис не очень нужен.
548 2099676
>>099660

>Я не вижу особой разницы, объясни мне.


sidekiq корректнее сравнивать с celery, которая может использовать кролика как бекенд. А сам кролик может использоваться просто как брокер сообщений между любыми сервисами на любых языках, лишь бы формат соблюдали.
Вот недавно у меня была интеграция со сторонним продуктом, они как раз предоставляли свою очередь реббита, так как нужно было иметь персистентную очередь. Можно это как канал связи для RPC юзать, очень много кто на этом микросервисы строит.
549 2099681
>>099502
Насчёт трупа спорно, по крайней мере на ХХ количество вакансий по слову "ruby" примерно такое же, как и по "django", меньше, но немного. И на джанго из этих много нерелевантных, где только текст вроде "иметь опыт с каким-нибудь из фреймворков вроде django/flask/aiohttp".

По слову "python", конечно, разница уже десятикратная.
550 2099683
>>099676
Мне кажется тут уже их архитектура вокруг реббита построена, поэтому и так, наверное так удобнее и привычнее им было делать на джаве какой-нибудь. Я с рубями таких сервисов и не встречал. Обычные API и вебхуки везде.
551 2099689
>>099683
Тебе нужно отослать сообщение на сторонний сервис и иметь гарантию, что оно останется в очереди до востребования, даже если сам сервис лежит, что делать будешь?
553 2099802
>>099689
Мы же не обсуждаем с очередью или без. Почему это должен быть именно реббит, а не другая очередь + API - малопонятно. Зависит от решаемой задачи в конце концов.
554 2099812
>>099802
Ну найди тогда хоть один клиент для очередей на руби, к которому можно прикрутить любой другой язык и который может работать асинхронно не через треды, это тупиковый путь.
555 2099817
>>099812
А очередь упадёт, что будешь делать?
556 2099821
>>099812
>>099817
Особенно если у тебя межсервисные сообщения на ней завязаны.
557 2099822
>>099821
*все межсервисные сообщения
558 2099832
>>099821
>>099817
Тогда взаимодействие переезжает на другую ноду кластера, у реббита все хорошо с реплецируемостью
https://www.rabbitmq.com/clustering.html
559 2099833
>>099812
Ну вот какой-то есть:
https://github.com/njh/ruby-mqtt
image.png16 Кб, 1038x63
560 2099848
>>099833
Оно синхронное
561 2099851
>>099832
Видишь, ещё фейловер надо накручивать. Короче, это пустой холивар без конкретики. Доебаться можно много до чего, руби от этого не перестает быть эффективным для решения своей основной задачи - "быстро наговнякать веб", как выше сказано. Пистон со всем обилием библиотек всё равно выглядит как инвалид в этом плане и причина почему его юзают в вебе - потому что из него стреляют как из пушки по воробьям по всем задачам сейчас, от юзерлевел-скриптинга до дата майнинга. Удобство необязательно, главное чтоб питонодети имели широкие возможности.
562 2099862
>>099851

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


И зачем выбирать руби, если он не эффективен по I/O? С питоном можно дольше жить перед тем, как придется переписывать проект и даже потом можно переписать частями, так как он позволяет эффективно реализовывать микросервисную архитектуру и постепенно подменять компоненты.
Как я понял из твоих слов на руби ты монолиты пишешь и придется все заново переписывать, если перфоманса перестанет хватать, а не только критически важные компоненты для начала.
563 2099887
>>099817
А если твой сервис с очередью на руби упадёт? Да мало ли чего упасть может.

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

В современном мире глупо завязываться во всём на один язык.
564 2099908
>>099862
Да блин, ты так говоришь, будто это всё нельзя на руби. Именно так и работает, просто без реббита. Что за эффективность по I/O для добавления задачи в очередь? Миллисекунды выгадать хочешь или что?

>Как я понял из твоих слов на руби ты монолиты пишешь и придется все заново переписывать


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

>>099887

>В современном мире глупо завязываться во всём на один язык.


Предлагаю не завязываться на пистон.
565 2099912
Как из байтаррея сделать файлобджект?
566 2099914
>>099908

>Что за эффективность по I/O для добавления задачи в очередь?


Оверхед на смену треда каждого треда при любом запросе, хоть в базу, хоть на прослушивание очереди.
567 2099917
>>099912
ты про stringio?
568 2099920
>>099917
Не, у меня либа одна позволяет выполнять только 2 операции над её объектом:
сохранить в файл
получить байтаррей

Мне нужен промежуточный вариант, где я получаю RAW байты файла, как в момент записи, но в переменную. Т.е. без записи на диск.
С байтарреями не знаком, что-то с ними ничего не получается сделать.
569 2099926
>>099914
Ну это чушь, нет никакого значимого оверхеда от синхронного выполнения этих действий. Асинхронщина в рамках одного запроса - максимум приятный бонус (если есть чего распараллелить и если это не создаст дополнительных проблем), но уж точно не решающий фактор в выборе инструментов. Больше времени будешь с питоном ебстись.
570 2099932
>>099926

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


Ну тупые люди, асинхронные инструменты придумывают зачем-то. Ты настолько сросся со своим стеком, стал некомпетентен во всем остальном.
571 2099946
>>099932
Не для этого их придумывали, лолка. Большинство обычных user flow - синхронны по сути, там нечего параллелить. В ноде это было с самого начала, чет не взлетело.
572 2099984
>>099946

> Большинство обычных user flow - синхронны по сути, там нечего параллелить


Даже поход в базу и на сторонюю апиху от асинхронности выигрывают
573 2099994
Бля, откуда столько комментов? лето же!
в день по 100 постов!
574 2100002
>>099984
Я объявил джихад.

>>099984
Приведи пример, пожалуйста, где эти микросекунды играют какую-то роль для конечного пользователя.
575 2100004
Про джихад сюда >>099994
576 2100011
>>099946
Нода довольно хорошо взлетела, именно благодаря асинхронности. На ней много чего делали. Потом её поджали другие платформы, тот же питон.

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

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

>>099926

> Больше времени будешь с питоном ебстись.


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

Но в остальном всё хорошо и те проблемы, которые были в середине десятых, решены. Поэтому питон и полетел вверх.
577 2100015
>>099920

>Т.е. без записи на диск.


Создай временный файл в /tmp/
Как он вообще на диске выглядит, с чего ты взял, что он не точно такой же байтаррей?

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


А что ты с ними хочешь сделать?
578 2100020
>>100015

>Создай временный файл в /tmp/


Тоже как вариант, но контейнер засрётся со временем.

>Как он вообще на диске выглядит, с чего ты взял, что он не точно такой же байтаррей?


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

>А что ты с ними хочешь сделать?


Я хочу взять файлик и несохраняя его на диск отправить в S3.
580 2100025
581 2100064
>>100020

>Я хочу взять файлик и несохраняя его на диск отправить в S3.


s3 же можно подмонтировать в виде файловой системы. Просто сделай так и сохраняй файл на неё. Если не хочешь, то какие ещё есть у s3 интерфейсы?
582 2100065
>>100064
У boto3 два метода - аплоад файл и аплоад файл-лайк обджект.
Файл мне не нравится т.к. на диск записывать надо, поэтому и пытаюсь понять как мне получить файлобджект.
583 2100074
>>100065
Тогда mmap, как сказали выше.
584 2100077
>>100021
>>100074
Разобрался. Решил проблему через io.

buffer = io.BytesIO()
file.download(out=buffer)
buffer.seek(0)
s3.upload_fileobj(buffer, 'test', 'test')
585 2100423
Перекат, вторая попытка, в тред 124.1
>>2100419 (OP)
>>2100419 (OP)
>>2100419 (OP)
>>2100419 (OP)
586 2100947
>>100077
чел ты мудак, я тебе сразу сказал про stringio
Тред утонул или удален.
Это копия, сохраненная 1 августа 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски