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

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

 Аноним 27/01/21 Срд 16:58:28 #1 №1923442 
lg-what-is-the-purpose-of-python-language.jpeg
pythonbeliebteralsjava-pythonueberholtjava.jpeg
Тред, посвящённый языку программирования Питон, #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
Аноним 27/01/21 Срд 17:17:41 #2 №1923481 
images.jpg
Пожалуйста умные аноны помогите!
Есть простенькая программа с закрытым исходным кодом,необходимо было создать интерфейс.
Написал с помощью 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()
Аноним 27/01/21 Срд 17:21:05 #3 №1923486 
>>1923442 (OP)
Сап
Подскажите есть ли универсальные гайды по работе с дейтой любой?
Допустим у нас есть пара столбов (или колонок) числовых данных. Что можно с ними сделать использую питон, пандус и прочие библиотеки. Мне на ум приходит только корреляция каждого из столбов друг с другом.
Аноним 27/01/21 Срд 17:25:11 #4 №1923495 
image.png
Есть какие-то еще способы безопасного извлечения атрибутов? Вот скажем хочу из объекта вытащить цепочкой obj.departments.values.first но на любом моменте тут может выскачить ошибка с несуществующим атрибутов. Заделал решение как на пикриле, но выглядит по-уебски, нужно всегда передавать это значение через lambda-функцию чтоб ошибок раньше времени не падало
Аноним 27/01/21 Срд 18:04:48 #5 №1923528 
Вкот, братья -питонщики!
Аноним 27/01/21 Срд 18:58:56 #6 №1923593 
Такое дело, вот вкатился на работку 2 месяца назад, до этого фрилансил месяцев 8, чувствую что остановился в развитии. Тип, освоился с новым местом, но глобального роста в скилах не могу получить от задач, которые там есть. Тип, сижу один пилю mvp, есть тимлид супер занятой, есть менеджер(наверное так его стоит назвать), который в тех.части вообще не шарит. Просил намутить мне ревьюера кода, но отшили мягко. Сейчас ситуация не совсем подходящая чтоб съебнуть, но в крысу подыскиваю местечко.
Как развиваться не зависимо от работки, писать пет проекты, а кто мне скажет где хуйню творю? Книжечки какое-то, но то что открывал - тупо синтаксис и пояснение, что уже знаю. Начал чёт django колупать, но не уверен, что его стоит, мб flask? Крч да, запутался памагите
Аноним 27/01/21 Срд 19:04:58 #7 №1923602 
>>1923593
А как ты хочешь развиваться? Поясняй.
Аноним 27/01/21 Срд 19:21:02 #8 №1923617 
>>1923602
Интересны автоматизация всякая, хотел устроиться до этой компании туда где занимаются умными домами, автоматизацией всего и всё, но не взяли. Тут торговых роботов пилю.
Для всяких нейроночек и биг даты, проблема в вышке, забил на неё хуй, как закончил 11 классов и ушёл в шарагу, не профильную.
Backend вот пытаюсь с джангой подружиться.
Развиваться куда, я вообще хз, вроде всё интересно
Хочу те скилы, что подороже продать можно
Вот дают мне задачу, я понимаю как решить её, делаю, чёт понимаю, что не знаю сделать - гуглю. Всё, не понимаю куда расти и что делать, чтоб с голой жопой не остаться
Аноним 27/01/21 Срд 20:31:35 #9 №1923686 
>>1923593
Сколько ты уже в питоне, брат? Как быстро освоился?
Аноним 27/01/21 Срд 20:39:14 #10 №1923694 
>>1923495
Сосешь?
Аноним 27/01/21 Срд 20:48:51 #11 №1923699 
>>1923686
Меньше года, почти сразу фрилансом занялся. До этого c++,c#, delphi. В программирование варюсь уже лет 6-7. Типо ситуация в том что везде я на уровне по рофлу пописать что-то был, а тут уже серьёзно начал подходить.
А что?
Аноним 27/01/21 Срд 20:52:15 #12 №1923703 
>>1923699
Почему именно сейчас засерьезнел? я просто спросил, думал ты вкатывался с нуля, челик.
Аноним 27/01/21 Срд 21:00:30 #13 №1923712 
a1K2VwG700b.jpg
Памахити

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

Написал код.
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}?
Но тогда идентификатор придумать — задача нетривиальная, потому что они не все уникальны, скорее некая комбинация будет уникальной, которую в логе ещё надо найти.
?? Шото ещё?




Аноним 27/01/21 Срд 21:04:11 #14 №1923717 
>>1923712
Нихуя не понятно, покажи пример этого лога и что там надо.
Аноним 27/01/21 Срд 21:10:10 #15 №1923728 
>>1923712
Я так и не понял че ты хочешь? Медленно или память жрет?
Аноним 27/01/21 Срд 21:11:07 #16 №1923729 
>>1923703
Школу закончил, не поступил в норм вуз, подумал ну хули делать, пойду в шарагу, буду работать. До этого всякие проектики брал, в конце августа на поток поставил, отложил деняк, переехал с деревни в ДС2. В целом доволен вполне таким выбором, но угнетает факт того что я не знаю куда расти сейчас.
Былоб проще если, я не вдуплял какую-нибудь многопоточность, асинхронность, взял да и прочёл книжечку, статейки. А так я вроде и знаю достаточно, могу применить, но очково что нет прогресса и рыночек меня порешает
Ну не книжки для сеньёров мне читать, про то как строить архитектуры всякие крутые...
Аноним 27/01/21 Срд 21:13:17 #17 №1923734 
>>1923712
ну ты же как то отличаешь старый файл от новых? Почему не можешь это отличие взять за ключ?
Аноним 27/01/21 Срд 21:18:52 #18 №1923737 
FLASK
У меня есть словарь состоящий из uid : {словарь2}
Как мне достать значение по ключу из словаря2 в html страничке?

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

Помогите плиз нагуглить не могу
Аноним 27/01/21 Срд 21:19:43 #19 №1923740 
>>1923737
Причем, если я просто {{ property}} вывожу то оно работает
Аноним 27/01/21 Срд 21:30:26 #20 №1923747 
>>1923717
[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] Завершаем приём звукового потока для файла {путь}


и так далее
В каждой строке идёт новая дополнительная информация, при этом {путь} не обязан быть уникальным, уникальная только связка {путь} и [число], которое, однако(число), сбрасывается после перезапуска модуля
Аноним 27/01/21 Срд 21:32:41 #21 №1923749 
>>1923747
и как часто перезапускается этот модуль
Аноним 27/01/21 Срд 21:34:13 #22 №1923750 
>>1923747
Ну тогда ты какую-то хуйню делаешь с объектами и листами.
Создаешь словарь и ключами эти айдишки, значением структуры с нужными данными, всё. По событию закрытия файла удаляешь этот ключ из словаря.
Аноним 27/01/21 Срд 21:36:58 #23 №1923754 
>>1923747
на каждую строку, если это не Новый файл с именем {путь} добавлен в обработку, у меня происходит лукап из существующих файлов, есть ли там уже объект с path={путь} и path.id=[число]

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

stack_list.append(working_list.copy())
del working_list[:]
И по новой ебашу в воркинг лист, как раз из-за неуникальности айдишников
>>1923749
Мне не нужно удалять ключи, мне наоборот нужно сохранить всё, что я нашел, чтобы потом писать статистику, типа, обработано 100к файлов, из них с ошибками 159, при этом в направлении x было 23к, в направлении y было 30к и т.д.
Аноним 27/01/21 Срд 21:37:37 #24 №1923755 
>>1923754
>path={путь} и path.id=[число]
читать как
path={путь} и id=[число]
Аноним 27/01/21 Срд 21:39:23 #25 №1923758 
>>1923750
бля тогда я привел плохой пример. допустим мне надо достать proprety['name'], proprety['date']. Как мне это сделать из кода сейчас?
Аноним 27/01/21 Срд 21:40:36 #26 №1923760 
>>1923758
сука не на тот ответил сорри,
>>1923737 это мой пост
Аноним 27/01/21 Срд 21:40:48 #27 №1923761 
>>1923750
При обработке я могу попасть в лог, в котором нет записи Новый файл с именем создан, потому что, например, эта запись в логе за предыдущий час
Тогда я не смогу засунуть путь как айдишник
Поэтому я и выбрал объекты, чтобы туда херачить инфу по мере поступления
Аноним 27/01/21 Срд 21:45:08 #28 №1923768 
>>1923761
Ну так если ты их подряд молотишь, то всё будет.
Может надо будет сделать ещё дополнительный словарь для маппинга путь-айди, раз они меняются.
Аноним 27/01/21 Срд 21:48:35 #29 №1923774 
>>1923768
Нет, это не гарантировано
Если я смотрю все логи за сегодня, а новый файл прилетел в 23:59 вчера?
Аноним 27/01/21 Срд 21:57:38 #30 №1923778 
>>1923774
Вообще, я имел в виду эти цифровые айдишки.
Но если оно решабально твоим способом, то и на словари можно перекатить, мне лень вникать детально.
Аноним 27/01/21 Срд 22:03:29 #31 №1923788 
>>1923778
Я почитал, у меня вариантов мало
Либо я делаю ndarray вместо листа, либо я переделываю в терминах словаря, с тем же механизмом отслеживания остановки, когда все сбрасывается.
Скорее всего я буду делать в терминах словарей

Но тогда такой вопрос
У меня в объекте прописано много методов, ну, типа, duration(), который возвращает разницу между временем первого и последнего события.
В словарях, понятно, методов не сделаешь. Мне останется только писать функцию вместо методов, верно?
Аноним 27/01/21 Срд 22:08:43 #32 №1923791 
>>1923788
Попробуй для начала сделать словарь объектов, этого вполне может быть достаточно.
Аноним 27/01/21 Срд 22:20:11 #33 №1923803 
>>1923737
ну помогите!!!!
Аноним 27/01/21 Срд 22:20:17 #34 №1923804 
>>1923486
>Допустим у нас есть пара столбов (или колонок) числовых данных. Что можно с ними сделать использую питон, пандус и прочие библиотеки.

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

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

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

Аноним 27/01/21 Срд 22:24:09 #35 №1923816 
>>1923712
>За это время программа обработает примерно 450к файлов, значит, в какой-то момент очередная строка будет заставлять Питон делать лукап из 450к идентификаторов в листе.
Всё верно. Используй корректные структуры данных, а именно храни элементы для поиска не в списках, а в словарях. По ним поиск очень быстрый.

>Вместо объектов писать словари?
>Но это тупо немного, нет?
Тупо использовать списки

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

Причём полученные словари ты можешь дампить в JSON и сохранять на диск, потом очень быстро искать уже в них, если потребуется.
Аноним 27/01/21 Срд 22:26:31 #36 №1923820 
>>1923788
>В словарях, понятно, методов не сделаешь.
В списках методы тоже не сделаешь.

Ты можешь сделать объект, в котором будет переменная storage = dict(), а метод duration уже будет обращаться к этому словарю.
Аноним 27/01/21 Срд 22:28:39 #37 №1923821 
>>1923803
Может туплю, но надо просто написать
property.id
Аноним 27/01/21 Срд 22:36:36 #38 №1923834 
>>1923803
к сожалению не работает. Наверное потому что там ключ это string id, а не тип
Аноним 27/01/21 Срд 22:47:56 #39 №1923856 
>>1923729
А что на фрилансе? слабые проекты?
Алсо чем плохи книжки для сеньоров? на крутую работу не берут тупо из за отсутствия вышки? ебать адок.
Аноним 27/01/21 Срд 22:52:02 #40 №1923865 
>>1923737
>>1923821
спасибо большое вопрос закрыт.
я записывал дикт в файл а читал из файла уже строку в виде дикт
Аноним 27/01/21 Срд 22:57:39 #41 №1923869 
аноны, учу питон понемногу и мне часто перед сном думается о коде, а потом снится будто я что то усиленно пишу на питоне и пытаюсь в код.
ЭТО ВООБЩЕ НОРМАЛЬНО?
вроде не особо налегаю, учу по три часика в день, а то и меньше. Что это такое?
Аноним 27/01/21 Срд 23:52:01 #42 №1923910 
>>1923869
это маняфантазии
Аноним 28/01/21 Чтв 02:08:24 #43 №1923981 
>>1923856
Прикол фриланса, то что не стабильно, была неделя когда вообще ноль заказов было сидел лапу сосал. Зато постоянно разные проекты, тупо нельзя брать только то что уже делал когда-то, т.е по кд развитие.
Ну вот всякие бигдаты и нейроночки, указана всегда вышка. Может из-за неё не брали, может потому что опыта не было(фрилансеры - не люди для hr).
А книжки для сеньёров, вот тут хз что читать
Аноним 28/01/21 Чтв 06:25:30 #44 №1924026 
Господа, никто не задавался вопросом, как привести Питон к первоначальному виду? Кажется мне, что я понаустанавливал лишних модулей через пип. Быстрый гуглинг приводит к баш-скрипту, но не хотелось бы. ОС: Убунту.
Аноним 28/01/21 Чтв 07:22:42 #45 №1924038 
D3fjo9yIxU0.jpg
>>1923820
Можешь ещё раз пояснить за этот объект со словарем storage?
Я шот не понiл...
Аноним 28/01/21 Чтв 08:23:52 #46 №1924045 
>>1924026
научись в virtual environment, всего 2 команды
$ python -m venv venv
$ . venv/bin/activate
Аноним 28/01/21 Чтв 09:54:57 #47 №1924079 
Реально ли в ДС найти работу за 180к бэкендеру питонисту, 2 года опыта. Сейчас 150к, но хочется больше.
Аноним 28/01/21 Чтв 10:54:47 #48 №1924120 
>>1924045
Это я знаю и использую. Я к тому, что мог случайно в дефолтный питон поставить дополнительные модули. Вот ищу способ сравнить состав модулей стандартной поставки и своей локальной.
Аноним 28/01/21 Чтв 10:57:36 #49 №1924124 
>>1924120
pip freeze покажет все кастомные модули.
Можешь сразу подать на pip uninstall
Аноним 28/01/21 Чтв 11:31:02 #50 №1924149 
>>1923910
В смысле? поясни.
>>1923981
ну неделя без заказов это хуйня в принципе.
Ни о чем. Мизер. ладно там по два месяца без работы.
Алсо почему нельзя брать то, что уже делал?
Аноним 28/01/21 Чтв 11:33:13 #51 №1924150 
>>1924045
кстати эти команды разные на всех системах.
чтобы на 10 винде активировать я заебался гуглить, информации мизер
Аноним 28/01/21 Чтв 12:25:23 #52 №1924195 
>>1924149
Хуйню сморозил, брать то можно, но не часто такое попадается, что вот мне нужна штука Н, а потом следующий чел мне нужна штука как Н, но чуть другая. Исключение, если один и тот-же тип заказывает. Крч, не сидишь на месте, по кд чтот делаешь
Аноним 28/01/21 Чтв 13:42:53 #53 №1924242 
90899906-E678-42B1-A90A-2A6D24F1DEC8.jpeg
Реально ли свои знания питона конвертировать в деньги?

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

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

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

Понимаю, что это не питон, но может у кого был опыт.
Аноним 28/01/21 Чтв 14:29:03 #62 №1924281 
>>1924274
Просёк фишку, вкурил тему.
алсо наверное в замкадье хуй устроишься на постоянку, как думаешь?
Аноним 28/01/21 Чтв 14:30:24 #63 №1924283 
>>1924277
Доктор пицца, серьезно?
Аноним 28/01/21 Чтв 14:46:55 #64 №1924291 
>>1924281
Я не пробовал, могу судить по кол-ву вакансий. В родной деревне(300к чел), по 1-ой вакансии 1с, пхп и java. В областном центре получше, можно и питонистом junior на 40-50к устроится(кв в центре12-20к) , мидлом уже приемлемые 120к, но всего штуки 3 компании, но думаю будет проще вкатиться т.к мало народу, выпускники вузов - хуета, которая не хочет вдуплять сама, а те кто могут, не хотят оставаться там
Аноним 28/01/21 Чтв 14:50:11 #65 №1924297 
>>1924283
Это же интернет
В жизни скромный парень, в телеграме - любитель сисек
Аноним 28/01/21 Чтв 15:09:39 #66 №1924313 
>>1924291
Понял, уяснил
>>1924297
Люто, почему же он ИРЛ не любит сиськи?
Аноним 28/01/21 Чтв 15:11:24 #67 №1924314 
>>1924313
Это просто цитата откуда-то, не принимай близко к сердцу
Аноним 28/01/21 Чтв 15:21:08 #68 №1924320 
>>1923442 (OP)
Коллеги, как ебаной веб-макаке, возомнившей, что она может стать чем-то большим качать алгоритмику?

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

Как качать алгоритмы эффективно?
Аноним 28/01/21 Чтв 15:25:59 #69 №1924326 
>>1924320
Какой алгоритм и какая структура данных, например, вызывают затруднения?
Аноним 28/01/21 Чтв 15:30:31 #70 №1924328 
>>1924326
Ну, намедни дристанул, хотя знал, лол, как интернал устроена хеш-таблица.

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

Ну, например "напишите валидатор строк, содержащих \"json\" (\"{[[]}\")". Вот откуда мне без базу знать, что тут нужно стек юзать? Как такое прокачать быстренько?
Аноним 28/01/21 Чтв 15:34:16 #71 №1924329 
>>1924328
> Вот откуда мне без базу знать, что тут нужно стек юзать? Как такое прокачать быстренько?

А откуда это "знал" тот, кто написал книжку по алгоритам? В какой книге он это прочитал?
Не обязательно писать алгоритмы строго по книжкам - ты что, не можешь сам придумать никакого решения, например даже без стека? Если нет - возможно программирование в целом не твое, раз ты можешь только заучивать информацию, которую до тебя кто-то придумал. Иди может тогда в школу учителем?
Аноним 28/01/21 Чтв 15:35:08 #72 №1924330 
Ебать, закончил ебучую бизнес-информатику, не нашел куда вкатываться, пока сижу без работы.
Решил изучать питон и лезть в биг дату, искать что-то с анализом данных. Не прям ужмэттм горю, но в принципе интерес есть
Теперь вопрос. Кто за сколько изучал язык до приемлемого уровня, когда уже можно понять что-то типа >>\"json\" (\"{[[]}\")" и как с этим работать
Вопрос возможно глупый, но интересно
Аноним 28/01/21 Чтв 15:35:12 #73 №1924331 
>>1924328
>Ну, например "напишите валидатор строк, содержащих \"json\" (\"{[[]}\")". Вот откуда мне без базу знать, что тут нужно стек юзать?
Причем тут вообще алгоритмы?
Аноним 28/01/21 Чтв 15:39:12 #74 №1924335 
>>1924329
>>1924331
>Если нет - возможно программирование в целом не твое, раз ты можешь только заучивать информацию, которую до тебя кто-то придумал.
Да, беда в том, что меня подонбые мысли регулярно посещяют.
Аноним 28/01/21 Чтв 15:46:22 #75 №1924341 
>>1924335
Так все же, это как-то прокачать можно?
Или это либо дано - любовь к резолву всяких головоломок типа кубира кубика и квест-игро, либо нет?
Аноним 28/01/21 Чтв 15:49:01 #76 №1924346 
>>1924341
Никак, я серьезно
Если ты не умеешь создавать какие-то новые вещи, только повторять ранее заученые - никакая креативная деятельность (в том числе инженерная) тебе не подходит
В школе ты мог например придумать решение задачки, если до этого вы точно такую же или похожую не разбирали? Если не мог - это опять же симптом
Аноним 28/01/21 Чтв 15:50:04 #77 №1924349 
>>1924330
>бизнес-информатику
Чиво?)
Аноним 28/01/21 Чтв 15:50:40 #78 №1924350 
>>1924341
Прост пробуй сам придумать, порешать че нибудь простенькое.
начни с простого.
если тебе покажется что ну его нахуй то забей.
Аноним 28/01/21 Чтв 15:51:15 #79 №1924351 
>>1924349
>>1924330
Что такео бизнес информатика, поясните, плиз?
Аноним 28/01/21 Чтв 15:52:25 #80 №1924353 
>>1924351
Видимо что-то типа gender studies от информатики
Аноним 28/01/21 Чтв 15:53:02 #81 №1924354 
>>1924351
>такео
>>1924330
>ужмэттм
Ты бухой что ли?
Аноним 28/01/21 Чтв 15:55:03 #82 №1924360 
>>1924354
Это разные люди написали. такео это типичная опечатка слова "такое", когда быстро печатаешь. Просто кнопки нажал не в том порядке
Аноним 28/01/21 Чтв 15:56:02 #83 №1924362 
>>1924353
Бля, а гендер стадис что такое?
Аноним 28/01/21 Чтв 15:56:30 #84 №1924364 
>>1924362
хуйня под видом образования
Аноним 28/01/21 Чтв 15:59:40 #85 №1924366 
>>1924349
>>1924351
Этот >>1924364 прав. Сборная солянка в виде экономики, маркетинга, немного программирования и математики. Как воин в какой-нибудь ММОРПГ, который держит все пушки в рукахя а по факту не умеет нихуя. Вот так
>>1924354
Не перечитал что написал с телефона, это опечатки куда уж безработному бухать в 3 дня
Аноним 28/01/21 Чтв 16:04:12 #86 №1924369 
>>1924350
Типа нарыть какие-то методички по программирования и ршать из них практку?
Аноним 28/01/21 Чтв 16:07:48 #87 №1924373 
>>1924369
Возможно.
Аноним 28/01/21 Чтв 16:21:41 #88 №1924387 
>>1924366
>куда уж безработному бухать в 3 дня
Как раз, на работу не надо - можно бухать.
>>1924341
>Или это либо дано - любовь к резолву всяких головоломок типа кубира кубика и квест-игро, либо нет?
Вроде того.
Аноним 28/01/21 Чтв 16:27:43 #89 №1924394 
>>1924124
аа, понял-понял. спасибо за наводку.
Аноним 28/01/21 Чтв 16:29:24 #90 №1924397 
Хакеры, хелп, написал сайтик, хочу показать преподу или друзьям, хочу понять как мне сделать так, чтобы nginx был доступен по моему ip буквально на часик, что куда можно вбить, чтобы в строке браузера можно было вбить ip и вернулся мой сайт? Пожалуйста, помогите. А так же реквестирую где найти информацию вкратце как работают маршрутизаторы и т.д, может статью кто читал хорошую
Аноним 28/01/21 Чтв 16:32:04 #91 №1924402 
>>1924328
И зачем нужно обязательно знать как она устроена? Или на ее основе нужно придумывать что-то свое? Есть же в питоне dict. Неужто не хватает?
Аноним 28/01/21 Чтв 16:36:25 #92 №1924413 
>>1924402
1. Мне это самому интересно
2. Некоторым конторам необходимо в силу того, как они раздрочили питон для ... кхм ... производительности. Например, в игрострое.
Аноним 28/01/21 Чтв 18:48:19 #93 №1924526 
>>1924397
Зарегайся на амазоне там нахаляву дают 750 машинных часов в облаке. Твоему сайтику этого на год хватит
Аноним 28/01/21 Чтв 20:03:30 #94 №1924575 
Поясните за алгоритмы. Их нужно уметь самому писать или нужно просто понять, как они работают, а дальше дело гугла
Аноним 28/01/21 Чтв 20:32:57 #95 №1924599 
>>1924526
Да захостить наверное не сложно, я хочу просто понять че вписать в nginx чтобы по моему ip сайт открывался на время, даже если у меня динамический ip, если это возможно
Аноним 28/01/21 Чтв 20:35:53 #96 №1924603 
>>1924599
https://ngrok.com/
Аноним 28/01/21 Чтв 20:45:24 #97 №1924614 
>>1924603
Спасибо, возможно то что я хотел найти, хотя и не nginx
Аноним 28/01/21 Чтв 20:49:24 #98 №1924620 
>>1924575
Если что, эту хуйню ен я (>>1924341) спрашивал.
Аноним 28/01/21 Чтв 20:52:16 #99 №1924627 
>>1924614
nginx всё равно нужен, просто не надо его настраивать и пробрасывать порты.
Аноним 28/01/21 Чтв 22:41:27 #100 №1924718 
>>1923481
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)
Аноним 28/01/21 Чтв 23:29:34 #101 №1924757 
>>1924150
что там гуглить, просто сапускаешь в териминале файл activate
Аноним 28/01/21 Чтв 23:33:22 #102 №1924760 
>>1924757
В винде надо activate.bat запускать, а не просто activate. Но я правда не понимаю хули там сложного? Там более, что пукчарм вообще предлагает при создании проекта создать виртокружение еще и сам его включать будет.
Аноним 28/01/21 Чтв 23:37:58 #103 №1924764 
>>1924760
расширение bat не обязательно указывать, достаточно в терминале набрать venv\Scripts\activate и выполнить
Аноним 28/01/21 Чтв 23:43:18 #104 №1924767 
>>1924764
А ну мб, я просто давно уже руками последний раз включал venv. Просто в пукчарме галку ткнул на автовключение и кайфую. Еще бы пукчарм в гитхабе автоматом логинился через консоль и было бы норм.
Аноним 28/01/21 Чтв 23:56:30 #105 №1924771 
2021-01-2823-56-05.png
>>1924387
Пиздато бухать, когда не надо на работу, не так ли?
>>1924757
нет, нужно запускать скрипт активейт, как написал этот
>>1924764
чел

во, тут уже три версии как его запустить, а говорили хули там гуглить.
работает на 10 кстати именно скриптс.
просто активейт и активейт бат идут нахуй
Аноним 29/01/21 Птн 00:02:11 #106 №1924772 
>>1924771
ну ты даун просто, на винде работает Scripts потому что блять python -m venv venv в винде создает папку Scripts в каталоге venv, а на линуксе создает папку bin, еще раз повторю ты дурачек если не смог найти activate в винде
>>1924757 и >>1924764 это один и тот же чел, я
Аноним 29/01/21 Птн 00:03:50 #107 №1924773 
>>1924771
кстати нахуя ты создал вирутальное окружение в папке system32 ? его создают в папке с проектом, очередное доказательство что ты даун
Аноним 29/01/21 Птн 00:05:54 #108 №1924775 
>>1924771
Сумасшедший, ты понимаешь, что у тебя файл activate сам по себе не появится? По тому, что ты в system/32 захуячил рабочий проект уже все понятно. Но блять дальше больше. Ты пытаешься запустить файл activate как команду. Это настолько охуительно тупо, что я даже не могу пояснить всю глубину долбаебизма
Аноним 29/01/21 Птн 00:05:57 #109 №1924776 
нравится питон как факультатив, приятный язык. Пробовал хтмл и ксс, не понравились. Есть какая-нибудь задача на питоне, которую можно научиться решать и в свободное время подрабатывать на этом? или так в прогинге не работает?
Аноним 29/01/21 Птн 00:09:28 #110 №1924779 
>>1924773
я его создал чтобы прост открыть в нем файл, ты не знал что можно открыть любой файл там? охуеть просто
>>1924775
?>По тому, что ты в system/32 захуячил рабочий проект уже все понятно
пиздец еще один затупок
я могу открыть файл из любого места в этом виртуальном окружении
Аноним 29/01/21 Птн 00:14:19 #111 №1924782 
>>1924776
открывай kaggle.com, порешай пару задачек оттуда, если легко, то может получится на фрилансе найти подработку
Аноним 29/01/21 Птн 00:20:59 #112 №1924789 
>>1924776
Слишком толсто
>>1924779
Чел, почитай как с командной строкой работать. Ты просто такие охуительно тупые вещи пишешь еще и споришь. Кто запустить блять виртуальное окружение не может? Ты или я?
Аноним 29/01/21 Птн 00:25:15 #113 №1924792 
>>1924789
не, я на самом деле месяц учил синтаксис в свободном режиме по паре часов, мне прям нравится язык, но я не могу нащупать объём необходимых знаний, которые нужны для решения реальных задач.

Кажется что в таком темпе до денег год учить, думал что подскажут
Аноним 29/01/21 Птн 00:26:15 #114 №1924793 
>>1924776
На питоне новички частенько пишут парсеры за деньги, но заработок низкий, если интересует изучай библиотеки requests для запросов к сайтам, beautiful soup для удобного парсинга html, pandas для удобной работы с напаршенными данными и сохранением данных в разные форматы(json csv xml xslx). Потом может быть удастся перекатится на обычную работку на должность ETL разработчика
Аноним 29/01/21 Птн 00:27:39 #115 №1924796 
>>1924789
так я и запустил.
Это ты не удосужился написать что сперва создается батник в определенной папочке а потом только запускается, а потом еще и обвинил меня в том, что я якобы создал какой то проект в системной папке, хотя очевидно что я запустил виртуальное окружение не для проекта или еще чего то, а просто показал как оно запускается по дефолту.
смекаешь?
Аноним 29/01/21 Птн 00:28:30 #116 №1924797 
>>1924793
спасибо за ответ
Аноним 29/01/21 Птн 00:33:05 #117 №1924801 
>>1924796
> так я и запустил.
Ты его запустил в system32 нахуй, ты все еще не смог сделать свой проект с виртуальным окружением.
> Это ты не удосужился написать что сперва создается батник в определенной папочке а потом только запускается
Нихуя себе, тебе вообще-то об этом написали и не раз. Плюс ты сам чета пукал про то, что весь гугол прочитал и не нашел ответа. Ты с таким подходом через лет 10 свой первый хеллоуворлд напишешь.
> обвинил меня в том, что я якобы создал какой то проект в системной папке, хотя очевидно что я запустил виртуальное окружение не для проекта или еще чего то, а просто показал как оно запускается по дефолту.
Чел, всем похуй на тебя. Ты должен быть благодарен, что тебе вообще кто-то отвечает и пытается помочь. Еще раз -- ты с таим подходом пойдешь нахуй. Будешь дальше выебываться и что-то требовать -- это мой последний пост тебе.
Аноним 29/01/21 Птн 00:35:37 #118 №1924804 
>>1924792
Если это --> >>1924796 ты, то тебе до денег еще около 10-15 лет учить. А объем знаний зависит от того, что считать необходимым. Самый большой срок уходит на то, чтобы мышление свое под программирование заточить. Если математикой занимался еще чем-то таким, то тебе это не понадобится. Если же нет, то займет ощутимое время. Остальное тривиально и больше 1-2 лет не займет. Вообще, с нуля можешь на года полтора ориентироваться.
Аноним 29/01/21 Птн 00:37:43 #119 №1924805 
>>1924801
мне и не нужно было создавать проект
я гуглил как его запустить без создания файлов, например.
и нашел, как видишь
>Ты должен быть благодарен, что тебе вообще кто-то отвечает и пытается помочь
не, ну это пиздец, ты жопой посты читаешь? я не просил помощи и не задавал никаких вопросов.
вот цитата
>чтобы на 10 винде активировать я заебался гуглить, информации мизер
где ты видишь тут вопрос или хотя бы утверждение что я не смог этого сделать в итоге?
щас бы спрашивать всякую хуйню блядь.
Аноним 29/01/21 Птн 00:39:35 #120 №1924809 
>>1924805
Ну и пошел нахуй
Аноним 29/01/21 Птн 00:41:21 #121 №1924811 
>>1924809
Мне показалось, или ты быканул?
Аноним 29/01/21 Птн 01:30:47 #122 №1924844 
Аноны, какое будущее вы видите у питона в сфере бэк энда? Он ведь неплохо проигрывает в скорости конкурентам. Вытеснят ли они его к хуям в мл или нет? А то мои рога и копыта решили переписать на ГО все
Аноним 29/01/21 Птн 01:56:39 #123 №1924851 
>>1924844
>Вытеснят ли они его к хуям в мл или нет?
Нет, пока тот же Го не приведут в человеческий вид.

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

Как это все реализовать? Я думал через re.findall сделать, но получается хрень, т.к. мне нужно, чтобы в той строке, на которую я заменяю, было оригинальное число.
Аноним 29/01/21 Птн 02:25:47 #125 №1924858 
Ну и в догонку к >>1924854, если будет ИТТ какой-нить благородный дон, можно ли как-то подсказать, как такой вот пиздец из набора регулярок
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

привести в божий вид?
Аноним 29/01/21 Птн 03:41:34 #126 №1924871 
>>1924858
Как вариант
re.sub(r" (тыс|т|тел|г|руб|каб|ауд)\. ", r" \1.Ъ ", text)
То есть сделать большую группу замен и использовать \1 в строке-подстановке, что означает "элемент из первой группы в скобках".
Аноним 29/01/21 Птн 05:17:52 #127 №1924878 
>>1924858
в каком-то из предыдущих тредов давали ссылку на визуализацию регулярок, но я ее проебал. кто знает, киньте еще раз.
Аноним 29/01/21 Птн 06:11:43 #128 №1924884 
>>1924878
http://www.pyregex.com/
https://pythex.org/
Аноним 29/01/21 Птн 08:10:48 #129 №1924906 
Почему это срабатывает?
>>> print(sys.version_info >= (3, 7))
True
Тут сравнение списков или что? Зогадке.
Аноним 29/01/21 Птн 08:16:05 #130 №1924909 
image.png
>>1924906
Сравниваются тупли, по тому же принципу, что 'ab' > 'aa'.
Аноним 29/01/21 Птн 08:25:39 #131 №1924912 
>>1924909
Спасибо. Прикольная штука, надо запомнить.
Аноним 29/01/21 Птн 10:54:30 #132 №1924958 
>>1924884
респектую бро
Аноним 29/01/21 Птн 11:12:57 #133 №1924977 
>>1924871
Я ещё нашел вариант: запилить лист из этих слов, и потом по нему филтровать.

И ещё бампану вопрос >>1924854
Аноним 29/01/21 Птн 11:17:00 #134 №1924980 
>>1924977
s = re.sub(r'(\n\d+)\.\t', '\\1 Ъ', s)
Аноним 29/01/21 Птн 11:27:23 #135 №1924989 
>>1924980
Так проблема в том, что число может быть практически любым (ну, логически, \n2, \n3, но тем не менее), и оно же и должно остаться после замены!
Аноним 29/01/21 Птн 11:30:48 #136 №1924991 
>>1924989
Так оно и останется.
Аноним 29/01/21 Птн 12:01:12 #137 №1925041 
>>1924844
да пизда питухону
медленный и нахуй не нужный в вебе язык
на нам рил только мл пилить да утилитки всякие
Аноним 29/01/21 Птн 12:03:57 #138 №1925046 
>>1924844
На ГО все не перепишешь.
Аноним 29/01/21 Птн 12:06:58 #139 №1925048 
>>1925046
ну, если цепляться за то что на питоне просто много легаси и поэтому он нужен, то это говорит о никчемности языка в сфере
Аноним 29/01/21 Птн 12:12:17 #140 №1925058 
>>1925048
>легаси
Не в легаси дело, писать на ГО сложную бизнеслогику очень дорого, если нет высокой нагрузки, то смысла 0. Ну если только есть цель освоить бюджет. Ты на ГО и питоне не писал походу, иначе такой бред не нес бы.
Аноним 29/01/21 Птн 12:13:46 #141 №1925059 
>>1925058
хочешь сказать, что питон типа хорош для всего НЕ хайлоад а ГО для хайлоад?
Аноним 29/01/21 Птн 12:21:06 #142 №1925069 
>>1925059
На Го переписывают в первую очередь узкие места, код на нем значительно сложнее писать, сахара и абстракций там минимум, не будет и близко той декларативности что есть в питоне. Я еще раз спрашиваю у тебя есть коммерческий опыт бэкенд разработки?
Аноним 29/01/21 Птн 12:22:40 #143 №1925070 
>>1925069
да я уже другой чел - не тот который отхуесосил питон в бэкэ
но все равно отвечу - нет, я не из бекэнда - я из cv
Аноним 29/01/21 Птн 12:29:11 #144 №1925075 
А есть тут прокрастинаторы типо меня. Вот началась опять маниакальная стадия. C++ я уже дропнул ,сейчас возьмусь за пайтон. Через недельку Джава. Потом html, css, javascript.
Этот цикл я повторяю почти ежегодно. Дальше синтаксиса ни в одном ЯП так и не продвинулся. Я безумен, и не знаю как разорвать этот цикл.
Аноним 29/01/21 Птн 12:32:42 #145 №1925079 
>>1925075
Я знаю как:
https://angular.io/
https://spring.io/
Аноним 29/01/21 Птн 12:35:55 #146 №1925083 
>>1925079
Типо сразу с фреймворков начать? Мой внутренний перфекционизм говорит что надо делать все по порядку. Т.е сначала учить просто ЯП, написать топ прогу без всяких фреймворков, и только потом браться за это дело.
Аноним 29/01/21 Птн 12:36:32 #147 №1925084 
>>1925083
ты получи результат, а потом уже разбирайся как работает все
а то так и будешь дропать все подряд
Аноним 29/01/21 Птн 12:39:30 #148 №1925087 
>>1925084
Сейчас лежит душа к пайтону. Тогда попробую Django
Аноним 29/01/21 Птн 12:40:10 #149 №1925088 
>>1925070
>>1925069
но изначально вопрос интересный
я еще в универские годы чуть бекэндером поработал (ну постажероватся) буквально годик. Потом перекатился в cv, так как сам немного не понял куда вообще весь бек на питоне идет
Но опять же, у меня образование не программисткое, а математическое и я мог просто не разглядеть потенциала чи хуй его вообще
вот и свалил в цв. Но про бек вопрос интересный (вдруг перекатиться захочу): есть что поделать? задачи интересные? можно ли сказать, что бэкендер на питоне это не просто питономакака?
Аноним 29/01/21 Птн 14:05:25 #150 №1925144 
>>1924718
Спасибо большое мудрый Анон
Аноним 29/01/21 Птн 15:52:04 #151 №1925230 
Как мне передать путь до summ.json в качестве аргумента командной строки? Нужно принимать в аргументах командной строки путь до файла summ.json

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

я запутался и не могу понять как это сделать
Аноним 29/01/21 Птн 16:30:44 #152 №1925271 
ля поцонва
вопрос у меня просто уебанский, конечно
тем не менее
я, короче, школоло, 16 лет. Мне нравится информатика: гоняю на олимпиады, парочку поделок дома - ничего такого, просто нравится
в общем, тк я пока школоло и вышмата не знаю, просьба не пиздить ногами за сказанное далее, но мне нравится блокчейн: я не ебу насколько это перспективно\денежно и
тд
к чему я это? Поцонва, ведется ли разработка блочейна на питоне?
Аноним 29/01/21 Птн 16:57:29 #153 №1925296 
пацаны, какой сейчас усредненный стек питон бэкэнд разраба?
Аноним 29/01/21 Птн 17:05:41 #154 №1925301 
>>1925271
Смотря что ты считаешь разработкой.
Сам core какого-нибудь блокчейна врядли, не сильно питон приспособлен для хитрых вычислений.
А вот в разработке какого нибудь bitcoinlib можешь поучаствовать
Аноним 29/01/21 Птн 17:06:52 #155 №1925305 
>>1925301
а что это за биткоинлиб?
но я про промышленную разработку, конечно же
Аноним 29/01/21 Птн 17:07:01 #156 №1925306 
>>1925230
import sys

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

43.12 секунд гугления
Аноним 29/01/21 Птн 17:07:48 #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. Как это сделать?
Аноним 29/01/21 Птн 17:08:40 #158 №1925309 
>>1925305
https://bitcoinlib.readthedocs.io/en/latest/

Можешь начать с этого, как раз познакомишься с внутрянкой этих ваших биткойнов
Аноним 29/01/21 Птн 17:08:58 #159 №1925310 
>>1925308
Блять, ебучая разметка

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'}
}
}
Аноним 29/01/21 Птн 17:09:17 #160 №1925311 
>>1925309
спасибо, добрый анон
Аноним 29/01/21 Птн 17:30:30 #161 №1925332 
>>1925308
На цсв сам переделай.
https://ideone.com/qaQHXs
Аноним 29/01/21 Птн 17:43:03 #162 №1925353 
Flask_bootstrap вообще актуальная технология? Или лучше самому прикрутить bootstrap?
Аноним 29/01/21 Птн 18:06:13 #163 №1925375 
>>1925075
>Я безумен, и не знаю как разорвать этот цикл.
Возьми какую-нибудь нормальную книжку-курс, и пройди её от начяла и до конца, ну хотя бы до половины, не отвлекаясь на другие темы.

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

Сначала можно про сам питон, потом уже про какой-нибудь фреймворк вроде джанго.
Аноним 29/01/21 Птн 18:24:55 #164 №1925392 
>>1925332
Я думал что я шарю в питоне...
другой кун
Аноним 29/01/21 Птн 18:32:12 #165 №1925402 
image.png
Щас в одном коде встретил такую конструкцию.
В начале скрипта импортируют sys, потом в блоке
if __name__ == '__main__':
опять импортируют sys.

Что это дает? Может это просто опечатка?
Аноним 29/01/21 Птн 18:37:52 #166 №1925412 
>>1925332
Прекрасный код. Сколько десятилетий ты уже пишешь код? Какой был первый язык? Какой был самый сложный проект, в котором ты принимал участие?
Аноним 29/01/21 Птн 19:26:46 #167 №1925465 
поцоны, какой пет проект для вката в бэкэнд посоветуйте? А то я ебучим игроделом проработал, хочу в норм проганье уйти
питон хорошо знаю, но все математическое: numpy, scipy, sklearn и прч
Джанго фласки и тд знаю на уровне туториалов
плз дайте советов
Аноним 29/01/21 Птн 21:35:52 #168 №1925577 
>>1925465
>хочу в норм проганье уйти
>заполнять формочки говном и слать введенное говно обратно
Бля, такой себе лвл ап.
Аноним 29/01/21 Птн 21:37:42 #169 №1925579 
>>1925465
Посоветую Рознталя для начала.
Аноним 30/01/21 Суб 00:42:21 #170 №1925676 
>>1925579
Че?
Аноним 30/01/21 Суб 00:46:24 #171 №1925679 
>>1925577
Может человек устал думать, придумывать и оптимизировать на работе и хочет неспешно заниматься хуйней за фикс прайс.
Аноним 30/01/21 Суб 01:02:38 #172 №1925685 
Пишу себе удобных ботов и всякую автоматизацию по работе уже год, код выглядит как говно, просто список инструкций.
Если кода много, стараюсь распихивать по разным файлам просто файл в директории.
На работе начал работать с колегами-разработчиками и ахуел от красоты и удобства их кода. Всё раскидано по полноценным пайтон модулям, для всего написаны тесты, гитлаб генерирует документацию и прочее.
Как научиться писать также? Питон понимаю хорошо, ООП не понимаю.
Все гайды по питону, что я находил, либо учат писать хелло ворлд, либо специализируются на каких-то библиотеках. Скорее всего я просто не понимаю что именно искать.
Дайте документацию/гайд/книжку по написанию красивого, эффективного, удобного кода на питоне.
Аноним 30/01/21 Суб 01:37:54 #173 №1925710 
>>1925685
гугли на ютубе тимофей хирьянов где он переписыват игру с пушкой написаную в декларативном стиле под ООП
Аноним 30/01/21 Суб 02:14:01 #174 №1925725 
>>1925577
>>1925679
а подскажите куда пойти, чтобы как макака не перекладывать таблички?
Аноним 30/01/21 Суб 03:23:51 #175 №1925741 
Двач, есть ли такой цикл в котором можно было бы удалять элементы итерируемого цикла?
Или можно ли в условии while создавать переменную?
Аноним 30/01/21 Суб 03:44:38 #176 №1925743 
22.png
>>1925741
Картинка к вопросу
Аноним 30/01/21 Суб 04:01:55 #177 №1925747 
Снимок.PNG
>>1925741
>>1925743
Ну так у тебя выход за пределы массива, ты итерируйстя просто не по индексам а по элементам
Аноним 30/01/21 Суб 04:04:07 #178 №1925749 
>>1925747
Спасибо
Аноним 30/01/21 Суб 04:06:59 #179 №1925750 
>>1925741
Ага, то есть ты сам написал, что у тебя 5 элементов в списке и передал список с 4 элементами, но виноват питон?
Аноним 30/01/21 Суб 10:05:32 #180 №1925800 
>>1925685
Если ты хочешь нормально писать то тебе надо качать понимание в целом. От основ вычислительных машин и асемблера к си и потом уже к питону и прочим высокоуровневым языкам. Ну и навернуть пару книжек типа SOLID.
Аноним 30/01/21 Суб 13:19:41 #181 №1925923 
Как в питоне решить пример 9:6? Я пытался тупа перевести в флоет но оно не работает помогите пожалуйста
Аноним 30/01/21 Суб 13:26:01 #182 №1925929 
>>1925923
print(9 / 6)
?
Аноним 30/01/21 Суб 13:47:58 #183 №1925968 
При вызове len('khuy') есть какие-то оптимизации? Строка-то известна.
Аноним 30/01/21 Суб 13:53:12 #184 №1925981 
>>1925968
Она и так известна вм в внутренних структурах, как и большинство ленов, ничего там не считается на самом деле.
Аноним 30/01/21 Суб 14:03:54 #185 №1925997 
Есть ли в модуле os или еще где-то готовая функция, чтобы достать значение энв переменной, или дефолтное значение если переменная не задана. А если дефолтное значение не дано, то выбросить внятную ошибку.
Аноним 30/01/21 Суб 14:20:22 #186 №1926013 
Зная только питон и sql достаточно будет, чтобы работать аналитиком или что-то такое связанное с базами данных? Или нужны ещё какие-то йобы?
Аноним 30/01/21 Суб 15:08:52 #187 №1926081 
Я могу на kivy сделать приложение, которое будет работать как простенький сервер на андроиде?
Запустил приложение, ввёл в окно ключи, оно покрутилось в фонеэто важно и умерло. Джаву не знаю, котлин без неё непонятеня пытался.
Аноним 30/01/21 Суб 16:58:08 #188 №1926240 
Аноны, есть тут шарящие за работу с БД и aiogram?
Аноним 30/01/21 Суб 18:06:08 #189 №1926317 
image.png
Народ подскажите как сделать геттери и сеттеры(через декоратор или же так) для несколько атребутов, но что бы копактно. Есть несколько атребутов у которых повидение одно и то же и не хочеться делать на каждую описание
Аноним 30/01/21 Суб 19:08:07 #190 №1926396 
>>1926317
бля... чуть глаза не вытекли
Аноним 30/01/21 Суб 19:22:41 #191 №1926408 
Тупой вопрос. Нужно выбрать все ссылки со страницы по шаблону. Что будет быстрее: BeautifulSoup или регулярными выражениями?
Аноним 30/01/21 Суб 19:24:03 #192 №1926410 
>>1926317
Не очень понятно, что именно тебе нужно.
Возможно тебе стоит определить методы __setattr__ и __getattr__, через них смотреть, к чему пользователь обращается и хранить данные в каком-то специальном словаре.
Аноним 30/01/21 Суб 19:28:37 #193 №1926413 
>>1926408
Регулярки, очевидно. Но они менее универсальны, bs4 и аналоги всё-таки тебе из нужного места ссылки выдрут. А регулярки не учитывают html контекст никак.

ps: кроме bs4 ещё есть lxml
Аноним 30/01/21 Суб 19:29:35 #194 №1926414 
>>1926408
Если надо сделать один раз - регулярки, иначе парсер.
Аноним 30/01/21 Суб 19:31:16 #195 №1926418 
vsebudet.mp4
>>1926317
>атребутов
Аноним 30/01/21 Суб 20:39:48 #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 графика, и на каждой итерации данные отображаются поверх существующих, т.е. в конце будут показаны лишь последней итерации.
Как поменять функцию, чтобы отображались графики кадой итерации?
Аноним 30/01/21 Суб 23:30:18 #197 №1926624 
[code lang="python3"] print("hello world") [/code]
Аноним 31/01/21 Вск 02:13:28 #198 №1926699 
>>1926495
точно не знаю, мало работал с либой, первое попробуй заново объявлять объект графика, если plt это объект класса, то применяя к нему рисование он будет на оном и том же рисовать. 2-е уверен есть функция очистки, применяй ее в цикле после сохранения графика
Аноним 31/01/21 Вск 07:02:45 #199 №1926736 
>>1925997
python sys argv . это словарь, у словаря есть метод get который первым аргументом принимает то что ты хочешь достать, а вторым то что будет возвращено если не будет найдено значение по ключу из первого аргумента
Аноним 31/01/21 Вск 07:04:25 #200 №1926738 
>>1925997
>>1926736
бля я перепутал, тебе нужен os.environ["ИМЯ_ПЕРЕМЕННОЙ"]
Аноним 31/01/21 Вск 07:05:02 #201 №1926739 
>>1926738
точнее os.environ.get("ИМЯ_ПЕРЕМЕННОЙ", "Значение по умолчанию")
Аноним 31/01/21 Вск 15:38:03 #202 №1927019 
>>1926739
Нет, ты хуйню написал.
Аноним 31/01/21 Вск 16:16:48 #203 №1927081 
>>1927019
обоснуй
Аноним 31/01/21 Вск 16:17:45 #204 №1927083 
>>1927081
Ты зумерок с клиповым мышлением, который не в состоянии прочитать текст длиннее одного предложения.
Аноним 31/01/21 Вск 16:21:09 #205 №1927088 
>>1927083
чем os.environ.get не устроил?
можешь еще try os.environ['залупа'] except пупа если тебе ексцепшен нужен
Аноним 31/01/21 Вск 17:07:28 #206 №1927118 
Чел видимо хочет, чтобы был метод get, который или возвращает значение по-умолчанию, если в форме
.get('var_name', default) используется,
или кидал исключение, когда используется в виде
.get('var_name')
Однако в последнем случае .get возвращает None.

Тут вариант, или get использовать только тогда, когда надо со значением по-умолчанию, а когда надо с исключением, тогда через обращение к словарю ['var_name'], или реализовать свою функцию для этой частной задачи
get_env_value('var_name', default),
которая при отсутствии default будет кидать исключение произвольного вида, возможно более говорящее. Можно и более гибкую логику реализовать.
Аноним 31/01/21 Вск 17:19:00 #207 №1927129 
Как починить
ValueError: could not convert string to float: '8/9' ?
https://ideone.com/qde9u5
Аноним 31/01/21 Вск 18:48:44 #208 №1927231 
>>1927129
>Как починить
У тебя в коде какой-то непонятный объект entry1 с методом delete непонятного назначения, какие-то непонятные методы insert, какая-то непонятная переменная END.

Вообще ничего не понятно. Но очевидно проблема в строке 4, где ты пытаешься сделать float('8/9'), а float это не eval, float не исполняет выражение, а конвертирует строку в число.
Аноним 31/01/21 Вск 18:51:13 #209 №1927235 
>>1927231
>>1927129
То есть если ты заменишь float на eval, то эту ошибку ты переборешь, но уже на следующей строке у тебя код лишён смысла, ты будешь проверять вхождение символа ',' в переменной типа float, что некорректно и ты поймаешь исключение вида TypeError
Аноним 31/01/21 Вск 19:08:44 #210 №1927247 
>>1927235
Он уже месяц делает этот калькулятор, надо будет отметить, если таки взлетит этот эпохальный пэт-проджектище.
Помогите Аноним 31/01/21 Вск 19:21:25 #211 №1927262 
1) Если сумма трех попарно различных чисел X, Y, Z меньше единицы, то наименьшее из этих чисел заменить полусуммой двух других.

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

3) В двумерном массиве удалить элементы, кратные «8».
Аноним 31/01/21 Вск 19:55:19 #212 №1927282 
>>1927262
Номер 1.
Прикольная задачка. https://ideone.com/ocW795
Аноним 31/01/21 Вск 22:03:51 #213 №1927368 
>>1927262
>Если встречается в массивах число 4 или 5, то следующий за ним элемент заменить суммой двух предыдущих элементов.
Что делать в случае, если первое или второе число 4 или 5? При обходе слева направо учитывать в сумме, что значения могли обновиться?

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

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

В двумерном случае просто примитивный обход списка списков добавляется.
Аноним 31/01/21 Вск 22:04:30 #214 №1927370 
>>1927118
>Тут вариант, или get использовать только тогда, когда надо со значением по-умолчанию, а когда надо с исключением, тогда через обращение к словарю ['var_name']
Спасибо, охуенный вариант, зря я запарился.
Аноним 31/01/21 Вск 22:14:21 #215 №1927380 
>>1927368
>генератор списка и мы при этом не создаём новый список, а перезаписываем старый.
Создаем новый список и пихаем его на месте старого. Логично было бы хуярить задом наперед и удалять на месте.
Но это зависит от того, на что эта задачка.
А об этом можно только догадываться, так как формулировал их какой-то ебанько.
Аноним 31/01/21 Вск 22:25:20 #216 №1927394 
>>1927380
>Создаем новый список и пихаем его на месте старого.
Если ты делаешь
m[:] = list
то у тебя именно изменяется старый список, а не создаётся новый, но есть ты содержимое нового копируешь в старый.

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

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

>>1927380
>так как формулировал их какой-то ебанько.
вот это похоже на правду. Особенно со второй задачей так.
Аноним 31/01/21 Вск 22:30:47 #217 №1927400 
>>1927394
Я о том, что компрехеншен сначала создает новый список, т.е. если у тебя там миллион элементов, то он сожрет память.
А если в итерации удалять, то нет. Через два энумерейта, например.
Аноним 31/01/21 Вск 22:34:30 #218 №1927403 
Как перебрать все комбинации по n элементов из массива?
Как проверить вхождение числа в интервал без использования двух условий и логичесного И? если конечно это не лучший вариант
Аноним 31/01/21 Вск 22:34:37 #219 №1927404 
Хотя если заменить на генераторные скобки, то может и ок.
Аноним 31/01/21 Вск 22:35:36 #220 №1927405 
>>1927403
666 in range(1488)
Или тебе надо свой вариант именно?
Аноним 31/01/21 Вск 22:36:38 #221 №1927407 
>>1927400
>А если в итерации удалять, то нет.
Операция удаления очень дорогая, O(n). Соответственно итоговая сложность O(n^2) примерно.

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

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

Я думаю, что создание нового списка меньше ресурсов реально отъест.
Аноним 31/01/21 Вск 22:38:00 #222 №1927409 
>>1927403
>Как перебрать все комбинации по n элементов из массива?
С помощью модуля itertools.

Там же приведен код, как можно подобное реализовать на голом питоне.
Аноним 31/01/21 Вск 22:41:33 #223 №1927416 
>>1927405
А если число не целое?
Аноним 31/01/21 Вск 22:41:54 #224 №1927418 
>>1927409
Ага понял, именно то что нужно, спасиб
Аноним 31/01/21 Вск 22:51:51 #225 №1927427 
>>1927416
Тогда хуй знает. Можно скомбинировать условия, тогда без и.
0 < 10 < 100
Аноним 31/01/21 Вск 23:09:57 #226 №1927436 
234234234.png
>>1923442 (OP)
Эххх скорее бы эту говнину заменила джуличка...
Аноним 31/01/21 Вск 23:26:26 #227 №1927444 
>>1927436
Математические вычисления агааааааа
Аноним 01/02/21 Пнд 00:19:47 #228 №1927474 
>>1925075

Не слушай этих >>1925375 >>1925075

Выбери язык и предметную область и начинай писать свой персональный проект интересный тебе, все другое подучишь по дороге.
Аноним 01/02/21 Пнд 00:42:13 #229 №1927481 
>>1927436
двачую
Аноним 01/02/21 Пнд 01:17:22 #230 №1927491 
>>1927436
Краем глаза глянул, что про него пишут, очевидный кошмар, а не язык.

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

Но за Адой хотя бы ресурсы были огромные, а эта юля поделка.
Аноним 01/02/21 Пнд 01:40:02 #231 №1927500 
>>1927491
Корабли это she, mate!
Аноним 01/02/21 Пнд 03:19:27 #232 №1927524 
>>1923869
Это нормально, я когда ассемблер учил, мне он только первые две недели и снился, причём в кошмарах.
Аноним 01/02/21 Пнд 11:07:18 #233 №1927653 
>>1927247
калькулятор месяц кодинга? бля, это жестковато.
Аноним 01/02/21 Пнд 11:09:15 #234 №1927655 
>>1927491
А что скажешь насчет языка ПАТРИОТ, или как там его назвали, блядь забыл уже. КУМИР, вот.
что за тема?
Аноним 01/02/21 Пнд 11:10:02 #235 №1927656 
>>1927524
Жёстко. надеюсь это пройдет со временем..
Аноним 01/02/21 Пнд 11:10:21 #236 №1927657 
>>1927524
Кстати, что за кошмары были, приколи стори.
Аноним 01/02/21 Пнд 11:12:12 #237 №1927658 
Двач, открываю сотню задач с помощью subprocess.run, только это систему нагружает, можно ли ограничить количество одновременно работающих процессов к примеру максимум 8 штуками? То что нашёл в гугле слишком непонятно и сложна, объясните не сложна плиз.
Аноним 01/02/21 Пнд 11:41:24 #238 №1927674 
Порекомендуйте курс на stepik. Я знаком с языком и какое-то время работал, но был перерыв в два года, поэтому хочу быстро освежить знания.
Аноним 01/02/21 Пнд 12:00:31 #239 №1927685 
>>1927674
biggeeks -> биоинформатика базовый -> бионформатика применение на практике
Аноним 01/02/21 Пнд 12:07:52 #240 №1927689 
>>1927674
И еще в догонку, там можно открывать неограниченное количество бесплатных курсов? Я могу прокликивать до интересных мне тем и задач, и если не понравится переключиться на другие?
>>1927685
Спасибо, посмотрю.
Аноним 01/02/21 Пнд 12:49:58 #241 №1927715 
Господа, подскажите ньюби, который спрашивал что быстрее: регулярки или beautifulsoup.
Есть функция, внутри которой делают парсинг с помощью BeautifulSoup. Можно ли передавать ссылку на экземпляр BeautifulSoup в функцию, чтобы не создавать каждый раз внутри функции? Надо ли так делать?

Щас у меня так
def parser(query: str) -> dict:
.... получаю src страницы
....soup = BeautifulSoup(src)
.... что-то делаю
....return result
Аноним 01/02/21 Пнд 13:27:38 #242 №1927769 
>>1927715
Нет, при этом каждый раз происходит парсинг текста и построение объекта супа, это самая тормозная и затратная операция. Просто передавай нужные объекты.
Аноним 01/02/21 Пнд 13:28:53 #243 №1927773 
>>1927769
То есть, да, лол. Ну ты понял.
Один раз парсишь, сколько угодно раз передаешь и используешь.
Аноним 01/02/21 Пнд 14:47:45 #244 №1927908 
Душители питонов, с этой говниной можно что-то делать? Нужна кому-то такая поебота? По сути это функционал, которого нет в tenacity, попробовать можно PR заслать, но мейнтейнер там токсичный слегка ("А зачем? Не нужно нам такое,вот").
Понятное дело что все это сахарок синтаксический, но зато логику легко прятать.
https://pastebin.com/G4jcpnHN

Аноним 01/02/21 Пнд 15:07:22 #245 №1927937 
>>1927773
понял, спс.
Аноним 01/02/21 Пнд 15:24:09 #246 №1927962 
>>1927908
Ну и нахуевертил.
Аноним 01/02/21 Пнд 15:36:11 #247 №1927968 
И снова здравствуйте.
Есть тут кто знает/слышал про autocomplete diginetica? Как распарсить страницу результатов поиска? Захожу через request.get по URL с нужными параметрами, но эта приблуда не отдает нужный HTML пока на самом сайте не кликнешь в форме поиска. Встречались с такой хренькой?
Аноним 01/02/21 Пнд 15:54:58 #248 №1927993 
>>1927968
Генерируется или подгружается дополнительными запросами на клиентсайде.
Аноним 01/02/21 Пнд 16:10:00 #249 №1928013 
>>1927658
Паттерн называется "пул процессов".
Смотри вот здесь:
https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool
Аноним 01/02/21 Пнд 16:18:24 #250 №1928030 
>>1927993
Как/чем можно имитировать запрос?
Аноним 01/02/21 Пнд 16:28:37 #251 №1928046 
>>1928030
Подсмотреть в дебаггере что там за запросы и повторить у себя на той же сесии.
Ну или заменить реквестс на хедлес браузер и он сделает всё сам, но это уже больше вариант для всякой йобы.
Аноним 01/02/21 Пнд 16:41:51 #252 №1928081 
>>1927908
>Душители питонов, с этой говниной можно что-то делать?
Невнятный ужас. Ничего делать с этим не надо, просто удалить.

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

Откровенно индийский код. Перегруженная логика по if-else, когда всё делается проще.
Аноним 01/02/21 Пнд 16:47:55 #253 №1928092 
>>1927908
Душно - большая вложенность, огромные плохо читаемые функции. Почему без ООП? Можно же было это все реализовать классом хендлер и методами, было бы проще поддерживать такой.
>>1928081
Не индусо, а студентокод.
Аноним 01/02/21 Пнд 16:54:32 #254 №1928100 
>>1928046
спасибо, все получилось. чел, ты - классный.
Аноним 01/02/21 Пнд 17:07:30 #255 №1928111 
>>1928030
Мб selenium поможет
Аноним 01/02/21 Пнд 20:36:44 #256 №1928331 
>>1928081
Смысл вызова callback для обработки exception без впендюривания ветвления в логику же. Код на коленке за 5 минут. Я хочу понять нужна такая поебота кому-то кроме меня или нет, тем более это декоратор.

Аноним 01/02/21 Пнд 20:39:12 #257 №1928332 
>>1928092
И API на воротник.
В tenacity есть retry_error_callback, но он работает хуй знает как, дергает retry_state и все, т.е. задуман не как обработчик какого-либо exception, а как обработчик ошибки retry при окончании попыток. Мне проще форкнуть retrying и прикрутить свою логику с ООП и прочими приблудами
Аноним 01/02/21 Пнд 20:43:41 #258 №1928338 
Двач, скажи как ты искал работу(особенно первую), где вы находили вакансии. Я устал искать по большим компаниям, они не поменялись за последние 3 месяца, хочу найти более мелкую компанию, как их искать, думаю, что там больше шансы попасть на работу после собеседования, куда им присылать резюме, можно ли ссылку на хх кидать?
Аноним 01/02/21 Пнд 20:47:15 #259 №1928340 
Скажите есть ли в джанге встроенная функция, которая проверяет есть ли объект в бд и если нет, то возвращает False, get or 404 возвращает 404 именно, а я хочу в логике проверять и уже не первый раз сталкиваюсь, что в ручную приходится писать
Аноним 01/02/21 Пнд 20:57:53 #260 №1928351 
аноны
чет туплю пиздец уже
короче у меня есть numpy матрица размером n x 3
каждая строка - вектор в трехмерном пространстве
вопрос
как мне все вектора в этой матрице спроецировать на ось з?
Аноним 01/02/21 Пнд 21:08:19 #261 №1928362 
>>1928332
сука, засунули в атрибуты

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

Ебись конем говноподелие с нарушением PEP8, форкать однозначно
Аноним 01/02/21 Пнд 21:13:49 #262 №1928366 
>>1928351
синус косинус пробовал? Смотришь на координаты по y,z проецируешь на z
Аноним 01/02/21 Пнд 21:27:06 #263 №1928377 
>>1928366
не вариант
у меня же таблица векторов и вектор, на который нужно спроецировать
искать углы и прочее это долго, имхо
я придумал чет, но выглядит как батин суп конеч
https://pastebin.com/u8UmEVu2
если кому интересно, мб подскажите как улучшить, а то выглядит больно
Аноним 01/02/21 Пнд 21:29:13 #264 №1928379 
>>1928377
лол, сумму поправил через sum(axis=1)
Аноним 01/02/21 Пнд 21:34:09 #265 №1928386 
>>1928377
Хз на сколько долго это, но косинус из math на C написан, а проекция именно считается через косинус\синус, если тебе нужна z, то это синус между y и z координатами вектора
Аноним 01/02/21 Пнд 21:44:20 #266 №1928398 
>>1928386
>но косинус из math на C написан
Косинус-синус это инструкция сопроцессора.
Аноним 01/02/21 Пнд 21:47:09 #267 №1928400 
>>1928332
>Мне проще форкнуть retrying и прикрутить свою логику
Только пока у тебя логика невнятная и глючная.

Например твоя программа зависиснет, если будет обработчик для исключения, а количество попыток выставлено в 1. А этого явно не должно быть.
Аноним 01/02/21 Пнд 22:16:54 #268 №1928414 
>>1928400
if error_handler:
error_handler(e)
break
else:
raise e

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

На самом деле в tenacity прикрутили callback, но не написали про параметры retry_state._exception, ну да похуй. На то он и питон, что в исходниках копаешься. Проще говоря, документацию никто не ведет, true Python way.
Аноним 02/02/21 Втр 00:27:36 #269 №1928480 
Скажите ньюфагу что из двух вариантов будет предпочтительнее в 21 году, Django или JS? Просто похоже они явно два конкурента за рынок
Аноним 02/02/21 Втр 00:47:38 #270 №1928497 
>>1928480
Ясен хуй жс
Аноним 02/02/21 Втр 01:13:02 #271 №1928511 
>>1928480
>Django или JS
Джанго это фреймворк, а JS это язык программирования. Ты должен понимать, что вот так нельзя сравнивать.
Аноним 02/02/21 Втр 01:18:48 #272 №1928512 
>>1928511
Ну раз нельзя тогда можешь не отвечать на пост.
Аноним 02/02/21 Втр 06:25:54 #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
Аноним 02/02/21 Втр 07:40:05 #274 №1928565 
>>1928556
Советую "PostgreSQL. Основы языка SQL" Е. П. Моргунов 2019
Аноним 02/02/21 Втр 08:07:02 #275 №1928569 
>>1928565
Нашел 2018 года, на флибусте. И 2019 год для покупки, но там одинаковые обложки. Они отличаются? На обложке 2019 года нет ничего про 2 издание и тп.
Аноним 02/02/21 Втр 09:00:43 #276 №1928576 
На питоне заебно гуй приложения писать? Какие либы стоит попробовать?
Аноним 02/02/21 Втр 11:07:22 #277 №1928638 
Привет здарова подскажите, в каком направлении думать:
Есть один тг бот (пишется на аиограме, если что) который с заданным периодом делает рассылки в тг каналы
Материал для этих рассылок парсится с помощью стороннего внешнего сервиса, ну точнее его апи.
Так вот, я бы хотел этот парсер отделить от бота и сделать бекграунд задачей, но при этом не хотел бы мешать асинк код с тредами (почему - не знаю)
Как я это себе представляю: бот работает, слушает месседж хендлеры и в то же время в фоне независимо крутится парсер (может быть не один). Когда "прилетает" новый контент, то парсер кладет данные в стек (пока в этой роли юзается постгрес), а бот время от времени "вытаскивает" накопленное из этого стека и делает рассылку.
В реальности, пока что есть вот такая убер всратая заглушка для 1 тестового канала: https://pastebin.com/Xv0uTD9b
Аноним 02/02/21 Втр 11:18:34 #278 №1928645 
>>1928638
В чем проблема-то?
Аноним 02/02/21 Втр 13:01:34 #279 №1928749 
Аноны, помогите разобраться. Есть такая структура:
"products": [
....{
........"id": "71470",
........"name": "Молоко",
........"brand": "МПК ООО",
........"price": "59.7"
....},
....{
........"id": "71471",
........"name": "Хлеб",
........"brand": "ХЛЕБ ООО",
........"price": "25"
}
Внимание, вопрос: как отсортировать по значению "price"?
Аноним 02/02/21 Втр 13:06:11 #280 №1928754 
>>1928749
data['products'].sort(key=lambda x: x['price'])
Аноним 02/02/21 Втр 13:19:44 #281 №1928758 
>>1928754
спасибо
Аноним 02/02/21 Втр 13:24:28 #282 №1928760 
>>1923442 (OP)
gRPC с Питоном - норм тема? Кто пробовал?
Аноним 02/02/21 Втр 13:36:06 #283 №1928770 
>>1928760
Гей-РПЦ?
Аноним 02/02/21 Втр 13:43:01 #284 №1928783 
>>1928749
Судя по всему это джейсон, так что по ключу.
Аноним 02/02/21 Втр 13:52:01 #285 №1928800 
Где можно найти курсы с realpython?
Аноним 02/02/21 Втр 14:42:16 #286 №1928839 
image.png
Сап, аноны, помогите разобраться. Хочу написать один мини-проект для себя. Суть в том, что мне нужно выцепить из Яндекс Карты значение, через которое автобус будет на остановке(пикрил). Пытался парсить html через BS, но вышло так себе, поскольку блоки на сайте меняют положение и значение у меня было от разных автобусов, в зависимости, как был выше. Как это лучше сделать? Может вообще можно через api эти значения получить?
Аноним 02/02/21 Втр 14:51:14 #287 №1928853 
>>1928839
API-то пробовал?
Аноним 02/02/21 Втр 15:24:17 #288 №1928877 
>>1928853
Тариф API для городского транспорта вроде как платный, есть только бесплатный для рейсовых
Аноним 02/02/21 Втр 17:04:42 #289 №1928958 
>>1928839
Яндекс анально огорожен, а парсить это говно через Селениум идея паршивая. Попробуй Openstreetmap, там инфа не такая детальная, но есть нормальный АПИ
Аноним 02/02/21 Втр 17:05:07 #290 №1928959 
>>1928480
жабаскрипт
Аноним 02/02/21 Втр 17:07:39 #291 №1928960 
>>1928480
Что значит Джанго или JS? Что ты блин имеешь ввиду под "JS"?
Если про бэкенд, то если че, Джанго это скорее из той же ниши как Laravel - монолитный фреймворк со свистоперделками, тогда как Нода нацелена на микросервисную организацию. Ну и не говоря о том, что вкатышей в Ноду берут неохотно и в целом вакансий на нее в Раше немного (а вот в США поболее, Рашка как всегда)
Аноним 02/02/21 Втр 17:16:39 #292 №1928965 
>>1928958
Спасибо, анон, я уже часа 3 аутировал с парсингом
Аноним 02/02/21 Втр 17:27:30 #293 №1928970 
>>1928965
https://wiki.openstreetmap.org/wiki/RU:Overpass_API/Language_Guide

Тут гайд
Аноним 02/02/21 Втр 17:52:56 #294 №1928984 
>>1928970
Я думаю, это вряд-ли поможет. Мне в конечном итоге нужно получить инфу о времени прибытия автобуса на остановку. Попробую еще что-нибудь поискать
Аноним 02/02/21 Втр 18:46:21 #295 №1929023 
>>1928984
2гис апи смотрел?
Аноним 02/02/21 Втр 19:35:07 #296 №1929058 
Процедурный питухон в треде. Нужен совет (inb4 программирование не твоё).
Написал скрипт_1, который с моего рабочего пека из закрытой сетки через vpn по ssh лезет на удалённый сервак, на котором запускает скрипт_2, который выгружает из хранилища данные и архивит их, и через scp выгружает на мой рабочий пека, и потом эти данные переносятся на сетевой диск третьим лицам.
Проблема: я заебался всё это делать сам, хочу написать веб сервис или веб апи, чтобы третьи лица сами могли получить эти данные.
Вопрос: как делать, куда копать?
Аноним 02/02/21 Втр 19:36:34 #297 №1929059 
>>1923442 (OP)
В чем идея второй картинки?
Аноним 02/02/21 Втр 19:55:08 #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
Аноним 02/02/21 Втр 19:55:49 #299 №1929070 
>>1929058
Мало данных. Эта вся впн-хуита нужна, или можно поднять сервер прямо там? Архвирование долго ждать или можно на ходу провернуть?
Аноним 02/02/21 Втр 20:00:33 #300 №1929073 
>>1929058
джанго скачивание файлов
Аноним 02/02/21 Втр 20:03:04 #301 №1929075 
>>1929068
В питоне всё ссылка, у тебя эта ссылка на список таскается в каждом вызове и список по ней меняется.
Аноним 02/02/21 Втр 20:03:13 #302 №1929076 
>>1929068
> асайнить значение в функции через рекурсию этой функции
У тебя обычная мемоизация. В петухоне такого вообще вроде делать ни нужно - все из каропки.
Аноним 02/02/21 Втр 20:06:48 #303 №1929082 
>>1929058
>я заебался всё это делать сам, хочу написать веб сервис или веб апи
Чет у тебя какие-то сложные костыли либо ты непонятно обьяснил. Не проще ли сделать например фтп сервер и выдавать доступ?
Аноним 02/02/21 Втр 20:13:01 #304 №1929087 
>>1929070
>впн-хуита нужна
Нужна только мне (скрипту 1), чтобы с правами приложения можно было зайти на удалённый сервак и выгрузить данные (скрипт 2)
>можно поднять сервер прямо там
Можно, но там нет виртуалок или контейнеров, всё это будет крутиться в общем потоке, что не желательно, т.к. по сути я это делаю без согласования с девопсами
>Архвирование долго ждать
Долго

>>1929082
>Не проще ли сделать например фтп сервер и выдавать доступ
Девопсам было не проще, а я не девопс
Аноним 02/02/21 Втр 20:17:54 #305 №1929094 
Ребзи, нужна помощь с телеграм ботом на aiogram, готов заплатить.
ТЗ и вопросы в телегу - @totsamiianon
Аноним 02/02/21 Втр 20:18:17 #306 №1929096 
>>1929087
>по сути я это делаю без согласования с девопсами
Мамкин хацкер, ясно.
Аноним 02/02/21 Втр 20:19:55 #307 №1929097 
>>1929096
Если бы они все не уволились, я бы этой хуйней (которую спихнули на меня) не занимался. До меня это делали вручную.
Аноним 02/02/21 Втр 20:30:51 #308 №1929111 
>>1929059
Возможно, они хотят сказать, что питон начал опережать джаву в каких-нибудь рейтингах популярности, и эта популярность продолжает расти.
Аноним 02/02/21 Втр 20:33:23 #309 №1929115 
>>1928480
Ты еще слишком ньюфаг.
Аноним 02/02/21 Втр 20:38:58 #310 №1929121 
>>1929115
А у ньюфажества есть уровни?
Аноним 02/02/21 Втр 21:02:46 #311 №1929133 
>>1929121
Джуниор ньюфаг.
Аноним 02/02/21 Втр 21:30:15 #312 №1929162 
>>1929133
Сеньор ньюфаг со знанием четырех языков программирования
Аноним 02/02/21 Втр 21:37:17 #313 №1929181 
>>1929162
>Сеньор ньюфаг со знанием четырех языков программирования
Я знаю больше и не вкатился даже на джуна.
Аноним 02/02/21 Втр 21:50:50 #314 №1929205 
>>1929181
Джун-олдфаг это уже со знанием ассемблера.
Аноним 02/02/21 Втр 22:20:10 #315 №1929240 
Capture1.PNG
Двач помогай, я устал, не получилось нагуглить. Я полное нубло в питоне, увы пришлось код с 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'

Часть кода - пик рил.
Суть кода подключаемся к БД, вытягиваем запросом данные, в пандасе ворочаем, засовывем обрато в БД.
Аноним 02/02/21 Втр 22:22:18 #316 №1929241 
>>1929240
Пандас же только на конде работает, как ты его в пичарм сунул?
Аноним 02/02/21 Втр 22:27:26 #317 №1929243 
>>1929241
>Пандас же только на конде работает, как ты его в пичарм сунул?
Ты сам хоть понял, чего сказал?
Аноним 02/02/21 Втр 22:28:26 #318 №1929244 
>>1929241
Хуй знает, наверно сперва делал в жупитере с пандасом, потом ушёл в пичарм и там уже поправил всё. Я год тому код писал и забыл. Я ваще дуплей не режу в питоне. Помогити, эту ебалу запустить. Снова перепроверил - в пичарме - заебись всё отработало, в ипомртах пандаса - нет.
Аноним 02/02/21 Втр 22:33:47 #319 №1929245 
>>1929240
Я так понимаю, без индексов не хочет отрабатывать, верно?
Как это сделать ?
Аноним 02/02/21 Втр 22:34:04 #320 №1929246 
>>1929240
Пиздец ты хлебушек. Закомментить ошибку, добавить print(df.columns.values.tolist()) и проверить, есть ли там 'param1' или нет мозгов не хватает?
Аноним 02/02/21 Втр 22:37:42 #321 №1929249 
>>1929246
>Пиздец ты хлебушек.
Ну такой я у мамы.
>print(df.columns.values.tolist())
Есть и param1 и param2 и всё остальное. Правда я это на десктопе проверяю, а там всё и так заебца работает.
Аноним 02/02/21 Втр 22:41:02 #322 №1929253 
>>1929249
Ну так у меня на десктопе тоже всё работает. а когда я потом в крон на рабочем пека добавляю, у меня ничего не работает. Наверно проблема не в десктопе и стоит проверять окружение в гитлабе?
Аноним 02/02/21 Втр 22:46:48 #323 №1929257 
>>1929253
А даже если проверять, то что имено? Часть с импортом, коннекторами к БД, запросом в БД и фетч данных - видимо прошла на ура. Либо оно всё не скачалось и я пробую потрогать несуществующую таблицу.
Аноним 02/02/21 Втр 22:59:06 #324 №1929265 
>>1929257
Разставил Принт Ок по ключевым моментам. Данные достаются. Значит чисто в тех превращениях данных ошибка.
Аноним 02/02/21 Втр 23:16:04 #325 №1929274 
>>1929265
Значит при преобразовании данных из sql в df у тебя столбцы попадают индекс. Попробуй добавить df.reset_index(inplace=True).
Аноним 02/02/21 Втр 23:30:11 #326 №1929292 
>>1929274
Уже пробовал. Навесил ОК на индекс, ОК проходит. Но всё так-же останавливается на начальной ошибке. Вот начало ошибки.
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)
Аноним 02/02/21 Втр 23:43:15 #327 №1929301 
>>1929292
Значит что-то с кодировкой названий столбцов. Нужно добавлять COLLATE в sql запрос. Других идей у меня нет (из-за того что других проблем просто не может быть, если только ворочанием сам датафрейм не ломаешь).
Аноним 03/02/21 Срд 00:16:10 #328 №1929320 
Господа сеньоры огласите топ стек на 2021
Аноним 03/02/21 Срд 00:44:05 #329 №1929328 
>>1929320
KekJS, но он пока ещё доделывается в подземных лабораториях ZOG.
Аноним 03/02/21 Срд 00:55:53 #330 №1929334 
kak nahuy.JPG
65416136513.JPG
9aeU9Xzf3NY.jpg
как достать этот элемент селениумом, ебашу с нуля по сути, что в питоне и программировании, что в селениуме, по ощущениям тыкаю пальцем в небо, но кнопку нажимать скриптом научился за сегодня бы ЕСЛИ БЫ СУКА ПОНЯЛ КАК ЕЁ ВЫТАЩИТЬ
В видосе который я смотрю очень простой хтмл, а найк мудрит пиздец, если кто знает какие-либо крутые и понятные гайды по селениуму, желательно с потенциалом в хедлес, то был бы очень рад и благодарен помощи
среду я вроде норм настроил, сам браузер на найке у меня открылся.
Аноним 03/02/21 Срд 01:06:32 #331 №1929338 
>>1929334
Там же _ первым символом, слепой штоле? Но вообще оно выглядит рандомно, небось меняется регулярно. Да и вообще ты зря полез в эти кроссовки будучи нубом, там пиздец царство ботоводов.
Аноним 03/02/21 Срд 01:19:35 #332 №1929350 
>>1929338
>Там же _ первым символом
бля я олень
>Но вообще оно выглядит рандомно, небось меняется регулярно.
так и есть
>Да и вообще ты зря полез в эти кроссовки будучи нубом, там пиздец царство ботоводов.
ООО ты понял что я хочу, у меня просто пиздец какие выходы есть на кросы, так что нужно думать в этой сфере, было бы супер расскажи ты мне куда копать чтобы двигаться в этой сфере.
Из того что я понял это селениум и хедлес браузер, но по тому что все пишут про ботов, видимо без иишки не обойтись, но в чем задача ии? Они реально настолько рокет сайентисты, что обучают комп разгадывать задумки найка, и самому настроить скрипт будет слишком долговсё вынесут, или они просто таким образом оптимизируют код в бота чтобы больше запросов посылать и больше кросс выносить, и потенциально я могу какой нибудь изи высер сделать чтобы хоть 5 пар выносить?
Аноним 03/02/21 Срд 01:20:46 #333 №1929352 
здарова, бандиты
короче вопрос такой
у меня есть класс A и я хочу, чтобы у каждого экземпляра этого класса было поле с опредленным значением, считанным из файла
Причем я не хочу, чтобы при создании инстанса это поле повторно вычислялось
я думал, что это можно сделать так:

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

но так нихуя не работает. Что сделать?
еще раз, одно поле с одним и тем же значением на все инстансы
Аноним 03/02/21 Срд 01:24:49 #334 №1929357 
аноны
короче у меня прога, которая захватывает с вебки изображение и как-то его обрабатвает - не важно как
вопрос, как лучше разнести захват кадров и алгоритм на модули?

вариант 1) запускать видеопоток в отдельном потоке и передавать в основной поток кадры, которые далее обрабатываются
вариант 2) ебануть while True цикл в мейне, и там уже вызывать методы из модуля захвата видеопотока
Аноним 03/02/21 Срд 01:33:09 #335 №1929360 
>>1929352
Так и надо, что не работает-то?
Аноним 03/02/21 Срд 02:30:22 #336 №1929379 
>>1929068
Можно чуть иначе, создаёшь словарь 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 будет сам мемоизации производить, только по-умолчанию размер кеша небольшой, но это настраивается параметром хоть до бесконечности, смотри доку.
Аноним 03/02/21 Срд 02:32:18 #337 №1929382 
>>1929352
Слёту должно работать, но файл у тебя будет открываться при запуске программы, а не при первом инстансе, возможно это не то, чего ты хочешь.
Аноним 03/02/21 Срд 04:44:56 #338 №1929412 
>>1929087
Опиши, как это должно выглядеть со стороны пользователя.

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

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

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

Аноним 03/02/21 Срд 09:18:44 #339 №1929448 
>>1929350
В чем суть твоего биза, кроссовки по акции?
Аноним 03/02/21 Срд 11:30:31 #340 №1929517 
Писали многие про Jupiter. Типо "крута, модна", посмотрел - это ж бля пиздец какой-то, сраный большой калькулятор да и нет нормальной интеграции с гитом. Это ж для детей каких-то ебаных, вам пидорасам дали нормальные IDE, кому бля всрался Jupiter?
Аноним 03/02/21 Срд 11:31:41 #341 №1929518 
>>1929517
IDE это для разработчиков, а жупитер для студентоты и всяких научных хуев.
Аноним 03/02/21 Срд 11:36:45 #342 №1929519 
>>1929352
У тебя как-то по наркоманский сделано.
Тебе надо при инициализации передавать значение для экземпляра класса.
Дальше ты читаешь свой файл, читаешь значение и передаешь его при итерации обьекта.
Аноним 03/02/21 Срд 12:13:49 #343 №1929537 
Привет, двач! Redpill me.

Я решил запилить свою геолокационную игру, что-то типа геокешинга, если вы понимаете о чем я. Сервер решил писать на джанге, тем более, у нее есть отличная функциональность ГИС-системы. Реализован сервер будет в качестве api - клиент будет кидать put с координатами в json, и получать какой-то результат от сервера. В чем минусы такой архитектуры?
Аноним 03/02/21 Срд 13:50:39 #344 №1929581 
>>1929519
у меня одно значение на все экземпляры
каждый раз его не очень хочется читать
а если я укажу так:

hui = read_from_file("hui")

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

будет ли это работать, если я инстанциирую класс вообще в другом модуле, в котором пишу
from a_ import A
Аноним 03/02/21 Срд 13:56:32 #345 №1929587 
>>1929581
@lru_cache

https://pavel-karateev.gitbook.io/intermediate-python/dekoratory/function_caching
Аноним 03/02/21 Срд 13:57:16 #346 №1929588 
>>1929581
И нет, не будет, потому что ты импортируешь только сам класс. Чтобы работало, нужно импортировать весь модуль.
Аноним 03/02/21 Срд 14:00:30 #347 №1929593 
>>1929581
Почему не?
class A:
def __init__(self, hui):
self.hui = hui ^ 2
Аноним 03/02/21 Срд 14:01:37 #348 №1929595 
>>1929581
Всё у тебя правильно.
https://ideone.com/mi3vfo
Оно выполняется один раз при определении класса на старте.
Аноним 03/02/21 Срд 14:25:46 #349 №1929616 
Как узнать в каком порядке питон просматривает директории в поисках либы?
Куда следует класть libname.py, чтобы он цеплялся по import из любой директории?
Аноним 03/02/21 Срд 14:28:44 #350 №1929620 
>>1929616
PYTHONPATH жи есть.
Допустим у тебя репа со своими говноподелками и надо их подключать в другой проект без copy-paste. Добавляешь репу в PYTHONPATH и все.
Аноним 03/02/21 Срд 14:30:55 #351 №1929622 
>>1929616
точно не помню
но он сперва просматривает стандартные, по путям из sys.path
чтобы он цеплялся из любой дирректории, нужно сделать отдельную папку с __init__.py - тогда эта папка будет восприниматься как пэкэдж и ты можешь ее импортировать
например
\package
----__init__.py
----lib.py

зызывается так:
1) import package.lib
2) from package import lib
ну и прочие вариации
Аноним 03/02/21 Срд 14:31:05 #352 №1929623 
>>1929616
>Как узнать в каком порядке питон просматривает директории в поисках либы?
cmd -> path
Аноним 03/02/21 Срд 14:31:39 #353 №1929625 
>>1929622
> но он сперва просматривает стандартные, потом по путям из sys.path
фикс
Аноним 03/02/21 Срд 14:33:07 #354 №1929627 
аноны, есть ли какие-нибудь бесп практис на тему того, что нужно класть в __init__.py?
Аноним 03/02/21 Срд 14:35:37 #355 №1929632 
>>1929627
Ничего или код, который будет выполняться при запуске этого модуля python3 -m src.main, где в __init.py__ например прописана загрузка load_dotenv или что-то еще. Главное совсем уж логику не скрывать там. Там же может быть импорт всего говна из поддиректорий или формирование новых объектов.
Аноним 03/02/21 Срд 14:42:00 #356 №1929637 
>>1929632
угу, спс
Аноним 03/02/21 Срд 14:48:43 #357 №1929644 
>>1929637
А вообще смотри на github исходники и кто как использует init.py

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

Можешь просто искать по reference что откуда берется. В этом плане Питон простой.
Аноним 03/02/21 Срд 15:08:01 #358 №1929659 
бля я понял почему не работало
но не понял какого хрена
короче я сдела вот так

hui = read_from_file("hui")

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

и потом импортировал модуль
и он не мог считать файл
прекол в том, что у меня лежали в разных папках два пэкэджа (ну логично)
и вот ОКАЗЫВАЕТСЯ, когда я импортирую модуль, то пути у импортированного модуля херятся, тк питон думает, что теперь модуль находится по пути файла, который его импортирует
немного непонятно написал, но если что вот
Аноним 03/02/21 Срд 15:10:39 #359 №1929661 
>>1929659
но это залупа какая-то, если честно
абсолютно неожидаемое поведение
Аноним 03/02/21 Срд 15:13:12 #360 №1929663 
>>1929659
>>1929661
Абсолютно ожидаемое и очевидное.
Ты выполняешь свой скрипт и в его контексте выполняются и импортируемые модули.
Аноним 03/02/21 Срд 15:14:46 #361 №1929666 
>>1929663
ну я так тебе скажу
я как бы и бомблюсь
ну а вообще и сам дурак, что не знал
Аноним 03/02/21 Срд 16:00:11 #362 №1929702 
народ
у меня есть функция, я хочу к ней аннотировать тип возвращаемного значения
но
у меня может вернуться, условно, инт, а может None
пайчарм на такое ругается - говорит, что нан это не инт(что в целом-то логично)
что делать в таком случае?
Аноним 03/02/21 Срд 16:09:27 #363 №1929712 
>>1929702
-> Optional[int]
Аноним 03/02/21 Срд 16:10:31 #364 №1929714 
>>1929712
лучший
Аноним 03/02/21 Срд 16:35:00 #365 №1929748 
>>1929622 >>1929620 >>1929623
Спасибо, понял куда копать.
Аноним 03/02/21 Срд 17:39:01 #366 №1929803 
Screenshot 2021-02-03 at 19.37.23.png
Screenshot 2021-02-03 at 19.37.39.png
Почему в пайчарме паказывает какую-то не ту документацию?
В юпитер ноутбуке все норм.
Аноним 03/02/21 Срд 17:39:49 #367 №1929804 
>>1929803
> паказывает
Вот это я оплашал.
Аноним 03/02/21 Срд 17:47:00 #368 №1929808 
>>1929517
>Писали многие про Jupiter. Типо "крута, модна", посмотрел - это ж бля пиздец какой-то
Жупитер хвалят неосиляторы, не умеющие толком программировать или не желающие тратить время на изучение нормальных инструментов.
Аноним 03/02/21 Срд 18:10:41 #369 №1929825 
>>1929808
Когда нужно работать с кучей датафреймов, в которых лежат данные из разных источников (скл, монга, хадуп, цсв и т.п.), при написании прототипа и при добавлении нового функционала нахуя каждый раз запускать скрипт и ждать, пока все шаги выполнятся?
Аноним 03/02/21 Срд 18:16:09 #370 №1929836 
>>1929825
>нахуя каждый раз запускать скрипт и ждать, пока все шаги выполнятся
В пайчарме, внезапно, тоже можно использовать интерактивный питон.
Аноним 03/02/21 Срд 18:21:16 #371 №1929840 
чет я совсем туплю поцонва
спрошу еще раз (до этого просто никто не ответил)
короче у меня есть камера, я хочу с нее считывать данные и обрабатывать
стоит ли мне запилить захват камеры в отдельный поток? ГИЛ же ведь превратит мою прогу в однопоточную все равно
Может у вас есть похожие кейсы. Вроде как и хочется многопточку вставить, но уместно ли это тут?
Аноним 03/02/21 Срд 18:40:28 #372 №1929856 
>>1929836
Внезапно, интерактивный код можно писать и в python shell.
Он там не такой удобный, и не надо ебать мозги с установкой venv и пакетов, когда можно проверить или внести правки в код, тестируя на mybinder.
Я сам пользуюсь PyCharm для разработки, но кукарекать, что "Jupyer/Anaconda/etc ряяя для дитей нинужна тому шо мне нинужна" долбоебизм. Это тоже инструменты, и если тебе нужен фломастер зеленого цвета, то "нинужна" бежать в магазин за набором из всех цветов.
Аноним 03/02/21 Срд 18:48:12 #373 №1929861 
Всем ку, почему в шапке про вкат ничего?
Востребованы щас путон-спецы и какой порог входа?
Аноним 03/02/21 Срд 19:08:44 #374 №1929878 
>>1929856
>Это тоже инструменты, и если тебе нужен фломастер зеленого цвета, то "нинужна" бежать в магазин за набором из всех цветов.
Ну так назови преимущества или просто уникальные фичи жупитера по сравнению с пайчармом. Мне в голову приходит только Markdown ячейки и сохранение принтов и картинок в один JSON файл. Польза от них сомнительна, а в замен ты получаешь отсутствие всех фишек IDE и невозможность структурировать проект.
Аноним 03/02/21 Срд 19:19:26 #375 №1929886 
>>1929878
В pycharm не могу быстро тестить нейронки, а в jupyter могу (через collaboratory), хоть он тут и не конечный инструмент, а прослойка. Мне этого достаточно.
Аноним 03/02/21 Срд 19:28:07 #376 №1929897 
>>1929886
>а в jupyter могу (через collaboratory)
Ты про гугл колаб? Ну, если настолько нищий, что нет денег на свою видеокарту, то смысл использовать есть.
Аноним 03/02/21 Срд 19:32:05 #377 №1929901 
>>1929897
Ну да, на моей 2070s не так быстро обучается. Мне за слаем из титанов быстрей бежать?
Аноним 03/02/21 Срд 19:32:33 #378 №1929902 
>>1929897
Вангую у него пека для учебы со всройкой.
>>1929878
Так жупитер и чарм для разных задач.
Аноним 03/02/21 Срд 19:39:37 #379 №1929908 
>>1929901
>Ну да, на моей 2070s не так быстро
Пиздишь. В колабе стоит древняя K80.
>>1929902
>Так жупитер и чарм для разных задач.
Так мы и выясняем, для каких конкретно задач нужен жупитер. Пока что внятного ответа никто не дал.
Аноним 03/02/21 Срд 19:43:15 #380 №1929911 
Даны 2 катета. Найти гипотенузу и угол.
Аноним 03/02/21 Срд 19:53:02 #381 №1929924 
>>1929908
>Пиздишь. В колабе стоит древняя K80.
Что не мешает ей падать, когда оставляешь на ночь. Памяти там больше.
>Пока что внятного ответа никто не дал.
Тебе уже написали, что как минимум для обучения/тестирования нейросетей. Для одноглазых калек (в т.ч. меня), которым лень ебаться с скачиванием и установкой, настройкой окружения и пип инстоллами пакетов, особенно когда у тебя не всегда есть доступ к домашнему пека и приходится перебиваться рабочим ноутбуком, можно зайти на mybinder и там всё делать. Никто не спорит, что использовать его в серьезной разработке стоит.
Аноним 03/02/21 Срд 19:54:48 #382 №1929927 
>>1929924
не падать
не стоит
селффикс
Аноним 03/02/21 Срд 19:59:33 #383 №1929932 
>>1929924
>>1929927
>падать
не падать
> стоит
не стоит

селфселффикс
спасибо ведройду
Аноним 03/02/21 Срд 20:04:38 #384 №1929939 
>>1929911
Ну так ищи, хули ты тут сидишь?
Аноним 03/02/21 Срд 20:05:35 #385 №1929941 
Почему петухон не хочет вводить нормальные инструменты для создания мобильных приложений. Уже даже в жсе это есть а великие петухонисты на уровне пхп
Аноним 03/02/21 Срд 20:12:17 #386 №1929946 
>>1929924
>лень ебаться с скачиванием и установкой, настройкой окружения и пип инстоллами пакетов
В общем понятно. Ты описываешь преимущество не жупитера, а колаба.
Аноним 03/02/21 Срд 20:15:43 #387 №1929950 
>>1929941
Это ты придумал отмазу, почему не учится питон?
Аноним 03/02/21 Срд 20:29:42 #388 №1929960 
>>1929950
>мгновенная проекция вкатуна
Аноним 03/02/21 Срд 20:34:02 #389 №1929964 
>>1929960
Что, угадал?
Аноним 03/02/21 Срд 20:35:13 #390 №1929966 
>>1929964
Что угадал?
Аноним 03/02/21 Срд 20:37:33 #391 №1929967 
>>1929946
Потому что я не разработчик, а аналитик, и мне полезны любые инструменты, с помощью которых можно сделать или протестировать прототип. Даже если в этом инструменте мне нужна только 1 фича, и даже если у серьезных дядек он не котируется, мне это экономит время и нервы.
А в чем и как уже они потом это в прод будут переписывать мне похуй (и никто мне не доплатит, если я буду ради них напрягаться). Но дома у меня установлен pycharm, и для второй работы всё пишу там.
А вообще, во многих популярных курсах по АДу, в ШАДе и т.п. все учатся в jupyter.
Аноним 03/02/21 Срд 21:30:28 #392 №1929981 
https://mail.python.org/archives/list/[email protected]/thread/UV72JXDKJYTETYQUCU36RXQCGEXGSIP2/
Аноним 03/02/21 Срд 22:29:22 #393 №1930008 
Screenshot from 2021-02-03 22-25-37.png
>>1929981
Ни о чём. Так, пытаются по мелочам тайпинг-аннотации допиливать, и на этом всё.
Аноним 03/02/21 Срд 23:07:56 #394 №1930045 
>>1930008
Ну а хуле. С релизным циклом в полтора года фич не напилишь. Надеюсь, свичи завезут вскоре
Аноним 04/02/21 Чтв 00:42:16 #395 №1930100 
d = ("flowers")
"flowers" in d

ПОЧЕМУ У МЕНЯ НИЧЕГО НЕ ПРОИСХОДИТ. ЧТО Я ДЕЛАЮ НЕ ПРАВИЛЬНО? Я НАЖИМАЮ run И ВСЁ, КОНСОЛЬ ПУСТАЯ.
Аноним 04/02/21 Чтв 00:51:22 #396 №1930103 
>>1930100
Для тупли с одним элементом надо запятую в конце.
Аноним 04/02/21 Чтв 00:52:20 #397 №1930105 
Хотя оно и так должно работать как подстрока, лол.
Аноним 04/02/21 Чтв 00:52:52 #398 №1930106 
>>1930103
Зачем там запятую? Я нигде в примерах не видел её
Аноним 04/02/21 Чтв 00:55:11 #399 №1930109 
image.png
>>1930106
Надо было покупать курсы за миллион, а то так и останешься неучем.
Аноним 04/02/21 Чтв 00:57:39 #400 №1930113 
>>1930109
Хуета какая-то. Я пытался с тремя значениями что-то сделать, где была запятая и нихуя не получалось
Аноним 04/02/21 Чтв 00:59:26 #401 №1930114 
>>1930113
Это применяется только для одного элемента.
Аноним 04/02/21 Чтв 01:00:44 #402 №1930115 
>>1930114
Спасибо. Всё равно не понимаю, почему это нигде не было указано
Аноним 04/02/21 Чтв 02:21:45 #403 №1930145 
absolute-beginners.jpg
Пикча с гитхаба.
Аноним 04/02/21 Чтв 04:10:19 #404 №1930152 
>>1923694
Аноним 04/02/21 Чтв 12:06:14 #405 №1930266 
>>1929911
берешь и формулу в принт вставляешь
Аноним 04/02/21 Чтв 12:07:34 #406 №1930268 
>>1930106
чтобы обозначить что это кортеж, а не переменная
Аноним 04/02/21 Чтв 12:12:35 #407 №1930270 
Screenshot - 2021-02-04T121225.520.png
>>1930115
Как я понял, в питоне вообще дохуя мелочей, про которые не рассказывают даже на курсах.
чтобы все понять нужно читать документацию, вот пример
Аноним 04/02/21 Чтв 12:49:31 #408 №1930285 
аноны, поясните за бест практис
с одной стороны - класс, у которого все методы статические и есть пару полей
с другой стороны - просто модуль, в котором есть глобальные переменные и функции
по факту, разницы нихуя (ну разве что класс солиднее смотрится), но вопрос: как лучше? ведь оба варианта справляются одинаково с задачей
Аноним 04/02/21 Чтв 12:53:55 #409 №1930287 
>>1930285
Модуль лучше, ты потом его сможешь использовать в другом месте.
Аноним 04/02/21 Чтв 13:08:18 #410 №1930300 
ебать
хочу инициализировать пустую переменную класса
пишу

class Pizda:
___def __init__(self):
______pass

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

но пайчарм кидат ворнинг, потому что expect Pizda got None instead (прям как в жизни лол)
как правильно инициализровать переменные пустым значением?
Аноним 04/02/21 Чтв 13:10:55 #411 №1930303 
>>1930300
>Pizda = ''
Например.
Аноним 04/02/21 Чтв 13:11:44 #412 №1930304 
>>1930303
не понял
поясни плез
Аноним 04/02/21 Чтв 13:13:39 #413 №1930307 
>>1930304
Ну епта смори короче, None это ничего, а так ты создаешь переменную которая ровна пустой строке '' это джве ординарные ковычки, можешь взять "" чтобы было понятней.
Аноним 04/02/21 Чтв 13:16:01 #414 №1930310 
>>1930300
просто self.pizda : Pizda
Аноним 04/02/21 Чтв 13:17:38 #415 №1930316 
>>1930307
браток, так теперь expect Pizda got STR instead
Аноним 04/02/21 Чтв 13:18:49 #416 №1930319 
>>1930310
я тоже так думал
но если я пишу в другом методе типа

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

он говорит "какого хуя ты инициализируешь не в инит"
Аноним 04/02/21 Чтв 13:21:33 #417 №1930324 
>>1930319
>он говорит "какого хуя ты инициализируешь не в инит"
Потому что тебе надо передать какое-то значение для p + i + z + d + a в foo.
Аноним 04/02/21 Чтв 13:24:36 #418 №1930329 
>>1930319
Пишет как есть. Ты хинтнул, но не инициализровал.
Аноним 04/02/21 Чтв 13:25:21 #419 №1930330 
>>1930329
да логично
как взрослые дяди такие вещи реализуют?
Аноним 04/02/21 Чтв 13:28:46 #420 №1930334 
>>1930330
Ну если ты хочешь следовать пепам, то не инициализируй не в конструкторе, это вообще не имеет отношения к тайпингу.
Аноним 04/02/21 Чтв 13:31:28 #421 №1930339 
>>1930334
пеп говорит, что если у класса есть поле, то оно ДОЛЖНО быть инициализированно в конструкторе?
Аноним 04/02/21 Чтв 13:41:07 #422 №1930357 
>>1930339
Если там указан номер пепа, то да. Если нет, то это сам пучарм бухтит.
Аноним 04/02/21 Чтв 13:41:31 #423 №1930358 
>>1930357
спасибо всем чуваки
Аноним 04/02/21 Чтв 13:45:06 #424 №1930360 
>>1930270
Да тут какбэ логично, т.к. питон наверняка думает что это просто выражение тип (1 + 2) если ему не показать что это список элементов с помощью запятой
Аноним 04/02/21 Чтв 14:16:55 #425 №1930382 
>>1930360
ну если там 1 элемент то запятая ставится просто чтобы показать что это кортеж.
алсо можно просто прописать что это тупле
Аноним 04/02/21 Чтв 15:15:00 #426 №1930443 
>>1930270
Спасибо, буду обращаться к документации
Аноним 04/02/21 Чтв 15:21:23 #427 №1930448 
Как писать в ООП стиле? Я просто Н Е П О Н И М А Ю эту хуйню. Когда я пытаюсь что-то сделать используя ОПП, то у меня все заканчивается тем, что я либо тупо все действия совершаю в ините, либо большую часть действий совершаю в ините и в еще паре методов. То есть я тупо использую класс как обычную функцию.
Че делать-то, как осознать эту херню? ООП для меня стало просто камнем преткновения, через который я никак не могу перешагнуть. В книгах какие-то дегенеративные примеры с пиццами и эмплоерами, а реальности когда я смотрю на это в чужом коде, то это какой-то пиздец и взрыв мозга, я вообще не могу уловить логики построения программы.
Аноним 04/02/21 Чтв 15:25:22 #428 №1930453 
>>1930443
Кстати, она есть на русском? а то на инглише не очень прикольно читать.
Аноним 04/02/21 Чтв 15:33:57 #429 №1930457 
>>1930448
>я вообще не могу уловить логики построения программы.
Ты все правильно понял. Для этого и нужен ООП.
Аноним 04/02/21 Чтв 15:35:03 #430 №1930458 
>>1930448
> в ООП стиле
>пистон
https://www.youtube.com/watch?v=Z8-EM1znIrU
Аноним 04/02/21 Чтв 15:37:05 #431 №1930461 
>>1930453
Не искал ещё
Да и лучше на оригинале читать
Аноним 04/02/21 Чтв 16:52:46 #432 №1930571 
>>1929803
Бамп вопросу
Аноним 04/02/21 Чтв 17:07:36 #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 непрозрачно неинтерпретируется? (ибо другое поведение наблюдается)
Как пофиксить?
Аноним 04/02/21 Чтв 17:19:07 #434 №1930584 
>>1930577
Потому что дефолтные значения вычисляются при определении функции, там нихуя нет в это время.
Аноним 04/02/21 Чтв 17:32:12 #435 №1930600 
>>1930448
Для этого тебе нужны ещё классы. Каждое твоё действие в ините выносишь в отдельный класс отдельного метода.
Если там:
1. Скачать CSV
2. Спарсить CSV
3. Перегнать в XML
4. Спарсить XML
5. Сохранить XML

То делаешь FileDownloader , CsvParser, CsvConverter, XmlParser, FileSaver.
Аноним 04/02/21 Чтв 17:57:53 #436 №1930608 
>>1930461
там же довольно лютые термины используются!
Аноним 04/02/21 Чтв 17:58:36 #437 №1930609 
>>1930600
Это классика
Аноним 04/02/21 Чтв 18:32:34 #438 №1930640 
>>1930448
>Как писать в ООП стиле?
А тебе это нужно? ООП начинается с наследования, но нужно это обычно в достаточно больших программах. ООП нужно для упрощения, а ты пытаешься наоборот с помощью ООП усложнять.
Аноним 04/02/21 Чтв 18:42:09 #439 №1930647 
>>1930453
Нет, конечно, откуда бы ей взяться?
Аноним 04/02/21 Чтв 18:47:43 #440 №1930651 
Кто-нибудь в vim кодит? Какой плагин для auto completion накатить?
Поставил какой-то https://github.com/sentientmachine/Pretty-Vim-Python/, но он pattern'ы прямо в тексте отображает, а описание функций в отдельном окне вверху. Мне не нравится такое, когда текст скачет.
Аноним 04/02/21 Чтв 18:55:49 #441 №1930653 
>>1930448
Тоже нихуя не понимаю ооп. Два раза прогорел когда собеседовался с основного места работы. Чувствую себя идиотом.
Аноним 04/02/21 Чтв 19:03:50 #442 №1930664 
Сап, анон. Мечтаю выкатиться из болота qa auto, вот только куда? ETL, бэкенд (но только не девопс)? Хочется пилить что-то своё, а не бежать по рельсам за поездом, который уехал пять лет назад.
Есть у кого-нибудь кулстори по этому поводу?
Аноним 04/02/21 Чтв 19:10:22 #443 №1930671 
>>1930664
>Хочется пилить что-то своё
Ну так пили.
Аноним 04/02/21 Чтв 19:15:58 #444 №1930676 
>>1930651
upd не то скопировал
https://github.com/davidhalter/jedi-vim
Аноним 04/02/21 Чтв 19:17:06 #445 №1930679 
>>1930676
upd, отбой, почитал settings
Аноним 04/02/21 Чтв 19:30:29 #446 №1930700 
>>1930608
Ну да, но перевод на русский может не содержать всей той ценной и достоверной информации
Аноним 04/02/21 Чтв 20:38:40 #447 №1930775 
image
Платиновый вопрос. Дайте пожалуйста ссылку на хороший/быстрый курс питона с задачками на степике.
Аноним 04/02/21 Чтв 21:30:54 #448 №1930823 
>>1930700
Если перевод от шаристого, то всё будет чики-пуки!
Аноним 04/02/21 Чтв 21:33:07 #449 №1930827 
>>1930647
Ну ядумал может какой нибудь энтузиаст переведёт, это же логично! даже порнуху ведь переводят!
Аноним 04/02/21 Чтв 21:35:21 #450 №1930829 
>>1930775
Почему именно степик? ты его фанат?
Аноним 04/02/21 Чтв 21:45:55 #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'

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

>>1930584
Спс.
Обошолся костыликами с if.
Аноним 04/02/21 Чтв 22:03:29 #452 №1930841 
>>1930836
>подкласс
Не подкласс, конечно, а вложеный класс.
Ведь первое это чисто про наследование, а его нет.
Хотфикс.
Аноним 04/02/21 Чтв 22:07:26 #453 №1930842 
>>1930775
Поищи курсы от computer science center (и иже с ним), от них обычно высококачественные курсы.
Аноним 04/02/21 Чтв 22:33:38 #454 №1930848 
image
Аноны, нид хэлп. Сегодня начал учиться на питоне, через яндекс практикум и столкнулся с такой задаче на пике. Написано, что решил правильно, но скажите на счёт 15й строки там так и подразумевалось в задании? Мб вообще я хуйни нахуевертил.
Аноним 04/02/21 Чтв 22:37:29 #455 №1930850 
Конкарент аналоги джанги есть?
Аноним 04/02/21 Чтв 22:45:43 #456 №1930852 
>>1930848
Там достаточно remainder == 0, а не твоя простыня.
Аноним 04/02/21 Чтв 23:03:33 #457 №1930858 
>>1930848
messages_count надо проверять только для частных случаев, когда количество сообщений от 11 до 19. В остальных случаях ты остаток проверяешь, remainder.

Шаблонный код их кривой на самом деле.

Аноним 04/02/21 Чтв 23:10:11 #458 №1930860 
>>1930852
>>1930858
Спасибо. Перечитал, что такое remainder, я обосрался и думал это тупо деление на 10.
Аноним 04/02/21 Чтв 23:27:04 #459 №1930861 
image
>>1930829
Нет, просто codewars я уже решаю, а о других площадках почти ничего не знаю. В принципе подойдёт любая платформа с курсом теории и задачами/тестами.
>>1930842
Спасибо.

Аноним 05/02/21 Птн 00:37:11 #460 №1930895 
>>1930861
что за кодварс? приколи темой. импортные курсы?
Аноним 05/02/21 Птн 00:39:38 #461 №1930897 
>>1930848
Там бесплатные курсы? приколи темой, полупацан.
Аноним 05/02/21 Птн 01:09:54 #462 №1930914 
>>1930895
https://www.codewars.com/ всякие задачки с возможностью просмотра различных решений. Но нет справочной информации.
Аноним 05/02/21 Птн 01:12:10 #463 №1930915 
>>1930897
Решил как гуманитарий, если не хуже. Что-то между собакой и гуманитарием.
Аноним 05/02/21 Птн 02:42:26 #464 №1930962 
Подскажите плиз как сделать элементарную проверку времени runtime как fixture. Чтобы при каждом запуске любого теста она выдавала рантайм равно столько то секунд по дефолту. Спасибо.
Аноним 05/02/21 Птн 05:48:55 #465 №1930995 
>>1930962
Декоратор для проверки времени?
https://medium.com/pythonhive/python-decorator-to-measure-the-execution-time-of-methods-fa04cb6bb36d
Аноним 05/02/21 Птн 06:35:32 #466 №1930999 
Поделитель опытом, пожалуйста. Есть набор User-Agent'ов. Как и в какую структуру их затолкать, чтобы вызывать рандомно из другой функции?
Аноним 05/02/21 Птн 07:08:22 #467 №1931005 
Снимок.PNG
>>1930999
Аноним 05/02/21 Птн 09:11:00 #468 №1931024 
Есть простой способ написать autocomplete? Что-то вроде скормить ему файлы проекта и как в интерактивной среде получать инфу по табуляции, желательно с простым доступом к doc strings?

Хотя наверное если бы это было так просто это было бы реализовано в стандартном редакторе.
Аноним 05/02/21 Птн 10:40:05 #469 №1931071 
>>1930915
Ват? о чём ты?
>>1930914
понял. зарегился.
Аноним 05/02/21 Птн 11:38:52 #470 №1931114 
>>1930664
Такая же ситуация, анонче. Два года в qa automation. Кажется, что сильно засиделся.

Как мне кажется, легче всего будет переметнуться в бекенд, т.к скорее всего ты уже как минимум знаешь как работают сети, БД. Попробуй написать несложный проект на Джанго, поймёшь надо тебе оно или нет.
Аноним 05/02/21 Птн 12:28:05 #471 №1931164 
>>1931114
Откуда ему знать, как работают сети?
Аноним 05/02/21 Птн 12:30:09 #472 №1931166 
>>1930850
Разве что в комплекте с конкарент аналогом питона.
Аноним 05/02/21 Птн 12:31:29 #473 №1931168 
>>1931164
Он работал прокладчиком проводов в ростелекоме два года
Аноним 05/02/21 Птн 12:42:50 #474 №1931186 
>>1930897
Да, там есть бесплатный модуль.
Аноним 05/02/21 Птн 13:18:03 #475 №1931222 
>>1931186
Он вроде только на первую неделю? а потом 120к заплати за 9 месяцев?
он норм или тупо основы?
Помогите с спецификацией nonlocal Аноним 05/02/21 Птн 13:27:01 #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
Аноним 05/02/21 Птн 14:21:10 #477 №1931280 
>>1931222
По времени он не ограничен, просто задания из этого модуля бесплатные, а потом, если хочешь, нужно платить. Не могу сказать о нём ничего, потому что это мой первый курс по программированию вообще. Скилбокс все обсирали и там нет бесплатного демо, поэтому выбрал яндекс для начала.
Аноним 05/02/21 Птн 14:35:41 #478 №1931308 
>>1931280
ок, понял. если что будешь платить? а про степик не слышал? про питонтутор? про информатикс?
Аноним 05/02/21 Птн 14:36:01 #479 №1931309 
>>1931280
Что знаешь о курсере?
Аноним 05/02/21 Птн 16:47:23 #480 №1931436 
>>1931225
никак, сам Гвидо указывал на такие нюансы. Остается референс на x. Единственный вариант работать с объектами Singleton и идентификаторами.
Аноним 05/02/21 Птн 19:30:15 #481 №1931587 
хай геис
скажите, куда пойти, если хочешь работать с питоном, но не хочешь в веб (доставать странички и класть обратно, о других применениях хз)?
Аноним 05/02/21 Птн 20:02:17 #482 №1931608 
Крякал кто пайчарм с помощью BetterIntelliJ?
Как полёт?
Аноним 05/02/21 Птн 20:05:30 #483 №1931613 
>>1931587
Ну по факту - датасаенс. Дергать данные, обрабатывать данные, класть данные.
Аноним 05/02/21 Птн 20:06:08 #484 №1931615 
>>1931613
только два применения?
а какже какие-нибудь скраперы? правда там вакансии 2 с половиной
Аноним 05/02/21 Птн 20:07:51 #485 №1931617 
>>1931615
Да есть вакансии и на обычное писание командных скриптов. Но тебя туда не возьмут, скорее всего. А так да, говорят еще машинлернинг, но про это не знаю нихуя.

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

Работает не очень быстро, оно и понятно, но я не придумал ничего лучше. Спасибо
Аноним 05/02/21 Птн 20:59:11 #488 №1931665 
>>1931660
алгоритмы
Аноним 05/02/21 Птн 20:59:24 #489 №1931666 
>>1930995
Да, спасибо!
Аноним 05/02/21 Птн 21:04:12 #490 №1931679 
>>1931587
Дота саенс.
Аноним 05/02/21 Птн 21:05:26 #491 №1931681 
>>1931660
Чему там быть не быстро, и почему понятно?
Аноним 05/02/21 Птн 21:07:15 #492 №1931684 
>>1931619
>питон сложный язык
>питон
>сложный
лул
Аноним 05/02/21 Птн 21:10:04 #493 №1931685 
>>1931681
Тройной луп же.
>>1931665
Например?
Аноним 05/02/21 Птн 21:13:39 #494 №1931689 
>>1931685
А я ебу какие у тебя там данные.
Аноним 05/02/21 Птн 21:16:26 #495 №1931690 
>>1931685
Да хоть пятерной, если это нужно. Или ты на одном и том же уровне несколько раз итерируешь, но вложенно?
Пример какой-то корявый.
Аноним 05/02/21 Птн 21:35:37 #496 №1931699 
>>1931587
>но не хочешь в веб (доставать странички и класть обратно, о других применениях хз)?
Что лол, ты плохо понимаешь что происходит на бэке среднего проекта, куча межсервисного взаимодействия, шедулеров, очередей, асинхронных задач.
Аноним 05/02/21 Птн 22:20:05 #497 №1931735 
>>1931699
ты прав, дружище, я и правда плохо знаю)
поэтому и написал в тред)
Аноним 05/02/21 Птн 22:49:24 #498 №1931755 
>>1931619
ну это кажется так из-за выражений типа "веб-макака" и прочее. Но они относятся к пыхопешникам и прочим джаваскриптерам. По факту ты будешь писать реальные приложения, которые будут решать реальные бизнес-задачи. Попробуй, посмотри на джангу
Аноним 05/02/21 Птн 22:51:43 #499 №1931756 
image.png
Использую input.split для ввода чисел через пробел. Можно ли как-то избежать бага, если вводится лишь одно число или не число
Аноним 05/02/21 Птн 23:12:19 #500 №1931769 
>>1931755
>Джанго
>Фреймворк
>Нет асинхронки
>Решает задачи
Это потому сложные процессы забирают у таких макак и переносят на Go при наличии NumPy?
Аноним 05/02/21 Птн 23:17:20 #501 №1931772 
>>1931769
>Нет асинхронки
И? Бэкграунд процессы есть, воркеры есть, что ты еще хочешь от веб-фреймворка, шизло?
Аноним 05/02/21 Птн 23:48:47 #502 №1931788 
>>1931772
>>1931769
так есть же асинхронка
нет распараллеливания на треды
и то есть ведь ГИЛ фри интерпретаторы
мимо НЕ питонщик
Аноним 06/02/21 Суб 00:04:43 #503 №1931808 
Посоветуйте intermediate книжку, сконцентрированную на прикладных знаниях. Типа второй книги Лутца (Programming Python), но не такую древнюю, желательно на английском.
Аноним 06/02/21 Суб 00:50:22 #504 №1931847 
>>1931769
>Это потому сложные процессы забирают у таких макак и переносят на Go при наличии NumPy?
Что за мешанина "умных слов"?
Джанго это большой и зрелый фреймворк со своей большой нишей. Далеко не везде нужна асинхронность.

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

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

При этом питон не для макак, потому что на питоне макака-задачи не делают. Их делают на других платформах.
Аноним 06/02/21 Суб 00:55:25 #505 №1931850 
>>1931690
Вложено итерирую, да.
Аноним 06/02/21 Суб 00:56:58 #506 №1931853 
ПЕРЕКАТ
>>1931851 (OP)
>>1931851 (OP)
>>1931851 (OP)
>>1931851 (OP)
Аноним 30/03/21 Втр 22:28:42 #507 №1981965 
>>1923442 (OP)
Двачик помоги. Другану нужна помощь в Делфи. Я в этом не шарю от слова совсем, а над ним нависла угроза отчисления. Нужно нарисовать Чебурашку. Поможет кто? (желательно код, если вы понимаете как его сделать)
comments powered by Disqus

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