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

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

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

Предыдущий: >>1911533 (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
images.jpg7 Кб, 224x225
2 1923481
Пожалуйста умные аноны помогите!
Есть простенькая программа с закрытым исходным кодом,необходимо было создать интерфейс.
Написал с помощью Tkinter'a в формы вводятся данные, при нажатии на кнопку - вызов функции где с помощью библиотеки subprocess из интефейса в простенькую программу передаются данные,она выполняется и теперь необходим вывод на интерфейс, но он зависает и все, при простом выполнении после запуска требует еще одно нажатие на Enter. Вот код
import subprocess
proc = subprocess.Popen(['MODN1'],universal_newlines=True,stdin = subprocess.PIPE,stdout = subprocess.PIPE)
proc.communicate(input = " 1 2 3")
print(proc.communicate())
proc.kill()
3 1923486
>>23442 (OP)
Сап
Подскажите есть ли универсальные гайды по работе с дейтой любой?
Допустим у нас есть пара столбов (или колонок) числовых данных. Что можно с ними сделать использую питон, пандус и прочие библиотеки. Мне на ум приходит только корреляция каждого из столбов друг с другом.
image.png6 Кб, 479x227
4 1923495
Есть какие-то еще способы безопасного извлечения атрибутов? Вот скажем хочу из объекта вытащить цепочкой obj.departments.values.first но на любом моменте тут может выскачить ошибка с несуществующим атрибутов. Заделал решение как на пикриле, но выглядит по-уебски, нужно всегда передавать это значение через lambda-функцию чтоб ошибок раньше времени не падало
5 1923528
Вкот, братья -питонщики!
6 1923593
Такое дело, вот вкатился на работку 2 месяца назад, до этого фрилансил месяцев 8, чувствую что остановился в развитии. Тип, освоился с новым местом, но глобального роста в скилах не могу получить от задач, которые там есть. Тип, сижу один пилю mvp, есть тимлид супер занятой, есть менеджер(наверное так его стоит назвать), который в тех.части вообще не шарит. Просил намутить мне ревьюера кода, но отшили мягко. Сейчас ситуация не совсем подходящая чтоб съебнуть, но в крысу подыскиваю местечко.
Как развиваться не зависимо от работки, писать пет проекты, а кто мне скажет где хуйню творю? Книжечки какое-то, но то что открывал - тупо синтаксис и пояснение, что уже знаю. Начал чёт django колупать, но не уверен, что его стоит, мб flask? Крч да, запутался памагите
7 1923602
>>23593
А как ты хочешь развиваться? Поясняй.
8 1923617
>>23602
Интересны автоматизация всякая, хотел устроиться до этой компании туда где занимаются умными домами, автоматизацией всего и всё, но не взяли. Тут торговых роботов пилю.
Для всяких нейроночек и биг даты, проблема в вышке, забил на неё хуй, как закончил 11 классов и ушёл в шарагу, не профильную.
Backend вот пытаюсь с джангой подружиться.
Развиваться куда, я вообще хз, вроде всё интересно
Хочу те скилы, что подороже продать можно
Вот дают мне задачу, я понимаю как решить её, делаю, чёт понимаю, что не знаю сделать - гуглю. Всё, не понимаю куда расти и что делать, чтоб с голой жопой не остаться
9 1923686
>>23593
Сколько ты уже в питоне, брат? Как быстро освоился?
10 1923694
>>23495
Сосешь?
11 1923699
>>23686
Меньше года, почти сразу фрилансом занялся. До этого c++,c#, delphi. В программирование варюсь уже лет 6-7. Типо ситуация в том что везде я на уровне по рофлу пописать что-то был, а тут уже серьёзно начал подходить.
А что?
12 1923703
>>23699
Почему именно сейчас засерьезнел? я просто спросил, думал ты вкатывался с нуля, челик.
a1K2VwG700b.jpg57 Кб, 460x615
13 1923712
Памахити

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

Написал код.
1. Объявил класс файла, закинул в него все атрибуты, которые будут полезны.
2. Написал функцию построчной обработки лога:

>если вижу начало передачи файла, создаю новый экземпляр и сую его в лист


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

>если вижу какое-то сообщение, которое не является началом, прежде чем создать не совсем полный атрибутами объект, я делаю лукап в листе, есть ли там уже объект с таким идентификатором


>Если есть, то добавляю в него, если нет, то создаю новый экземпляр, который потом, может быть, наполню ещё свойствами



Проблема в том, что это все ОЧЕНЬ МЕДЛЕННО РАБОТАЕТ
В среднем лог за час содержит 300к записей, а мне, как правило, нужно посмотреть статистику за весь день, 24*300k=7.2 ляма

За это время программа обработает примерно 450к файлов, значит, в какой-то момент очередная строка будет заставлять Питон делать лукап из 450к идентификаторов в листе. Это, как я понимаю, и ужасно стопорит сам модуль. Собственно, потому и тормозит:
for k in file_list:
if k.ident==sample_string.split(' ')[5].strip():
k.govno=sample_string.split(' ')[20].strip()
continue

ЧЯДНТ? Как можно иначе сделать всю эту историю?
?? Вместо объектов писать словари?
Но это тупо немного, нет? Хоть и быстро
?? Сделать словарь вида {key:object}?
Но тогда идентификатор придумать — задача нетривиальная, потому что они не все уникальны, скорее некая комбинация будет уникальной, которую в логе ещё надо найти.
?? Шото ещё?
a1K2VwG700b.jpg57 Кб, 460x615
13 1923712
Памахити

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

Написал код.
1. Объявил класс файла, закинул в него все атрибуты, которые будут полезны.
2. Написал функцию построчной обработки лога:

>если вижу начало передачи файла, создаю новый экземпляр и сую его в лист


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

>если вижу какое-то сообщение, которое не является началом, прежде чем создать не совсем полный атрибутами объект, я делаю лукап в листе, есть ли там уже объект с таким идентификатором


>Если есть, то добавляю в него, если нет, то создаю новый экземпляр, который потом, может быть, наполню ещё свойствами



Проблема в том, что это все ОЧЕНЬ МЕДЛЕННО РАБОТАЕТ
В среднем лог за час содержит 300к записей, а мне, как правило, нужно посмотреть статистику за весь день, 24*300k=7.2 ляма

За это время программа обработает примерно 450к файлов, значит, в какой-то момент очередная строка будет заставлять Питон делать лукап из 450к идентификаторов в листе. Это, как я понимаю, и ужасно стопорит сам модуль. Собственно, потому и тормозит:
for k in file_list:
if k.ident==sample_string.split(' ')[5].strip():
k.govno=sample_string.split(' ')[20].strip()
continue

ЧЯДНТ? Как можно иначе сделать всю эту историю?
?? Вместо объектов писать словари?
Но это тупо немного, нет? Хоть и быстро
?? Сделать словарь вида {key:object}?
Но тогда идентификатор придумать — задача нетривиальная, потому что они не все уникальны, скорее некая комбинация будет уникальной, которую в логе ещё надо найти.
?? Шото ещё?
14 1923717
>>23712
Нихуя не понятно, покажи пример этого лога и что там надо.
15 1923728
>>23712
Я так и не понял че ты хочешь? Медленно или память жрет?
16 1923729
>>23703
Школу закончил, не поступил в норм вуз, подумал ну хули делать, пойду в шарагу, буду работать. До этого всякие проектики брал, в конце августа на поток поставил, отложил деняк, переехал с деревни в ДС2. В целом доволен вполне таким выбором, но угнетает факт того что я не знаю куда расти сейчас.
Былоб проще если, я не вдуплял какую-нибудь многопоточность, асинхронность, взял да и прочёл книжечку, статейки. А так я вроде и знаю достаточно, могу применить, но очково что нет прогресса и рыночек меня порешает
Ну не книжки для сеньёров мне читать, про то как строить архитектуры всякие крутые...
17 1923734
>>23712
ну ты же как то отличаешь старый файл от новых? Почему не можешь это отличие взять за ключ?
18 1923737
FLASK
У меня есть словарь состоящий из uid : {словарь2}
Как мне достать значение по ключу из словаря2 в html страничке?

Вот так почему то не работает:
https://pastebin.com/Mahmdmhq

Помогите плиз нагуглить не могу
19 1923740
>>23737
Причем, если я просто {{ property}} вывожу то оно работает
20 1923747
>>23717
[2021-04-27 14:40:43.234] [000000000456] Новый файл с именем {путь} добавлен в обработку
[2021-04-27 14:40:43.235] [000000248909] Обработка файла {путь} закончена с err=unresolved_header
[2021-04-27 14:40:43.235] [000000000456] Создан файл-дескриптор для файла {путь} с параметром isRemote=1 и isLocal=1
[2021-04-27 14:40:43.235] [000000000456] Для файла с именем {путь} создан звуковой поток
[2021-04-27 14:40:43.237] [000078939023] Завершаем приём звукового потока для файла {путь}

и так далее
В каждой строке идёт новая дополнительная информация, при этом {путь} не обязан быть уникальным, уникальная только связка {путь} и [число], которое, однако(число), сбрасывается после перезапуска модуля
21 1923749
>>23747
и как часто перезапускается этот модуль
22 1923750
>>23747
Ну тогда ты какую-то хуйню делаешь с объектами и листами.
Создаешь словарь и ключами эти айдишки, значением структуры с нужными данными, всё. По событию закрытия файла удаляешь этот ключ из словаря.
23 1923754
>>23747
на каждую строку, если это не Новый файл с именем {путь} добавлен в обработку, у меня происходит лукап из существующих файлов, есть ли там уже объект с path={путь} и path.id=[число]

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

stack_list.append(working_list.copy())
del working_list[:]
И по новой ебашу в воркинг лист, как раз из-за неуникальности айдишников
>>23749
Мне не нужно удалять ключи, мне наоборот нужно сохранить всё, что я нашел, чтобы потом писать статистику, типа, обработано 100к файлов, из них с ошибками 159, при этом в направлении x было 23к, в направлении y было 30к и т.д.
24 1923755
>>23754

>path={путь} и path.id=[число]


читать как
path={путь} и id=[число]
25 1923758
>>23750
бля тогда я привел плохой пример. допустим мне надо достать proprety['name'], proprety['date']. Как мне это сделать из кода сейчас?
26 1923760
>>23758
сука не на тот ответил сорри,
>>23737 это мой пост
27 1923761
>>23750
При обработке я могу попасть в лог, в котором нет записи Новый файл с именем создан, потому что, например, эта запись в логе за предыдущий час
Тогда я не смогу засунуть путь как айдишник
Поэтому я и выбрал объекты, чтобы туда херачить инфу по мере поступления
28 1923768
>>23761
Ну так если ты их подряд молотишь, то всё будет.
Может надо будет сделать ещё дополнительный словарь для маппинга путь-айди, раз они меняются.
29 1923774
>>23768
Нет, это не гарантировано
Если я смотрю все логи за сегодня, а новый файл прилетел в 23:59 вчера?
30 1923778
>>23774
Вообще, я имел в виду эти цифровые айдишки.
Но если оно решабально твоим способом, то и на словари можно перекатить, мне лень вникать детально.
31 1923788
>>23778
Я почитал, у меня вариантов мало
Либо я делаю ndarray вместо листа, либо я переделываю в терминах словаря, с тем же механизмом отслеживания остановки, когда все сбрасывается.
Скорее всего я буду делать в терминах словарей

Но тогда такой вопрос
У меня в объекте прописано много методов, ну, типа, duration(), который возвращает разницу между временем первого и последнего события.
В словарях, понятно, методов не сделаешь. Мне останется только писать функцию вместо методов, верно?
32 1923791
>>23788
Попробуй для начала сделать словарь объектов, этого вполне может быть достаточно.
33 1923803
>>23737
ну помогите!!!!
34 1923804
>>23486

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



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

>Подскажите есть ли универсальные гайды по работе с дейтой любой?



Видимо, нет. Если хочешь знать на что способны конкретные библиотеки, читай документацию к ним, там есть описание функций, примеры использования, сборники "лучших практик" (best practices) и "сборники рецептов" (cookbook), и так далее. Если хочется обращаться с данными, ну и изучай датасаенс и машинное обучение, начни с линейной алгебры, тервера, мат статистики, и тому подобного.
35 1923816
>>23712

>За это время программа обработает примерно 450к файлов, значит, в какой-то момент очередная строка будет заставлять Питон делать лукап из 450к идентификаторов в листе.


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

>Вместо объектов писать словари?


>Но это тупо немного, нет?


Тупо использовать списки

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

Причём полученные словари ты можешь дампить в JSON и сохранять на диск, потом очень быстро искать уже в них, если потребуется.
36 1923820
>>23788

>В словарях, понятно, методов не сделаешь.


В списках методы тоже не сделаешь.

Ты можешь сделать объект, в котором будет переменная storage = dict(), а метод duration уже будет обращаться к этому словарю.
37 1923821
>>23803
Может туплю, но надо просто написать
property.id
38 1923834
>>23803
к сожалению не работает. Наверное потому что там ключ это string id, а не тип
39 1923856
>>23729
А что на фрилансе? слабые проекты?
Алсо чем плохи книжки для сеньоров? на крутую работу не берут тупо из за отсутствия вышки? ебать адок.
40 1923865
>>23737
>>23821
спасибо большое вопрос закрыт.
я записывал дикт в файл а читал из файла уже строку в виде дикт
41 1923869
аноны, учу питон понемногу и мне часто перед сном думается о коде, а потом снится будто я что то усиленно пишу на питоне и пытаюсь в код.
ЭТО ВООБЩЕ НОРМАЛЬНО?
вроде не особо налегаю, учу по три часика в день, а то и меньше. Что это такое?
42 1923910
>>23869
это маняфантазии
43 1923981
>>23856
Прикол фриланса, то что не стабильно, была неделя когда вообще ноль заказов было сидел лапу сосал. Зато постоянно разные проекты, тупо нельзя брать только то что уже делал когда-то, т.е по кд развитие.
Ну вот всякие бигдаты и нейроночки, указана всегда вышка. Может из-за неё не брали, может потому что опыта не было(фрилансеры - не люди для hr).
А книжки для сеньёров, вот тут хз что читать
44 1924026
Господа, никто не задавался вопросом, как привести Питон к первоначальному виду? Кажется мне, что я понаустанавливал лишних модулей через пип. Быстрый гуглинг приводит к баш-скрипту, но не хотелось бы. ОС: Убунту.
D3fjo9yIxU0.jpg52 Кб, 600x361
45 1924038
>>23820
Можешь ещё раз пояснить за этот объект со словарем storage?
Я шот не понiл...
46 1924045
>>24026
научись в virtual environment, всего 2 команды
$ python -m venv venv
$ . venv/bin/activate
47 1924079
Реально ли в ДС найти работу за 180к бэкендеру питонисту, 2 года опыта. Сейчас 150к, но хочется больше.
48 1924120
>>24045
Это я знаю и использую. Я к тому, что мог случайно в дефолтный питон поставить дополнительные модули. Вот ищу способ сравнить состав модулей стандартной поставки и своей локальной.
49 1924124
>>24120
pip freeze покажет все кастомные модули.
Можешь сразу подать на pip uninstall
50 1924149
>>23910
В смысле? поясни.
>>23981
ну неделя без заказов это хуйня в принципе.
Ни о чем. Мизер. ладно там по два месяца без работы.
Алсо почему нельзя брать то, что уже делал?
51 1924150
>>24045
кстати эти команды разные на всех системах.
чтобы на 10 винде активировать я заебался гуглить, информации мизер
52 1924195
>>24149
Хуйню сморозил, брать то можно, но не часто такое попадается, что вот мне нужна штука Н, а потом следующий чел мне нужна штука как Н, но чуть другая. Исключение, если один и тот-же тип заказывает. Крч, не сидишь на месте, по кд чтот делаешь
90899906-E678-42B1-A90A-2A6D24F1DEC8.jpeg6,6 Мб, 4032x3024
53 1924242
Реально ли свои знания питона конвертировать в деньги?

пикрандом
54 1924247
55 1924250
>>24247
А если не постоянной занятостью, а на фрилансе. По-русски говоря колымить время от времени. Стоит ли вообще вкатываться?
56 1924261
>>24195
Пиздато. а где ищутся заказики?
57 1924265
Кто-нибудь имел дело с
gevent-socketio https://github .com/abourget/gevent-socketio?
58 1924274
>>24250
>>24261
Крч, про фриланс, с биржами у меня не вышло. За все 8 месяцев 1 заказ от туда, труд там не очень ценят, с забугорными лучше, но английский мой ис вери бэд.
Искал на всяких форумах, через знакомых(несколько раз на хакатоны ездил, по этому можно было поспрашивать). Потом много кто приходить второй, третий раз.
А стоит или нет, ну мне не особо понравилось, постоянно, вот заканчиваешь делать заказ - ищи другой, а если нет их сидишь и ждёшь. Чтоб на пожить хватало(снять кв, покушать, погулять) для ДС2 работать нужно часов по 6-8, но иногда бывают завалы что спишь хуй да нихуя недельку, но вознаграждается это тем что некст неделю можно поменьше работать. Думаю, если побольше опыта, связей или умений себя продавать можно или больше зарабатывать или больше хуи пинать.
На постоянке прикольно, если на удалёнку устроился(офис не пробовал, но думаю менее круто), работаю с меньшем напрягом, но возник вот такой прикол у меня. По деньгам не потерял ничего, сколько на фрилансе получал, столько же тут получаю на испыталовке(ласт месяц остался). Плюс ещё часика 2 в день трачу на фриланс и уже +5-10 в месяц
Энивей, если ты вкатываешься только из-за фриланса, то думаю стоит не рассчитывать, если ты уже вкатываешься и чувствуешь уже какую-то силу, то попробуй взять какой-то заказик, только предоплату не бери, ну не сможешь сделать, ну да ладно, сможешь, так и опыт и денюжку получишь.
59 1924276
>>24274
Да, чёт я написал как-то сумбурно, одна мысль перебивает другую, ну да похуй, не книга же
простите двачане за плохой слог
60 1924277
Ананасы, есть тут питонисты с опытом от 4-х лет и более-менее английским?
Знакомый ищет на удаленку на фуллтайм, 30 часов в неделю (наверное можно больше, если хочется), 40-56$/час, CV не надо - найм по литкоду и тестовому заданию на около 2 часа.
tg @doctor_pizza
61 1924279
Скажите куда пойти, только не нахуй.
Есть задача, сделать кастомною рассылку мейлов. Всякие mailchimp не подходят.
Делаю все на питоне. Удобно, быстро, кайф.

Но вот встал один вопрос, сам мейл. Немного почитал, что рассылка - это НЕ обычный html, как для верстки сайта ибо там нет стандартов и тд.
Все надо делать через таблицы и прописывать иначе весь контент.

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

Понимаю, что это не питон, но может у кого был опыт.
62 1924281
>>24274
Просёк фишку, вкурил тему.
алсо наверное в замкадье хуй устроишься на постоянку, как думаешь?
63 1924283
>>24277
Доктор пицца, серьезно?
64 1924291
>>24281
Я не пробовал, могу судить по кол-ву вакансий. В родной деревне(300к чел), по 1-ой вакансии 1с, пхп и java. В областном центре получше, можно и питонистом junior на 40-50к устроится(кв в центре12-20к) , мидлом уже приемлемые 120к, но всего штуки 3 компании, но думаю будет проще вкатиться т.к мало народу, выпускники вузов - хуета, которая не хочет вдуплять сама, а те кто могут, не хотят оставаться там
65 1924297
>>24283
Это же интернет
В жизни скромный парень, в телеграме - любитель сисек
66 1924313
>>24291
Понял, уяснил
>>24297
Люто, почему же он ИРЛ не любит сиськи?
67 1924314
>>24313
Это просто цитата откуда-то, не принимай близко к сердцу
68 1924320
>>23442 (OP)
Коллеги, как ебаной веб-макаке, возомнившей, что она может стать чем-то большим качать алгоритмику?

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

Как качать алгоритмы эффективно?
69 1924326
>>24320
Какой алгоритм и какая структура данных, например, вызывают затруднения?
70 1924328
>>24326
Ну, намедни дристанул, хотя знал, лол, как интернал устроена хеш-таблица.

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

Ну, например "напишите валидатор строк, содержащих \"json\" (\"{[[]}\")". Вот откуда мне без базу знать, что тут нужно стек юзать? Как такое прокачать быстренько?
71 1924329
>>24328

> Вот откуда мне без базу знать, что тут нужно стек юзать? Как такое прокачать быстренько?



А откуда это "знал" тот, кто написал книжку по алгоритам? В какой книге он это прочитал?
Не обязательно писать алгоритмы строго по книжкам - ты что, не можешь сам придумать никакого решения, например даже без стека? Если нет - возможно программирование в целом не твое, раз ты можешь только заучивать информацию, которую до тебя кто-то придумал. Иди может тогда в школу учителем?
72 1924330
Ебать, закончил ебучую бизнес-информатику, не нашел куда вкатываться, пока сижу без работы.
Решил изучать питон и лезть в биг дату, искать что-то с анализом данных. Не прям ужмэттм горю, но в принципе интерес есть
Теперь вопрос. Кто за сколько изучал язык до приемлемого уровня, когда уже можно понять что-то типа >>\"json\" (\"{[[]}\")" и как с этим работать
Вопрос возможно глупый, но интересно
73 1924331
>>24328

>Ну, например "напишите валидатор строк, содержащих \"json\" (\"{[[]}\")". Вот откуда мне без базу знать, что тут нужно стек юзать?


Причем тут вообще алгоритмы?
74 1924335
>>24329
>>24331

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


Да, беда в том, что меня подонбые мысли регулярно посещяют.
75 1924341
>>24335
Так все же, это как-то прокачать можно?
Или это либо дано - любовь к резолву всяких головоломок типа кубира кубика и квест-игро, либо нет?
76 1924346
>>24341
Никак, я серьезно
Если ты не умеешь создавать какие-то новые вещи, только повторять ранее заученые - никакая креативная деятельность (в том числе инженерная) тебе не подходит
В школе ты мог например придумать решение задачки, если до этого вы точно такую же или похожую не разбирали? Если не мог - это опять же симптом
77 1924349
>>24330

>бизнес-информатику


Чиво?)
78 1924350
>>24341
Прост пробуй сам придумать, порешать че нибудь простенькое.
начни с простого.
если тебе покажется что ну его нахуй то забей.
79 1924351
>>24349
>>24330
Что такео бизнес информатика, поясните, плиз?
80 1924353
>>24351
Видимо что-то типа gender studies от информатики
81 1924354
>>24351

>такео


>>24330

>ужмэттм


Ты бухой что ли?
82 1924360
>>24354
Это разные люди написали. такео это типичная опечатка слова "такое", когда быстро печатаешь. Просто кнопки нажал не в том порядке
83 1924362
>>24353
Бля, а гендер стадис что такое?
84 1924364
>>24362
хуйня под видом образования
85 1924366
>>24349
>>24351
Этот >>24364 прав. Сборная солянка в виде экономики, маркетинга, немного программирования и математики. Как воин в какой-нибудь ММОРПГ, который держит все пушки в рукахя а по факту не умеет нихуя. Вот так
>>24354
Не перечитал что написал с телефона, это опечатки куда уж безработному бухать в 3 дня
86 1924369
>>24350
Типа нарыть какие-то методички по программирования и ршать из них практку?
87 1924373
>>24369
Возможно.
88 1924387
>>24366

>куда уж безработному бухать в 3 дня


Как раз, на работу не надо - можно бухать.
>>24341

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


Вроде того.
89 1924394
>>24124
аа, понял-понял. спасибо за наводку.
90 1924397
Хакеры, хелп, написал сайтик, хочу показать преподу или друзьям, хочу понять как мне сделать так, чтобы nginx был доступен по моему ip буквально на часик, что куда можно вбить, чтобы в строке браузера можно было вбить ip и вернулся мой сайт? Пожалуйста, помогите. А так же реквестирую где найти информацию вкратце как работают маршрутизаторы и т.д, может статью кто читал хорошую
91 1924402
>>24328
И зачем нужно обязательно знать как она устроена? Или на ее основе нужно придумывать что-то свое? Есть же в питоне dict. Неужто не хватает?
92 1924413
>>24402
1. Мне это самому интересно
2. Некоторым конторам необходимо в силу того, как они раздрочили питон для ... кхм ... производительности. Например, в игрострое.
93 1924526
>>24397
Зарегайся на амазоне там нахаляву дают 750 машинных часов в облаке. Твоему сайтику этого на год хватит
94 1924575
Поясните за алгоритмы. Их нужно уметь самому писать или нужно просто понять, как они работают, а дальше дело гугла
95 1924599
>>24526
Да захостить наверное не сложно, я хочу просто понять че вписать в nginx чтобы по моему ip сайт открывался на время, даже если у меня динамический ip, если это возможно
97 1924614
>>24603
Спасибо, возможно то что я хотел найти, хотя и не nginx
98 1924620
>>24575
Если что, эту хуйню ен я (>>24341) спрашивал.
99 1924627
>>24614
nginx всё равно нужен, просто не надо его настраивать и пробрасывать порты.
100 1924718
>>23481
communicate возвращает кортеж (stdout_data, stderr_data), где stdout_data это то, что процесс напечатал в ответ в стандартный поток вывода, а stderr_data это данные об ошибках, которые процесс напечатал в стандартный поток ошибок.

Все зависит от того, как эта твоя програмка общается с окружающим миром.

Если ты ждешь, что твоя програмка будет что-то читать с потока ввода, типа, если ты будешь вызывать ее в консоли, то ты вводишь в консолди "MODN1", нажимаешь ENTER, потом вводишь "1 2 3" и нажимаешь ENTER, то надо сохранять ответ от первого вызова , а второй communicate тогда вызывать не надо, получится примерно так:
import subprocess
proc = subprocess.Popen(["MODN1"], universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
result, errors = proc.communicate(input=" 1 2 3")
print(f"result = {result}, errors = {errors}")
proc.kill()

Если ты ждешь, что это твоя програмка получает аргументы при вызове, как ключи, типа, если ты будешь вызывать ее в консоли, то ты вводишь в консоли "MODN1 1 2 3" и нажимаешь ENTER, то надо поступать примерно так:
import subprocess
proc = subprocess.Popen(["MODN1", "1", "2", "3"], universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
result, errors = proc.communicate()
print(f"result = {result}, errors = {errors}")
proc.kill()

В документации к модулю subprocess пишут, что в общем случае сейчас лучше использовать subprocess.run, а subprocess.Popen использовать в каких-то особо специальных случаях, что-то мне сдается, что у тебя достаточно общий случай, и тебе лучше использовать subprocess.run. Функция subprocess.run имеет практически те же аргументы, что и subprocess.Popen, но она сама создаст процесс и прибъет его при завершении, и вернет результат в специальном объекте класса CompletedProcess, в котором будет информация о завершившимя процессе.
Для первого случая будет:
result = subprocess.run(["MODN1"], input=" 1 2 3", universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
Для второго:
result = subprocess.run(["MODN1", "1", "2", "3"], universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
100 1924718
>>23481
communicate возвращает кортеж (stdout_data, stderr_data), где stdout_data это то, что процесс напечатал в ответ в стандартный поток вывода, а stderr_data это данные об ошибках, которые процесс напечатал в стандартный поток ошибок.

Все зависит от того, как эта твоя програмка общается с окружающим миром.

Если ты ждешь, что твоя програмка будет что-то читать с потока ввода, типа, если ты будешь вызывать ее в консоли, то ты вводишь в консолди "MODN1", нажимаешь ENTER, потом вводишь "1 2 3" и нажимаешь ENTER, то надо сохранять ответ от первого вызова , а второй communicate тогда вызывать не надо, получится примерно так:
import subprocess
proc = subprocess.Popen(["MODN1"], universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
result, errors = proc.communicate(input=" 1 2 3")
print(f"result = {result}, errors = {errors}")
proc.kill()

Если ты ждешь, что это твоя програмка получает аргументы при вызове, как ключи, типа, если ты будешь вызывать ее в консоли, то ты вводишь в консоли "MODN1 1 2 3" и нажимаешь ENTER, то надо поступать примерно так:
import subprocess
proc = subprocess.Popen(["MODN1", "1", "2", "3"], universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
result, errors = proc.communicate()
print(f"result = {result}, errors = {errors}")
proc.kill()

В документации к модулю subprocess пишут, что в общем случае сейчас лучше использовать subprocess.run, а subprocess.Popen использовать в каких-то особо специальных случаях, что-то мне сдается, что у тебя достаточно общий случай, и тебе лучше использовать subprocess.run. Функция subprocess.run имеет практически те же аргументы, что и subprocess.Popen, но она сама создаст процесс и прибъет его при завершении, и вернет результат в специальном объекте класса CompletedProcess, в котором будет информация о завершившимя процессе.
Для первого случая будет:
result = subprocess.run(["MODN1"], input=" 1 2 3", universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
Для второго:
result = subprocess.run(["MODN1", "1", "2", "3"], universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
101 1924757
>>24150
что там гуглить, просто сапускаешь в териминале файл activate
102 1924760
>>24757
В винде надо activate.bat запускать, а не просто activate. Но я правда не понимаю хули там сложного? Там более, что пукчарм вообще предлагает при создании проекта создать виртокружение еще и сам его включать будет.
103 1924764
>>24760
расширение bat не обязательно указывать, достаточно в терминале набрать venv\Scripts\activate и выполнить
104 1924767
>>24764
А ну мб, я просто давно уже руками последний раз включал venv. Просто в пукчарме галку ткнул на автовключение и кайфую. Еще бы пукчарм в гитхабе автоматом логинился через консоль и было бы норм.
2021-01-2823-56-05.png7 Кб, 448x198
105 1924771
>>24387
Пиздато бухать, когда не надо на работу, не так ли?
>>24757
нет, нужно запускать скрипт активейт, как написал этот
>>24764
чел

во, тут уже три версии как его запустить, а говорили хули там гуглить.
работает на 10 кстати именно скриптс.
просто активейт и активейт бат идут нахуй
106 1924772
>>24771
ну ты даун просто, на винде работает Scripts потому что блять python -m venv venv в винде создает папку Scripts в каталоге venv, а на линуксе создает папку bin, еще раз повторю ты дурачек если не смог найти activate в винде
>>24757 и >>24764 это один и тот же чел, я
107 1924773
>>24771
кстати нахуя ты создал вирутальное окружение в папке system32 ? его создают в папке с проектом, очередное доказательство что ты даун
108 1924775
>>24771
Сумасшедший, ты понимаешь, что у тебя файл activate сам по себе не появится? По тому, что ты в system/32 захуячил рабочий проект уже все понятно. Но блять дальше больше. Ты пытаешься запустить файл activate как команду. Это настолько охуительно тупо, что я даже не могу пояснить всю глубину долбаебизма
109 1924776
нравится питон как факультатив, приятный язык. Пробовал хтмл и ксс, не понравились. Есть какая-нибудь задача на питоне, которую можно научиться решать и в свободное время подрабатывать на этом? или так в прогинге не работает?
110 1924779
>>24773
я его создал чтобы прост открыть в нем файл, ты не знал что можно открыть любой файл там? охуеть просто
>>24775
?>По тому, что ты в system/32 захуячил рабочий проект уже все понятно
пиздец еще один затупок
я могу открыть файл из любого места в этом виртуальном окружении
111 1924782
>>24776
открывай kaggle.com, порешай пару задачек оттуда, если легко, то может получится на фрилансе найти подработку
112 1924789
>>24776
Слишком толсто
>>24779
Чел, почитай как с командной строкой работать. Ты просто такие охуительно тупые вещи пишешь еще и споришь. Кто запустить блять виртуальное окружение не может? Ты или я?
113 1924792
>>24789
не, я на самом деле месяц учил синтаксис в свободном режиме по паре часов, мне прям нравится язык, но я не могу нащупать объём необходимых знаний, которые нужны для решения реальных задач.

Кажется что в таком темпе до денег год учить, думал что подскажут
114 1924793
>>24776
На питоне новички частенько пишут парсеры за деньги, но заработок низкий, если интересует изучай библиотеки requests для запросов к сайтам, beautiful soup для удобного парсинга html, pandas для удобной работы с напаршенными данными и сохранением данных в разные форматы(json csv xml xslx). Потом может быть удастся перекатится на обычную работку на должность ETL разработчика
115 1924796
>>24789
так я и запустил.
Это ты не удосужился написать что сперва создается батник в определенной папочке а потом только запускается, а потом еще и обвинил меня в том, что я якобы создал какой то проект в системной папке, хотя очевидно что я запустил виртуальное окружение не для проекта или еще чего то, а просто показал как оно запускается по дефолту.
смекаешь?
116 1924797
>>24793
спасибо за ответ
117 1924801
>>24796

> так я и запустил.


Ты его запустил в system32 нахуй, ты все еще не смог сделать свой проект с виртуальным окружением.

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


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

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


Чел, всем похуй на тебя. Ты должен быть благодарен, что тебе вообще кто-то отвечает и пытается помочь. Еще раз -- ты с таим подходом пойдешь нахуй. Будешь дальше выебываться и что-то требовать -- это мой последний пост тебе.
118 1924804
>>24792
Если это --> >>24796 ты, то тебе до денег еще около 10-15 лет учить. А объем знаний зависит от того, что считать необходимым. Самый большой срок уходит на то, чтобы мышление свое под программирование заточить. Если математикой занимался еще чем-то таким, то тебе это не понадобится. Если же нет, то займет ощутимое время. Остальное тривиально и больше 1-2 лет не займет. Вообще, с нуля можешь на года полтора ориентироваться.
119 1924805
>>24801
мне и не нужно было создавать проект
я гуглил как его запустить без создания файлов, например.
и нашел, как видишь

>Ты должен быть благодарен, что тебе вообще кто-то отвечает и пытается помочь


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

>чтобы на 10 винде активировать я заебался гуглить, информации мизер


где ты видишь тут вопрос или хотя бы утверждение что я не смог этого сделать в итоге?
щас бы спрашивать всякую хуйню блядь.
120 1924809
>>24805
Ну и пошел нахуй
121 1924811
>>24809
Мне показалось, или ты быканул?
122 1924844
Аноны, какое будущее вы видите у питона в сфере бэк энда? Он ведь неплохо проигрывает в скорости конкурентам. Вытеснят ли они его к хуям в мл или нет? А то мои рога и копыта решили переписать на ГО все
123 1924851
>>24844

>Вытеснят ли они его к хуям в мл или нет?


Нет, пока тот же Го не приведут в человеческий вид.

Само собой есть задачи и для Го, но скорее проблема где-то в другом месте.
124 1924854
>>23442 (OP)
Анон, помоги с задачей: есть срез с тегом типа \n1.\t, который нужно заменить на \n1 Ъ.
Проблема в том, что в тексте тег может быть с любым числом, типа \n12.\t, \n3.\t и так далее.

Как это все реализовать? Я думал через re.findall сделать, но получается хрень, т.к. мне нужно, чтобы в той строке, на которую я заменяю, было оригинальное число.
125 1924858
Ну и в догонку к >>24854, если будет ИТТ какой-нить благородный дон, можно ли как-то подсказать, как такой вот пиздец из набора регулярок
text = re.sub(r' тыс\. ', ' тыс.Ъ ', text)
text = re.sub(r' т\. ', ' т.Ъ ', text)
text = re.sub(r' тел\. ', ' тел.Ъ ', text)
text = re.sub(r'\nтел\. ', ' тел.Ъ ', text)
text = re.sub(r' г\. ', ' г.Ъ ', text)
text = re.sub(r' руб\. ', ' руб.Ъ ', text)
text = re.sub(r' каб\. ', ' каб.Ъ ', text)
text = re.sub(r' ауд\. ', ' ауд.Ъ ', text)
text = re.sub(r' к\. ', ' к.Ъ ', text)
text = re.sub(r' эт\. ', ' эт.Ъ ', text)
text = re.sub(r' конф\. ', ' конф.Ъ ', text)
text = re.sub(r' др\. ', ' др.Ъ ', text)
text = re.sub(r'пр\. ', 'пр.Ъ ', text)
text = re.sub(r'ул\. ', 'ул.Ъ ', text)
text = re.sub(r'наб\. ', ' наб.Ъ ', text)
text = re.sub('\:\)', ' ', text)
text = re.sub('_\_+', ' ', text)
text = re.sub(" +", " ", text)
return text

привести в божий вид?
126 1924871
>>24858
Как вариант
re.sub(r" (тыс|т|тел|г|руб|каб|ауд)\. ", r" \1.Ъ ", text)
То есть сделать большую группу замен и использовать \1 в строке-подстановке, что означает "элемент из первой группы в скобках".
127 1924878
>>24858
в каком-то из предыдущих тредов давали ссылку на визуализацию регулярок, но я ее проебал. кто знает, киньте еще раз.
129 1924906
Почему это срабатывает?

>>> print(sys.version_info >= (3, 7))


True
Тут сравнение списков или что? Зогадке.
image.png4 Кб, 369x62
130 1924909
>>24906
Сравниваются тупли, по тому же принципу, что 'ab' > 'aa'.
131 1924912
>>24909
Спасибо. Прикольная штука, надо запомнить.
132 1924958
>>24884
респектую бро
133 1924977
>>24871
Я ещё нашел вариант: запилить лист из этих слов, и потом по нему филтровать.

И ещё бампану вопрос >>24854
134 1924980
>>24977
s = re.sub(r'(\n\d+)\.\t', '\\1 Ъ', s)
135 1924989
>>24980
Так проблема в том, что число может быть практически любым (ну, логически, \n2, \n3, но тем не менее), и оно же и должно остаться после замены!
136 1924991
>>24989
Так оно и останется.
137 1925041
>>24844
да пизда питухону
медленный и нахуй не нужный в вебе язык
на нам рил только мл пилить да утилитки всякие
138 1925046
>>24844
На ГО все не перепишешь.
139 1925048
>>25046
ну, если цепляться за то что на питоне просто много легаси и поэтому он нужен, то это говорит о никчемности языка в сфере
140 1925058
>>25048

>легаси


Не в легаси дело, писать на ГО сложную бизнеслогику очень дорого, если нет высокой нагрузки, то смысла 0. Ну если только есть цель освоить бюджет. Ты на ГО и питоне не писал походу, иначе такой бред не нес бы.
141 1925059
>>25058
хочешь сказать, что питон типа хорош для всего НЕ хайлоад а ГО для хайлоад?
142 1925069
>>25059
На Го переписывают в первую очередь узкие места, код на нем значительно сложнее писать, сахара и абстракций там минимум, не будет и близко той декларативности что есть в питоне. Я еще раз спрашиваю у тебя есть коммерческий опыт бэкенд разработки?
143 1925070
>>25069
да я уже другой чел - не тот который отхуесосил питон в бэкэ
но все равно отвечу - нет, я не из бекэнда - я из cv
144 1925075
А есть тут прокрастинаторы типо меня. Вот началась опять маниакальная стадия. C++ я уже дропнул ,сейчас возьмусь за пайтон. Через недельку Джава. Потом html, css, javascript.
Этот цикл я повторяю почти ежегодно. Дальше синтаксиса ни в одном ЯП так и не продвинулся. Я безумен, и не знаю как разорвать этот цикл.
146 1925083
>>25079
Типо сразу с фреймворков начать? Мой внутренний перфекционизм говорит что надо делать все по порядку. Т.е сначала учить просто ЯП, написать топ прогу без всяких фреймворков, и только потом браться за это дело.
147 1925084
>>25083
ты получи результат, а потом уже разбирайся как работает все
а то так и будешь дропать все подряд
148 1925087
>>25084
Сейчас лежит душа к пайтону. Тогда попробую Django
149 1925088
>>25070
>>25069
но изначально вопрос интересный
я еще в универские годы чуть бекэндером поработал (ну постажероватся) буквально годик. Потом перекатился в cv, так как сам немного не понял куда вообще весь бек на питоне идет
Но опять же, у меня образование не программисткое, а математическое и я мог просто не разглядеть потенциала чи хуй его вообще
вот и свалил в цв. Но про бек вопрос интересный (вдруг перекатиться захочу): есть что поделать? задачи интересные? можно ли сказать, что бэкендер на питоне это не просто питономакака?
150 1925144
>>24718
Спасибо большое мудрый Анон
151 1925230
Как мне передать путь до summ.json в качестве аргумента командной строки? Нужно принимать в аргументах командной строки путь до файла summ.json

with open('summ.json', 'r', encoding='utf-8') as file:
current_data = json.load(file)

я запутался и не могу понять как это сделать
152 1925271
ля поцонва
вопрос у меня просто уебанский, конечно
тем не менее
я, короче, школоло, 16 лет. Мне нравится информатика: гоняю на олимпиады, парочку поделок дома - ничего такого, просто нравится
в общем, тк я пока школоло и вышмата не знаю, просьба не пиздить ногами за сказанное далее, но мне нравится блокчейн: я не ебу насколько это перспективно\денежно и
тд
к чему я это? Поцонва, ведется ли разработка блочейна на питоне?
153 1925296
пацаны, какой сейчас усредненный стек питон бэкэнд разраба?
154 1925301
>>25271
Смотря что ты считаешь разработкой.
Сам core какого-нибудь блокчейна врядли, не сильно питон приспособлен для хитрых вычислений.
А вот в разработке какого нибудь bitcoinlib можешь поучаствовать
155 1925305
>>25301
а что это за биткоинлиб?
но я про промышленную разработку, конечно же
156 1925306
>>25230
import sys

print(f"Name of the script : {sys.argv[0]=}")
print(f"Arguments of the script : {sys.argv[1:]=}")

43.12 секунд гугления
157 1925308
Есть вот такая csv:
col1,col2,col3,col4
5,1,foo1,foo10
5,2,foo2,foo20
6,1,bar2,bar30

Нужно получить такой словарь:
{
'5':
{
'1': {'col3': 'foo1', 'col4': 'foo10'},
'2': {'col3': 'foo2', 'col4': 'foo20'}
},
'6':
{
'1': {'col3': 'bar2', 'col4': 'bar30'}
}
}
То есть сначала группировка по col1, потом внутри результата еще одна группировка по col2. Как это сделать?
158 1925309
>>25305
https://bitcoinlib.readthedocs.io/en/latest/

Можешь начать с этого, как раз познакомишься с внутрянкой этих ваших биткойнов
159 1925310
>>25308
Блять, ебучая разметка

col1, col2, col3, col4
5, 1, foo1, foo10
5, 2, foo2, foo20
6, 1, bar2, bar30

{
'5':
{
'1': {'col3': 'foo1', 'col4': 'foo10'},
'2': {'col3': 'foo2', 'col4': 'foo20'}
},
'6':
{
'1': {'col3': 'bar2', 'col4': 'bar30'}
}
}
160 1925311
>>25309
спасибо, добрый анон
161 1925332
>>25308
На цсв сам переделай.
https://ideone.com/qaQHXs
162 1925353
Flask_bootstrap вообще актуальная технология? Или лучше самому прикрутить bootstrap?
163 1925375
>>25075

>Я безумен, и не знаю как разорвать этот цикл.


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

Только так. Если сам по докам будешь учить, то так и будешь дропать.

Сначала можно про сам питон, потом уже про какой-нибудь фреймворк вроде джанго.
164 1925392
>>25332
Я думал что я шарю в питоне...
другой кун
image.png207 Кб, 512x384
165 1925402
Щас в одном коде встретил такую конструкцию.
В начале скрипта импортируют sys, потом в блоке
if __name__ == '__main__':
опять импортируют sys.

Что это дает? Может это просто опечатка?
166 1925412
>>25332
Прекрасный код. Сколько десятилетий ты уже пишешь код? Какой был первый язык? Какой был самый сложный проект, в котором ты принимал участие?
167 1925465
поцоны, какой пет проект для вката в бэкэнд посоветуйте? А то я ебучим игроделом проработал, хочу в норм проганье уйти
питон хорошо знаю, но все математическое: numpy, scipy, sklearn и прч
Джанго фласки и тд знаю на уровне туториалов
плз дайте советов
168 1925577
>>25465

>хочу в норм проганье уйти


>заполнять формочки говном и слать введенное говно обратно


Бля, такой себе лвл ап.
169 1925579
>>25465
Посоветую Рознталя для начала.
170 1925676
>>25579
Че?
171 1925679
>>25577
Может человек устал думать, придумывать и оптимизировать на работе и хочет неспешно заниматься хуйней за фикс прайс.
172 1925685
Пишу себе удобных ботов и всякую автоматизацию по работе уже год, код выглядит как говно, просто список инструкций.
Если кода много, стараюсь распихивать по разным файлам просто файл в директории.
На работе начал работать с колегами-разработчиками и ахуел от красоты и удобства их кода. Всё раскидано по полноценным пайтон модулям, для всего написаны тесты, гитлаб генерирует документацию и прочее.
Как научиться писать также? Питон понимаю хорошо, ООП не понимаю.
Все гайды по питону, что я находил, либо учат писать хелло ворлд, либо специализируются на каких-то библиотеках. Скорее всего я просто не понимаю что именно искать.
Дайте документацию/гайд/книжку по написанию красивого, эффективного, удобного кода на питоне.
173 1925710
>>25685
гугли на ютубе тимофей хирьянов где он переписыват игру с пушкой написаную в декларативном стиле под ООП
174 1925725
>>25577
>>25679
а подскажите куда пойти, чтобы как макака не перекладывать таблички?
175 1925741
Двач, есть ли такой цикл в котором можно было бы удалять элементы итерируемого цикла?
Или можно ли в условии while создавать переменную?
22.png36 Кб, 639x327
176 1925743
>>25741
Картинка к вопросу
Снимок.PNG6 Кб, 294x309
177 1925747
>>25741
>>25743
Ну так у тебя выход за пределы массива, ты итерируйстя просто не по индексам а по элементам
178 1925749
>>25747
Спасибо
179 1925750
>>25741
Ага, то есть ты сам написал, что у тебя 5 элементов в списке и передал список с 4 элементами, но виноват питон?
180 1925800
>>25685
Если ты хочешь нормально писать то тебе надо качать понимание в целом. От основ вычислительных машин и асемблера к си и потом уже к питону и прочим высокоуровневым языкам. Ну и навернуть пару книжек типа SOLID.
181 1925923
Как в питоне решить пример 9:6? Я пытался тупа перевести в флоет но оно не работает помогите пожалуйста
182 1925929
>>25923
print(9 / 6)
?
183 1925968
При вызове len('khuy') есть какие-то оптимизации? Строка-то известна.
184 1925981
>>25968
Она и так известна вм в внутренних структурах, как и большинство ленов, ничего там не считается на самом деле.
185 1925997
Есть ли в модуле os или еще где-то готовая функция, чтобы достать значение энв переменной, или дефолтное значение если переменная не задана. А если дефолтное значение не дано, то выбросить внятную ошибку.
186 1926013
Зная только питон и sql достаточно будет, чтобы работать аналитиком или что-то такое связанное с базами данных? Или нужны ещё какие-то йобы?
187 1926081
Я могу на kivy сделать приложение, которое будет работать как простенький сервер на андроиде?
Запустил приложение, ввёл в окно ключи, оно покрутилось в фонеэто важно и умерло. Джаву не знаю, котлин без неё непонятеня пытался.
188 1926240
Аноны, есть тут шарящие за работу с БД и aiogram?
image.png50 Кб, 340x633
189 1926317
Народ подскажите как сделать геттери и сеттеры(через декоратор или же так) для несколько атребутов, но что бы копактно. Есть несколько атребутов у которых повидение одно и то же и не хочеться делать на каждую описание
190 1926396
>>26317
бля... чуть глаза не вытекли
191 1926408
Тупой вопрос. Нужно выбрать все ссылки со страницы по шаблону. Что будет быстрее: BeautifulSoup или регулярными выражениями?
192 1926410
>>26317
Не очень понятно, что именно тебе нужно.
Возможно тебе стоит определить методы __setattr__ и __getattr__, через них смотреть, к чему пользователь обращается и хранить данные в каком-то специальном словаре.
193 1926413
>>26408
Регулярки, очевидно. Но они менее универсальны, bs4 и аналоги всё-таки тебе из нужного места ссылки выдрут. А регулярки не учитывают html контекст никак.

ps: кроме bs4 ещё есть lxml
194 1926414
>>26408
Если надо сделать один раз - регулярки, иначе парсер.
vsebudet.mp415,4 Мб, mp4,
1280x720, 0:11
195 1926418
>>26317

>атребутов

196 1926495
Ума нет - спроси Питон тред.

Есть функция для рисования графиков вида:
def plots(data, lags=None):

__# Convert dataframe to datetime index
__ layout = (1, 3)
__raw = plt.subplot2grid(layout, (0, 0))
__acf = plt.subplot2grid(layout, (0, 1))
__pacf = plt.subplot2grid(layout, (0, 2))

__data.plot(ax=raw, figsize=(12, 5), color='mediumblue')
__smt.graphics.plot_acf(data, lags=lags, ax=acf, color='mediumblue')
__smt.graphics.plot_pacf(data, lags=lags, ax=pacf, color='mediumblue')
__sns.despine()
__plt.tight_layout()

Она используется в цикле.
Проблема в том, что сейчас по сути отображается только 3 графика, и на каждой итерации данные отображаются поверх существующих, т.е. в конце будут показаны лишь последней итерации.
Как поменять функцию, чтобы отображались графики кадой итерации?
197 1926624
[code lang="python3"] print("hello world") [/code]
198 1926699
>>26495
точно не знаю, мало работал с либой, первое попробуй заново объявлять объект графика, если plt это объект класса, то применяя к нему рисование он будет на оном и том же рисовать. 2-е уверен есть функция очистки, применяй ее в цикле после сохранения графика
199 1926736
>>25997
python sys argv . это словарь, у словаря есть метод get который первым аргументом принимает то что ты хочешь достать, а вторым то что будет возвращено если не будет найдено значение по ключу из первого аргумента
200 1926738
>>25997
>>26736
бля я перепутал, тебе нужен os.environ["ИМЯ_ПЕРЕМЕННОЙ"]
201 1926739
>>26738
точнее os.environ.get("ИМЯ_ПЕРЕМЕННОЙ", "Значение по умолчанию")
202 1927019
>>26739
Нет, ты хуйню написал.
203 1927081
>>27019
обоснуй
204 1927083
>>27081
Ты зумерок с клиповым мышлением, который не в состоянии прочитать текст длиннее одного предложения.
205 1927088
>>27083
чем os.environ.get не устроил?
можешь еще try os.environ['залупа'] except пупа если тебе ексцепшен нужен
206 1927118
Чел видимо хочет, чтобы был метод get, который или возвращает значение по-умолчанию, если в форме
.get('var_name', default) используется,
или кидал исключение, когда используется в виде
.get('var_name')
Однако в последнем случае .get возвращает None.

Тут вариант, или get использовать только тогда, когда надо со значением по-умолчанию, а когда надо с исключением, тогда через обращение к словарю ['var_name'], или реализовать свою функцию для этой частной задачи
get_env_value('var_name', default),
которая при отсутствии default будет кидать исключение произвольного вида, возможно более говорящее. Можно и более гибкую логику реализовать.
207 1927129
Как починить
ValueError: could not convert string to float: '8/9' ?
https://ideone.com/qde9u5
208 1927231
>>27129

>Как починить


У тебя в коде какой-то непонятный объект entry1 с методом delete непонятного назначения, какие-то непонятные методы insert, какая-то непонятная переменная END.

Вообще ничего не понятно. Но очевидно проблема в строке 4, где ты пытаешься сделать float('8/9'), а float это не eval, float не исполняет выражение, а конвертирует строку в число.
209 1927235
>>27231
>>27129
То есть если ты заменишь float на eval, то эту ошибку ты переборешь, но уже на следующей строке у тебя код лишён смысла, ты будешь проверять вхождение символа ',' в переменной типа float, что некорректно и ты поймаешь исключение вида TypeError
210 1927247
>>27235
Он уже месяц делает этот калькулятор, надо будет отметить, если таки взлетит этот эпохальный пэт-проджектище.
Помогите 211 1927262
1)Если сумма трех попарно различных чисел X, Y, Z меньше единицы, то наименьшее из этих чисел заменить полусуммой двух других.

2)Задать 2 массива А и В случайных чисел размерности k, взятых с отрезка [-9;8]. Если встречается в массивах число 4 или 5, то следующий за ним элемент заменить суммой двух предыдущих элементов.

3)В двумерном массиве удалить элементы, кратные «8».
212 1927282
>>27262
Номер 1.
Прикольная задачка. https://ideone.com/ocW795
213 1927368
>>27262

>Если встречается в массивах число 4 или 5, то следующий за ним элемент заменить суммой двух предыдущих элементов.


Что делать в случае, если первое или второе число 4 или 5? При обходе слева направо учитывать в сумме, что значения могли обновиться?

Плохо сформулирована задача, слишком много открытых вопросов. Ещё менее понятно, зачем два массива.

Для задачи 3, в в случае одномерного массива
m = [1, 3, 5, 8, 13, 16, 6]
m[:] = [i for i in m if i%8 != 0]
генератор списка и мы при этом не создаём новый список, а перезаписываем старый.

В двумерном случае просто примитивный обход списка списков добавляется.
214 1927370
>>27118

>Тут вариант, или get использовать только тогда, когда надо со значением по-умолчанию, а когда надо с исключением, тогда через обращение к словарю ['var_name']


Спасибо, охуенный вариант, зря я запарился.
215 1927380
>>27368

>генератор списка и мы при этом не создаём новый список, а перезаписываем старый.


Создаем новый список и пихаем его на месте старого. Логично было бы хуярить задом наперед и удалять на месте.
Но это зависит от того, на что эта задачка.
А об этом можно только догадываться, так как формулировал их какой-то ебанько.
216 1927394
>>27380

>Создаем новый список и пихаем его на месте старого.


Если ты делаешь
m[:] = list
то у тебя именно изменяется старый список, а не создаётся новый, но есть ты содержимое нового копируешь в старый.

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

При этом ХЗ, нужно ли об этом думать.

>>27380

>так как формулировал их какой-то ебанько.


вот это похоже на правду. Особенно со второй задачей так.
217 1927400
>>27394
Я о том, что компрехеншен сначала создает новый список, т.е. если у тебя там миллион элементов, то он сожрет память.
А если в итерации удалять, то нет. Через два энумерейта, например.
218 1927403
Как перебрать все комбинации по n элементов из массива?
Как проверить вхождение числа в интервал без использования двух условий и логичесного И? если конечно это не лучший вариант
219 1927404
Хотя если заменить на генераторные скобки, то может и ок.
220 1927405
>>27403
666 in range(1488)
Или тебе надо свой вариант именно?
221 1927407
>>27400

>А если в итерации удалять, то нет.


Операция удаления очень дорогая, O(n). Соответственно итоговая сложность O(n^2) примерно.

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

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

Я думаю, что создание нового списка меньше ресурсов реально отъест.
222 1927409
>>27403

>Как перебрать все комбинации по n элементов из массива?


С помощью модуля itertools.

Там же приведен код, как можно подобное реализовать на голом питоне.
223 1927416
>>27405
А если число не целое?
224 1927418
>>27409
Ага понял, именно то что нужно, спасиб
225 1927427
>>27416
Тогда хуй знает. Можно скомбинировать условия, тогда без и.
0 < 10 < 100
234234234.png34 Кб, 1200x776
226 1927436
>>23442 (OP)
Эххх скорее бы эту говнину заменила джуличка...
227 1927444
>>27436
Математические вычисления агааааааа
228 1927474
>>25075

Не слушай этих >>25375 >>25075

Выбери язык и предметную область и начинай писать свой персональный проект интересный тебе, все другое подучишь по дороге.
229 1927481
>>27436
двачую
230 1927491
>>27436
Краем глаза глянул, что про него пишут, очевидный кошмар, а не язык.

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

Но за Адой хотя бы ресурсы были огромные, а эта юля поделка.
231 1927500
>>27491
Корабли это she, mate!
232 1927524
>>23869
Это нормально, я когда ассемблер учил, мне он только первые две недели и снился, причём в кошмарах.
233 1927653
>>27247
калькулятор месяц кодинга? бля, это жестковато.
234 1927655
>>27491
А что скажешь насчет языка ПАТРИОТ, или как там его назвали, блядь забыл уже. КУМИР, вот.
что за тема?
235 1927656
>>27524
Жёстко. надеюсь это пройдет со временем..
236 1927657
>>27524
Кстати, что за кошмары были, приколи стори.
237 1927658
Двач, открываю сотню задач с помощью subprocess.run, только это систему нагружает, можно ли ограничить количество одновременно работающих процессов к примеру максимум 8 штуками? То что нашёл в гугле слишком непонятно и сложна, объясните не сложна плиз.
238 1927674
Порекомендуйте курс на stepik. Я знаком с языком и какое-то время работал, но был перерыв в два года, поэтому хочу быстро освежить знания.
239 1927685
>>27674
biggeeks -> биоинформатика базовый -> бионформатика применение на практике
240 1927689
>>27674
И еще в догонку, там можно открывать неограниченное количество бесплатных курсов? Я могу прокликивать до интересных мне тем и задач, и если не понравится переключиться на другие?
>>27685
Спасибо, посмотрю.
241 1927715
Господа, подскажите ньюби, который спрашивал что быстрее: регулярки или beautifulsoup.
Есть функция, внутри которой делают парсинг с помощью BeautifulSoup. Можно ли передавать ссылку на экземпляр BeautifulSoup в функцию, чтобы не создавать каждый раз внутри функции? Надо ли так делать?

Щас у меня так
def parser(query: str) -> dict:
.... получаю src страницы
....soup = BeautifulSoup(src)
.... что-то делаю
....return result
242 1927769
>>27715
Нет, при этом каждый раз происходит парсинг текста и построение объекта супа, это самая тормозная и затратная операция. Просто передавай нужные объекты.
243 1927773
>>27769
То есть, да, лол. Ну ты понял.
Один раз парсишь, сколько угодно раз передаешь и используешь.
244 1927908
Душители питонов, с этой говниной можно что-то делать? Нужна кому-то такая поебота? По сути это функционал, которого нет в tenacity, попробовать можно PR заслать, но мейнтейнер там токсичный слегка ("А зачем? Не нужно нам такое,вот").
Понятное дело что все это сахарок синтаксический, но зато логику легко прятать.
https://pastebin.com/G4jcpnHN
245 1927937
>>27773
понял, спс.
246 1927962
>>27908
Ну и нахуевертил.
247 1927968
И снова здравствуйте.
Есть тут кто знает/слышал про autocomplete diginetica? Как распарсить страницу результатов поиска? Захожу через request.get по URL с нужными параметрами, но эта приблуда не отдает нужный HTML пока на самом сайте не кликнешь в форме поиска. Встречались с такой хренькой?
248 1927993
>>27968
Генерируется или подгружается дополнительными запросами на клиентсайде.
249 1928013
>>27658
Паттерн называется "пул процессов".
Смотри вот здесь:
https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool
250 1928030
>>27993
Как/чем можно имитировать запрос?
251 1928046
>>28030
Подсмотреть в дебаггере что там за запросы и повторить у себя на той же сесии.
Ну или заменить реквестс на хедлес браузер и он сделает всё сам, но это уже больше вариант для всякой йобы.
252 1928081
>>27908

>Душители питонов, с этой говниной можно что-то делать?


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

Невнятная логика. Почему такие разные виды исключений для tries =1 и для tries >1? Разумно, чтобы вид исключения был одним.

Откровенно индийский код. Перегруженная логика по if-else, когда всё делается проще.
253 1928092
>>27908
Душно - большая вложенность, огромные плохо читаемые функции. Почему без ООП? Можно же было это все реализовать классом хендлер и методами, было бы проще поддерживать такой.
>>28081
Не индусо, а студентокод.
254 1928100
>>28046
спасибо, все получилось. чел, ты - классный.
255 1928111
>>28030
Мб selenium поможет
256 1928331
>>28081
Смысл вызова callback для обработки exception без впендюривания ветвления в логику же. Код на коленке за 5 минут. Я хочу понять нужна такая поебота кому-то кроме меня или нет, тем более это декоратор.
257 1928332
>>28092
И API на воротник.
В tenacity есть retry_error_callback, но он работает хуй знает как, дергает retry_state и все, т.е. задуман не как обработчик какого-либо exception, а как обработчик ошибки retry при окончании попыток. Мне проще форкнуть retrying и прикрутить свою логику с ООП и прочими приблудами
258 1928338
Двач, скажи как ты искал работу(особенно первую), где вы находили вакансии. Я устал искать по большим компаниям, они не поменялись за последние 3 месяца, хочу найти более мелкую компанию, как их искать, думаю, что там больше шансы попасть на работу после собеседования, куда им присылать резюме, можно ли ссылку на хх кидать?
259 1928340
Скажите есть ли в джанге встроенная функция, которая проверяет есть ли объект в бд и если нет, то возвращает False, get or 404 возвращает 404 именно, а я хочу в логике проверять и уже не первый раз сталкиваюсь, что в ручную приходится писать
260 1928351
аноны
чет туплю пиздец уже
короче у меня есть numpy матрица размером n x 3
каждая строка - вектор в трехмерном пространстве
вопрос
как мне все вектора в этой матрице спроецировать на ось з?
261 1928362
>>28332
сука, засунули в атрибуты

_exception и _attempt_number объекта retry_state, поймать можно через параметр
@retry(reraise=True)

Ебись конем говноподелие с нарушением PEP8, форкать однозначно
262 1928366
>>28351
синус косинус пробовал? Смотришь на координаты по y,z проецируешь на z
263 1928377
>>28366
не вариант
у меня же таблица векторов и вектор, на который нужно спроецировать
искать углы и прочее это долго, имхо
я придумал чет, но выглядит как батин суп конеч
https://pastebin.com/u8UmEVu2
если кому интересно, мб подскажите как улучшить, а то выглядит больно
264 1928379
>>28377
лол, сумму поправил через sum(axis=1)
265 1928386
>>28377
Хз на сколько долго это, но косинус из math на C написан, а проекция именно считается через косинус\синус, если тебе нужна z, то это синус между y и z координатами вектора
266 1928398
>>28386

>но косинус из math на C написан


Косинус-синус это инструкция сопроцессора.
267 1928400
>>28332

>Мне проще форкнуть retrying и прикрутить свою логику


Только пока у тебя логика невнятная и глючная.

Например твоя программа зависиснет, если будет обработчик для исключения, а количество попыток выставлено в 1. А этого явно не должно быть.
268 1928414
>>28400
if error_handler:
error_handler(e)
break
else:
raise e

Увидел, код очень грязный вышел, но пока навыка писать чистый код за 5 минут нет, еще и ООП прикрутить. if-else вообще говнище.

На самом деле в tenacity прикрутили callback, но не написали про параметры retry_state._exception, ну да похуй. На то он и питон, что в исходниках копаешься. Проще говоря, документацию никто не ведет, true Python way.
269 1928480
Скажите ньюфагу что из двух вариантов будет предпочтительнее в 21 году, Django или JS? Просто похоже они явно два конкурента за рынок
270 1928497
>>28480
Ясен хуй жс
271 1928511
>>28480

>Django или JS


Джанго это фреймворк, а JS это язык программирования. Ты должен понимать, что вот так нельзя сравнивать.
272 1928512
>>28511
Ну раз нельзя тогда можешь не отвечать на пост.
273 1928556
Решил немного подтянуть базы данных, так вот что из этих книг лучше почитать для веба. Ну или посоветуйте что-то поактуальней.
Можно предлагать как анг так и рус.
J.Groff, P.Weinberg, A.Oppen — SQL, полное руководство (2015).pdf
Ibrar Ahmed, Asif Fayyaz, Amjad Shahzad — PostgreSQL Developers Guide (2015).pdf
Chitij Chauhan — PostgreSQL Cookbook (2015).pdf
А. Ю. Васильев - Работа с PostgreSQL настройка и масштабирование, 5-е издание (2017).pdf
274 1928565
>>28556
Советую "PostgreSQL. Основы языка SQL" Е. П. Моргунов 2019
275 1928569
>>28565
Нашел 2018 года, на флибусте. И 2019 год для покупки, но там одинаковые обложки. Они отличаются? На обложке 2019 года нет ничего про 2 издание и тп.
276 1928576
На питоне заебно гуй приложения писать? Какие либы стоит попробовать?
277 1928638
Привет здарова подскажите, в каком направлении думать:
Есть один тг бот (пишется на аиограме, если что) который с заданным периодом делает рассылки в тг каналы
Материал для этих рассылок парсится с помощью стороннего внешнего сервиса, ну точнее его апи.
Так вот, я бы хотел этот парсер отделить от бота и сделать бекграунд задачей, но при этом не хотел бы мешать асинк код с тредами (почему - не знаю)
Как я это себе представляю: бот работает, слушает месседж хендлеры и в то же время в фоне независимо крутится парсер (может быть не один). Когда "прилетает" новый контент, то парсер кладет данные в стек (пока в этой роли юзается постгрес), а бот время от времени "вытаскивает" накопленное из этого стека и делает рассылку.
В реальности, пока что есть вот такая убер всратая заглушка для 1 тестового канала: https://pastebin.com/Xv0uTD9b
278 1928645
>>28638
В чем проблема-то?
279 1928749
Аноны, помогите разобраться. Есть такая структура:
"products": [
....{
........"id": "71470",
........"name": "Молоко",
........"brand": "МПК ООО",
........"price": "59.7"
....},
....{
........"id": "71471",
........"name": "Хлеб",
........"brand": "ХЛЕБ ООО",
........"price": "25"
}
Внимание, вопрос: как отсортировать по значению "price"?
280 1928754
>>28749
data['products'].sort(key=lambda x: x['price'])
281 1928758
>>28754
спасибо
282 1928760
>>23442 (OP)
gRPC с Питоном - норм тема? Кто пробовал?
283 1928770
>>28760
Гей-РПЦ?
284 1928783
>>28749
Судя по всему это джейсон, так что по ключу.
285 1928800
Где можно найти курсы с realpython?
image.png145 Кб, 649x518
286 1928839
Сап, аноны, помогите разобраться. Хочу написать один мини-проект для себя. Суть в том, что мне нужно выцепить из Яндекс Карты значение, через которое автобус будет на остановке(пикрил). Пытался парсить html через BS, но вышло так себе, поскольку блоки на сайте меняют положение и значение у меня было от разных автобусов, в зависимости, как был выше. Как это лучше сделать? Может вообще можно через api эти значения получить?
287 1928853
>>28839
API-то пробовал?
288 1928877
>>28853
Тариф API для городского транспорта вроде как платный, есть только бесплатный для рейсовых
289 1928958
>>28839
Яндекс анально огорожен, а парсить это говно через Селениум идея паршивая. Попробуй Openstreetmap, там инфа не такая детальная, но есть нормальный АПИ
290 1928959
>>28480
жабаскрипт
291 1928960
>>28480
Что значит Джанго или JS? Что ты блин имеешь ввиду под "JS"?
Если про бэкенд, то если че, Джанго это скорее из той же ниши как Laravel - монолитный фреймворк со свистоперделками, тогда как Нода нацелена на микросервисную организацию. Ну и не говоря о том, что вкатышей в Ноду берут неохотно и в целом вакансий на нее в Раше немного (а вот в США поболее, Рашка как всегда)
292 1928965
>>28958
Спасибо, анон, я уже часа 3 аутировал с парсингом
294 1928984
>>28970
Я думаю, это вряд-ли поможет. Мне в конечном итоге нужно получить инфу о времени прибытия автобуса на остановку. Попробую еще что-нибудь поискать
295 1929023
>>28984
2гис апи смотрел?
296 1929058
Процедурный питухон в треде. Нужен совет (inb4 программирование не твоё).
Написал скрипт_1, который с моего рабочего пека из закрытой сетки через vpn по ssh лезет на удалённый сервак, на котором запускает скрипт_2, который выгружает из хранилища данные и архивит их, и через scp выгружает на мой рабочий пека, и потом эти данные переносятся на сетевой диск третьим лицам.
Проблема: я заебался всё это делать сам, хочу написать веб сервис или веб апи, чтобы третьи лица сами могли получить эти данные.
Вопрос: как делать, куда копать?
297 1929059
>>23442 (OP)
В чем идея второй картинки?
298 1929068
Всем привет. Как этот код работает подскажите? Как модно асайнить значение в функции через рекурсию этой функции. Спасибо.

математика (разбиение числа).
Вот само решение:
def s(h, w, tab):
if w == 0:
return 1
if w < h:
return 0
if tab[h][w] != 0:
return tab[h][w]
tab[h][w] = s(h + 1, w - h, tab) + s(h + 1, w, tab)
return tab[h][w]

def main(n):
tab = [[0 for _ in range(n + 1)] for _ in range(n + 2)]
return s(1, n, tab) - 1
299 1929070
>>29058
Мало данных. Эта вся впн-хуита нужна, или можно поднять сервер прямо там? Архвирование долго ждать или можно на ходу провернуть?
300 1929073
>>29058
джанго скачивание файлов
301 1929075
>>29068
В питоне всё ссылка, у тебя эта ссылка на список таскается в каждом вызове и список по ней меняется.
302 1929076
>>29068

> асайнить значение в функции через рекурсию этой функции


У тебя обычная мемоизация. В петухоне такого вообще вроде делать ни нужно - все из каропки.
303 1929082
>>29058

>я заебался всё это делать сам, хочу написать веб сервис или веб апи


Чет у тебя какие-то сложные костыли либо ты непонятно обьяснил. Не проще ли сделать например фтп сервер и выдавать доступ?
304 1929087
>>29070

>впн-хуита нужна


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

>можно поднять сервер прямо там


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

>Архвирование долго ждать


Долго

>>29082

>Не проще ли сделать например фтп сервер и выдавать доступ


Девопсам было не проще, а я не девопс
305 1929094
Ребзи, нужна помощь с телеграм ботом на aiogram, готов заплатить.
ТЗ и вопросы в телегу - @totsamiianon
306 1929096
>>29087

>по сути я это делаю без согласования с девопсами


Мамкин хацкер, ясно.
307 1929097
>>29096
Если бы они все не уволились, я бы этой хуйней (которую спихнули на меня) не занимался. До меня это делали вручную.
308 1929111
>>29059
Возможно, они хотят сказать, что питон начал опережать джаву в каких-нибудь рейтингах популярности, и эта популярность продолжает расти.
309 1929115
>>28480
Ты еще слишком ньюфаг.
310 1929121
>>29115
А у ньюфажества есть уровни?
311 1929133
>>29121
Джуниор ньюфаг.
312 1929162
>>29133
Сеньор ньюфаг со знанием четырех языков программирования
313 1929181
>>29162

>Сеньор ньюфаг со знанием четырех языков программирования


Я знаю больше и не вкатился даже на джуна.
314 1929205
>>29181
Джун-олдфаг это уже со знанием ассемблера.
Capture1.PNG5 Кб, 578x114
315 1929240
Двач помогай, я устал, не получилось нагуглить. Я полное нубло в питоне, увы пришлось код с R на питон переписать.
В жупитере\пичарме на десктопе всё норм запускается и отрабатывает. Когда отправляю код на гитлаб, собираю в джобу и пробую запустить - выдает такую ошибку:
df = df[df['param1'] > 0.0]
File "/usr/local/lib/python3.7/site-packages/pandas/core/frame.py", line 2902, in __getitem__
indexer = self.columns.get_loc(key)
File "/usr/local/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2893, in get_loc
raise KeyError(key) from err
KeyError: 'param1'

Часть кода - пик рил.
Суть кода подключаемся к БД, вытягиваем запросом данные, в пандасе ворочаем, засовывем обрато в БД.
316 1929241
>>29240
Пандас же только на конде работает, как ты его в пичарм сунул?
317 1929243
>>29241

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


Ты сам хоть понял, чего сказал?
318 1929244
>>29241
Хуй знает, наверно сперва делал в жупитере с пандасом, потом ушёл в пичарм и там уже поправил всё. Я год тому код писал и забыл. Я ваще дуплей не режу в питоне. Помогити, эту ебалу запустить. Снова перепроверил - в пичарме - заебись всё отработало, в ипомртах пандаса - нет.
319 1929245
>>29240
Я так понимаю, без индексов не хочет отрабатывать, верно?
Как это сделать ?
320 1929246
>>29240
Пиздец ты хлебушек. Закомментить ошибку, добавить print(df.columns.values.tolist()) и проверить, есть ли там 'param1' или нет мозгов не хватает?
321 1929249
>>29246

>Пиздец ты хлебушек.


Ну такой я у мамы.

>print(df.columns.values.tolist())


Есть и param1 и param2 и всё остальное. Правда я это на десктопе проверяю, а там всё и так заебца работает.
322 1929253
>>29249
Ну так у меня на десктопе тоже всё работает. а когда я потом в крон на рабочем пека добавляю, у меня ничего не работает. Наверно проблема не в десктопе и стоит проверять окружение в гитлабе?
323 1929257
>>29253
А даже если проверять, то что имено? Часть с импортом, коннекторами к БД, запросом в БД и фетч данных - видимо прошла на ура. Либо оно всё не скачалось и я пробую потрогать несуществующую таблицу.
324 1929265
>>29257
Разставил Принт Ок по ключевым моментам. Данные достаются. Значит чисто в тех превращениях данных ошибка.
325 1929274
>>29265
Значит при преобразовании данных из sql в df у тебя столбцы попадают индекс. Попробуй добавить df.reset_index(inplace=True).
326 1929292
>>29274
Уже пробовал. Навесил ОК на индекс, ОК проходит. Но всё так-же останавливается на начальной ошибке. Вот начало ошибки.
File "/usr/local/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2891, in get_loc
return self._engine.get_loc(casted_key)
327 1929301
>>29292
Значит что-то с кодировкой названий столбцов. Нужно добавлять COLLATE в sql запрос. Других идей у меня нет (из-за того что других проблем просто не может быть, если только ворочанием сам датафрейм не ломаешь).
328 1929320
Господа сеньоры огласите топ стек на 2021
329 1929328
>>29320
KekJS, но он пока ещё доделывается в подземных лабораториях ZOG.
330 1929334
как достать этот элемент селениумом, ебашу с нуля по сути, что в питоне и программировании, что в селениуме, по ощущениям тыкаю пальцем в небо, но кнопку нажимать скриптом научился за сегодня бы ЕСЛИ БЫ СУКА ПОНЯЛ КАК ЕЁ ВЫТАЩИТЬ
В видосе который я смотрю очень простой хтмл, а найк мудрит пиздец, если кто знает какие-либо крутые и понятные гайды по селениуму, желательно с потенциалом в хедлес, то был бы очень рад и благодарен помощи
среду я вроде норм настроил, сам браузер на найке у меня открылся.
331 1929338
>>29334
Там же _ первым символом, слепой штоле? Но вообще оно выглядит рандомно, небось меняется регулярно. Да и вообще ты зря полез в эти кроссовки будучи нубом, там пиздец царство ботоводов.
332 1929350
>>29338

>Там же _ первым символом


бля я олень

>Но вообще оно выглядит рандомно, небось меняется регулярно.


так и есть

>Да и вообще ты зря полез в эти кроссовки будучи нубом, там пиздец царство ботоводов.


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

class A:
____hui = read_from_file("hui")
def __init__(self):
____pass

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

вариант 1) запускать видеопоток в отдельном потоке и передавать в основной поток кадры, которые далее обрабатываются
вариант 2) ебануть while True цикл в мейне, и там уже вызывать методы из модуля захвата видеопотока
335 1929360
>>29352
Так и надо, что не работает-то?
336 1929379
>>29068
Можно чуть иначе, создаёшь словарь tab с интексацией по туплам (h, w)

предварительную инициализацию не делаешь, делаешь
if (h,w) in tab:
____return tab[(h,w)]
else:
____tab[(h,w)] = s(h + 1, w - h, tab) + s(h + 1, w, tab)

А более кондовый вариант, это вообще делать через
@functools.lru_cache
def s(h, w):

тогда lru_cache будет сам мемоизации производить, только по-умолчанию размер кеша небольшой, но это настраивается параметром хоть до бесконечности, смотри доку.
337 1929382
>>29352
Слёту должно работать, но файл у тебя будет открываться при запуске программы, а не при первом инстансе, возможно это не то, чего ты хочешь.
338 1929412
>>29087
Опиши, как это должно выглядеть со стороны пользователя.

То есть он заходит на твою страничку с веб интерфейсом, и что должен ввести и что должно произойти?

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

Если же нужна интерактивность, чтобы там показывалось, что задача стартовала, завершилась, сколько времени осталось и т.п., то уже сложнее. Всё сильно зависит от твоего скрипта.
339 1929448
>>29350
В чем суть твоего биза, кроссовки по акции?
340 1929517
Писали многие про Jupiter. Типо "крута, модна", посмотрел - это ж бля пиздец какой-то, сраный большой калькулятор да и нет нормальной интеграции с гитом. Это ж для детей каких-то ебаных, вам пидорасам дали нормальные IDE, кому бля всрался Jupiter?
341 1929518
>>29517
IDE это для разработчиков, а жупитер для студентоты и всяких научных хуев.
342 1929519
>>29352
У тебя как-то по наркоманский сделано.
Тебе надо при инициализации передавать значение для экземпляра класса.
Дальше ты читаешь свой файл, читаешь значение и передаешь его при итерации обьекта.
343 1929537
Привет, двач! Redpill me.

Я решил запилить свою геолокационную игру, что-то типа геокешинга, если вы понимаете о чем я. Сервер решил писать на джанге, тем более, у нее есть отличная функциональность ГИС-системы. Реализован сервер будет в качестве api - клиент будет кидать put с координатами в json, и получать какой-то результат от сервера. В чем минусы такой архитектуры?
344 1929581
>>29519
у меня одно значение на все экземпляры
каждый раз его не очень хочется читать
а если я укажу так:

hui = read_from_file("hui")

class A:
def __init__(self):
____pass
def add(self):
____return hui * 2

будет ли это работать, если я инстанциирую класс вообще в другом модуле, в котором пишу
from a_ import A
346 1929588
>>29581
И нет, не будет, потому что ты импортируешь только сам класс. Чтобы работало, нужно импортировать весь модуль.
347 1929593
>>29581
Почему не?
class A:
def __init__(self, hui):
self.hui = hui ^ 2
348 1929595
>>29581
Всё у тебя правильно.
https://ideone.com/mi3vfo
Оно выполняется один раз при определении класса на старте.
349 1929616
Как узнать в каком порядке питон просматривает директории в поисках либы?
Куда следует класть libname.py, чтобы он цеплялся по import из любой директории?
350 1929620
>>29616
PYTHONPATH жи есть.
Допустим у тебя репа со своими говноподелками и надо их подключать в другой проект без copy-paste. Добавляешь репу в PYTHONPATH и все.
351 1929622
>>29616
точно не помню
но он сперва просматривает стандартные, по путям из sys.path
чтобы он цеплялся из любой дирректории, нужно сделать отдельную папку с __init__.py - тогда эта папка будет восприниматься как пэкэдж и ты можешь ее импортировать
например
\package
----__init__.py
----lib.py

зызывается так:
1) import package.lib
2) from package import lib
ну и прочие вариации
352 1929623
>>29616

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


cmd -> path
353 1929625
>>29622

> но он сперва просматривает стандартные, потом по путям из sys.path


фикс
354 1929627
аноны, есть ли какие-нибудь бесп практис на тему того, что нужно класть в __init__.py?
355 1929632
>>29627
Ничего или код, который будет выполняться при запуске этого модуля python3 -m src.main, где в __init.py__ например прописана загрузка load_dotenv или что-то еще. Главное совсем уж логику не скрывать там. Там же может быть импорт всего говна из поддиректорий или формирование новых объектов.
356 1929637
>>29632
угу, спс
357 1929644
>>29637
А вообще смотри на github исходники и кто как использует init.py

https://github.com/tortoise/tortoise-orm/tree/develop/tortoise

Можешь просто искать по reference что откуда берется. В этом плане Питон простой.
358 1929659
бля я понял почему не работало
но не понял какого хрена
короче я сдела вот так

hui = read_from_file("hui")

class A:
def __init__(self):
____pass
def add(self):
____return hui * 2

и потом импортировал модуль
и он не мог считать файл
прекол в том, что у меня лежали в разных папках два пэкэджа (ну логично)
и вот ОКАЗЫВАЕТСЯ, когда я импортирую модуль, то пути у импортированного модуля херятся, тк питон думает, что теперь модуль находится по пути файла, который его импортирует
немного непонятно написал, но если что вот
359 1929661
>>29659
но это залупа какая-то, если честно
абсолютно неожидаемое поведение
360 1929663
>>29659
>>29661
Абсолютно ожидаемое и очевидное.
Ты выполняешь свой скрипт и в его контексте выполняются и импортируемые модули.
361 1929666
>>29663
ну я так тебе скажу
я как бы и бомблюсь
ну а вообще и сам дурак, что не знал
362 1929702
народ
у меня есть функция, я хочу к ней аннотировать тип возвращаемного значения
но
у меня может вернуться, условно, инт, а может None
пайчарм на такое ругается - говорит, что нан это не инт(что в целом-то логично)
что делать в таком случае?
363 1929712
>>29702
-> Optional[int]
364 1929714
>>29712
лучший
365 1929748
>>29622 >>29620 >>29623
Спасибо, понял куда копать.
366 1929803
Почему в пайчарме паказывает какую-то не ту документацию?
В юпитер ноутбуке все норм.
367 1929804
>>29803

> паказывает


Вот это я оплашал.
368 1929808
>>29517

>Писали многие про Jupiter. Типо "крута, модна", посмотрел - это ж бля пиздец какой-то


Жупитер хвалят неосиляторы, не умеющие толком программировать или не желающие тратить время на изучение нормальных инструментов.
369 1929825
>>29808
Когда нужно работать с кучей датафреймов, в которых лежат данные из разных источников (скл, монга, хадуп, цсв и т.п.), при написании прототипа и при добавлении нового функционала нахуя каждый раз запускать скрипт и ждать, пока все шаги выполнятся?
370 1929836
>>29825

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


В пайчарме, внезапно, тоже можно использовать интерактивный питон.
371 1929840
чет я совсем туплю поцонва
спрошу еще раз (до этого просто никто не ответил)
короче у меня есть камера, я хочу с нее считывать данные и обрабатывать
стоит ли мне запилить захват камеры в отдельный поток? ГИЛ же ведь превратит мою прогу в однопоточную все равно
Может у вас есть похожие кейсы. Вроде как и хочется многопточку вставить, но уместно ли это тут?
372 1929856
>>29836
Внезапно, интерактивный код можно писать и в python shell.
Он там не такой удобный, и не надо ебать мозги с установкой venv и пакетов, когда можно проверить или внести правки в код, тестируя на mybinder.
Я сам пользуюсь PyCharm для разработки, но кукарекать, что "Jupyer/Anaconda/etc ряяя для дитей нинужна тому шо мне нинужна" долбоебизм. Это тоже инструменты, и если тебе нужен фломастер зеленого цвета, то "нинужна" бежать в магазин за набором из всех цветов.
373 1929861
Всем ку, почему в шапке про вкат ничего?
Востребованы щас путон-спецы и какой порог входа?
374 1929878
>>29856

>Это тоже инструменты, и если тебе нужен фломастер зеленого цвета, то "нинужна" бежать в магазин за набором из всех цветов.


Ну так назови преимущества или просто уникальные фичи жупитера по сравнению с пайчармом. Мне в голову приходит только Markdown ячейки и сохранение принтов и картинок в один JSON файл. Польза от них сомнительна, а в замен ты получаешь отсутствие всех фишек IDE и невозможность структурировать проект.
375 1929886
>>29878
В pycharm не могу быстро тестить нейронки, а в jupyter могу (через collaboratory), хоть он тут и не конечный инструмент, а прослойка. Мне этого достаточно.
376 1929897
>>29886

>а в jupyter могу (через collaboratory)


Ты про гугл колаб? Ну, если настолько нищий, что нет денег на свою видеокарту, то смысл использовать есть.
377 1929901
>>29897
Ну да, на моей 2070s не так быстро обучается. Мне за слаем из титанов быстрей бежать?
378 1929902
>>29897
Вангую у него пека для учебы со всройкой.
>>29878
Так жупитер и чарм для разных задач.
379 1929908
>>29901

>Ну да, на моей 2070s не так быстро


Пиздишь. В колабе стоит древняя K80.
>>29902

>Так жупитер и чарм для разных задач.


Так мы и выясняем, для каких конкретно задач нужен жупитер. Пока что внятного ответа никто не дал.
380 1929911
Даны 2 катета. Найти гипотенузу и угол.
381 1929924
>>29908

>Пиздишь. В колабе стоит древняя K80.


Что не мешает ей падать, когда оставляешь на ночь. Памяти там больше.

>Пока что внятного ответа никто не дал.


Тебе уже написали, что как минимум для обучения/тестирования нейросетей. Для одноглазых калек (в т.ч. меня), которым лень ебаться с скачиванием и установкой, настройкой окружения и пип инстоллами пакетов, особенно когда у тебя не всегда есть доступ к домашнему пека и приходится перебиваться рабочим ноутбуком, можно зайти на mybinder и там всё делать. Никто не спорит, что использовать его в серьезной разработке стоит.
382 1929927
>>29924
не падать
не стоит
селффикс
383 1929932
>>29924
>>29927

>падать


не падать

> стоит


не стоит

селфселффикс
спасибо ведройду
384 1929939
>>29911
Ну так ищи, хули ты тут сидишь?
385 1929941
Почему петухон не хочет вводить нормальные инструменты для создания мобильных приложений. Уже даже в жсе это есть а великие петухонисты на уровне пхп
386 1929946
>>29924

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


В общем понятно. Ты описываешь преимущество не жупитера, а колаба.
387 1929950
>>29941
Это ты придумал отмазу, почему не учится питон?
388 1929960
>>29950

>мгновенная проекция вкатуна

389 1929964
>>29960
Что, угадал?
390 1929966
>>29964
Что угадал?
391 1929967
>>29946
Потому что я не разработчик, а аналитик, и мне полезны любые инструменты, с помощью которых можно сделать или протестировать прототип. Даже если в этом инструменте мне нужна только 1 фича, и даже если у серьезных дядек он не котируется, мне это экономит время и нервы.
А в чем и как уже они потом это в прод будут переписывать мне похуй (и никто мне не доплатит, если я буду ради них напрягаться). Но дома у меня установлен pycharm, и для второй работы всё пишу там.
А вообще, во многих популярных курсах по АДу, в ШАДе и т.п. все учатся в jupyter.
Screenshot from 2021-02-03 22-25-37.png68 Кб, 799x321
393 1930008
>>29981
Ни о чём. Так, пытаются по мелочам тайпинг-аннотации допиливать, и на этом всё.
394 1930045
>>30008
Ну а хуле. С релизным циклом в полтора года фич не напилишь. Надеюсь, свичи завезут вскоре
395 1930100
d = ("flowers")
"flowers" in d

ПОЧЕМУ У МЕНЯ НИЧЕГО НЕ ПРОИСХОДИТ. ЧТО Я ДЕЛАЮ НЕ ПРАВИЛЬНО? Я НАЖИМАЮ run И ВСЁ, КОНСОЛЬ ПУСТАЯ.
396 1930103
>>30100
Для тупли с одним элементом надо запятую в конце.
397 1930105
Хотя оно и так должно работать как подстрока, лол.
398 1930106
>>30103
Зачем там запятую? Я нигде в примерах не видел её
image.png6 Кб, 290x137
399 1930109
>>30106
Надо было покупать курсы за миллион, а то так и останешься неучем.
400 1930113
>>30109
Хуета какая-то. Я пытался с тремя значениями что-то сделать, где была запятая и нихуя не получалось
401 1930114
>>30113
Это применяется только для одного элемента.
402 1930115
>>30114
Спасибо. Всё равно не понимаю, почему это нигде не было указано
absolute-beginners.jpg67 Кб, 1024x576
403 1930145
Пикча с гитхаба.
404 1930152
405 1930266
>>29911
берешь и формулу в принт вставляешь
406 1930268
>>30106
чтобы обозначить что это кортеж, а не переменная
Screenshot - 2021-02-04T121225.520.png18 Кб, 563x177
407 1930270
>>30115
Как я понял, в питоне вообще дохуя мелочей, про которые не рассказывают даже на курсах.
чтобы все понять нужно читать документацию, вот пример
408 1930285
аноны, поясните за бест практис
с одной стороны - класс, у которого все методы статические и есть пару полей
с другой стороны - просто модуль, в котором есть глобальные переменные и функции
по факту, разницы нихуя (ну разве что класс солиднее смотрится), но вопрос: как лучше? ведь оба варианта справляются одинаково с задачей
409 1930287
>>30285
Модуль лучше, ты потом его сможешь использовать в другом месте.
410 1930300
ебать
хочу инициализировать пустую переменную класса
пишу

class Pizda:
___def __init__(self):
______pass

class Hui:
___def __init__(self):
______self.pizda : Pizda = None

но пайчарм кидат ворнинг, потому что expect Pizda got None instead (прям как в жизни лол)
как правильно инициализровать переменные пустым значением?
411 1930303
>>30300

>Pizda = ''


Например.
412 1930304
>>30303
не понял
поясни плез
413 1930307
>>30304
Ну епта смори короче, None это ничего, а так ты создаешь переменную которая ровна пустой строке '' это джве ординарные ковычки, можешь взять "" чтобы было понятней.
414 1930310
>>30300
просто self.pizda : Pizda
415 1930316
>>30307
браток, так теперь expect Pizda got STR instead
416 1930319
>>30310
я тоже так думал
но если я пишу в другом методе типа

__def foo(self):
____self.pizda = p + i + z + d + a

он говорит "какого хуя ты инициализируешь не в инит"
417 1930324
>>30319

>он говорит "какого хуя ты инициализируешь не в инит"


Потому что тебе надо передать какое-то значение для p + i + z + d + a в foo.
418 1930329
>>30319
Пишет как есть. Ты хинтнул, но не инициализровал.
419 1930330
>>30329
да логично
как взрослые дяди такие вещи реализуют?
420 1930334
>>30330
Ну если ты хочешь следовать пепам, то не инициализируй не в конструкторе, это вообще не имеет отношения к тайпингу.
421 1930339
>>30334
пеп говорит, что если у класса есть поле, то оно ДОЛЖНО быть инициализированно в конструкторе?
422 1930357
>>30339
Если там указан номер пепа, то да. Если нет, то это сам пучарм бухтит.
423 1930358
>>30357
спасибо всем чуваки
424 1930360
>>30270
Да тут какбэ логично, т.к. питон наверняка думает что это просто выражение тип (1 + 2) если ему не показать что это список элементов с помощью запятой
425 1930382
>>30360
ну если там 1 элемент то запятая ставится просто чтобы показать что это кортеж.
алсо можно просто прописать что это тупле
426 1930443
>>30270
Спасибо, буду обращаться к документации
427 1930448
Как писать в ООП стиле? Я просто Н Е П О Н И М А Ю эту хуйню. Когда я пытаюсь что-то сделать используя ОПП, то у меня все заканчивается тем, что я либо тупо все действия совершаю в ините, либо большую часть действий совершаю в ините и в еще паре методов. То есть я тупо использую класс как обычную функцию.
Че делать-то, как осознать эту херню? ООП для меня стало просто камнем преткновения, через который я никак не могу перешагнуть. В книгах какие-то дегенеративные примеры с пиццами и эмплоерами, а реальности когда я смотрю на это в чужом коде, то это какой-то пиздец и взрыв мозга, я вообще не могу уловить логики построения программы.
428 1930453
>>30443
Кстати, она есть на русском? а то на инглише не очень прикольно читать.
429 1930457
>>30448

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


Ты все правильно понял. Для этого и нужен ООП.
430 1930458
>>30448

> в ООП стиле


>пистон


https://www.youtube.com/watch?v=Z8-EM1znIrU
431 1930461
>>30453
Не искал ещё
Да и лучше на оригинале читать
432 1930571
>>29803
Бамп вопросу
433 1930577
Анон почаму это не работает?

class WebServerRunner():
____http_port = 8080
____def __init__(self, httpstate, port=self.__class__.http_port):
---
NameError: name 'self' is not defined

И почти тожесамое:
____@classmethod
____async def run(cls, httpstate, port=cls.http_port):
---
Тоже cls неопределен.
Чо за бред? Ведь если вместо параметра класс.порта прописать константу, то все работает. И в то же время он ведь не ругается что первым аргументом методов идут чистые self и cls - которые типо не определены. Значит они определены же. Но что это тогда за ошибка?
Типо параметры вызова интерпретируются за пределами объекта чтоле? А первый аргумент self, cls непрозрачно неинтерпретируется? (ибо другое поведение наблюдается)
Как пофиксить?
434 1930584
>>30577
Потому что дефолтные значения вычисляются при определении функции, там нихуя нет в это время.
435 1930600
>>30448
Для этого тебе нужны ещё классы. Каждое твоё действие в ините выносишь в отдельный класс отдельного метода.
Если там:
1. Скачать CSV
2. Спарсить CSV
3. Перегнать в XML
4. Спарсить XML
5. Сохранить XML

То делаешь FileDownloader , CsvParser, CsvConverter, XmlParser, FileSaver.
436 1930608
>>30461
там же довольно лютые термины используются!
437 1930609
>>30600
Это классика
438 1930640
>>30448

>Как писать в ООП стиле?


А тебе это нужно? ООП начинается с наследования, но нужно это обычно в достаточно больших программах. ООП нужно для упрощения, а ты пытаешься наоборот с помощью ООП усложнять.
439 1930647
>>30453
Нет, конечно, откуда бы ей взяться?
440 1930651
Кто-нибудь в vim кодит? Какой плагин для auto completion накатить?
Поставил какой-то https://github.com/sentientmachine/Pretty-Vim-Python/, но он pattern'ы прямо в тексте отображает, а описание функций в отдельном окне вверху. Мне не нравится такое, когда текст скачет.
441 1930653
>>30448
Тоже нихуя не понимаю ооп. Два раза прогорел когда собеседовался с основного места работы. Чувствую себя идиотом.
442 1930664
Сап, анон. Мечтаю выкатиться из болота qa auto, вот только куда? ETL, бэкенд (но только не девопс)? Хочется пилить что-то своё, а не бежать по рельсам за поездом, который уехал пять лет назад.
Есть у кого-нибудь кулстори по этому поводу?
443 1930671
>>30664

>Хочется пилить что-то своё


Ну так пили.
444 1930676
>>30651
upd не то скопировал
https://github.com/davidhalter/jedi-vim
445 1930679
>>30676
upd, отбой, почитал settings
446 1930700
>>30608
Ну да, но перевод на русский может не содержать всей той ценной и достоверной информации
image78 Кб, 400x902
447 1930775
Платиновый вопрос. Дайте пожалуйста ссылку на хороший/быстрый курс питона с задачками на степике.
448 1930823
>>30700
Если перевод от шаристого, то всё будет чики-пуки!
449 1930827
>>30647
Ну ядумал может какой нибудь энтузиаст переведёт, это же логично! даже порнуху ведь переводят!
450 1930829
>>30775
Почему именно степик? ты его фанат?
451 1930836
Анон посоветуй как.
Пытаюсь скрыть всю логику по работе с сущностью (включая sub классы) в одном классе. (конкретно пытаюсь инкапсулировать вот это https://docs.aiogram.dev/en/latest/migration_1_to_2.html#filters-factory как подкласс, самого запускателя бота уже засунул).
И вот у меня получается такая фигня:

class BotRunner():
____куча методов пораждающих переменные и запускающих чегото асинхронно

____class MyFilter():
________куча методов желающих пообращаться к переменным экземпляра класса выше

Я обращаюсь к self.bot определенном в BotRunner экземпляре из MyFilter и мне говорят
____member = await self.bot.get_chat_member(message.chat.id, message.from_user.id)
AttributeError: 'MyFilter' object has no attribute 'bot'

Можно ли как-то получить доступ к переменным объекта выше из подкласса не залезая глубоко подкапот библиотек?

>>30584
Спс.
Обошолся костыликами с if.
452 1930841
>>30836

>подкласс


Не подкласс, конечно, а вложеный класс.
Ведь первое это чисто про наследование, а его нет.
Хотфикс.
453 1930842
>>30775
Поищи курсы от computer science center (и иже с ним), от них обычно высококачественные курсы.
image159 Кб, 1920x1080
454 1930848
Аноны, нид хэлп. Сегодня начал учиться на питоне, через яндекс практикум и столкнулся с такой задаче на пике. Написано, что решил правильно, но скажите на счёт 15й строки там так и подразумевалось в задании? Мб вообще я хуйни нахуевертил.
455 1930850
Конкарент аналоги джанги есть?
456 1930852
>>30848
Там достаточно remainder == 0, а не твоя простыня.
457 1930858
>>30848
messages_count надо проверять только для частных случаев, когда количество сообщений от 11 до 19. В остальных случаях ты остаток проверяешь, remainder.

Шаблонный код их кривой на самом деле.
458 1930860
>>30852
>>30858
Спасибо. Перечитал, что такое remainder, я обосрался и думал это тупо деление на 10.
image27 Кб, 480x360
459 1930861
>>30829
Нет, просто codewars я уже решаю, а о других площадках почти ничего не знаю. В принципе подойдёт любая платформа с курсом теории и задачами/тестами.
>>30842
Спасибо.
460 1930895
>>30861
что за кодварс? приколи темой. импортные курсы?
461 1930897
>>30848
Там бесплатные курсы? приколи темой, полупацан.
462 1930914
>>30895
https://www.codewars.com/ всякие задачки с возможностью просмотра различных решений. Но нет справочной информации.
463 1930915
>>30897
Решил как гуманитарий, если не хуже. Что-то между собакой и гуманитарием.
464 1930962
Подскажите плиз как сделать элементарную проверку времени runtime как fixture. Чтобы при каждом запуске любого теста она выдавала рантайм равно столько то секунд по дефолту. Спасибо.
466 1930999
Поделитель опытом, пожалуйста. Есть набор User-Agent'ов. Как и в какую структуру их затолкать, чтобы вызывать рандомно из другой функции?
Снимок.PNG5 Кб, 365x105
467 1931005
468 1931024
Есть простой способ написать autocomplete? Что-то вроде скормить ему файлы проекта и как в интерактивной среде получать инфу по табуляции, желательно с простым доступом к doc strings?

Хотя наверное если бы это было так просто это было бы реализовано в стандартном редакторе.
469 1931071
>>30915
Ват? о чём ты?
>>30914
понял. зарегился.
470 1931114
>>30664
Такая же ситуация, анонче. Два года в qa automation. Кажется, что сильно засиделся.

Как мне кажется, легче всего будет переметнуться в бекенд, т.к скорее всего ты уже как минимум знаешь как работают сети, БД. Попробуй написать несложный проект на Джанго, поймёшь надо тебе оно или нет.
471 1931164
>>31114
Откуда ему знать, как работают сети?
472 1931166
>>30850
Разве что в комплекте с конкарент аналогом питона.
473 1931168
>>31164
Он работал прокладчиком проводов в ростелекоме два года
474 1931186
>>30897
Да, там есть бесплатный модуль.
475 1931222
>>31186
Он вроде только на первую неделю? а потом 120к заплати за 9 месяцев?
он норм или тупо основы?
Помогите с спецификацией nonlocal 476 1931225
итак, есть функция с метафункциями:

x = 0
def outer():
x = 1
def inner():
nonlocal x
x = 2
def vnat():
nonlocal x
x = 5
print('vnat:', x)

vnat()

print('inner:', x)

inner()
print('outer:', x)

outer()
print('global:', x)


Вот вывод:

vnat: 5
inner: 5
outer: 5
global: 0

В def outer() берется значение у def vnat()(5). То есть ''заражение'' коэффом идет идет все переменные подряд. А как указать def outer() со значением nonlocal x из def inner()[2]?

Выход мне нужен:

vnat: 5
inner: 5
outer: 2
global: 0
Помогите с спецификацией nonlocal 476 1931225
итак, есть функция с метафункциями:

x = 0
def outer():
x = 1
def inner():
nonlocal x
x = 2
def vnat():
nonlocal x
x = 5
print('vnat:', x)

vnat()

print('inner:', x)

inner()
print('outer:', x)

outer()
print('global:', x)


Вот вывод:

vnat: 5
inner: 5
outer: 5
global: 0

В def outer() берется значение у def vnat()(5). То есть ''заражение'' коэффом идет идет все переменные подряд. А как указать def outer() со значением nonlocal x из def inner()[2]?

Выход мне нужен:

vnat: 5
inner: 5
outer: 2
global: 0
477 1931280
>>31222
По времени он не ограничен, просто задания из этого модуля бесплатные, а потом, если хочешь, нужно платить. Не могу сказать о нём ничего, потому что это мой первый курс по программированию вообще. Скилбокс все обсирали и там нет бесплатного демо, поэтому выбрал яндекс для начала.
478 1931308
>>31280
ок, понял. если что будешь платить? а про степик не слышал? про питонтутор? про информатикс?
479 1931309
>>31280
Что знаешь о курсере?
480 1931436
>>31225
никак, сам Гвидо указывал на такие нюансы. Остается референс на x. Единственный вариант работать с объектами Singleton и идентификаторами.
481 1931587
хай геис
скажите, куда пойти, если хочешь работать с питоном, но не хочешь в веб (доставать странички и класть обратно, о других применениях хз)?
482 1931608
Крякал кто пайчарм с помощью BetterIntelliJ?
Как полёт?
483 1931613
>>31587
Ну по факту - датасаенс. Дергать данные, обрабатывать данные, класть данные.
484 1931615
>>31613
только два применения?
а какже какие-нибудь скраперы? правда там вакансии 2 с половиной
485 1931617
>>31615
Да есть вакансии и на обычное писание командных скриптов. Но тебя туда не возьмут, скорее всего. А так да, говорят еще машинлернинг, но про это не знаю нихуя.

Я сам сначала в бэк идти не хотел, но потом втянулся, все-таки инетересно это.
486 1931619
>>31617
о, расскажи, что именно интересного
просто в моем понимании (точнее после общения на двачах) у меня сложилось впечатление, что это вообще макакин труд
я к этой идее отношусь с подозрением - все-таки питон сложный язык и макакой тут быть не очень просто
алсо, почему не возьмут на скриптописание? слишком домэйн специфик?
4D4BA019-22BC-465B-B629-F32B1B6E8F7E.jpeg412 Кб, 1124x1485
487 1931660
Привет! Как можно сделать быстрее вложенный луп уже с имеющимся словарем?
У меня есть for key, value in json:
——for dict in value:
——If oneField != “” and secondField != “”:
—— break
————-for key2, value2 in dictionary.items():
——————-и тут уже условия пошли дальше на прочерку.

Работает не очень быстро, оно и понятно, но я не придумал ничего лучше. Спасибо
488 1931665
>>31660
алгоритмы
489 1931666
>>30995
Да, спасибо!
490 1931679
>>31587
Дота саенс.
491 1931681
>>31660
Чему там быть не быстро, и почему понятно?
492 1931684
>>31619

>питон сложный язык


>питон


>сложный


лул
493 1931685
>>31681
Тройной луп же.
>>31665
Например?
494 1931689
>>31685
А я ебу какие у тебя там данные.
495 1931690
>>31685
Да хоть пятерной, если это нужно. Или ты на одном и том же уровне несколько раз итерируешь, но вложенно?
Пример какой-то корявый.
496 1931699
>>31587

>но не хочешь в веб (доставать странички и класть обратно, о других применениях хз)?


Что лол, ты плохо понимаешь что происходит на бэке среднего проекта, куча межсервисного взаимодействия, шедулеров, очередей, асинхронных задач.
497 1931735
>>31699
ты прав, дружище, я и правда плохо знаю)
поэтому и написал в тред)
498 1931755
>>31619
ну это кажется так из-за выражений типа "веб-макака" и прочее. Но они относятся к пыхопешникам и прочим джаваскриптерам. По факту ты будешь писать реальные приложения, которые будут решать реальные бизнес-задачи. Попробуй, посмотри на джангу
image.png10 Кб, 688x80
499 1931756
Использую input.split для ввода чисел через пробел. Можно ли как-то избежать бага, если вводится лишь одно число или не число
500 1931769
>>31755

>Джанго


>Фреймворк


>Нет асинхронки


>Решает задачи


Это потому сложные процессы забирают у таких макак и переносят на Go при наличии NumPy?
501 1931772
>>31769

>Нет асинхронки


И? Бэкграунд процессы есть, воркеры есть, что ты еще хочешь от веб-фреймворка, шизло?
502 1931788
>>31772
>>31769
так есть же асинхронка
нет распараллеливания на треды
и то есть ведь ГИЛ фри интерпретаторы
мимо НЕ питонщик
503 1931808
Посоветуйте intermediate книжку, сконцентрированную на прикладных знаниях. Типа второй книги Лутца (Programming Python), но не такую древнюю, желательно на английском.
504 1931847
>>31769

>Это потому сложные процессы забирают у таких макак и переносят на Go при наличии NumPy?


Что за мешанина "умных слов"?
Джанго это большой и зрелый фреймворк со своей большой нишей. Далеко не везде нужна асинхронность.

Для асинхронности есть свои фреймворки.

Numpy вообще к теме не имеет никакого отношение, это про принципиально другой класс задач.

При этом питон не для макак, потому что на питоне макака-задачи не делают. Их делают на других платформах.
505 1931850
>>31690
Вложено итерирую, да.
507 1981965
>>23442 (OP)
Двачик помоги. Другану нужна помощь в Делфи. Я в этом не шарю от слова совсем, а над ним нависла угроза отчисления. Нужно нарисовать Чебурашку. Поможет кто? (желательно код, если вы понимаете как его сделать)
Тред утонул или удален.
Это копия, сохраненная 10 мая 2021 года.

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

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