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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Питон тред №136 /python/ 2285619 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #136

Предыдущий: >>2266995 (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 2285631
Python is shit
True
Python.programmers == 'petooh'
True
3 2285634
http://uneex.ru/LecturesCMC/PythonIntro2021

Сап питонач, решил отсюда все задачи, документацию питона щелкаю, дополнительно попарсил ЦБ и openweathermap. Куда двигаться дальше?

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

На вакансиях разные библиотеки требуют и только разбрасываешься на всё подряд, нихуя толком не сделав.
4 2285667
>>285634
Ты опоздал, вкатун.
ИИ уже порешала джунов.
5 2285671
когда жит?
6 2285749
Прочитал как "Притон-тред"
image.png131 Кб, 1244x624
7 2285753
Как производить поиск в коде на гитлаб?
У меня вкладки "Code" вообще нет. Все перетыкал, ничего не получается. Вот в гитхабе по умолчанию отличный поиск.
8 2285769
Помогите, пожалуйста. Есть пикрилейтед тег <img>. Я уже записал его в виде объекта selenium:
element = driver.find_element_by_xpath('//captcha//img')
Так вот как теперь взять текст поля data-ng-src, раскодировать base64 и записать это дерьмо в картинку на диск?
2022-02-0319-11.png387 Кб, 1875x319
9 2285771
>>285769
картинку забыл
10 2285782
подскажите пжста, если есть в открытом доступе гугл ексель табличка на чтение, можно ли с помощью питона получать значения ячеек, не подключая сервисный аккаунт с ключом доступа?
11 2285800
>>285782
все спасибо разобрался сам, просто скачиваю по ссылке \csv и работаю с ним
12 2285804
>>285771
Текст я выдернул. Как теперь из текста этой хуйни сохранить картинку?
captha.png7 Кб, 240x80
13 2285822
Кто-нибудь капчу пытался наёбывать? Подскажите как пикрелейтед капчу, которая уже есть в сохранённой картинке в текст пробовать перевести?
14 2285839
>>285822
нарезаешь на буковки, вручную помечаешь, скармливаешь в terreract, юзаешь.

Там нейронки нынче, нормальные, LSTM.
15 2285844
>>285839
Двачевскую капчу не распознает
16 2285849
>>285844
Мне не требуется двачевская. Я привёл пик капчи без обработки. pytesseract обсирается с ней. Возможно необходимо как-то картинку подготовить, хз
17 2285868
>>285667
Покажите мне этот ии. Заебало уже по 5-6 часов спать.
18 2285876
>>285634
Если делаешь что-то на питоне, то в основном попросят за веб и бекенд. Попробуй написать что-нибудь на веб фреймворках типа джанге, фастапи, ботле или ещё что-нибудь. Освой разные субд и орм к ним. Разберись с деплоем и пр. Короче, займись вебом и посмотри как он работает, авторизация, токены, вот жто всё.
Подключись к какому-нибудь халявному апи, типа дискорда или хз, и взаимодействуй с ним. Короче, развлекайся.
19 2285890
>>285634
Забей на библиотеки. На собесах никто не будет требовать их знание. В общем-то от начиная с синьера и знание питона не обязательно. Ты должен понимать принципы и владеть идеально хоть одним стеком. Любой другой потом осваивается за пару недель.
20 2285900
>>285890
Ану расступились, я властелин стека!
21 2285903
>>285782
>>285800
возникла следующая проблема -
скачивается старый файл, а он там обновляется постоянно
Снимок.PNG21 Кб, 352x720
22 2285954
Зацените прогу, я Сеньёр если что.
23 2285965
>>285954
Где асинхронные хуи, где очереди из пёзд?
Очень слабо.
24 2286097
>>285849
потому что его не обучил!
Аноним 25 2286344
>>285954
Сука, как же меня бесят эти дерьмокодеры блять, Сеньёр блять, ты серьёзно? Я на стажировке в MTC банке сервера на note.js поднимал и ебался над приложением мобильным не в вашем ебучем котлине в на чистом java и сука платили 30к в месяц и то после всего я ещё джуниор и в итоге не прошёл стажировку и меня послали. Так что в следующий раз подумай блять перед тем как писать кто-то и не лезь туда куда не знаешь, начни с паскаля это всё что тееб пока светит, а лучше учи основы ассемблера, ибо после него вся дурь выбивается и ты осознаёшь себя богом этого мира
26 2286350
>>286344
Ты лох.
Я бы тебе и 30к не дал. Еще бы и хуй вытер об тебя))
27 2286529
>>286344
Нахуй нужен ассемблер, мне его знания вообще не пригодились в вебе.
Писал код для плк сименса в нефтянке, и то, хз где применить его опыт здесь. Байты считать? Какие? Их тут нет.

Что реально полезно это общая дисциплина написания кода. Писать так чтоб работало с первого раза, замечать возможные ошибки уже на этапе разработки. Пишешь класс 100-200 строк и он работает сразу. Вот чего не хватает многим.
28 2286532
>>285667
Ну где там ии. Хочу чтоб он мне сам написал сервер.
29 2286544
Привет, двач. Привет, анон.
Боюсь обосраться с первым ЯП, поэтому, если нет возражений -- уточню здесь.
Вопрос такой:
Стоит ли дрочить веб, неужели условные сайтики, магазины всё ещё пилятся?
Я к тому, что даже мой батя в своё время за пару недель запилил себе сайт в 00-х, хотя за компом-то почти не сидел.
Ещё я слышал некоторые гадости о питоне, в частности о том что он слишком прост и не так хорош, как другие яп. Возможно, злые языки, но настораживает.
Хватит ли полутора лет обучения по 2-3 часа в день на то, чтобы начать зарабатывать какие-то копейки?

Да, вкатун. Нет, не бейте тапками.
30 2286550
>>286544
Я бы сказал так - знать веб на питоне пригодится, но планировать зарабатывать именно им это несколько перебор, хотя и возможно. В принципе, после хорошего раскуривания питона ничего тебе не мешает идти куда-то дальше за деньгами по актуальной обстановке.
Полтора года вполне норм, если ты не дурачок и не забъешь, тут сложно судить.
31 2286553
>>286550
Только не бей, но

Где по большей части используется питон, кроме как в вебе?
И вообще, стоит ли идти в веб с этими жабаскриптами и прочим, или на питоне можно пилить что-то интересное и полезное?
32 2286561
>>286553
Где угодно используется.
В веб вообще идти не стоит, разве что фуллстек макакой батрачить.
.jpg204 Кб, 1040x1040
33 2286581
>>286561
Спасибо, анон.
sage 34 2286608
>>286561

>где угодно


А где угодно это где кроме автотестеров?

другой анон
35 2286613
>>286608
Где нужно автоматизировать какие-то действия ЭВМ посредством программного кода.
Кроме нишевых вещей вроде игор или шиндовс гуи, например.
36 2286617
https://ideone.com/vSDoPd
Зацените какая хуйня строится. Рост времени для grid_taveller(i, i) есть O(i^2), как я и ожидал, но сама форма графика время/(i^2) странная. Почему так?
image.png71 Кб, 647x793
37 2286621
Чет проиграл с тех, кто не советует веб, каждый раз такая хуйня и спам вакансиями на почту и по телефону когда открываю резюме.
sage 38 2286628
>>286561
>>286613
Питон, насколько мне известно, довольно гибкий язык, но можно ли на нём делать какие-то большие проекты? И он, как я слышал, не так часто используется в этом вашем погромировании, но просто используется везде, где нужно запилить скрипт на коленке. Это правда?

>>286621
Думаешь, стоит идти в веб? Какие шансы у вкатуна за полтора года получить достаточно знаний на джуна и пойти работать?
Чем вообще занимаются в вебе кроме создания и оформления сайтов, анон?
image.png38 Кб, 558x417
39 2286632
>>286617
upd. Эти странные линии это похоже логарифмы, а асимптотика квадратична. Не могу понять откуда эти линии появились и почему они образуют такой рисунок
40 2286641
>>286344
Это паста?
41 2286642
>>286628

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


За полтора года изи

>Чем вообще занимаются в вебе кроме создания и оформления сайтов, анон?


Веб это не только сайты, в больших проектах он перетекает в обработку больших массивов данных с соответсвтующим стеком больше похожим на энтерпрайз. В моем случае это кафка, кролик, кликхаус и способы работы с распределенными системами.
sage 42 2286651
>>286642
Спасибо за ответ.
На чём работаешь? Мне пару раз советовали жабаскрипт, да я всё метаюсь и боюсь обосраться с вебом.
43 2286653
>>286651
На питоне, очевидно же
44 2286656
>>286653
Что помимо питона надо знать для начала?
У большинства вакансий запросы различаются, под все не подстроишься, но тем не менее.

блять, сажа...
45 2286672
>>286628

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


Чел... не слушай этих пердунов. Они тебе ещё щас скажут, что он медленный и прочую ахинею. Много больших и достойных проектов на пайтоне живёт и развивается, названия не буду говорить, если захочешь сам найдёшь.
46 2286703
>>286656

>Что помимо питона надо знать для начала?


Главное в айти это попасть под струю и наработать год-два опыта. Поэтому смотришь вакансии в своем городе и дрочишь стек указанный в них, желательно, что бы там была какая-нибудь технология для распределенных сервисов типа тех же брокеров сообщений, что бы катится дальше, а не утонуть джанге хотя я сам начинал с нее, но там к ней подключили микросервисы и в дальшейнем этот опыт помог мне перекатится на следующую работу. Потом сам все поймешь.
47 2286911
Подскажите, может уже было такое
В мейне есть вызов двух асинхронных методов. Один из них имеет вечный цикл и в глубине wait(...), который блокирует все остальное, пока не дождется ответа. Как вызвать этот метод, чтоб не блокировать выполнение остального кода?
А то доходит до этого места и все, пиздец, пока данные не придут - стоит.Через asyncio.create_task пробовал, но тот валится, если вдруг не дождется сообщения
[T:MainThread] ERROR:asyncio: Task was destroyed but it is pending!
48 2286941
>>286911
Переписать wait, что бы он был асинхронным
49 2286945
>>286941

>await asyncio.wait()


Интересно
50 2286959
>>286945
И как я должен был понять что wait асихнронный? Тащи весь код
51 2286966
>>286959
Умирает на msg = await conn.notifies.get()
Использую aiopg
Пример практически из мануала. Умирает секунд через 5.
52 2287095
>>286544
Веб делится на фронт и бек. Питон в вебе это преимущественно бек. Фронт делают на нём извращенцы.
Язык своеобразен, как и все остальные. Так что это не аргумент. Питон проще, но медленней. Го быстрей, но синтаксически нагроможден.
53 2287103
>>286628
Посмотри на крупные веб-фреймворки питона и как давно они появились.
Аргументы, про то что питон это скрипты на коленке - тебе промыли мозги пхпетухи и goвноеды.
54 2287212
Есть какие-нибудь инструменты для ограничения количества запросов на ресурс? Ratelimit штука удобная, но чёт я сомневаюсь что он сможет работать в параллельных запросах с разными инстансами
55 2287226
>>287212
Как решение, в голову только приходит использование что-то типа редиса или мемкеша, но почему-то это выглядит как костыль
56 2287234
Не могу получить первый элемент списка. Что я делаю не так?
57 2287240
Блять, я раньше с такими проблемами не сталкивался, жопа уже горит, хелпаните с проблемой, что может быть не так?

FastAPI+ClickHouse стек
venv активирован

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

ModuleNotFoundError: No module named 'clickhouse_driver'

И я попробовал установить clickhouse глобально - все заработало, но какого хуя??? Почему в локалке его не видит, он же сука лежит у меня прямо в венв там где лежит fastapi, а его видит, ну я блять рили не понимаю
58 2287246
>>287234
А, понял, он воспринимает это как строку, а не как список. Как тогда конвертировать в список :/
59 2287256
>>287246
result = sdelat_pizdato(response.text)
print(result[0])
60 2287257
>>287240
Кек, у тебя пучарм с глобальным интерпретатором работал
61 2287261
>>287240
Ювикорном надо запускать только фастапи, а кликхаус отдельно. Это ж бд, его тем более в докере запускать нельзя, у него свой роутер должен быть свой
62 2287264
>>287261
Я не знаю что я сделал, но я запустил. Как это в докере нельзя запускать? Да ну, у меня как раз стоит задача обернуть все это в докер,энивей попробую
63 2287273
>>287264
Ну сам подумай. Запустишь ты бд в докере. Он наебнется и прощай бд.
16365892664980.webm9,3 Мб, webm,
1280x720, 0:07
64 2287276
>>287273
Тогда и сервер тоже в докере нужно запускать не нужно, а то он тоже проебется
65 2287277
>>287276
У тебя база наебнется. С записями. Понимаешь? Нет? Ну запускай в докере.
66 2287279
>>287246
import json
data = {'board': 'pr', 'thread': 2285619, 'num': 2287212}
response = requests.get('https://2ch.hk/makaba/mobile.fcgi?task=get_thread&board=', (М) data)

comment = json.loads(response.text)
comment2 = comment[0]['comment']
print(comment2)
67 2287281
>>287277
Дед, ты pesistent volume не освоил что-ли?
68 2287284
Как модифицировать этот луп, чтобы он не падал от IndexError? Не могу сообразить. Ну кроме try/except.

lst = [1,2,3,4,5]
counter = 0

for j in lst:
____delta = j[1] - j[0]
____counter += delta
69 2287285
>>287284
Блядь, заменял значения, чтобы не задиванониться, и закономерно обосрался. В общем вопрос о том, как избежать IndexError при итерированию по списку, когда в итерации у меня участвует n-ный и n+1-й элемент списка.
70 2287286
>>287279
Спасибо огромное!
image.png47 Кб, 999x738
71 2287290
гайс, хелп. может кто-нибудь подсказать как решать это говно ? у меня тестовое задание на позицию мечты, а на питоне у меня выходит только говнокод.
72 2287291
>>287284
lst = [1, 2, 3, 4, 5]
deltas = (next_el - prev_el for prev_el, next_el in zip(lst[:-1], lst[1:]))
counter = sum(deltas)
73 2287295
>>287279
Постоянно вижу, что вместо пользования лаконичного метода .json() сразу на ответе, люди импортят либу жсона, достают текст из ответа и скармливают его лоадсу.
В чем профиты от такого, у вас кабан за строчки кода платит?
74 2287303
>>287291

>zip(lst[:-1], lst[1:])


Блядь, почему я до этого не додумался?
75 2287320
А как в питоне при вызове фукнции подставить в аргумент этой функции кучу переменных из другого файла? Я конечно могу запилить список всех переменных и передать его в качестве аргумента, но вдруг можно это циклом сделать как-то.
76 2287326
>>287295
Наверное тому что раньше не было его
77 2287327
>>287234
try:
data = response.json()[0]
body = body.get("comment")
logging.info(f"Message: {body}")
except:
logging.error("Bad response")
78 2287328
>>287320
Сделай из файла дикт json.loads и вставляй fuck(param)
79 2287329
>>287328
<двезвездочки>param
80 2287336
>>287328
А у меня там дикт не получится сделать. Короче говоря, у меня есть файл с кучей строк, которые мне надо прохешировать:
string1 = "gfdgsdhdfsh"
string2 = "bvcxbrfbdfb"
и т.д.

Соответственно, в другом файле лежит функция хеширования, которая по моей задумке будет получать в качестве аргумента вот эти вот string1, string2, ...
Файл со строками статический, но там просто их дохуя, и не хочется ручками делать ctrl+c ctrl+v.
Screenshot 2022-02-05 at 05.21.42.png224 Кб, 828x971
81 2287344
Как вызвать функцию в конкретное очень точное время? Например нужно сделать пост ровно в 11:11 и не миллисекундой раньше. Неужели делать тысячу запросов в секунду с проверкой?
82 2287350
>>287344
Закинуть таск в крон или использовать селери с редисом.
84 2287353
>>287336
Ты можешь сделать дикт из файла питона и ходить по нему, либо запустить все сразу через threadpool
85 2287355
>>287353
Но дикт же должен иметь пары ключ-значение. Или ты имеешь в виду сделать через setdefault?
86 2287356
>>287355
У теья ключом будет название переменной
87 2287357
>>287356
Ну, либо это будет лист, в любом случае сделать из него дикт или лист несложно.
А лучше сделать генератор на файл, чтоб не читать его целиком
88 2287361
>>287336
vottak = {}
with open("file.txt") as f:
for zs in f:
(ky, shit, val) = zs.split()
vottak[ky] = val
print(vottak)
89 2287364
>>287361
vottak = {}
with open("file.txt") as f:
for zs in f:
(ky, shit, val) = zs.split(' ')
val2 = val.replace('"', '')
vottak[ky] = val2
print(vottak)

Инетрация съехала, ну и дополнил тебе.
90 2287369
У меня минискрипт парсер: каждую минуту делаю запрос на сервер и записываю ответ в одну и ту же переменную. Оперативка за пару часов забивается полностью. Гуглил, везде пишут, что питон сам собирает мусор и никакие гэрбэдж коллекторы не нужно. Охуенно собирает.
91 2287376

> Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.



обновите пасту под современные реалии пожалуйста
image.png43 Кб, 1110x648
92 2287524
>>287351
спасибо, мужик. даже не знаю как тебя отблагодарить)
если решишь и это, скинь к коду еще номер карты или другие реквизиты, не обижу)
93 2287643
>>287524
Просто словарь завести. Как ты работать-то собрался если такое не сделаешь?
94 2287676
>>287643
так я не на разработчика или дса иду, из 8 задач только 2 пайтоновские, и то вот такие простенькие, я просто отвык это говно решать.
95 2287690
>>287369
Ты while true сделал да?
96 2287694
>>287369
Если бы ее собирал, значит серверы бы на нём не работали.
Видимо ты где-то мусоришь сам
97 2287909
>>285631
Жаба-говнокодер, не ты ли это?
16440783777091898196462917102087.png56 Кб, 750x550
98 2287990
Поясните за pypy, судя по бенчмаркам здесь https://github.com/kostya/benchmarks он почти всегда быстрее(в 10 раз) обычного питона, при этом памяти особо больше не жрет, в чем подвох? В проде его используют, если да то почему не все ещё перекатились на него?
99 2288018
>>287990
Не слышал, стало быть не используют.
100 2288020
>>287990
Если нужно что-то быстрее питона, зачем выбирать что-то из среды питона, почему тот же го не использовать? В эпоху микросервисов вообще нет никаких сложностей делать разные части проекта на разных языках.
101 2288022
>>287990
Теоретически сообщество Python может повсеместно принять PyPy, PyPy может стать эталонной реализацией, а CPython может быть прекращен. Тем не менее, PyPy имеет свои недостатки:

CPython легко интегрируется с модулями Python, написанными на C, и это традиционно способ, которым приложения Python выполняют задачи, интенсивно использующие ЦП (см., Например, проект SciPy).
Сам этап компиляции PyPy JIT стоит процессорного времени - только благодаря повторному запуску скомпилированного кода он становится быстрее в целом. Это означает, что время запуска может быть выше, и, следовательно, PyPy не обязательно эффективен для выполнения связующего кода или тривиальных сценариев.
Поведение PyPy и CPython не одинаково во всех отношениях, особенно когда речь идет о «деталях реализации» (поведение, которое не определено языком, но все еще важно на практическом уровне).
CPython работает на большем количестве архитектур, чем PyPy, и был успешно адаптирован для работы во встроенных архитектурах способами, которые могут быть непрактичными для PyPy.
Схема подсчета ссылок CPython для управления памятью, вероятно, оказывает более предсказуемое влияние на производительность, чем различные системы GC PyPy, хотя это не обязательно верно для всех стратегий «чистого GC».
PyPy еще не полностью поддерживает Python 3.x, хотя это активный рабочий элемент.
102 2288026
Ко мне на сервис приходят вебхуки из другой апи, типа сообщений в мессенджере. Они иногда приходят не в том порядке, если смотреть на timestamp, соответственно, обрабатываются они тоже не так как надо.
Какими способами можно упорядочить эти вебхуки? Сервер на gunicorn с кучей рабочих, так что это ещё сильнее усложняет ситуацию. Lock не работает почему-то, несмотря на то что включён preload.
103 2288040
>>288020
Чтобы не писать на goвне?
104 2288075
скомпилировал Kivy на андройд, но виджеты KivyMD не отображаются (Отображаются аналоги обычного kivy), что я сделал не так?
105 2288163
>>288026
Как насчёт MQ с priority? Latency по обработке на бэке увеличится конечно же.
106 2288190
>>288163
Я так и делаю. У меня очередь sqs fifo настроена и перед обработкой я отсылаю их туда. Нужна именно sqs fifo, тк они умеют делать группы внутри очереди с извлечением элементов по одному. Но вытаскивать их надо по минимальному timestamp, а не fifo.

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

Есть же куча подобных сервисов. Как они делают? Я бы мог написать свой celery и амазоновский sqs, но времени столько нет.
107 2288197
Может кто знает как в джанго обработать кнопки "купить "которые были сгенерированы фором в шаблоне {% for i in fuc %}, в views принимаю post запрос но он рендерит все кнопки, а надо одну конкретную, что делать. На пике ошибка, что get не может принять 2 запроса, а их 2 так как он обрабатывает 2 кнопки
108 2288250
>>287369
Ну не пиши тогда на питоне. А лучше вообще не пиши. Ни кода, ни тут.
109 2288253
>>287990
PyPy неофициальный, версии отстают от релизов, и нет полноценной поддержки бинарных библиотек.

То есть если ты хочешь использовать питон с чем-то, что в двоичном виде к питону подключается, но скорее всего будут проблемы. А это довольно обычная история для какого-то научного софта, всяких AI и т.п.
110 2288254
>>287344
А что делать до этого?
У тебя есть опции, или самому тупо подождать нужное время, или использовать модули вроде sched, или использовать функции из asyncio для этого.
111 2288258
>>288254
Есть же планмровщики задач типа celery и kron, зачем велосипеды делать
image.png83 Кб, 989x547
112 2288505
Есть урл с джейсоном, конвертируется в словарь, подключается к гугл шитс, и заполняет ключ и значение в ячейки.
А нужно чтобы при запуске скрипта, если значение поменялось заполняло в новую ячейку А2, А3, А4..
Как это проще сделать? Проверять на пустую ячейку или pandas numpy использовать?

https://ideone.com/e.js/Ok2bJL
113 2288685
>>288505
На пустую, чем меньше будешь плодить непонятных процедур тем лучше
114 2288689
>>288190
Так у тебя fifo, а не атрибут timestamp, по нему отрабатывай и присваивай priority. По идее через Rabbitmq shovel можно сделать, а потом qos=N и распределяй по воркерам
115 2288708
>>288689

> Так у тебя fifo, а не атрибут timestamp


Это да, я просто хотел сделать задержку перед тем как отправить в очередь. Fifo нужно для распределения нагрузки по группам от разных чатов.
Сообщения мне может присылать бот, между этими вебхуками бывает буквально 10-100 мс. Апи настолько бгмерзское, что иногда первым приходит второе сообщение, а не первое. К примеру, исходный порядок 1-2-3-4-5, а фактически приходит 3-1-5-2-4. А в очередь может уйти вообще 2-1-5-4-1.
116 2288709
>>288708

> 2-1-5-4-3

117 2288751
>>288708
Пробуй Rabbit тогда, там и интеграции с БД есть и многое на платформе кролика же и делается, так как erlang
118 2288763
>>288751
Ех, ладно. Просто у нас отошли от раббита на sqs, хз почему. Буду дальше думать над костылями.
119 2288773
Приветик.
Делаю задачку с zipfile из "Укус питона" и у меня возник вопрос.
Можно ли архивировать каталоги с файлами в них?
А то у меня получается архивировать нормально только один конкретный файл, в противном случае я получаю тот же каталог, но без файлов в конце пути.

Я знаю, что через import.os делается все нормально. Просто интересуюсь, где я не так поступаю с zipfile.

Код: https://ideone.com/xUs1At

Первый пик - архивация с файлом.
Второй - каталога.
120 2288792
>>288763
Кролик слишком много потребляет, но много умеет, а SQS на то и simple.
Тебе нужно какое-то временное хранилище, сортировку, хоть в памяти через массив.
Есть же встроенные in-memory хранилища.
121 2288943
>>288792
Просто мне показалось, что это довольно тривиальная задача. Удивительно что к ней нет готовых решений. Ну либо я слепой
122 2288953
>>288943
А у кролика разве есть что-то для этого?

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

Слёту, могут быть ситуации, когда какой-то пакет из 1-2-3-4-5 вообще не придёт, либо будет идти слишком должно. Наверное, ты не хочешь ждать, если уже знаешь, что все пакеты пришли. Ещё надо как-то отличать пакеты 1-2-3-4-5 первой серии от пакетов 1-2-3-4-5 второй серии, последующей. И куча всего ещё.
123 2288985
>>288953
Можно выставить задержку доставки, скажем, плюс 5с к тому timestamp который указан в payload. Если они пришли гораздо позже, что ж, тут уже можно сослаться на ошибку отправителя и доставлять их уже сразу, без задержки.

В целом они доходят до меня довольно быстро, в пределах секунды.
image.png37 Кб, 860x199
124 2288986
>>288685
Это вроде самое простое. Всем спасибо
125 2289029
Питонач, расскажи, пожалуйста, или даже поделись опытом, как правильно организовывать юнит-тестирование.
Например, есть каталог со скриптами и модулями. Сценарии для pytest сюда же класть? Создавать ли отдельный подкаталог здесь? Или вообще вынести в другое место?
Описанные выше скрипты и модули могут содержать тесты? Или код отдельно, проверка отдельно?
Ну и посоветуй что почитать, посмотреть.
Спасибо.
126 2289039
>>289029
Там все рассказано
https://docs.python-guide.org/writing/structure/

Используй poetry для создания venv и структуры, очень советую. И работает поиск по PyPi а отличие от сломанного pip.
127 2289139
>>288985
В общем да, задержка доставки в eta 3-5с в обычную sqs очередь самое простое что можно сделать. Дальше оно уже отправляется в другую очередь fifo. Достава идёт дольше на время задержки, но зато по порядку. В итоге распределение по рабочим сохранилось и нет никаких узких горлышек в виде одного рабочего и тд.
image.png192 Кб, 798x741
128 2289262
Как лучше делать методы класса (пик)?

Мне в принципе оба метода подходят, но я где то слышал что функция должна возвращать только один тип, поэтому первый вариант правильнее. Однако второй способ выглядит более подходящим принципу DRY т.к. методы does_thing_exists и get_thing из первого варианта делают почти одно и тоже.
129 2289275
>>289262
Хз кто это спизданул. Куча стандартных методов возвращает что-то, либо none, если ничего нет. Так что это нормально.
Указывать возвращаемый тип явно излишество.
130 2289281
Где взять тестовые задачи? Наверняка есть список заданий с собесов или типа того, самому нихуя не надо, поэтому и пет проект придумать не могу
132 2289292
>>289281
На собесе спрашиваю обычно за то чем собираешься заниматься.
133 2289441
Есть у кого-нибудь ощущение что питон уходит из бэка и замещается Go? По вакансиям это уже видно. В нужном ли направлении идут вкатуны?
134 2289466
>>289441
Пчел, ты сравниваешь бек на джанге и ГОвне, хотя у них совершенно разные ниши. Аналогом на пистоне будет всякое асинхронное говно, которое юзают дохуя крупных компаний, оно проникло даже в банки. Всякие сберы, точки и ВТБ срут мне на почту когда я открываю резюме.
135 2289511
>>289262
Второй лучше. К тому же сразу видно, что метод может вернуть None. Разные типы возвращать плохо, но None можно считать просто указанием на отсутствие значения.
136 2289541
>>289511
get возвращает какой угодно тип
137 2289542
>>289441
Вакансий на питоне просто тысячи, на го - пара сотен и то в 90% случаев это микросервис
16435714156650.jpg51 Кб, 800x512
138 2289612
Принимайте нового вкатывальщика в тред.
139 2289635

>Питон тред


Прочитал как Pytuh тред
140 2289657
>>289541
там написано Thing or None
141 2289670
>>289542

> 1964


> пара сотен


понятно
142 2289718
>>285619 (OP)
Уважаемые, подскажите это python2 или 3?

import requests
import sys
import pandas
import logging
from xxxsdk import xxxClient
logging.basicConfig(format=u'%(levelname)-8s [%(asctime)s] %(message)s', level=logging.INFO, filename = u'lockout.log')

time_period = 10 # time period for searching 120 minutes

from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

swis = xxxClient("xxx", sys.argv[1], sys.argv[2])

Q = """SELECT TimeGeneratedUtc, EventCode, ComputerName, SourceName, Message
FROM XXX.APM.WindowsEvent where EventCode in (4740) and MinuteDiff(TimeGeneratedUtc, GetDate()) < {}
ORDER BY TimeGeneratedUtc DESC""".format(time_period)
results = swis.query(Q)

results = list(map(lambda x: dict(x), results['results']))

def clear(x, target, object_list):
for reg in object_list:
x = x.replace(reg, target)
return [i for i in x.split(target) if i != '']

if results:
for i in results:
acd = clear(i['Message'], '\t\t', ['\r\n\r\n', '\r\n\t', '\t'])
i['Domain'] = acd[acd.index('Account Domain:')+1]
i['User'] = acd[acd.index('Additional Information:')-1]
if acd.index('Caller Computer Name:') + 1 != len(acd):
i['PC'] = acd[acd.index('Caller Computer Name:') + 1]
else:
i['PC'] = None
i['DC'] = acd[acd.index('Account Name:') + 1]

log = pandas.DataFrame(results)

abnormal_dict = {}
for i in log.PC.unique():
count = len(log.User[log.PC == i].unique())
if count > 5:
abnormal_dict = count
logging.info('PC: {}; Count: {}'.format(i, count))

if abnormal_dict:
print('Statistic.abnormalPC: %s' % max(abnormal_dict.values()) )
print('Message.abnormalPC: %s' % ", ".join(list(abnormal_dict.keys())))
else:
print('Statistic.abnormalPC: %s'%0)
print('Message.abnormalPC: %s'%0)
else:
print('Statistic.abnormalPC: %s' % 0)
print('Message.abnormalPC: %s' % 0)
142 2289718
>>285619 (OP)
Уважаемые, подскажите это python2 или 3?

import requests
import sys
import pandas
import logging
from xxxsdk import xxxClient
logging.basicConfig(format=u'%(levelname)-8s [%(asctime)s] %(message)s', level=logging.INFO, filename = u'lockout.log')

time_period = 10 # time period for searching 120 minutes

from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

swis = xxxClient("xxx", sys.argv[1], sys.argv[2])

Q = """SELECT TimeGeneratedUtc, EventCode, ComputerName, SourceName, Message
FROM XXX.APM.WindowsEvent where EventCode in (4740) and MinuteDiff(TimeGeneratedUtc, GetDate()) < {}
ORDER BY TimeGeneratedUtc DESC""".format(time_period)
results = swis.query(Q)

results = list(map(lambda x: dict(x), results['results']))

def clear(x, target, object_list):
for reg in object_list:
x = x.replace(reg, target)
return [i for i in x.split(target) if i != '']

if results:
for i in results:
acd = clear(i['Message'], '\t\t', ['\r\n\r\n', '\r\n\t', '\t'])
i['Domain'] = acd[acd.index('Account Domain:')+1]
i['User'] = acd[acd.index('Additional Information:')-1]
if acd.index('Caller Computer Name:') + 1 != len(acd):
i['PC'] = acd[acd.index('Caller Computer Name:') + 1]
else:
i['PC'] = None
i['DC'] = acd[acd.index('Account Name:') + 1]

log = pandas.DataFrame(results)

abnormal_dict = {}
for i in log.PC.unique():
count = len(log.User[log.PC == i].unique())
if count > 5:
abnormal_dict = count
logging.info('PC: {}; Count: {}'.format(i, count))

if abnormal_dict:
print('Statistic.abnormalPC: %s' % max(abnormal_dict.values()) )
print('Message.abnormalPC: %s' % ", ".join(list(abnormal_dict.keys())))
else:
print('Statistic.abnormalPC: %s'%0)
print('Message.abnormalPC: %s'%0)
else:
print('Statistic.abnormalPC: %s' % 0)
print('Message.abnormalPC: %s' % 0)
143 2289727
>>289718
print в виде функции это тройка
144 2289977
>>289441
щас фастапи стандарт де факто
145 2290019
>>289670
Душный
146 2290020
>>289977
Хуякто
147 2290151
Как вы относитесь к критике?

Мне прям пиздец как плохо становится, когда на очередном совещание собираются челики и начинают обсуждать твой код, все находят в нем ошибки, все блять душат сука всякой хуйнй. Не знаю, может я морально слаб, но после такого желания работать нет.
148 2290155
>>290151
Критика - признак развития. Гораздо хуже, если бы её не было и ты бы просто не понимал хорошо ты делаешь иди плохо.
149 2290158
>>290151
Ну и чтоб тебе было легче. Раз уж они тебя наняли, значит сами такое написать не могут.
150 2290175
>>290151
Интересно, а в интернете есть такой жанр фемдома? Где сисястая эйчар разъёбывает тебя на собеседовании за твой говнокод по факту
16222138592430.png235 Кб, 511x481
151 2290179
Господа, есть у кого-нибудь слитые курсы от GeekUniversity (они же GeekBrains), Skillbox, Нетологии? В зависимости от того что есть у вас, возможен обмен на то что есть у меня. А у меня есть разные курсы от этих школ
152 2290218
>>290020
Че горишь?
153 2290252
>>290218
Тому что мне сказали делать все проекты на джанге, а не фастапи
154 2290254
>>290252
Ну у тебя там легаси хуйня получается. Мертворожденная.
155 2290267
>>290254
Может у него там УЧЕТНАЯ СИСТЕМА: СКЛАД
Не везде же rps наносекать
156 2290281
>>290254
>>290267
Не, crm с мессенджерами
157 2290314
>>290267
Для такого и ботл сойдёт. Джанго нужен разве что для фулстека.
158 2290379
Как лучше: датакласс в массив или массив в датаклассе?
159 2290397
>>290379
датакалс в массив
160 2290464
>>286613
Работу с сайтиками, обычно для скачивания чего-нибудь, например
161 2290465
>>289281
codeforces
162 2290613
>>290464
Рпботу с сайтиками, запросами и базой данных. Это называется веб
163 2290727
Можно ли как-то получить содержание открытой страницы браузера (DOM) из внешней python-программы? Хочу чтобы при наведении мышкой на определенный элемент, внешняя программа совершала действия и выводила инфу например в файл или в своё окно.
164 2290772
>>290727
А ты про консоль разработчика, встроенную в каждый браузер, слышал?
image.png55 Кб, 872x692
165 2290783
как решить проблему? на ютубе было по другому
166 2290787
>>290772
Зачем мне консоль? Мне нужно из другой программы получить доступ к текущему состоянию страницы. Я хочу добавить дополнительный интерактив без расширений браузера и хочу знать возможно ли это в принципе.
167 2290804
>>290787
Думаешь браузерные вендоры в разработку совсем дебилов набирают?
168 2290805
>>290787

>Я хочу добавить дополнительный интерактив без расширений браузера


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

Если у тебя прямо внешняя программа и одним браузерным жиэсом не обойтись, то почему не сделать нормально - инжектить расширением скрипт, который будет вешать события на странице и ажаксить в твое приложение все, что душе угодно? Один хрен ведь с жиэсом дело иметь придется, раз речь про интерактив на странице.
169 2290819
>>290804
Я просто хотел уточнить возможность в принципе. Если это невозможно из-за ограничений безопасности - так и пишите.
>>290805
Тут все равно будут сложности с обновлением скрипта после обновления страницы, и.пр. Моей первой идеей было писать расширение, но не хочется делать это для двух браузеров.
170 2290828
>>290819

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


Велкам ту зе ворлд оф веб девелопент.
171 2290842
>>290819

>сложности с обновлением скрипта после обновления страницы


Никаких сложностей пушить скрипт в бесконечнлм цикле нет. С проверкой на повторное включение офк.
Это не отменяет ебанутость подхода, конечно.
172 2290847
>>290842
Я понял, спасибо.
173 2290898
>>290727
Не очень понятно. Ты можешь в браузере пустить в фоне какой-то скрипт, который будет в фоне отслеживать разные события и отправлять соответствующие сообщения в питон-программу.

Если же ты хочешь мониторить действия на другой странице, то так просто не получится, даже со всеми этими селениумами куча нюансов есть и там всё не так просто, как хотелось бы. Но смотреть, видимо, надо куда-то в этом направлении.
174 2290902
>>290179
Господин, сейчас очень много изначально открытых материалов. Хороший тон пользоваться открытыми знаниями, которые специально готовили для таких, как ты, а не воровать чужое.
175 2290913
>>290727
Дум с бэка недоступен, насколько я знаю, ну либо спросить у фронтовиков
176 2290976
>>290727
сделай userscript с твоей отслежевалкой, и потом посылай на сервак на локалхосте где-нибудь.
Screenshot3.png125 Кб, 2192x974
Selenium 177 2290995
Товарищи знатоки, Приветствую вас!
У меня образовался такой вопросик, в микро задачке суть которой, залогиниться на страничке али для продавцов, через селениум.
В общем, захожу на страничку , ввожу данные, жмакаю апплай, появляется микро капча , где надо ползунок двинуть до конца, прохожу ее в ручную и оно всегда выдает ошибку (скрин прикрепил) и снизу пишет "Что-то пошло не так. Обновите страницу и попробуйте ещё раз(error:qALqL8)" Ошибка не гуглиться, нормальной инфы по этому поводу я не нашел , но может я что то не знаю и по этому не могу нормально загуглить.
Может кто подсказать, почему она появляется это ошибка и как ее обойти. Так же пробовал через селениум в админку своего сайта заходить, все логинется на WP.
Если шо не веб и не пайтон программист, просто тут такая задача выпала. Буду очень благодарен добрым людям.
178 2291122
>>290783
У тебя все написано что не так. Смотри в конекшене, куда он стучится и что приходит, и далее по шагам до места где у тебя нихуя, а должно быть что-то.
179 2291153
>>286632
Строй просто график зависимости времени работы от размера квадрата в двойном логарифмическом масштабе
180 2291204
Кто когда последний раз писал на втором питоне в коммерческо коде?
181 2291218
>>291204
Никогда, хотя у меня стаж 5 лет. Ну и слава богу
182 2291233
>>290783
Там же написано.
184 2291933
>>290179
Это гавно
185 2291949
>>291933
и что же тогда нормальное?
186 2291961
>>291949
Тебе не нужны хитрые курсы чтобы выучить питон. Достаточно почитать один учебник и пройти курс по алгоритмам для практики (делая задания).
На coursera есть дохуя курсов, в том числе и по алгоритмам от самого Седжвика.
На нетологии/хуелогии нет никакого сакрального знания. Тебе все равно придется въебывать, экспериментировать с языков и делать практику чтобы усвоить материал. Нет волшебного видео, которое бы как в матрице загрузило бы питон тебе в мозг.
187 2291976
>>291961
Достаточно устроиться на работу. Пресловутое "когда?" учит лучше любых курсов
188 2291985
>>290179
Имеются. Скинь названия, которые есть у тебя.
image.png41 Кб, 3549x80
189 2292211
Пацаны, как достать из этого HTML вот этот текст?
190 2292212
>>292211
Пробовал HTML2Text, но он захватывает гиперссылку, хотя в настройках ставлю игнорировать ссылки, то есть по идее все что в теге "<a" должно пропускаться.
191 2292221
Так, драсте.
Я совсем нулёвый ньюфаг в 27 то годиков, меня начальник моего КБ заставил учить питон и сам же читает мне какие-никакие курсы.
Первое задание я вроде осилил, по крайней мере не хочу вас мучить им - написать программу для решения квадратных уравнений, я это вроде сделал и хочу проверить как всё работает (я учил в универе си, работаю с APDL, так что такая задача мне по силам, я её собственно, уже решил).
Но есть очень дебильный вопрос - как поставить питон? Вот прям в гугле вбить и ставить с сайта?
Если поясните, могу даже показать как я это сделал, хоть посмеётесь.
192 2292222
>>292212
Используй regex
193 2292225
>>292221
Скачать и установить. Лучше настрой виртуалку ubuntu, там всё в разы легче происходит
194 2292227
>>292221
Ладно, почитаю http://composingprograms.com/pages/11-getting-started.html
Там вроде написано.

Как-то с сями всё время работал, проще это было.
195 2292229
>>292225
Я скачал и поставил. Я не знал, что ставить, поставил 3.10 AMD64, ну видимо, это то, что нужно.
Теперь буду разбираться в ньюфажных проблемах - когда я кодил на сях лаба42.cpp, там был редактор, а тут чёт вообще никак. Ну я уже привык в notepad++ работать.
Линукс я не буду ставить - я не умею им пользоваться, это сложно.
196 2292230
Какой фреймворк изучать для бэка?
Джанга вроде уже не нужна и подходит только для пердиксов.
Слышал про фастапи, на нем можно создать веб-аппликейшен с БД и логикой и потом еще подключить js-фрейморк для красивого интерфейса? Или это просто хуйня для создания апих?
197 2292231
>>292229
Vscode поставь, разберись что да как там, подключись к виртуалке через ssh и всё. Там все пакеты и пр легко настраиваются и устанавливаются, в командной строке сложнее pip install ничего не будет для тебя. Многие вещи на винде просто не работают, либо работают криво.
Если ты будешь делать скрипты на пару минут, то можно и на винде делать.
198 2292232
>>292230
Все. Серьезно. Изучи все. Без джанги тоже особо далеко не поедешь, особенно когда тебя поставят перед фактом делать работу на конкретном фреймворке.
У джанги всё из коробки. На фастапи ебля. Да, она чуть быстре, но и джангу можно на asgi сервера запустить и будет работать вполне быстро, ненамного уступая фастапи. К тому же она понемногу движется в сторону асинхронности, что не может не радовать.
199 2292233
>>292231

> Если ты будешь делать скрипты на пару минут, то можно и на винде делать.


Я ещё не знаю, чем я буду заниматься, скорее всего какие-то скрипты писать для teamcenter, если ты вообще про такое слышал.
Может быть, нас пересадят с ансиса на что-то другое и там нужно будет код писать на питоне, я не знаю пока.
На работе у меня точно есть только винда и ноутпад++ и ничего не будет другого, поэтому даже не вижу смысла пробовать.
200 2292234
>>292233
А, ну тогда лучше на винде остаться, может матлаб ещё там у вас есть
201 2292235
>>292232
Пасяб.
А поднимать приложуху на чем?
Слышал про gunicorn(пердикс-вариант) и на докере(для людей, которые еще не бегают лечить простатит).
Вопрос по докеру:
Я могу так сделать:
1. Я могу арендовать vps
2. Залить туда контейнер в докере
3. Запустить докер, чтобы он обрабатывал запросы
4. На впс купить белый ип, выделить порт
5. Купить доменное имя для vps

Я новый ньюфаг, так что спокойно, без агрессии.
1568580906416.PNG18 Кб, 626x471
202 2292241
>>292221
Ладно, сделал что хотели. Но у меня тупой вопрос ещё.
Если вопрос зачем мне sys, то я им выхожу, чтоб не считать дискриминант с делением на ноль.

В IDLE Shell код нормально работает, запускается вроде всё даже ничего. Но если запустить просто сам файл питона, то после ввода параметров в "чёрном" окошке всё закрывается сразу. Это так и надо?
203 2292243
>>292241
Скажи, что ты троллишь.
Как ты сях умудрялся писать?
204 2292244
>>292235
У тебя какая-то неполная, картина. "Пердикс" вариант - стандарт.

Докер это просто контейнер, установщик всего говна который в нем прописан. Запрос сначала поступает на прокси типа nginx, куда сертификаты ещё прикручиваются, как правило. Потом это идёт на сам инстанс сервера тот же gunicorn для wsgi, либо asgi с uvicorn воркерами, который уже запускает и работает с твоим приложением. Тут многоуровневая система, чтоб запустить с одной кнопки, надо настроить её.
205 2292245
>>292243
На сях я умудрялся писать давно и в основном лабы. А по работе я писал APDL скрипты, они тупые совсем.
Ну так серьёзно, ответь и я пойду спать, завтра выписываться с больничного.
206 2292246
>>292244
Во всяком случае, в проде используется именно это. Контейнеры запускает, обновляет и тп кто-то типа дженкинса, который подтягивает код с репозитория. Например, решил ты обновить свой говнокод, запушил в репу, а дженкинс увидит это, остановит, обновит и перезапустит контейнер
207 2292352
>>292244
Нахуй uvicorn с его чсвшными мейнтейнерами, когда есть nginx/unit?
208 2292359
>>292352
А что в gunicorn из коробки не работает?
209 2292368
>>292359
Речь была про uvicorn, а не gunicorn.
Ну ок.
1) Простая конфигурация,одностраничное описание.
2) Лёгкое обновление конфигурации
3) Мультиязычность, тебе не надо ебаться с различными WSGI
210 2292370
>>292359
А ну и wsgi/asgi из коробки. Не надо прокидывать gunicorn->uvicorn.
211 2292409
>>292352
Нет там воркеры только uvicorn.
Он запускается так же как и обычный gunicorn только с указанием асинхронного воркера типа gunicorn ....asgi.application -k uvicorn.workers.UvicornWorker.
212 2292434
>>292409
Так а нахрена? Получается ты когфиг каждый раз будешь менять в указании команды запуска, ну или в env файле.
Запуск из кода? Кривое решение, а тут у тебя независимое решение с лаконичными настройками, самое то для контейнера
213 2292450
>>292241
Бамп повросу.
214 2292474
>>292434
Какой конфиг, какой енв. Я написал баш один раз со всем говном который надо запускать и засунул его в докерфайл. Всё.
215 2292517
Аноны, у меня есть бесконечный процесс, который проверяет сайт на изменения. И я пишу GUI для этого процесса, ну и некоторых других функций

Вот фрагмент кода:
https://ideone.com/CYIZej

Собственно, функции сверху отвечают за проверку сайта
В GUI я засунул кнопку, которая запускает функцию. Всё нормально, она чекает сайт и пишет мне про новые созданные темы. А вот как этот процесс теперь остановить? Сам по себе он не остановится, он бесконечен.

Я попытался вместо Threading использовать Мультипроцессинг, но он не хочет запускать процесс при одной кнопке, и terminate() по нажатию другой

Может как то через global Stop решить проблему, правда я так понял глобальные переменные это не очень хорошо
216 2292587
>>292474
И каждый раз ребилдить, каеф
217 2292601
>>292587
Да, ребилдить, потому что как ты иначе перезапустишь контейнер когда дженкинс подтянет репу. Я ж не сам это делаю, всё что я делаю сам - пуш в репу. Всё. Грейсфул шатдаун для того и нужны, если ты об этом. Или ты прямо на ходу без ребилда апдейты ставишь, я не понимаю.
Или ты дефолтные настройки всегда используешь для проектов? Не понимаю к чему это вот всё.
218 2293028
Продублирую из ньюфаго-треда.

Есть устроившиеся питонисты в треде? Расскажите кем устроились, а то синтаксис + ООП + функциональщину изучил (остались алгоритмы и структуры данных, тестики немного), а куда дальше смотреть - хз. Мат базы нет, так что дата сатанизм и машоб сразу не про меня.

Отписавшим любителям потеребить Питона - заранее спасибо.
219 2293059
>>293028
Джанго + DRF пидором иди, очевидно. Только сначала докер выучи докер композ, SQL хотя бы джойны групбаи, и гит чтоб не сильно обосраться с конфликтами.
220 2293088
>>293059
Композ ненужон, лишнее нагромождение
221 2293091

> писать на джанге с nosql


Скажите, что есть вещи хуже, пожалуйста. Я чувствую что с каждым днём становлюсь полным идиотом
222 2293272
Как вы пишете тесты? Каждый метод тестируете или только те, где может возникнуть ошибка?
photo2022-01-2804-49-20.jpg62 Кб, 1280x1030
223 2293330
Заебался уже.
Создал папку на диске D. Создал в ней .venv.
Активировал скрипт activate.
В консоли теперь пишется (.venv) (словно я в виртуальном окужении).

Запускаю pip install matplotlib, он выводит что такой пакет уже есть на диск C.

Requirement already satisfied: numpy>=1.17 in c:\users... (глобал каталог)

ЧЗХ, если мне он не на диске C нужен а чтобы он в новую виртуалку встал?

Почему эта сучара лезет в глобал проверять список пакетов когда я ей по питонски блядь говорю поставь сука пакет в новую виртуалку?
224 2293341
>>293272
Не пишу тесты
225 2293352
>>293330
Венв это не виртуалка. Ставь убунту
226 2293355
>>293352
Раньше работало и адекватно ставило пакеты в .venv
Теперь даже из .venv пытается ставить в глобал
227 2293368
>>293355
>>293352
Разобрался вроде, походу это VSCode где-то пути от старого проекта подцепил.
Через обычную шелл консоль всё нормально ставилось, а через внутреннюю вскодовксую хуёво.
228 2293381
>>293368
Ну или даже возможно внутри venv-кофигов какой-то конфликт версий, снёс нахер .venv папку, поставил заново и нормально.
229 2293670
Нуко анончики подскажите, как лучше. Есть около 1000 объектов, которые должны обновлять свое состояние раз в некоторое время, выполняя долгий и сложный асинхронный запрос по сети, одни реже, другие чаще - от раза в 10 сек, до раза в 50 минут (это все с использованием asyncio)
Можно написать цикл, который будет эти объекты перебирать и запускать им обновление когда надо, это будет по сути одной задачей. А можно каждому объекту создать по задаче, которая будет дергать обновление сама.
В первом случае код получается сложнее, во втором в целом изящнее, но может в будущем потребоваться костыль. Нет же ничего плохого в том, что бы запускать сотни и тысячи корутин?
230 2293710
>>285619 (OP)
>>285619 (OP)
Хелп ребятки змеяки
Есть bytes
b'{"ID":255,"title":"\xf0\xcf\xc5\xc8\xc1\xd4\xd8 \xce\xc1 \xc2\xc1\xda\xd5","description":"\xf3\xdf\xc5\xd3\xd4\xd8 \xd7\xd3\xc5 \xd0\xd2\xc9\xd0\xc1\xd3\xd9 \xce \xc2\xc1\xda\xc5","project_name":"\xf3 \xc2\xcf\xc7\xcf\xcd"}\r\n'
Я знаю что в нём содержится строка {"ID":255,"title":"Поехать на базу","description":"Съесть все припасы н базе","project_name":"С богом"}
Как её можно конвертировать?
231 2293731
>>290155
Двачую. Работаю на проекте без ревью и нихуя не понимаю, нормально я делаю или нет. Я сам очень тяжело принимаю критику, но понимаю, что без неё здесь никуда
233 2293757
>>293753
спасибо биг биг!
15904355074460.jpg52 Кб, 500x376
234 2293771
Парни, вкатывальщик в треде, не бейте, лучше обоссыте.
Я не знаю, как здесь принято, может я не по адресу, но тогда пните по адресу пож-та.

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

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

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

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

Можно на английском, даже лучше мб на английском.
235 2293791
>>293771
Глянь этот, вроде что-то такое там было.
https://www.udemy.com/course/the-complete-python-course/
236 2293799
>>293791
О збс, спасибо анончик
237 2293808
>>293670

>Нет же ничего плохого в том, что бы запускать сотни и тысячи корутин?


Нет.
238 2293818
Всем привет, я ньюфаг, изучаю тут питон, иногда на работе, и использую в общем google cloud shell, но в нем питон 3,7. И я не могу понять, его вообще можно там заапгрейдить или нет? Чет в гугле как-то непонятно.
239 2293826
>>293818
Зачем тебе распоследний, если ты изучаешь только?
3.7 вполне норм ещё.
240 2293829
>>293826
Ну хз, у меня в задании написано, что надо использовать 3,8+ потому что там наверное джанго и что-нибудь не будет работать мб.
241 2293842
>>293826
Ну да вот джанго в моем проекте говорит, что ему надо 3.8
242 2293846
Ну или мб есть ещё какой-нибудь такой облачный сервис, где можно код писать в браузере бесплатно?
243 2293967
>>293829
Да, 3.7 это кал, нужно 3.8 потому что там завезли f-strings и джанго там асинхронный
244 2293970
>>293967
Стринги в 3.6, про другое не в курсе.
245 2293973
>>293970
А, точно, в 3.8 для них добавили свистоперделок
https://docs.python.org/3/whatsnew/3.8.html#f-strings-support-for-self-documenting-expressions-and-debugging
Безымянный.png27 Кб, 1331x455
246 2293992
>>293818

Блин, ну или скажите, как сделать так чтоб поэтри создал виртуальное окружение в проекте, если оно уже создано не в проекте, а в какой-то залупе?
Я просто на рабочем компе забыл настроить virtualenvs.in-project и он выводит эту хуйню. Ну сейчас я уже настроил, но один хрен то же самое. Поэтому я и хотел в облаке писать, потому что тут постоянно какое-то говно. Плюс ещё нихуя в PATH не добавляется.

А в облаке я не могу установить всё потому что там питон не 3,8. В итоге уже целый день пержу в стул, жопа горит. Постоянно трачу 90% времени на настраивание всякого говна.
247 2294001
>>293992
Ты на гугловском облаке в виртуалку поставил шинду? Ну и ебанько, лол.
На линупсе бы обновил в пару строчек небось.
248 2294002
>>293992
У тебя вообще в virtualenv питон 3.9
249 2294010
>>294001
>>294002
Да епта, скрин с компа рабочего, тут винда и не работает поэтри. А в облаке старый питон.
250 2294020
>>294010
Вот твоя хуйня и решение, пять сек в гугле.
https://github.com/python-poetry/poetry/issues/2746
251 2294050
Как загрузить большой файл в хранилище bitrix24 через либу requests? метод disk_storage_uploadfile ключ параметра fileContent open('largefile.txt', rb) сервер отклоняет запрос
252 2294076
>>294050
Почитать доки к одному и к другому, очевидно.
253 2294083
>>294020
Я чет снес всю папку .poetry думал она снова появится если переустановить пакет, а чет не появилась)) Ошибка никуда не делась, но папки, где лежит этот файл, который надо редактировать, нет, лел.
254 2294089
>>294020
Ну кстати папки ...AppData/Local/pypoetry, которая в ошибке, тоже вообще нет.
255 2294109
>>294020
Да, почитал в общем ещё схожие вопросы, пиздец ебля. Нахуй надо, дома уже попишу завтра.
256 2294123
>>294109
Епта, я пофиксил просто создав виртуальное окружение вручную через python -m venv и поэтри стало туда устанавливаться.
257 2294224
Прикинте у нас в команде есть чувак, который сипайтон в гдб дэюажит. Читаю его инвестигейт бага. А там такое. Он в кишки интрпретатора залес. Питоновские фреймы вынул. Увидел, что код отправил успешный хттп запрос лоадбалансеру и не смог отправить второй. Нашёл, что в рантайме завис сокет, через который второй запрос шёл. Посмтрле его файловый дискриптер потом уже без гдб стандартными средствами линукса глянул с кем этот сокет сейчас обащается. А там реально повисший эстэблишт сокет был. Он пошёл в этот лоадабалсен проверять почему он с сокетом не взаимодействует. А в этом лоадабансере на входящем порту, который был указа у клиента нет открытого тсп соединения. Он потом начал смотреть шурналы и логи этиго лоадбалансера на хосте. А ещё забыл расказать, что он перед этим выдашил какую-то структуру из памяти сипайтона, где был таймштамп когда клиент начала по этому сокеду разговаривать. Вот это время он нашёл в логах. Увидел, что активная амфора лоадбалансера падала и виртуальный айпи времено переключался на запасную амфору, а потом как создалась новая мастер амфора, то айпишник снова вернулся на новый мастер. И в это время питоновский процесс клиента общался по хттп через этот лоад балансер и сокет остался, а айпишн ик поменялся и новая амфора не знала про это открытое соединение, а стара упала не разорва его. Вот такой крутой инвестигейт чувак провёл. Я бы уже обострался на этапе выяснить точное время хттп запроса если его в логах нет. А он молодец всё дебагером достал. А вы так умеете?
258 2294238
>>294224
Пару принтов добавить и все пофиксим, пиздец вы там наркоманы.
259 2294245
>>294238
Этот процесс на ноде был полгода запущен и нельзя его убивать т.к. ha подумает, что с нодой что не так и переназначит её роли на другие ноды и возможно ребутнёт её.
260 2294249
>>294224
Вот поэтому я не программист. Я никто. Но лучше быть никем чем вот этим.
261 2294250
>>294224
Сколько платят такому чуваку?
262 2294257
>>294250
Точно больше 5к евро (это минималка была для релокейта, который он в прошлом году получил), но на сколько больше не знаю. Может на пару сотен может на несколько тысяч
263 2294292
Сап, анончики, такой вопрос.

Хожу в БД (mysql) и выкачиваю оттуда данные, потом кладу их в ксв. Все бы ничего, но в некоторых полях извлекаемых таблиц лежат жсоны с переносом на новую строку или просто многостроковые тексты с переносом строки.
В результате при записи данных в ксв получается смещение записей на одну влево. Как-то с этим можно побороться простым способом, или надо городить обработчики, которые будут вырезать \n\n из получаемых данных?

На скринах внешний вид в базе и после записи в csv.
264 2294297
>>294292
Если значение в кавычках, то должно быть ок.
Посмотри в опциях к врайтеру.
265 2294306
>>294297
Кавычки, как я понимаю, добавляются уже на стадии обработки питоном, т.к. в базе все значения лежат без кавычек.
Сейчас попробовал поиграться с параметрами escapechar и csv.QUOTE_NONE, но безрезультатно. В какую сторону еще покопать?
266 2294332
>>294306
Да у меня как-то не было с ним проблем.
Нормальный вывод получается. https://ideone.com/LG8zJ6
image.png5 Кб, 467x214
267 2294390
Скачал qt, создал проект pyside пытаюсь редактировать файл qml через designer выскакивает ошибОчка
268 2294408
>>294332
А, это потому что я обосрался, сорри.
Вот так там сделан переход на новую строку:
We've found a new treasure!\r\n\r\n%param1% Treasure Hunters joined the search and helped us find

Я хз, как убрать \r\n\r\n. Можно эту последовательность как-то заэкранировать от питона?
269 2294465
>>294408
Питону-то похуй, это эксель разрывает строки, если больше одного ньюлайна, судя по всему. Цсв вообще довольно всратый формат в плане стандартизации.
270 2294480
>>294465
Хотя не, вру, работает такой вариант. Возможно у тебя что-то другое ломает формат. Убирай последовательно куски от этого значения и смотри.
https://ideone.com/uUTXCt
271 2294521
>>293670
А можно сделать одну периодическую задачу которая будет создавать отдельнын задачи для остальных.
Вообще, периодическое обновление сам по себе костыль. Привяжи их к какому-нибудь методу и всё. Это сейчас оно выглядит логичным, а в будущем просто наебнется.
272 2294523
>>293731
Так это тоже неплохо. Отсутсвие ревью это, как правило, говорит о том что ты будешь поддерживать свой проект и вспоминать самого себя добрым словом
273 2294531
А мне хуй кто поможет, уже два треда
274 2294535
>>294245
Для сервиса который-нельзя-ребутать надо логирование для каждой строчки делать. Не придётся потом сидеть и ядро линукса на транзисторы разбирать.
Любой хороший спец решит задачу максимально простым способом, а не реверсинжинирингом
275 2294567
Касаемо Qt.
Как же бесит, что для каждого чиха я должен импортировать хуеву тучу классов, которые часто являются лишь обёртками над перечислениями. Вместо того, чтобы написать
widget.setSizePolicy('fixed', 'expanding')
я должен писать в импортах:
from PySide6.QtWidgets import QSizePolicy
и потом написать:
widget.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Expandinf))
Ну какого хуя
276 2294571
>>294567
Ну, ну, от жса ты тогда вообще умом тронешься
277 2294584
>>294535
В дебаг режиме там есть трейс логи. Но мы его только в тестах испольщуем т.к. там за лень несколько гигов сжатых zst логов. Тут надо сложный ротейт делать чтобы у клиентов место на дисках не кончилось. Может в бэклоге и есть на это таска, но пока клиенты на инфо логах сидят.
278 2294589
>>294224
охуеть епта
279 2294617
Почаны, у меня немного наркоманский вопрос, но все же.

Как в однострочном решении написать так, чтобы строка, которая поступает на инпут, использовалась два раза? Видел такое решение через лямбда-функции, но не уверен.

Грубо говоря там чувак в одной строке в 2 местах в коде использовал введенную строку, и все это в рамках однострочника (решение в одну строку).
280 2294620
>>294617
Непонятно нихуя.
281 2294624
Аноны, поясните за pytest следующее:
Что конкретно нужно покрывать тестами в веб-приложении типа CRUD? Классы и функции из views? И какого плана должны быть тесты, что-то типа проверки http запроса - assert response_code == 200 ?
282 2294641
>>294620
Типа задача:

Напишите программу, которая вычисляет долю студентов, получивших оценку A.

Используется пятибальная система оценивания с оценками A, B, C, D, F.

Формат ввода:
Строка, в которой через пробел записаны оценки студентов. Оценок всегда не меньше одной.

Формат вывода:
Дробное число с ровно двумя знаками после запятой.

Sample Input 1:
F B A A B C A D

Sample Output 1:
0.38

Sample Input 2:
B C B

Sample Output 2:
0.00

Sample Input 3:
A D

Sample Output 3:
0.5

Решение:

string_operated = input().split()
print('{0:.2f}'.format(string_operated.count("A") / len(string_operated)))

НО!

Я точно знаю что такую задачу можно решить в 1 строку, без занесения инпута в отдельную переменную. Вроде бы видел как такое решали через лямбда-функции. Может кто-то подскажет?
282 2294641
>>294620
Типа задача:

Напишите программу, которая вычисляет долю студентов, получивших оценку A.

Используется пятибальная система оценивания с оценками A, B, C, D, F.

Формат ввода:
Строка, в которой через пробел записаны оценки студентов. Оценок всегда не меньше одной.

Формат вывода:
Дробное число с ровно двумя знаками после запятой.

Sample Input 1:
F B A A B C A D

Sample Output 1:
0.38

Sample Input 2:
B C B

Sample Output 2:
0.00

Sample Input 3:
A D

Sample Output 3:
0.5

Решение:

string_operated = input().split()
print('{0:.2f}'.format(string_operated.count("A") / len(string_operated)))

НО!

Я точно знаю что такую задачу можно решить в 1 строку, без занесения инпута в отдельную переменную. Вроде бы видел как такое решали через лямбда-функции. Может кто-то подскажет?
283 2294644
>>293088
Ну да если пердолишь свою джангу под стол, то и композ и не нужен. Да и докер не нужен, пусть кому интересно сами пердолятся с установкой зависимостей.
284 2294646
>>294624
http-коды да. Если что-то меняется в базе запросом, то после теста запроса лезешь в базу и чекаешь изменения. Если загружается файл, то лезешь в директорию и чекаешь добавился ли он и.т.д.
285 2294652
>>294641
Можно завернуть в компрехешнен, у которого свой скоуп в однострочнике, но это пиздец изврат. Лямбды точно нет.
https://ideone.com/0ZVWMV
286 2294656
>>294652
Хотя не, я придумал. https://ideone.com/ijOHX8
Но это изврат примерно того же порядка.
image.png64 Кб, 700x405
287 2294746
Почему PyCharm не видит, что у класса QMainWindow есть функция windowTitleChanged? Пользуюсь PySide6, установил в локальную папку
image.png204 Кб, 1080x1015
288 2294944
Лол блядь
289 2294962
Хай двач, хотелось бы услышать ваше мнение.

Я сейчас работаю на фрилансе, зарабатываю 1к баксов +-, джун.

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

Вопрос в том, стоит ли ставить себе приставку мидл и говорить типо - У меня и так опыт с фриланса,берите.

Я пробовал на джуна заявки подавать с требованием к зп минимум 1000 баксов, но меня все слали в 1 место. Не знаю даже что делать.

Проблема фриланса в том, что я не уверен что развиваюсь, вроде постепенно больше клиентов = больше заказов = больше денег, но таски одни и те же.
290 2294965
>>294624
Для тестирования API лучше использовать vcrpy
291 2294978
>>294962

>Проблема фриланса в том, что я не уверен что развиваюсь


Вот видишь, ты сам ответил на свой вопрос.
Опыт тоже стоит денег - плати за него, как подмастерья мастерам в гильдиях.
292 2294985
>>294962
На фрилансе есть фултайм удаленка в командах, пиздуй туда.
293 2295037
Делаю сайт,PyCharm,Django.Хочу указать пути для статических файлов.
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Выдаёт ошибку:
'module' object is not callable
Гуглил,пришёл к выводу,что проблема в том,что папка,в которой лежат настройки,называется project,как и сам проект.Так ли это,и если так,то что делать?Если нет,то в чём проблема?
294 2295173
Не понимаю, объясните пожалуйста
На кодварсе задача, суть в том, что дается число и нужно вернуть число, но с цифрами в порядке убывания.
Решил с таким алгоритмом:
перевод в строку - строка в массив - массив в целочисленный масив - сортировка - преобразование в число.

Но нашел такое решение:
int("".join(sorted(str(num), reverse=True)))

Не могу понять что тут происходит, ибо функция sorted по сути же не работает со строками, и тут не используется .split() и нет перевода в массив.
295 2295180
>>295173
Почему не работает, строка итерабля, ты можешь по ней итерироваться. Ну а сортед возвращает сортированный список.
296 2295234
>>295037
В джанге надо миграцию для статикфайлов делать отдельную.
Вообще, статикфайлы всегда были головной болью в проде. Кучу разрешений делать чтоб просто их увидеть, про жс скрипты вообще молчу.
297 2295241
>>295180
То что строка итерабля в курсах и сначала пытался отсортировать строку, но мне возвращало исключение
'str' object has no attribute 'sorted'
298 2295246
>>295241
У списка есть сорт, потому что он мутабельный. А сортед сортирует любую итераблю и создает новый отсортированный список из нее.
299 2295266
>>295246
А, ебать, я понял. И .join() там юзается как раз из-за этого

>А сортед сортирует любую итераблю и создает новый отсортированный список из нее.



Спасибо за объяснение
300 2295269
>>295266
И типа если мне надо будет отсортировать строку, то я бузу юзать метод join с учетом того, что мне вернется новый список. Хз как верна эта логика, но хоть как-то понятно
301 2295280
>>295269
Ага.
Вообще, привыкай юзать интерактивный шелл для разных проверочек и упражнений, это очень удобно.
302 2295395
Анон, сейчас только начал вкатываться в веб-разработку на фласке (до этого на питоне писал только автоматизации и аналитику), не совсем понимаю - а в чем разница между использованием фласка с джинджей и хтмл-темплейтами и беком на питоне + фронтом на жс? Исходя из того, что я понял, фласк вроде как позволяет оживить страницу наравне с жс, или нет?
303 2295406
>>295395
Можно генерировать все на беке, можно сделать апи на беке и морду на фронте. Разные подходы.
sage 304 2295412
>>295406
Хм. Интуиция подсказывает, что генерация на беке безопаснее, но медленнее.
А как вообще понять, какой подход использовать? И есть ли такие ситуации, когда обязательно нужен JS, или в принципе фласк полностью может его заменить?
305 2295421
>>295412
Сажа приклеилась.
306 2295423
>>295395
Либо на бэке ты генеришь готовый статичный хтмл, соответственно будет тратиться время клиентом (браузером клиента) на обработку этого хтмл (построения дома), если у тебя там какая-нить таблица на тысячи строк. Вся динамика через обновление страницы.
Либо на бэке ты генеришь жсоны с данными через апи, а на фронте с помощью якс/фетч долбишься в апи и отрисовываешь эти данные как тебе надо. Вся динамика на джаваскрипте без обновления страницы.
307 2295461
Аноны, есть сервер на 3м Джанго, в респонсе нужно установить куки. Но почему-то параметры samesite="None" и secure=True оно просто игнорирует, кто-нибудь сталкивался с этим? Я знаю что был баг, где нельзя было поставить samesite None, но версия джанго где эта хуйня уже пофикшена, но при этом в респонсе уже приходит Set-Cookie без этих параметров.
308 2295474
>>295412
Захочешь к себе на страницу прикрутить сторонний сервис, а там либы на жсе.
309 2295512
Как стать хорошим специалистом
310 2295516
>>295512
Надо хорошо программировать.
311 2295528
>>295512

>Надо хорошо программировать.



необязательно

нужно надрочить собесы
вести твиттер
писать на хабр и медиум
выступать на митапах и конфах
312 2295533
>>295528
сделать трансгендерный переход и покрасить волосы в кислотный цвет
313 2295546
>>295533
Где покрасить?
314 2295547
>>294652
>>294656

Во, примерно такое я и видел. Реально изврат, но спасибо.
315 2295611
Имеет ли смысл начинать вкатываться в ООП, если изучал только базовые типы данных и операции над ними и функциональщину? Я проебал темы про декораторы, генераторы, вот это вот все. Генераторы еще более-менее понятны, а декораторы вообще хуй знает, что такое.
316 2295646
>>295611
а че там понимать в декораторах? Я не питонист ни разу, но достаточно посмотреть на пример кода с декоратором чтобы понять что он оборачивает собой вызов функции и что то делает либо с ее результатом, либо до ее выполнения (можно как middleware использовать, например, для проверки допустимости вызова функции)
317 2295647
>>295646
Вкатунам непонятны и намного более простые концепции.
318 2295679
>>295395
Нихуя он не позволяет оживлять, потому что шаблонные языки, которые просто нахуяривают синтаксис поверх уёбищного синтаксиса html - говно. Темплейты позволяют делать сервер-сайд рендер, который очень важен для SEO. Но на этом их преимущества заканчиваются. Зато есть ворох проблем, в виде отсутствия тулинга (большинство теймплейтов по сути один сплошной строчный литерал), засирания контекста (что просто охуенно заходит с предыдущим пунктом), засиранием ответственности (чтобы подредактировать шаблон тебе нужно знать весь серверно-клиентский стэк проекта). В конечном счёте это выливается в ебическую привязку вротэнд стэка к серверу, а значит никаких тебе соевых фреймворков в будущем. Самый запущенный пример - рубирельсы со своими шаблонами, которые требуют знания жиквери, в 2022-м году.
Так что если вкатун, то сразу раздели сервер и клиент на отдельные папки, которые связаны разве что общим конфигом.
319 2295828
>>295646
Непонятно, для чего и в каких случаях это можно использовать.
320 2295858
>>295611
Генератор - это функция, не связанная с ООП. Декоратор - это один из шаблонов проектирования. Тебе нужно выучить их всех, иначе хуйня будет с ООП.
321 2295908
>>295679
Мне всегда было интересно, а зачем серверсайд рендер нужен? Вон, в той же джанге, например, там же полфреймворка этим занимается. Зачем? Как это работает и чем лучше жса?
322 2295912
>>295828
Много где. Например, обернуть функцию в try catch или логгирование подкрутить. Ты ж не будешь её переделывать, а просто добавишь декоратор одной строчкой. В celery можно декоратором обозначить таски. Да дохуя всего.
Декоратор это обертка над функцией. Во всех языках есть обертки над функциями, но тут они выглядят вот так.
323 2295916
>>295908
Потому что так делали всю жизнь до развития жс для этого меньше десяти лет назад.
324 2295918
>>295916
Т.е, это просто пережиток что-ли?
325 2295921
>>295918
Это стандартный метод, рендер на жс это новомодная хипстота.
326 2295922
>>295921
Но эта хипстота везде.
327 2295926
>>295922
Ее активно перенимают высоконагруженные сайты, чтобы переложить рендер с себя на клиента, а так далеко не везде.
328 2295928
>>295926
Если проблема только в этом, почему бы не сделать отдельную прокладку на сервере чисто для рендера, вместо жса?
329 2295934
Что за хуйня с поддержкой Qt в PyCharm? Установил PySide6. Так мне IDE не подсказывает названия сигналов, и пишет, что такого аттрибута нет (но при запуске всё работает). Также и с параметрами для конструкторов виджетов. Документация практически не работает, при наведении на имя не выскакивает даже ссылки на страницу в Интернете об этом классе/методе.
330 2295935
>>295928
Всё равно ты делаешь это у себя, а так это делается в браузере юзера. Умножь это на дохуллион реквестов у больших сайтах, вот он и профит.
331 2295980
>>295934
Выкинь пчарс и переходи на вскод
332 2295985
>>295679
Не то чтобы вкатун, я так вообще аналитик, просто хочу поднять веб-страницу, где заказчики аналитики будут просто нажимать кнопку, запускать скрипт и получать результат. Сейчас они тыкают этим меня, и я какое-то время думал просто зашарить им код, чтобы они его запускали сами, но там тоже свои проблемы - надо объяснить, как запустить интерпретатор питона, доустановить зависимости, не дай бог скрипт обновится. Короче мне было бы проще просто поднять страничку с кнопкой и все. И вот я думаю - кнопку "скачать отчет" можно сделать как на уровне фласка, так и жаваскриптом. Но мучиться с жс никакого желания нет, уже хватило на предыдущем месте работы.
333 2295998
334 2296062
Может кто подсказать, зачем нужна библиотека django-bootstrap? Из документации я чет не очень понял, че она делает, кроме как рендерит хтмл теги при помощи джанго тегов. И чё типа всё? Прост у меня в учебном проектике написано использовать эту библиотеку и я чет не понимаю, мне тупо надо будет, например, вместо того чтобы просто скопировать какой-то шаблон или элемент с сайта бутстрапа, ещё ебаться, заменяя все теги на джанго теги чтоб получилось то же самое? И зачем? Или это дает какие-то приемущества?
335 2296063
>>295985
Так если ты даже петухонить не умеешь, на жабаскрипте кнопку "Скачать" сделать легче, чем ебаться с формой в джанге/фласке.
336 2296072
>>296062
Bootstrap это ui библиотека, в ней за тебя уже настроены css-стили и под них настроены css-классы. Очевидно django-bootstrap нужна, чтобы при рендеринге хтмл вставлять классы с помощью шаблонизатора, а не самому прописывать.
337 2296085
>>296072
Да я знаю че такое бустрап. Ну так мне нужно будет прописывать эти классы в шаблонизаторе точно также, не?
338 2296101
Не могу разобраться в задаче, суть в том что в строке слова в хаотичном порядке, в каждом слове цифра, которая обозначает порядок этого слова в предложении. Нужно вернуть строку с правильным порядком слов.

Что сделал я: создал словарь(цифры от 1-9), ищу в слове совпадение с ключом и возвращаю цифру как int, а не изначально str.

Дальше хуй знает, я думал создать пустой лист и добавлять слово по индексу исходя из цифры в нем через insert, но не особо получается.
339 2296108
>>296101
Думал использовать сортировку, но так как там строка сортируется по первой букве, а цифры игнорируются. Не понимаю как сделать сортировку конкретно по цифре.
340 2296109
>>296101
Покидай входных данных
341 2296112
>>296109
"is2 Thi1s T4est 3a" --> "Thi1s is2 3a T4est"
"4of Fo1r pe6ople g3ood th5e the2" --> "Fo1r the2 g3ood 4of th5e pe6ople"
343 2296139
>>296101
сплит, сорт, джойн. Но нет элегантного способа извлечь цифру для сорта.
344 2296142
>>296133
Это же дрочерская задачка, либы юзать неспортивно.
345 2296145
>>296133
Хотя, если у тебя больше 10 слов, то не так красиво будет и придется предваритьельно извлекать числа и потом объединять
346 2296146
>>296142

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


Схуяли?
347 2296149
>>296133
Спасибо, но я если честно особо нихуя не понял из твоего решения. Но решил втупую, через циклы и условия
348 2296157
>>296146
Потому что цель сделать красиво и изъебнуться, а не просто решить любым способом.

Я пока придумал так, но хуевасто, еще помучаю.
https://ideone.com/A7RcPO
349 2296161
>>296157

>Потому что цель сделать красиво и изъебнуться



>однострочник


>красиво

350 2296170
>>296161
Однострочник может быть красивым, если изъебнуться, это и есть суть дрочерства на сайтах с задачками.
Ну а лучше ли нахуевертить циклов или перегруженный однострочник это уже вопрос личных предпочтений и вкуса.
351 2296181
>>296157
Не работает для строк где больше 9 слов
352 2296184
>>296181
Ну можно добавить джойн и инт в лямбду, но мне в любом случае не нравится это решение, хотя в этом подходе другого вроде нет.
353 2296185
Вот так еще
https://ideone.com/ftAHcR
354 2296208
>>296185
С регулярками-то не сложно.
https://ideone.com/QjOxfQ
355 2296260
>>295908
Потому что поисковые движки срали на новомодный клиент-сайд рендер, им разметку сразу с запросом подавай.
>>295928

>почему бы не сделать отдельную прокладку на сервере чисто для рендера


Шаблоны ты хотел сказать?

>вместо жса


"Вместо жса" в вебе ты только костыль сможешь сделать.
>>295935
Кстати даже условные твиттеро-фейсбуки обрабатывают запрос, чтобы влепить метатэги, а не отдают голый html на все страницы.
>>295985
Суть в том, что ты сейчас хочешь поднять страничку с кнопкой. А потом тебе захочется поднять ещё страничку и добавить динамики. А потом ещё и ещё. И так ты окажешься в ситуации, когда у тебя 100+ шаблонов страниц, написанных на DSL, для рефакторинга которых тебе чуть ли не помидор понадобится. Но помидор не будет ковырять шаблоны даже за жирные шекели.
356 2296279
>>295980
Спасибо за совет. VSCode видит сигналы и подрубает подсказки для аргументов. Не знаю, почему такого нет в PyCharm, который вообще-то стоит денег
357 2296335
Питон есть на макоси искаропки? И каких версий?
358 2296349
>>296101
In [77]: def sort_string(input_str: str):
...: return " ".join(sorted(input_str.split(" "), key=lambda word: int("".join(c for c in
...: word if c.isnumeric()))))
...:

In [78]: sort_string("is21 Thi12s T4est 23a")
Out[78]: 'T4est Thi12s is21 23a'

In [79]: sort_string("is21 Thi12s T4est 23a")
Out[79]: 'T4est Thi12s is21 23a'
359 2296468
Помогите с пагинацией в джанго.
Есть ListView. Хочу в зависимости от объектов в queryset менять размер пагинации.
Т.е. первая страница - пагинация через 14 элементов, вторая например через 16 элементов.
Как такое провернуть?
360 2296479
>>296085
Ну так вместо дивов с форм-контрол ты будешь писать в башлоне бутстрап-форм. А вот если тебе уже нужны кастомные стили, то руками всё равно придётся переопределять и импортить.
361 2296484
>>296479
Ну я так глянул ещё в документацию, походу да, в основном в формах разница, а всё остальное также. Я в формах ещё не особо поразбирался прост
362 2296496
Написал програмулину для решения кубического уравнения.

И чёт оно не пашет. ЧЯДНТ?

import math

print("Ввод абсц:")
a=float(input("a="))
b=float(input("b="))
c=float(input("c="))
d=float(input("d="))
print(Cardano(a,b,c,d))

def Cardano(a, b, c, d):
if a == 0:
return 0
res = []
p = (3 a c - b b) / 3 a 2
q = (2 math.pow(b, 3) - 9 a b c + 27 a a d) / 27 math.pow(a, 3)
D = (q / 2)
2 + (p / 3) 3

if D < 0:
if q < 0:
fi = math.arctg(math.sqrt(-D))
elif q > 0:
fi = math.arctg(math.sqrt(-D)) + math.pi
else:
fi = math.pi / 2
y1 = 2 math.sqrt(-p / 3) math.cos(fi / 3)
y2 = 2 math.sqrt(-p / 3) math.cos(fi / 3 + 2 math.pi / 3)
y3 = 2
math.sqrt(-p / 3) math.cos(fi / 3 + 4 math.pi / 3)
res.append(y1 - b / 3 a)
res.append(y2 - b / 3
a)
res.append(y3 - b / 3 * a)

return res

print(Cardano(1, 6, 3, -10))
362 2296496
Написал програмулину для решения кубического уравнения.

И чёт оно не пашет. ЧЯДНТ?

import math

print("Ввод абсц:")
a=float(input("a="))
b=float(input("b="))
c=float(input("c="))
d=float(input("d="))
print(Cardano(a,b,c,d))

def Cardano(a, b, c, d):
if a == 0:
return 0
res = []
p = (3 a c - b b) / 3 a 2
q = (2 math.pow(b, 3) - 9 a b c + 27 a a d) / 27 math.pow(a, 3)
D = (q / 2)
2 + (p / 3) 3

if D < 0:
if q < 0:
fi = math.arctg(math.sqrt(-D))
elif q > 0:
fi = math.arctg(math.sqrt(-D)) + math.pi
else:
fi = math.pi / 2
y1 = 2 math.sqrt(-p / 3) math.cos(fi / 3)
y2 = 2 math.sqrt(-p / 3) math.cos(fi / 3 + 2 math.pi / 3)
y3 = 2
math.sqrt(-p / 3) math.cos(fi / 3 + 4 math.pi / 3)
res.append(y1 - b / 3 a)
res.append(y2 - b / 3
a)
res.append(y3 - b / 3 * a)

return res

print(Cardano(1, 6, 3, -10))
363 2296497
>>296496
Ага, не пашет. И соде тут нету.
364 2296498
>>296496

> Написал програмулину для решения кубического уравнения.


Короче, просто на пастебин закину
https://pastebin.com/pJ905Rn2
365 2296514
>>296498
А че не пашет? Считает неправильно типа? У меня запустилось, только первый принт убрать надо было.
366 2296515
>>296496

> решать алгебраическое уравнение НЕ методом минимальной резольвенты в поле квартернионов


Кринжанул, спасибо
367 2296596
>>296515

> решать алгебраическое уравнение НЕ методом минимальной резольвенты в поле квартернионов


Я таких слов не знаю, я инженер
368 2296649
>>296515
Нормальные люди уравнения перебором решают. И точнее будет и быстрее.
pythoninttoroman.png21 Кб, 1265x276
369 2296727
Вот в книжке написано, что словарь не гарантирует порядок, то есть полагаться на него нельзя, но на литкоде постоянно вижу решения, которые подразумевают, что порядок не меняется. Как так?
370 2296730
>>296727
Наверное порядок не гарантируется при добавлении новых ключей
371 2296738
>>296727
Это старая книжка, с какой-то версии гарантирует, 3.6 штоле.
372 2296743
>>296738
Да, нашел, с 3.7. Спасибо.
373 2296744
>>296727
https://docs.python.org/3/library/stdtypes.html#dict-views

> Changed in version 3.7: Dictionary order is guaranteed to be insertion order.

374 2296753
>>296743
Там на версию раньше уже было, а в следующей внесли в спеку языка для всех реализаций.
375 2297051
>>296279
В вскод своих багов хватает, но он легче и удобнее. Главное - универсальнее.
376 2297053
>>296727
В диктах вообще порядок не предусмотрен при работе. Нахер там он не нужен.
image.png57 Кб, 1122x407
377 2297128
Приветик.
В книге "Укус питона" есть такой пример.
Он реализуется только в терминале? У меня не получилось в IDE, так как переменные не обнаружены.
Этот код только для того, чтоб показать, как питон могет?
378 2297150
>>297128
Сам я юзал возврат кортежа, пися код в IDE, так что так можно делать. А ты наверно какие-то ошибки допускал, вот среда и ругалась
image.png20 Кб, 498x333
379 2297153
380 2297155
>>297153
Но это же консоль внутри IDE. А при запуске через ctrl shift f10 такое не прокатит.
381 2297158
>>297155
Допиши print() к переменным своего кортежа.
image.png117 Кб, 360x451
382 2297161
Нихуя, что спиздили. Надо будет таки взяться за эту тему.
383 2297243
>>297128
Так могет и го.
Лучше бы не мог.
384 2297414
Опять дебил с кубическим уравнением. Очевидно, что учусь я решать не кубические уравнения, а немного другому.
https://pastebin.com/eezge7H4

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

Пишет TypeError: Cardano() missing 3 required positional arguments: 'b', 'c', and 'd' - очевидно, что функция не получает то, чего должна и я не очень понимаю, почему.
Тыкал по разному - не получается.
385 2297415
>>297414
Потому что ты возвращаешь кортеж и пихаешь в кардано тоже кортеж.
386 2297418
Пишу на жанге. Есть уведомления, много разных типов, дан доступ к конкретному объекту, кто-то реквестирует доступ к объекту, объект обновлен и т.д. Есть 2 стула:
1) Въебать всю в одну модель, то бишь в одной таблице будут уведомления разных типов, но у строк будут пустые поля
2) Раскидать всё по разным моделям, но будет дохуя разных табличек.

На какой стул правильно садиться с инженерной точки зрения, по количеству запросов к БД и т.д. Понимаю, что это просто так примерно не почувствуешь, но может кто-то решал подобную задачу и может подсказать.
387 2297446
>>297414
Ты задал в def Cardano, что этой функции нужно 4 аргумента - а, б, с, д.

Когда ты вызываешь эту функцию, ты теперь полюбас должен указать для нее 4 аргумента, например так:
https://pastebin.com/wS4ub1Uv (изменения на 46 и 49 строках).

Альтернативно, ты можешь при объявлении функции задать, что ей нужен только один аргумент, который являет собой кортеж из 4 элементов. Тогда при вызове функции ты передаешь coef, а в объявлении функции надо просто дописать, что а,б,с,д - это элементы переданного кортежа.
https://pastebin.com/kjVJU6gW (изменения на 22 и 50)
388 2297470
>>297418
Зависит от того как ты к ним будешь обращаться. Лучше наверное по разным, чтоб не было одновременных вызовов и изменений одной и той же большой таблицы. Обращения к бд являются ленивыми, так что по идее в плане нагрузки разницы быть не должно.
Вообще, делай базу как можно меньшей.
389 2297487
>>297414
Конечно миссинг. У тебя вывод из 4х функций приравнивается к одной переменной, остальные три теряются. Чтоб сделать то что ты хочешь прочитай про arg kwargs. Выглядит это так.
dict = {a:1, b:2, c:3...}
func(++dict) плюсики это звездочки

Так что лучше тебе передавать лист на выходе. Пустой лист (а так же пустой дикт нуль, пустая строка и пр) в питоне равносильно false.
Интересно, зачем ты пишешь if a != False когда можно просто написать if a.

Это первое что в глаза бросается
390 2297498
Хуй знает куда ещё написать за помощью. Так как пишу на пайтоне, то пускай будет здесь, хоть вопрос к нему относится очень отдаленно.

Пилю на селениуме парсер. Задача: собирать ссылки на айтемы со страницы, на которой они появляются динамически при скроллинге вниз. Иного способа получать ссылки, кроме как в тупую напрямую нет. АПИшка по ключам, которые не выдаются толком, а обходные пути заблочены. Число ссылок на айтемы которые необходимо получить варьируется от пары до десятка тысяч.
Столкнулся с проблемой переполнения оперативы на вкладке и последующим вылетом ошибки out of memory. Парсер находится на ВДС в конфиге на 8 гигов оперативы. Если просто вручную скроллить страничку и следить за потреблением памяти, то можно увидеть, что оператива сама собой освобождается при длительном скроллинге. При работе селениума на хромдрайвере такого освобождения нет, отчего и происходит переполнение.
Как бороться с такой хуйней и расчищать память? Закрывать инстанс браузера и открывать с того же места не вариант - открыть с того же места просто не выйдет ввиду отсутствия прямых ссылок/запросов. Почему обычный хром нормально справляется с прохождением больших наполненных страниц, а хромдрайвер загибается?
391 2297500
>>297498
Я слепой. Нашел ниже тред QA. Тем не менее, ответы и здесь приветствуются
392 2297503
>>297498
Пальцем в небо - поставить sleep на некоторое время?
393 2297504
https://ideone.com/37hsNk
Я уже заебался с ошибкой QPaintDevice: Cannot destroy paint device that is being painted. Как фиксить?
394 2297511
Реквестирую самоучитель для полного ньюфага.
Очень хочется чтобы было без воды, с вопросами в конце главы и понятно, но сколько не качал разных - не нашёл.
Вроде был такой, но я проебал название.
395 2297513
>>297503
Неа. Оператива вообще не освобождается, разные задержки пробовал
396 2297518
>>297511
Подозреваю, что тебе нужно не без воды, а чтобы было подано с практической точки зрения.
397 2297523
>>297518
Возможно. Мне просто не нравится лишняя информация которая не несёт полезной нагрузки, но она вроде и именуется водой.
Учитывая мою лень это реально проблема.
398 2297547
>>297446
>>297415
>>297487
О, спасибо. Я как раз пытаюсь в этом разобраться, сами понимаете, что нормальный человек не будет делать столько функций для простой задачи.
или будет
399 2297557
Одна либа требует numpy версии 1.21 или ниже, а другая тащит за собой 1.22.
Это как-то решается, кроме установки более древней версии второй либы?
400 2297592
>>297498
Кучу данных держишь в памяти, делай генераторы там где это возможно и по максимуму используй ленивый доступ
401 2297594
господа, существует ли апи для teamspeak с возможностью воспроизведения аудиопотока в канал, без клиента тимспика? Я правильно понял что апи ограничивается функциями администрирования, написания сообщения? То есть если я хочу радил-музыка бота, мне придется ставить тим спик клиент и ос под него?
402 2297595
>>297498
Лол. Ставишь себе дебаг проксю, прописываешь в браузере и скроллишь себе вниз, потом смотришь на запросы в проксе и повторяешь у себя, забирая готовые данные в чистеньком жсоне.
Какие блять селениумы.
403 2297664
конструкция вида
Print('Loh' if 2+2==4 else "")
Всё равно печатает пробел. А как вообще пропустить выполнение печати если условие не выполнено?
404 2297665
>>297594
Читай док по апи тимспика, ищи репы в гите
405 2297669
>>297664
Print('Loh' if 2+2==4 else None)
Print('Loh') if 2+2==4 else None
406 2297682
>>297669
Ну он слово None и пишет
407 2297684
>>297682
В первом варианте, который предпочтительнее
408 2297686
>>297682
Однострочником нормально не пишется.
Можешь сделать
if 2+2: print('hui')
но это хуевый стиль.
изображение.png2 Кб, 431x163
409 2297689
>>297664
Почему бы не написать
if 2+2==4:
print('text')
?
Тернарный оператор в питоне супер жуткий, так как выводимые значение с разных сторон, а не рядом.

У меня пробел не печатается. Может быть тебе нужно явно указать sep и end, не знаю? Там только перенос строки должен печататься по умолчанию.
410 2297691
>>297689
С sep='' всё отлично, спасибо.
411 2297764
>>297511
Бумп реквесту

Ну была же книжка такая, там ещё первой главой ввод в информатику был для самых чайников
412 2297767
Дочитываю Лутца.Это было тяжело по больше части из-за его водянистого стиля изложения материала. Хотя сама книга годная, для новичка аналогов просто нет.
Остались главы про Юникод, декораторы и метаклассы.

Подскажите, что из этого 100% нужно прочитать вкатышу, а что лучше отложить на потом?
413 2297771
>>297764
О, еще один вкатыш.

Попробуй "автоматизацию рутинных задач с помощью Python". Как раз первые 180 страниц - это описание синтаксиса, а дальше уже прикладные проекты идут.
От того же автора есть Hacking Cyphers и Making Games. Эти я не читал, но говорят годнота.
А под основами информатики я хз что ты понимаешь. Базовые понятия вроде циклов, функций классов и ООП? Все это есть в "автоматизации рутинных задач"
414 2297773
>>297767
Юникод. А что про него читать? Но он всюду энивей.
Для декораторов хватит одной статьи и потыкать их в программе один вечер - и это можно сделать в любой момент, как встретишь их - и для вкатывания они не нужны. Метаклассы нахрен.
Короче лучше просто тыкай дальше вещи что было ранее и понимай их глубже, практикуйся, а не какие-то декораторы...
415 2297776
>>297773

>А что про него читать?


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

Спасибо, анон.
416 2297784
Вот бы лутца издатель пнул на новое издание, чтобы викинуть вторую версию и еще всякую хуйню и добавить свежачка.
Но он уже старый дид вроде, да и не хочет.
417 2297791
>>297784
Два чаю. Страниц 200 можно было бы убрать.
Да и инфа про 2й питон бесполезная.
418 2297828
>>297791
Два чаю. Страниц 200 можно было бы убрать.
Да и инфа про 2й питон бесполезная.
419 2297875
>>297771

>О, еще один вкатыш.


Чини детектор, я для общего развития изучаю.

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


>Базовые понятия вроде циклов, функций классов и ООП? Все это есть в "автоматизации рутинных задач"


Неа, там было про биты, байты и прочую поеботу, лол.
Просто запомнилась именно поэтому, т.к. я дальше этой главы и не зашёл. Но очень доставили вопросы в конце главы, это куда более эффективно чем конспектирование и повторение, я считаю.
420 2297882
>>297875

>биты, байты


>Питухон


Чел...
421 2297896
a, b, c, d = None, None, None, None
Как быстро инициализировать переменные None вне зависимости от количества переменных, чтобы не повторять None то же количество раз?
422 2297906
>>297882
Что не нравится? Раскрой мысль.
423 2297909
>>297896
a = b = c = None
изображение.png5 Кб, 313x101
424 2297911
>>297896
a = b = c = d = None
изображение.png9 Кб, 439x98
425 2298093
почему функция в которой надо напечатать N строк определенным образом работает 20 секунд, а две такие функции запущенные в двух потоках работают в 4 раза быстрее? Почему не в 2?
426 2298108
>>298093
Ладно, я тупой, каждый поток берет на себя половину работы же, вот почему.
427 2298171
Я все не очень понимаю, по какому принципу в джанго создаются приложения? Или просто как угодно? Вот например у меня есть какой-то сайт, у него там есть разделы. Ну вот Двач например. Главная страница со списком досок где будет располагаться? Она же не принадлежит никакой доске логически как бы. Нужно делать отдельное приложение для главной страницы? Или её прямо в основной модуль запихать, где находится settings?
428 2298185
>>298171
В модуле где есть settings никаких вьюх делать не надо. В твоём случае надо сделать ещё один и добавлять к нему всё остальное. Эти модули сделаны просто для удобства, можешь хоть для каждого роута делать свой модуль. Вообще они должны быть независимы друг от друга для модульности.

А вообще поебать где что, можешь хоть в основном модуле делать, главное чтоб в роуте был указан метод
429 2298199
Как определить свой строковый метод чтобы вызывать его вот так:

test = 'бла бла'
test.my_method()
430 2298219
>>298185

>В твоём случае надо сделать ещё один и добавлять к нему всё остальное.



Чет не понял. Типа делать приложение для главной страницы, которое будет прост рендерить главную страницу? А че значит "к нему добавлять все остальное"?.
431 2298256
>>298199
self.print()
432 2298272
>>298256
Не понял. Напиши полностью. Допустим метод выдает return len(self) Как это сделать?
434 2298277
>>298185
А, ну я так подумал, наверное приложение определяется моделью, да? Одно приложение должно содержать вьюхи, которые взаимодействуют с моделью, описанной в этом приложении. А то если приложение импортирует модель из другого приложения, получается оно самостоятельно работать не может.
435 2298280
>>298256
О вкатыш с курсов.

>>298199

class MyString:

def __init__(self, arg:str):
self._value = arg

def __str__(self):
return f' 2298256 - хуесос. Значение: {self._value}'

def __repr__(self):
return f' Все равно 2298256 - хуесос'

def __iter_(self):
return [s for s in self._value]

У тебя какая задача стоит, юродивый?
436 2298281
>>298280
Хуя бальбанул очкоед.
437 2298286
>>298274
Да просто чтобы красиво было.

А вот такой вопрос. Если я в функцию отправляю строку как аргумент функции, она копируется или передается по ссылке? То есть если я отправлю огромную строку, то в памяти будет две такие же огромные строки и будет фигово для производительности?
438 2298294
>>298281
Иди Лутца наверни говнохлебатель
439 2298296
>>298286

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


будет ссылка на переменную(объъект), хранящую значение,
потом если GC пройдется и если ссылка будет уже не нужна, то очистит память. Но если ты за байтоебство, то нахера начал питон учить?
440 2298298
Как же не хочется верстать свою говно страницу, а как пет-проекты тогда делать?
441 2298299
>>298296
Короче проверил в диспетчере задач. Отправил в функцию строку 50 мегабайт - процесс питона около 50 мегабайт. Значит по ссылке передается. Круто.

>если ты за байтоебство, то нахера начал питон учить?


Чтобы на нем байтоебить, очевидно же.
442 2298300
>>298299

>Короче проверил в диспетчере задач


ты ебанутый, братишка

https://pypi.org/project/memory-profiler/
image.png114 Кб, 1677x682
443 2298449
Аноны, я не понимаю. Вот у пандас есть df.value с методом tolist(). Я хотел посмотреть, как вообще этот метод составлен - мне стало интересно, как на уровне кода происходит считывание данных из экселя/ксв и засовывание в список. Я нажал CTRL + ЛКМ по этому методу и попал в определение класса class ndarray - метод tolist() действительно есть, но он весь состоит из огромного комментария, а из кода там только "pass". Посмотрел повнимательнее - так вообще у всех методов в этом классе (пикрил). Как раэто работает? Где-то же должна быть описана логика работы этого метода.
444 2298474
>>298449
Он сконпелирован, это просто заглушки от пучарма.
445 2298484
>>298474
Ну тогда все равно остается непонятно - даже если библиотека скомпилированная, я же все равно при вызове конкретного метода запрашиваю какой-то функциональный кусок скомпилированной программы - на нее должна быть ссылка. Как пайчарм соотносит, что tolist() должен исполнять функционал такой-то, а tobytes() такой-то?

И еще, а где можно посмотреть сорцы пандаса? На гитхабе https://github.com/pandas-dev/pandas все на питоне, но питон же не компилируемый, а интерпретируемый.
446 2298489
>>298484
Питонья вм подгружет компилированные модули, они ей сообщают - у меня есть такие методы, у меня есть такие штуки. Потом при их вызове она уже знает, что делать.
Пучарм тут вообще никоим боком.
447 2298508
>>298219
>>298277
В общем, там можно делать как хочешь, на работу это влиять не будет. Хочешь делить всё - дели. Не хочешь - не дели.
Вообще, функционально это делится примерно так site.fag/a/puk, где а - твой модуль, а puk - роуты этого модуля. Зависит от того сколько у тебя будет различных маршрутов и реюзабельность кода. Ты ж не планируешь делать с десяток серверов с универсальными модулями?
Джанга это прежде всего рендеринг и всякое с базой из-за хорошей орм. Если ты делаешь какой-то мессенджер, борду и что-либо с большой нагрузкой на страницы в браузере, то лучше делать это не на джанге, а рендер отдать на жс.

Я сам не до конца понимаю зачем в джанге такое разделение на модули, когда он сам по себе монолит. Закос под микросервисы что-ли, лол.
448 2298510
>>298298
Как ж ты работать собрался, когда проекты делать не хочешь?
449 2298555
Как установить библиотеку numpy на винду? Везде репозитории ебучие.
450 2298558
>>298508
MVC потому что. Джанга в этом плане очень взрослая, но без асинхронки нахуй не сдалась.
Сектанты просто указываются в нее как и в SpringBoot, не более.
Можно говнокодить на FastAPI, выбирая себе ORM по желанию.
Очень медленно пилится TortoiseORM, отставание просто пиздец. Тот же peewee умеет давно в CTE, но нет асинхронки нативной

Но мне норм пока так, пидорю костыли и raw SQL
451 2298563
Откуда питон берёт библиотеки, если написать import _чеготтам?
Я нашёл такой вот решатель https://github.com/shril/CubicEquationSolver/blob/master/CubicEquationSolver.py
Как им воспользоваться?
452 2298619
>>298555
В гугле забанили?
454 2298644
>>298555
Бери linux subsystem и ставь туда как нормальный человек.
В питоне для винды зависимостей овердохуя и надо тащить гигабайты для конпеляции сишных библиотек.
455 2298746
>>298555
pip numpy
Ещё лучше запихнуть всё что нaдо прямо сейчас в свой env.
456 2298752
>>298643
Какой язык - такой и программисты.
Хуже только в 1С-треде, но те хотя бы бух.учет знают.
457 2298784
>>298752

>Какой язык - такой и программисты.


Инфоцыгане сообщили, что Питон пиздец какой простой (НЕТ), вот и лезут вкатыши-дебилоиды.
Сука ну прочти ты документацию или банально погугли. Потом из-за таких ебланов и вилка ниже чем у остальных.
458 2298794
>>298784
Это жабаскриптовики кукарекают, потому что у самих набегающих ебланов еще больше - фронт же проще, лол.
459 2298795
>>298784
Ну это же думать надо.
Насру в треде, вдруг лошок какой все разжует и в рот положит.
460 2298849
>>285619 (OP)
Антуаны, помогите преобразовать json файл в массив. Нагуглил только как строку преобразовать в список.
Имеется несколько строк в json, нужно по запросу получить значение "аргумента" из каждой строки.
461 2298852

>Питон пиздец какой простой (НЕТ)


А что сложного в говне вашем для школоты?
Типизация? Динамическая, интерпретатор все сопли за вас подотрет.
Синтаксис? Мммаксимум простой.

Хуже только рнр, даже жс уже лучше вашей поделки.

мимо лорд джавист
462 2298888
Зачем нужен GIL в питоне? Ну вот зачем? Что не гуглю, везде какую-то разную хрень пишут. "Ну, это, пук пук, паралельность опасна - дедлоки будут"
463 2298904
>>298852
Долбоеб, ты пишешь на языке который впринципе перестал развиваться и без костылей никакие фичи занести уже не получиться из-за мемной обратной совместимости. Кста про упомянутый пых забавно, по любви у разработчиков джава около пыхи сидит во всех опросах, те на дне)0)0)
464 2298910
>>298904
Ты точно Джаву со своей питухней не путаешь?
465 2298913
Делаю сайт про походы,Python,Django,PyCharm.Нужно,чтобы был интерактивный календарь,с расписанием походов.Я написал JS скрипт,который формирует календарь на странице,и тут возникла проблема.Заказчик хочет,чтобы даты походов были выделены определённым цветом и на них висели инфобоксы.В базе данных у меня походы с полями "дата начала похода" и "дата конца похода".В шаблон походы передаются через вьюхи,это ясно.А как мне из шаблона эти походы или их параметры передать в сам скрипт,который к шаблону подключен?И вообще,правильно ли я делаю,что так определил поля?Может,будет лучше,если у каждого похода будет одно поле,"даты",с неограниченным числом значений?Прошу прощения за глупые вопросы,заранее спасибо за ответ.
466 2298921
>>298910
Покажи async/await в жабе. А как там якобы возможные гринтреды, в java 3000 версии завезут? Ну классику вроде куда пропадают типы в ваших дженериках даже спрашивать не стану, а то у жабистов моментально попку рвет, особенно если сравнить с клоном жабы от майков
467 2298924
В requests.session можно задать таймаут по умолчанию без переопределения методов? В адаптерах их нет
468 2299006
>>298913

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


Есть два способа:
1. Говнокод - вешать джейсон с датой инлайн скриптом в глобальный скоуп, а потом уже его парсить при гидрации.
1.2. Пыхавей - привязать джейсон к дата-аттрибуту на каком-нибудь из элементов.
2. Зе райт вей - написать API эндпоинт, возвращающий нужные тебе данные и скриптом его дёргать.
469 2299057
>>299006
Спасибо!А первый вариант,это прям совсем говнокод?Я просто сайт для друга делаю,мне нужно,чтобы он более-менее работал.
470 2299109
>>298643
А как сделать это "стендалон" программой?
471 2299110
>>298752
>>298784
Челы, я инженер-прочнист и мне под 30. Мне по работе нужно стало вот энтот ваш питон.
472 2299277
Аноны, где можно почитать как работают те или иные методы\функции в под капотом?
К примеру, как выполняется "=="\in и т.п. вещи.
473 2299285
>>299277
Если на это нельзя повлиять, зачем знать?
475 2299338
>>299285
Знание - сила.
Знание подкапотной хуйни позволяет выбрать оптимальный вариант решения задачи.
>>299287
Слишком просто, нет.
476 2299416
>>299338
И как оптимизировать ==? Переписать питон?
477 2299422
>>299416
С одним = в два раза быстрее.
478 2299424
>>299422
Если нужна такая дотошность, зачем тогда питон? Поснму не си?
479 2299481
Понимаю, что дурачкок с кубическим уравнением вас в конец замучал, но надо всё-таки доделать к совещанию.

Почему "ретурн вне функции"?
https://pastebin.com/QhiwNufQ

Если коротко, то что я хочу.
У меня есть "рабочий" код, разбитый на функции. Само по себе вроде работает.
https://pastebin.com/kRzFi4Gs (будет жаловаться на то, что не получил х1, х2, х3, что логично)

И есть отдельная функция, которая решает. Она большая, как её разбить на подфункции "шоб красиво было" (так начальник требует) я не понимаю, но не суть - мне б чтоб работало хотя бы. Естественно, если совместить это с старым кодом, блок ввода не нужен, в общей функции у меня его нет.
https://pastebin.com/e70VuLcs
480 2299483
>>299481
Потому что ты криво скопипастил, проебав отступы, которые в бидоне имеют значение.
481 2299496
>>299483
А как правильно то? Я понимаю, что дело в этом, но не могу понять, как исправить.
482 2299501
>>299496

> А как правильно то?


Однородно на всех участках. Это решается подгонкой в ide, но у тебя его нет скорее всего. Подключай как модуль тогда, форматирование может быть разным на уровне файлов вроде.
483 2299504
>>299109
Через pyinstaller.
Идея очень плохая, так как тянет за собой дохуя, это ж питон, ну и заебешься пути все прописывать.
484 2299576
>>299501

> Это решается подгонкой в ide, но у тебя его нет скорее всего.


У питона idle какой-то.
485 2299578
>>299057
Ты хочешь говнокод для друга написать?
486 2299580
Как исполнять команду в заданное время дня, не проверяя каждую секунду, какое сейчас время? Этот способ работает, просто мне кажется, что это крайне тупой подход.
487 2299585
>>299580
Придумал еще тупой способ - при запуске скрипта проверять, сколько сейчас время, считать сколько осталось и ждать. Но как делать грамотно?
488 2299597
>>299580
>>299585
Крон. Самому считать это в любом случае костыль.
489 2299611
>>299580
Кронтаск, либо селери
490 2299615
>>299416

> И как оптимизировать ==


Никак, и я не спрашиваю как его опитимизировать.
Я о том, что в каких-то случаях есть более быстрые варианты выполнения тех или иных задач. Хотелось бы почитать об этом.
491 2299620
>>299615
Тут уже писали, что не нужно например использовать f-strings, потому что всё равно экономия НЕЗНАЧИТЕЛЬНА
Ну а вообще, если у тебя есть эти варианты на руках - ты всегда можешь загуглить, или сам проверить с помощью timeit, или посмотреть какие там операторы под капотом с помощью dis
492 2299622
>>299057
Нет. Если скриптов не много, то пойдёт и так. Главное, чтоб тебе удобно было читать и разбираться.
493 2299708

> python data mode, python memory model


Чё это значит? Всё это время в питоне был маллок, про который я не знал?
image.png44 Кб, 549x296
494 2299769
>>299620

>Тут уже писали, что не нужно например использовать f-strings, потому что всё равно экономия НЕЗНАЧИТЕЛЬНА


Что?

> сам проверить с помощью timeit, или посмотреть какие там операторы под капотом с помощью dis


Спасибо и на этом, антош.
495 2299788
>>299769
Ну тип, сколько раз за всё время у тебя будет вызвано функция принта? Ты не заметишь этой разницы
496 2299800
>>299788

> сколько раз за всё время у тебя будет вызвано функция принта


Разве только при принте можно делать ф-строку?

> Ты не заметишь этой разницы


Это уже дело мое.

> уже писали, что не нужно например использовать f-strings


Так что за ебанутый это писал? Если и нет смысла дрочить на 30%+ прирост скорости от ф-строк, то красота кода и функциональность ф-строк превосходна.
497 2299803
>>299800
Вот тред >>2283680 →
498 2299804
>>299769
Это из-за кэша. Когда одну и ту же строку несколько раз генерируешь и она короткая, то у неё одинаковый айдишник. И раз она в первый раз создалась и сборщик мусора не успел её удалить, то все последующие разы будет одну и ту же строку возвращать. Поэтому для чистоты эксперимента нужно не миллион одинаковых строк генерировать, а разных.
499 2299806
Сколько времени нужно чтобы вкатится с нуля и найти работу?
500 2299809
>>299806
Года достаточно, если усердно заниматься и изучать всё.
501 2299812
>>299806
Около 1к часов усердной учёбы. Если повезёт и будешь регулярно гонять по собесам, то может кто-то сжалится лоханётся и возьмёт тебя пораньше
image.png62 Кб, 538x346
502 2299848
>>299804
1. Где написано что он генерил ее миллион раз?
2. Не только лишь память.
>>299803
Где там написано что не стоит юзать ф-строки?
503 2299849
>>299806
6 месяцев.
504 2299870
>>299848

>1. Где написано что он генерил ее миллион раз?


Он же наносекунды как-то посчитал. Логично, что он милион раз генерил и поделил.

>2. Не только лишь память.


Всё равно это объяснение факта, который получился в результате нечистого эксперимента. После того как провести его чисто, то результат в скорости будет хуже, а это объяснение со скрина останется прежним.
505 2299942
>>285619 (OP)
Блэт, есть набор из 10+ строк, в функцию поступает строка, надо проверить что она начинается с одной из этих строчек, как это сделать без ебаных циклов for?

for s in STRINGS:
----if in_str.startswith(s): return True
506 2299976
>>299942
А чем тебе циклы не нравятся?
507 2299999
Как делаются превьюшки для видео/обычных изображений? Допустим, если я делаю приложение и там есть страница с изображениями, исходники которых слишком большие чтоб быть превью, то как в этом случае поступают? Или на странице много видео - чтоб не грузить все, нужно вместо реальных видео подставить превью и потом по запросу подгрузить это видео
508 2300013
>>299999
обрезка 1го кадра через ffmpeg
509 2300024
>>300013
Да это понятно, я имею ввиду, как их хранить, например? Какие best-practises по их менеджменту есть?
510 2300025
Как красивше и правельно писать срезы?

str[1:4]
str[1: 4]
str[1 : 4]
str[a + b:c + d]
str[a + b: c + d]
str[a + b : c + d]

???
511 2300060
>>300025
Первый и последний варианты.
512 2300065
>>300025

>str[1:4]


>str[a+b:c+d]


Сейчас кризис полупроводников. Память дорогая. Нефиг на пробелы её разбазаривать.
513 2300067
>>300060
А тут как лучше?

str[a + b:]
str[a + b :]
str[:c + d]
str[: c + d]
514 2300077
>>300024
Мы с пацанами через Джангу делаем. В БД ссылки на файлы хранятся и все епт
515 2300124
>>299620
fстринги более читаемы, если уж нет разницы
516 2300417
сап, не знаю, можно ли сюда с таким, но нужна помощь с написанием (или полное написание) парсера, который проводит аналитику по сайтам. идея: искать по ключевым словам, выводить в табличный вид куда угодно в каком угодно виде. tg @yuioef
517 2300463
>>299942
list comprehension

for s in STRINGS:
----if in_str.startswith(s): return True

Превращается в это

[in_str.startswith(s) for s in strings]

Ну и startswith возвращает булевое значение, так что нахера ты делаешь return True?

Если выделить конкретно строки
оно же filter/reduce, но оптимизированное
[s for s in strings if in_str.startwith(s)]
519 2383848
Всем привет, у меня вопрос. Я не понимаю что делает [t%5]

в конструкции :

t = 0
for c in word:
if c == 'aeiou'[t%5]: t+=1
return t

как это работает? Где почитать?
520 2383849
t = 0
for c in word:
if c == 'aeiou'[t%5]: t+=1
return t

Всем привет, как работает [t%5]?
Тред утонул или удален.
Это копия, сохраненная 4 августа 2022 года.

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

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