24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником. исходник: https://dumpz.org/bASGKD8cCFDf
Как присвоить значение конкретной ячейки в pandas Атр1 Атр2 А 0 Б 0 С 0 Значения в столбце "Атр1" уникальные. Нужную мне строку получаю обычным кодом: df[df['Атр1'] == Б]['Атр2'], как присвоить этой ячейке значение вместо нуля.
>>1867357 → Логика этих строк неправильная: >while (simple(e) != 0) and (gcd(phi, e) != 1): >____e+= 1
Ты хочешь найти простое e, (i) оно должно быть простое, (ii) оно должно быть меньше φ (iii) оно должно быть взаимно простое с φ; Я кстати не понимаю, по идее iii + i означает, что φ не делится на i. Зачем так сложно тогда? Хотя по-моему в RSA не нужно, чтобы оно было простым, достаточно взаимной простоты с функцией Эйлера.
Но смотри на свой цикл. Пока число простое и не взаимно простое с φ, пробовать следующее число.
А тебе нужно нужно перебирать цикл до тех пор, пока у тебя число ИЛИ составное, ИЛИ не взаимо простое с φ. Ошибка в логики поиска.
>>1867418 у меня в условии - пока число НЕ простое и НЕ взаимно простое с фи >пока у тебя число ИЛИ составное, ИЛИ не взаимо простое с φ нужно же юзать И нет? допустим фи = 110 а е = 11, получается е не составное, но и не взаимно простое с фи. в таком случае твой цикл прервется, хотя е будет подобран неверно
кто-нибудь смотрел? показалось, что она покороче (или я слепой просто). Если есть цисп под питон, то топ же, а то в свое времяз забросил из-за схемы как раз
>>1867469 Пролистал быстренько. Не понятно, сначала много примитивной воды, ну совсем примитива, и где-то внутри даётся при этом что-то из теории, про функции высшего порядка и т.п., что уже совсем не вода, если это не изучал.
Про СИКП ничего не знаю, но по идее там большой упор на теорию компиляторов и т.п. должен идти. Здесь этого нет, при этом в третьей и четвёртой главе идёт разбор Scheme, примеры на ней и т.п. Что не нравится, хотелось бы уж что-нибудь чисто про питон.
В конце про конкурентное программирование, но как-то в устаревшем ключе, в стиле мютексов, хотя сейчас больше принято всё с упором на очереди делать и этот принцип проектирования, чем прямые блокировки исполнения. Об asyncio, конечно, ни слова, всё-таки старый текст судя по всему.
Не знаю, что-то там содержательное есть в части алгоритмов и некой теории вокруг функций, но прямо чем-то must read я бы этот материал не назвал. Но в целом там есть, что почитать, если именно в контексте теории программирования и на питона.
А так я бы сам не прочь что-нибудь умное почитать.
Небольшой оффтоп. Есть кто удаленно работает? Если я подключусь сначала через свой впн к Европе, потом подключусь через рабочий впн к рабочей сетке, заметят ли в моей конторе, что я не в европке? Насколько дропнется скорость? Нашёл работу за бугром, но сказал им что уже нахожусь в Европе.
>>1867622 На лекции мы изучали, что левый сенсор отвечает за правое колесо, а правый - за левый. Чем ближе сенсор к препятствию, тем пропорционально меньше скорость у соответствующего колеса. Но я тупой и не могу это сделать в питоне. Готов заплатить! но из вчерашних 400 рублей осталось 318, но я отдам их вам
Анончик, дай пожалуйста идею для проекта с использованием асинхронного фреймворка и очередей (Kafka/RabbitMQ). Может быть у кого-нибудь было похожее тестовое задание
>>1867643 Если полезный то хз, если просто что бы пощупать то можно что нибудь типа такого Есть веб форма, в которую заносятся значения, по значению генерируется отчет в виде пдф, который может скачать пользователь. Нужно написать приложение разделенное на два сервиса, веб морду и генератор пдф, общаться должны rpc на реббите, потенциально отчетов может быть очень много и сервис генерации ПДФок поддерживал создание какого угодно числа инстансов.
>>1867627 >Чем ближе сенсор к препятствию, тем пропорционально меньше скорость у соответствующего колеса. #пиздец ты тупой StartDiff=abs(SensorXYposition - TargetXYposition) StartSpeed = 10 цикл движения в сторону сенсора ____выясняем где находится цель ____обновляем свои координаты в нужном направлении плюсуя к ним скорость ____NowDiff=abs(SensorXYposition - TargetXYposition) ____NowSpeed = (StartSpeed x NowDiff) / StartDiff
>>1867643 Тебе для веб вариант или не для веб? Для веб много классических.
Пример на пощупать из бекенда, проверка на доступность каких-то хостов с помощью ping, или сайтов через http запросы.
Соответственно у тебя один сервис генерит задачи и суёт их в очередь, другой сервис, пул воркеров, делает работу и записывает отчёт в другую очередь, третий сервис (или он же первый) делает отчёт, может быть дополнительные задания даёт.
Пытаюсь пообщаться с одним ботом через ngrok (то есть со своего локального сервера). Бот находится на Хероку, попытался отправить ему запрос и получил это:
ReadTimeout: HTTPSConnectionPool
То есть как будто ответа не было вовсе и таймаут закончился. Это может быть связано с тем что я запустил ngrok через http а Хероку на https? Или это тут ни при чем?
>>1867707 По желанию. Очень много информации мозг тупо не успевает обрабатывать и запоминать. 2 часа в день с головой достаточно. Со временем, когда у тебя будет больше опыта, ты будешь информацию уже легче воспринимать, потому что будет база.
Я как-то 2 недели каждый день по 10-12 часов учил все, в итоге по туторам, книжкам, доке я могу все сделать, а сам че-то написать не могу. Взял передышку на месяц и через месяц когда мозг дефрагментировал всю информацию, пришло понимание всего, что учил.
И больше пиши разного кода, читай разный код. Хорошо помогает взять какую-то либу, которую написал какой-то уебан очень плохо и переписать ее под себя, например, по пути дебажа его код и смотреть его реализацию, используя знания, которые ты получил, например при изучении паттернов проектирования.
В url пихает рандомную ссылку напротив которой есть 0. Все работает от 5 до 250 ссылок. Но периодически происходит такая ошибка.
Traceback (most recent call last): File "C:\Projects\pd\lib\site-packages\pandas\core\indexes\base.py", line 2895, in get_loc return self._engine.get_loc(casted_key) File "pandas\_libs\index.pyx", line 70, in pandas._libs.index.IndexEngine.get_loc File "pandas\_libs\index.pyx", line 101, in pandas._libs.index.IndexEngine.get_loc File "pandas\_libs\hashtable_class_helper.pxi", line 1032, in pandas._libs.hashtable.Int64HashTable.get_item File "pandas\_libs\hashtable_class_helper.pxi", line 1039, in pandas._libs.hashtable.Int64HashTable.get_item KeyError: 22014
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "C:/Projects/pd/pars_PS_airs.py", line 27, in <module> url = r.choice(df[df['Pars'] == 0]['Ref']) File "C:\Program Files\Python\Python38\lib\random.py", line 291, in choice return seq File "C:\Projects\pd\lib\site-packages\pandas\core\series.py", line 882, in __getitem__ return self._get_value(key) File "C:\Projects\pd\lib\site-packages\pandas\core\series.py", line 989, in _get_value loc = self.index.get_loc(label) File "C:\Projects\pd\lib\site-packages\pandas\core\indexes\base.py", line 2897, in get_loc raise KeyError(key) from err KeyError: 22014
KeyError постоянно разный. Что не так? Ведь это всего лишь код, который берет случайную переменную из столбца ДатаФрейма.
>>1867707 2 дня непрерывно, 1 день теория и микропрактика, 2 день код. Потом неделя отдыха и поновой. Я пришел к такому варианту как самому продуктивному на данный момент. Собственно в таком варианте я успеваю заниматься языками, другой работой и распиздяйством.
>>1867573 >>1867740 Я вот тоже не понял, каким образом анон собирается счёт себе делать для зарплаты. Для работодателя перевести что-то в Россию отдельный гемор, в Европе без ВНЖ счёт открыть нельзя.
Работодателю может быть похер, где ты находишься физически, раз всё равно удалёнка, но вот эти моменты ни разу не похер.
>>1867800 Да там даже на уровне заключения договора вопросы должны возникнуть, обычно просят айдишку, если он сказал, что имеет гражданство/ПМЖ Евросоюза, ему только пукнуть на эту просьбу останется
>>1867575 Не. Как раз не похуй. Менеджер сказал, что там следят потому что индусики сьебали в свои аулы с европейскими зп и не торопятся возвращяться. Ну им зп и пересчитали на местные.
>>1867740 Это как раз сделано. Я на знакомого оформил аккаунт, уже получал первую зп. Ему отдаю % на налоги. А вот им как раз важно, чтобы я работал из Польши тупо. Хз почему, но такие правила. Я туда прилетал за ноутбуком. Потом улетел в Германию и сказал что оттуда поработаю немного. Сейчас я обратно в России. Но чувствую без впн спалят. Холп.
>>1867978 Да это не только для россиян. Говорю же даже сами полячки из моей команды все вернулись из Испании. Может это с лицензиями или радонами связано, но их и индусов вернулись. Я слышал что это новые правила идущие из сша.
Вопрос: правильно ли я описываю действие для последней клетки? Мне почему-то кажется, что можно сделать проще, а не то же самое прописывать для неё одной. Нормально ли использовать not или надо по-другому?
>>1868338 Вообще вызывать подобные переменные вне контекста их объявление - bad practice, так делать не надо. Все равно что обращаться к i за пределеами цикла for где итерирование шло по i
>>1868283 Имени внутри конструкции трай кетч присваивается ссылка на новый объект, затем, при выходе из конструкции, имя и и объект уничтожаются. Всё верно
>>1867362 (OP) А как какать читать длинные опции, подаваемые в скрипт? getopt читает, я так понял, только односимвольные, а если мне нужны опции --cocksucking или вообще что-то вроде --version==5.2?
Да мне просто нужно в начале модуля создать несколько объектов пустыми, чтобы затем функции оперировали ими как глобальными. Я бы не сказал, что если запихнуть их в словарь, будет проще и минималистичнее. И было бы неплохо, если бы в языке реализовали такое: e, f, g, h = []
В чем разница между самостоятельным вкатом и тратой денег на курс обучения в онлайн школе под руководством опытного айтишника ментора который уже 100 лет на рынке и под конец обучения еще будет свое портфолио с работами.
>>1868611 >Пиздец. Хорошо хоть в питоне На самом деле пиздеца нет, а очень разумное поведение, просто не очевидное.
Вот, например, код my_list = ['x', 'y']
a, b, c, d = [my_list] 4 по логике просто очевидно, что тебе нужно именно размножить мутабельный объект my_list, соответственно очевидно, что a,b,c,d будут эквивалентными Почему в случае с [[]]4 должно быть иначе?
Но понятно что не очевидно, очень часто тут напарываются, как и в случае [] в качестве аргумента функции по-умолчанию.
>>1867362 (OP) Как получать название выделенного окна в винде, когда питонопрограмма свёрнута?
Сейчас есть программа, которая получает название активного окна в Windows'e при нажатии Enter'a в питонопрограмме, но я хочу получать название активного окна пока питонопрограмма в фоне.
Как можно сделать цикл или забиндить клавиши, чтобы они работали, пока питонопрограмма не является активным окном
>>1868832 Если я правильно, тебе нужен бесконечный цикл while(True): , который содержит ожидание нажатия, триггерящее функцию взятия имени текущего активного окна. Затем запускаешь скрипт и всё - жамкаешь свой ентер, а скрипт считывает то, что нужно.
Дано: сервак с redhat, питон 2.6 (к сожалению, этого я не могу изменить) и вот такая АБСОЛЮТНО ЕБАНУТАЯ структура каталога (см. пикрил)
Что я хочу сделать? В красных каталогах либо лежит лог и вавка, либо только лог. В случае, если есть лог и вавка, я хочу достать из лога длительность вавки (там она пишется), запросить длительность у самой вавки, сравнить их между собой, и ЕСЛИ числа не совпадут с допуском, скажем, в 5 секунд, я хочу получить полный путь до красной папки. Проблема в том, что вавка должна ПОСЛЕДНИЙ РАЗ МЕНЯТЬСЯ не позже, чем 14 дней назад. Дата создания и дата изменения (os.path.getmtime()) могут очень сильно не совпадать, поэтому просто отсечь по родительским каталогам не получится.
Так вот, как мне лучше реализовать сканирование этой ебанутой директории? Сначала я хотел сделать os.walk('/data'), ждать, когда len(dir) станет равна нулю, тогда это будет означать, что я дошел до содержимого красных папок. Но чет говно вышло, да и медленно, плюс, меня накормили говном за os.walk() Теперь говорят, что надо делать через os.scandir(), но чет я не понимаю, как здесь: 1. Брать только те файлы, которые изменялись не позднее 14 дней 2& Как понять, что я дошел до конца, где уже вавки лежат с логом? Примите во внимание, что каталог дохуя большой, папок просто ебануться
>>1868634 Тебе встречный вопрос: нахера тебе 4+ имени с пустым списком? Задумайся, с большой вероятностью ты пилишь говнокод Тебе уже советовали юзать словарь для подобных случаев: >>1868425
>>1868934 Возможно тебе лучше глянуть на модуль glob, он для поиска файлов по шаблону, есть в 2, и os.stat, с помощью которой ты можешь узнать дату изменения файла.
>>1868934 Ещё вариант, вместо glog запусть либо субпроцесс с командой find там ты можешь опции указать, find . -mtime -14 это найти все файлы, модифицированные последние 14 дней -name ".wav" (звезду добавить, двач режет) найти все файлы по шаблону
ну или на вход скрипта сразу подать вывод find, возможно это тоже вариант
>>1869046 - Исправлена проблема с парсингом когда есть только открывающий тег, без закрывающего (типо <br>) - Добавлена возможность указывать ссылку на любой пост, а не только оп-пост
ЭЙэЙЭЙЭй парни нужно в общем инициировать энное количество нажатий в телеге, чтобы ускорить рассылку объяв по группам, нужно в 1 скрипт запихнуть рассылку текста с разметкой по всем группам на которые юзер подписан я даже закину вам на пивчан и рыбу если бот или скрипт сработает
Дублирую вопрос из прошлого треда. Как научиться писать всякие тесты по типу как на кодворзе? Читаю коменты, они там какие-то тесты делают то рандомные то обычные.
>>1869086 Я не знаю так в вакансии написано куда меня позвали. "Разработка приложений с микросервисной архитектурой на Python". Я представляю что такое микросервисы и даже совсем чуток нюхал докер. Не знаю, что еще нужно знать хотя бы на уровне "представляю о чем речь идет"
Если тебе нужно, чтобы у тебя программа что-то считывала, например, команды для змейки в игре, тебе нужен бесконечный цикл, который без задержки или с дискретностью считывает какое-то условие или инпут:
В данном случае дискретность(задающаяся функций time.sleep(n) ) не нужна, так как нажатия нужно считывать мгновенно(как можно быстрее)
>>1869090 Микросервисы это сервисы из который состоит твоя апликуха например. У тебя сложное и большое приложение Шлюха. Ее отдельные сервисы (может быть отдельный сервер, может быть внутренний сервис типа календаря или планера) это сосать, брать, дрочить и печь пироги. Все отдельные друг от друга сервисы, работают по вызовам. Пользователь говорит Шлюхе - сосать. Подрывается сервис сосать и начинает выполнять и тд. Там есть парочка главных сервисов типа Кора и админа соответсвенно.
Есть у кого список кат на кодворзе именно на дрочь основных алгоритмов чтобы выучить их и знать. Решаю базовое - норм. Но хоучу еще кроме фундаменталки качать и алгоритмы чтобы не ограничиваться знаниями языка.
>>1869123 Я не эксперт в модуле вин32гуй, и чето впадлу его сейчас ставить, но судя по названии функции, она и не будет захватывать свёрнутое окно, а только активное(на переднем плане)
>>1869097 Я вообще не представляю что там у них, вот и думаю какие абстрактные вопросы в вакууме могут задать? >>1869114 Да я понимаю что такое микросервисы, независимые по факту программы, которые друг с другом общаются по апиhttp реквесты или типа того Просто не понимаю что перед собесом почитать или подтянуть, он завтра будет вот и задумался
>>1869125 >>1869126 тут вопрос про tkinter. Как инициировать выполнение функции, пока приложение свёрнуто? Проблемная строка: root.bind('<Return>', windowsName) Работает, только когда окно питона выделено
>>1869130 >Просто не понимаю что перед собесом почитать или подтянуть, он завтра будет вот и задумался Да расслабься. Ты не на экзамен идёшь, где препод оценивает твои знания. Собеседование это беседа. Если ты будешь относиться, как к экзамену, это почувствуют и тебе откажут скорее всего, если тебя именно на работу зовут, а не на стажировку.
>>1869192 >Ты не на экзамен идёшь А почитаешь мы вам перезвоним тред, так складывается впечатление, что именно как к экзаменам все относятся, включая работодателей.
какой ide использовать? PyCharm заебал. Я пришёл вкатываться в кодинг, а не вкатываться в решение десятой ошибки "библиотека не может быть установлена"
Сап питонач, нубский вопрос. Хочу запилить генератор бугуртопаст на рандоме из предзаписанных строчек бугурта, разместить его на вебсайте, чтобы можно было тыкнуть кнопку "Побугуртить" и получить рандомно сгенеренный бугурт. Задача изи, но я совсем новичок, и у меня есть затруднения с тем, как это реализовать.
Список строчек для бугурта - каждую из них хранить в отдельных переменных? Полагаю, для рандомизации надо юзать модуль random - но как сделать, чтобы строчки не повторялись в одном бугурте? Как сделать вызов этого питонового скрипта на вебстраничке и вернуть результат в хтмл? У меня есть опыт поднятия простеньких сайтов с пижженным жс на нжинксе, но как это сделать с питоном?
>>1869382 > используй массивы или последовательность: 1, бугурт, 1, батрудин, итд и каждый раз, когда бугурт использовался в бредогенераторе добавляй к предыдущему числу, скажем, единицу и сделай проверку, если перед бугуртом стоит 2, то не использовать этот бугурт
>>1869374 >>1869363 Использую pycharm + conda и ни разу никаких проблем не было, только иногда бывает баг в pycharm когда у тебя среда не успевает подгрузиться, фиксится перезапуском.
>>1869398 устанавливаешь anaconda > создаешь среду в пайчарм или навигатор> выбераешь нужною версию(желательно 3.7)> вебераешь среду через консоль прописываю команду "conda activate имясреды" > устанавливаешь библиотеку на нее через conda желательно, pip также доступен
>>1869382 >>1869387 Е-мое, чет со счетчиком звучит заебисто, неужели у random нет какого-то параметра типа use_once, хз? По поводу телеги - хочу именно веб-страничку, хочется веб позадрачивать.
>>1869433 хотел передавать данные через мобильник на ардуино, обрабатывать текстовые массивы, записывать их в энергонезависимую память устройства, ну и работать одновременно с 4 модулями 2 месяца буксования на месте
потом решил начать с малого и докидывать функции по мере готовности предыдущих ичсх через месяц был рабочий прототип, а через 3 месяца я долечил последний баг
Привет. У меня есть вложенный список и мне нужно достать из него все первые элементы каждого подсписка. Очевидным было бы List[:][0] , но это не работает. Можно ли как-то это сделать без цикла?
>>1869524 Его я знаю ещё хуже, да и странно только ради этого его подключать >>1869525 Спасибо, это всё равно цикл, но достаточно элегантный, оставлю пока так.
>>1869518 Без цикла невозможно, в силу того, как устроены списки и списки списков. В том или ином виде, может неявно, но список будет.
numpy тебе не поможет, если у тебя был список списков, а не какой-то объект.
Подсписок - это самостоятельный список, объект, который где-то лежит по произвольному адресу. Внешний список о нём ничего не знает вообще. Невозможно без обхода получить те данные, которые тебе нужны.
>>1869568 Можно через зип извратиться, но будет не так наглядно. Да и какой особый смысл избегать циклов? Разве что чтобы не плодить вложенности и дополнительные переменные, компрехенсота это решает.
>>1869580 А почему решает? Разве цикл, оформленный в виде компрехенса или лямбды - это не точно такой же цикл, просто написанный изъебисто, чтобы тебе больше платили и ставили лайки в кодварс?
>>1869607 Для генерации спискоты в цикле надо заводить отдельную переменную и аппендить. С вложенностью очевидно - если тебе надо несколько циклов и условий, будет пиздец портянка, а так аккуратный читабельный однострочник.
Гуру пистона, как форматировать вывод строки так, чтобы очень маленькие дроби отображались именно в том виде, в котором они есть? Я, конечно, могу написать print(f'{some_variable:.15f}'), но лицезреть у десятимилионной дроби ещё столько же нулей после последнего знака, сколько перед ним - не айс. А если ничего не писать - то будет выводиться 0, ибо значимое число идёт в 7 или даже 8 знаке после запятой. Можно как-то это решить?
>>1869637 > дроби отображались именно в том виде, в котором они есть ух щас тебя накормят теорией твои 0.000001 нечитаемые становятся с шести знаков, для такого придумали саентифик нотейшон "{:g}".format(foo)
>>1869641 чтобы данные передать в си и обратно вернуть интерпретатору притона придётся обмазаться ситайпами как альтернатива (такая себе) сишку сконпелять и запускать через subprocess а данные передавать через пайпы ещё одна (такая себе) альтернатива - приделать к сишному коду веб сервис и http-реквестами с жсонами тренькать (ну или обычным tcp сокетом)
>>1869636 встречный вопрос сколько будет [2] + [2] и сколько будет numpy.array([2]) + numpy.array([2]) и что будет bar = numpy.array([1,2,3]) foo = bar[:] foo[0] = -1 print(bar)
>numpy А это внешний модуль, не относящийся к стандартной библиотеке питона. Его логика переопределена под его конкретные задачи, из соображений, что вот в тех задачах так лучше.
То есть неочевидность в данном случае ни разу не проблема языка.
>>1869665 >сколько будет [2] + [2] [2, 2]. В стандартном питоне списки соединяются вместе, поскольку это удобно для макакинга. >и сколько будет numpy.array([2]) + numpy.array([2]) [4]. Это сделали, чтобы было удобнее для датасаенса - для сложения векторов и матриц. >и что будет >bar = numpy.array([1,2,3]) >foo = bar[:] >foo[0] = -1 >print(bar) numpy.array([1,2,3]) Срезы из Numpy массивов не копируются по очевидным причинам. Поэтому будет [-1, 2, 3].
>>1869681 >не копируются по очевидным причинам Не очевидны со стороны. Как не очевидно поведение: >>> numpy.array([1000])+numpy.array([1, 2]) array([1001, 1002]) >>> numpy.array([1000, 2000])+numpy.array([1, 2]) array([1001, 2002]) >>> numpy.array([1000, 2000])+numpy.array([1, 2, 3, 4]) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: operands could not be broadcast together with shapes (2,) (4,)
То есть очень много магии, нужно быть специалистом по numpy, чтобы в ней понимать, обычному спецу по питону код не очевиден совсем.
Сейчас дописал тестовое задание с абсорбирующими цепями Маркова, и хоть головой о клавиатуру готов биться - проходит все тесты кроме одного скрытого.
Если кто писал подобное или решал их, какие могут быть маргинальные случаи, которые код мог не покрыть?
По условиям, комплексных абсорбирующих штатов нет, все единичные. Всегда есть хоть один штат и на него его путь 100%.
Я просто не понимаю уже что делаю не так. Хоть заново все пиши. Я перепроверил вручную штук 20 тестов - все без толку. Всё правильно и совпадает с ручным решением.
Должен быть какой-то пограничный случай, который я упускаю. Но и матрицы минимального и максимального размера, и с одним поглощающим штатом, и с одним транзиторным штатом, и с очень большими числами, и с крутилкой я проверил.
>>1869685 >Не очевидны со стороны. >То есть очень много магии, нужно быть специалистом по numpy, чтобы в ней понимать, обычному спецу по питону код не очевиден совсем. Просто Numpy заточен под математику и определенные предметные области. Для людей, которые в них разбираются, он интуитивен.
>>1869685 Очевидно, потому что это векторные операции. Вектор и число можно сложить, можно сложить два вектора одной размерности, но складывать два вектора разной - это все равно что складывать прямую и куб. Лишено смысла.
>>1869681 Мими сайнтист, посоветуй вкатуну книг по дате. Сейчас читаю Python for data analysis, и я там на первых страницах нашёл ответы на вопросы, на которые мне почему-то нормально никто не ответил из людей, которые заявляли себя таковыми.
Просто всякие курсы мне сразу не вкатывают, нравится последовательное изложение связанного материала от профи.
>>1869704 >посоветуй вкатуну книг Можешь начать с "The Elements of Statistical Learning". Но без специализированной вышки (желательно ПхД) ты вкатишься максимум макакой на побегушках. В таком случае быстрее и проще пойти в веб.
>>1869707 Алсо, если ты дата сайнтист, то удели пару минут пожалуйста и подумай >>1869692 над этим. Мне даётся матрица рандомных шагов. Моя задача - с использованием только стандартных библиотек найти её лимитирующую матрицу. Всё случаи которые мне пришли в голову, она находит. Мб сразу придёт в голову какие-то случаи которые легко упустить?
Это трайл от корпорации зла, поэтому я не могу искать ответы или писать задание полностью, они предупреждают что выкинут с тестирования если решат что я мухлюю, и судя по отзывам, такие случаи бывали реально.
>>1869192 Не, я уже проходил собесы до этого и даже прошёлв сбер, но там долгая история почему не получилось устроится, просто не хочется оказаться в ситуации, где мне говорят о чем-то, а я даже не знаю что это такое. Я думаю, что это чувствуется. Условно говорят мне, что работа будет связана с разверткой приложений на k8s и предполагается, что я как-то на это отреагирую, вопрос уточняющий задам типа в теме и понимаю о чем речь. А я такой пук среньк и мне потом перезвонят.
>>1869453 Лол, а хули там 15 месяцев делать? Чтобы прям совсем с нуля вкатиться времени нужно больше значительно. Если есть какая-то база, типа "делал лабу сложение матриц в универе", то значительно меньше.
>>1869775 Потому что ты на каждом этапе удаляешь куски a, пока цикл по нему шагает. Был у тебя в нулевой клетке 1, его отправили, удалили, теперь в нулевой клетке 2. Алгоритм делает шаг в первую клетку, там 3. Отправляет-удаляет, теперь в первой клетке 4, алгоритм шагает в следующую клетку, там 5.
2 и 4 остались в a, 1, 3, 5 переехали в sent_messages
>>1869406 Пиздец ваша анаконда параша. Помню ставил тензорфлоу чисто побаловаться, она мне сделала под него среду на 5 гигабайт. Я охуел, снёс это говно и забыл как страшный сон.
>>1869814 Да посыл не в этом. Какого чёрта энвайромент столько весит? Или туда вообще всё запихано, включая и КУДА-либы нужной версии? Я в этом сомневаюсь, потому что вряд ли у конды реализован механизм определения железа, скачивания и установки нужных либ и т.д. >>1869815 1) Я не играю в игры 2) Место на ССД ограничено и это было ударом по моей психике шизоида, который каждые 20 минут жмёт Win + E, чтобы глянуть, не съедено ли ещё лишних полгига, и если съедено, то кем и почему.
>>1869816 Я понимаю, что там может столько весить, но согласись, нихуя не преемлимо не предупреждать пользователя перед началом установки хотя бы о том, сколько места понадобится.
>>1869824 В тьюториале, по которому я это делал, про это ни слова не было сказано, и КУДА ставилась в самом начале как набор самостоятельных библиотек. >>1869823 К сожалению, да, всего лишь 120гб, и пока нет возможности обновиться.
>>1869827 >WinXSis В смысле WinSxS? Не замечал увеличичения объёма системы после обновлений. Даже после апдейта до 2004. Очистка диска(включая системные файлы) + удаление Windows.cuckold
>>1869825 анаконда автоматически делает предустановку нужных библиотек устанавливаемой библиотеки и предупреждает о конфликтах версий, это нормально что тф мак столько весит.
>>1869834 ни одного так как я не покупал, у твердотельных накопителей записывающая способность ограничена сильнее чем в обычных винчестерах, и вся память это заряды которые нужно обновлять, а если его оставить без энергоснабжения то данные могут повредиться.
>>1869839 >pipenv >Windows is a first-class citizen, in our world. >Install Pipenv Today! >Нет инструкции по установке на винду Хех, мда. А всё почему? Потому что там оговорок на полстраницы, и вообще иди документацию читай!
>>1869832 Ну да, поэтому на ссд ставят систему и программы, который ты один раз записал и мб потом обновляешь раз в несколько недель или месяцев. Я не понимаю, как можно таким образом израсходовать ресурс в несколько десятков терабайт перезаписи, ведь в таком случае ты в основном читаешь информацию, а не пишешь её.
>>1869859 0 - ссд будет обновлять заряды в памяти в любом случае 1 - операционная система постоянно что то записывает и читает в фоне 2 - файл подкачки (его при желании можно отключить но все же)
>>1869965 Тебе надо научиться понимать, когда нужно делать полную копию объекта, которым манипулируешь, иначе у тебя в какой-то момент код будет мешать объекты, на которые ссылаются другие объекты и все полетит в пизду, а ты будешь бегать как я позавчера с горелой сракой и не понимать почему это не работает.
Обязательно почитай про идентичность объектов и запомни это накрепко.
Твой код подобен тому, как если бы ты считал шарики в пачке, вытаскивая нижний. Ты вытащил шарик 1, на его место упал шарик 2, но ты уже считаешь шарик под номером 2, который изначально был под номером 3. Так работает твой код. Тебе нужно сначала посчитать шарики, а потом удалить отсчитанные.
>>1869817 >который каждые 20 минут жмёт Win + E, чтобы глянуть, не съедено ли ещё лишних полгига, и если съедено, то кем и почему А мог бы прогу на питоне написать, которая за тебя это делает.
>>1869806 >Помню ставил тензорфлоу чисто побаловаться, она мне сделала под него среду на 5 гигабайт Тензорфлоу со всеми зависимостями где-то столько и весит. Среда анаконды хранит установщики пакетов плюс сами пакеты, никакой магии тут нет. А еще ее можно чистить - гугли conda clean. >>1869832 >ссд'шники быстро работают и быстро дохнут Так было десять лет назад. SSD уже давно обогнали по надежности HDD. >>1869885 >террабайтные ссд рассчитаны 300 тб +-50тб, так же зависит от его многомерности Это до потери гарантии. Реально терабайтные SSD без проблем нарабатывают терабайты записи.
>>1870242 Да и 10 лет назад они надёжные были, надёжнее HDD. Дохнут реже, а когда дохнут, часто данные при этом доступны, просто писать новое не могут.
А вот HDD легко могут без предупреждения сдохнуть, причём так, что данные не вытащишь, только в специальное место нести и большие деньги платить.
Ресурс даже бытовых огромен, реально ведь перезаписывается очень небольшая часть. У HDD тоже ресурс есть, механика не вечная, причём работает эта механика и в режиме простоя, диск крутится, и в режиме активного чтения головка двигается туда-сюда.
Если надо использовать диск для очень активной записи, то есть специальные серверные варианты, ресурс которых сильно больше, в десятки-сотни и тысячи раз. Но они дороже, конечно же. Но зато их почти как оперативку можно использовать.
>>1870663 В питоне означает операцию распаковки последовательности. Если element_name является например массивом, то в качестве аргументов функции будут переданы все элементы массива. Гугли про args, kwargs
Хз где я проебался, в этой кате https://www.codewars.com/kata/5b180e9fedaa564a7000009a бля ну я старался, у меня не прошли рандомные тесты. То ли я не понял задание, то ли контриб - просто пидор. Сотреть в решения - толку нету, там будуд дрочить кто на что горазд. Я просто ебнул циклами со счетчиками. https://www.codepile.net/pile/edxgv2nm решение Глянтье плис кто решал эту кату, чяднт?
>>1870707 Да вроде те, я 100500 раз ставил то туда то сюда, в итоге - так, тк n уже имеет зачение. Пробовал удалять n, обнулять заново. В итоге, в ипутоне, и на кодворзе сошлолсь - так, кроме рандома.
>>1870713 Ну ты че. Во первых условия проверки счётчика убери из цикла. А то получается что только одна итерация у цикла. А во вторых проверки счётчика с длиной должны находиться на одном уровне. А ещё нахуя тебе break после return?
>>1870695 Не знаю, что там у тебя проходило, n <= len(s)/2 будет почти в любом случае срабатывать с первого раза. Надо досрочно проверять только upper и делать upper, в конце возвращать lower.
Кто-нибудь работает на UpWork и прочих зарубежных фриланс-биржах? Как обстоят дела с заказами на Django? Или на АпВорке котируются другие области программирования на Питоне?
Есть один объект, у которого есть пачка методов для разных сетевых запросов. Все методы синхронные. Я хотел бычтобы от меня отъебались наконец со своей асинхронщинойс минимальными телодвижениями добавить в него асинхронные аналоги этих функций или может создать его асинхронный клон. Есть может у кого пример обертки для подобного?
>>1870903 Понятия не имею, там .dll подгружаются, а питончик обертка только, я боюсь туда глубже лезть. run_in_executor() меня полностью устроит, я просто не хочу копипастить эти методы с приставкой асинк при каждом изменении. Главное чтобы снаружи как бы асинк и норм.
>>1870911 Надо смотреть, то есть может быть и треды надо делать, с риском свалиться где-нибудь на thread-unsafe.
Полноценная асинхронность требует глубокой переработки кода. Хотя для многого есть асинхронные аналоги обычных синхронных функций, или там можно близко переписать.
Но просто "приписать асинк" в принципе не поможет, это так не работает совсем. Запросы всё равно останутся блокирующими синхронными.
>>1867362 (OP) Как мне определять, что что-то является ссылкой? Ведь может быть указана и без приставки http(s)://, например. И доменов в ней может быть несколько уровней. Есть какая-нибудь либа, в которой есть метод isLink() или типа того?
>>1870797 Слышали, но только вот как на питоне сделать gui приложение в стиле электрона? Вот чтобы приложение само загружало одно headless окно браузера и через него работало?
>>1870923 >Полноценная асинхронность Не нужна. Нужно колдунство, которое автоматически создаст асинхронные методы аналогичные синхронным. Плевать что у них внутри, лишь бы их можно было в loop пихать. Но все равно спасибо за помощь.
>>1871062 Заебал. Если ты накопипастил не зная, что такое self, для чего это в питоне, то вот реально, иди в ньюфаг раздел, там тебе пояснят может даже я посяню. Там ещё нормально, здесь это уже ниже минимума до такого опускаться.
>>1870940 Автоматически не получится. Но надо смотреть, какие у тебя блокирующие синхронные сетевые вызовы сейчас используются.
Вообще неправильно так относиться к программированию. Надо понимать, что и как делает твой код, в любом случае надо.
И с асинхронностью надо разбираться, без неё сейчас никуда, если ты не хочешь на обочине оказаться. Особенно, если ты с сетями, внешними сервисами и внешними процессами работаешь.
Есть Kivy со своим декларативным языком интерфейса, он кроссплатформенный, но там больше под мобилки все заточено. https://kivy.org
Если прям очень хочется работать с набором html/js/css, чтож, и это возможно. В составе и Qt, и WxWidgets, и GTK+ есть свои WebViewб которые рисуют веб-контент. Есть PyWebWiev, они стараются использовать существующий в ОС WebView. Есть Eel, они прям пишут, что позволяют делать simple Electron-like offline HTML/JS GUI apps. Есть Flexx, тоже используют отрисовку в браузере. https://github.com/r0x0r/pywebview https://github.com/samuelhwilliams/Eel https://github.com/flexxui/flexx
Аноны, посоветуйте пожалуйста что почитать о скорости различных способов в питоне.
Сейчас доделал задание с random walk, проблема в том, что решение с тз математики было изначально правильное, но дико медленное. Я прошёл все тесты только оптимизировав скорость вычислений.
Дико плаваю в данной теме, я не понимаю что будет продуктивнее, я не понимаю почему плохо создавать много объектов (да, они жрут память, но я понятия не имею сколько, может крохи) и пр.
Проблема в том, что я уже четвертую книгу по питону читаю, и нигде не видел разбора этой темы. Заранее спасибо если кто посоветует.
>>1871415 Что-то они с замерами накосячили У меня этот скрипт без изменений, комп довольно старый, ноут при этом: python2.7 tt.py ('while True: ', 0.5859780311584473) ('while 1: ', 0.4057488441467285)
python3.6 tt.py while True: 0.6227456871420145 while 1: 0.6395597131922841
python3.7 tt.py while True: 0.6898804837837815 while 1: 0.7296387189999223
python3.8 tt.py while True: 0.6560212508775294 while 1: 0.6543496972881258
pypy3 --version Python 3.5.3 (fdd60ed87e94, Apr 24 2018, 06:10:04) [PyPy 6.0.0 with GCC 6.2.0 20160901] pypy3 tt.py while True: 0.012471317779272795 while 1: 0.012444301974028349
pypy3.7 --version Python 3.7.4 (87875bf2dfd8, Sep 24 2020, 07:26:36) [PyPy 7.3.2-alpha0 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)] pypy3.7 tt.py while True: 0.014255640096962452 while 1: 0.013212095946073532
Да, третий питон немного более тормозной, чем второй, на подобных вот операциях, это давно известно. Но умеренно.
>>1871428 Запустил под докером. Там всё тормозит сильнее, видимо из-за системных вызовов виртуализованных. docker run -it --rm -v $(pwd)/tt.py:/tt.py python:3.2 bash root@6228fc6cf7e7:/# python tt.py while True: 1.065101146697998 while 1: 1.0656909942626953
docker run -it --rm -v $(pwd)/tt.py:/tt.py python:3.8 bash root@f58ff9555dc5:/# python tt.py while True: 1.109615134075284 while 1: 1.102664346806705
То есть что 3.2, что 3.8 одинаково. Да и я сам в те времена тестировал, такое же ощущение было, что 3-я версия тормознее, но не сильно.
Короче, если линейный array [0:x] каждые четырe значения - RGBA (4f), короче пиксели, нужно инвертнуть по Y Проблема в том, что вот например flip по X [code] q = np.array(i.pixels).reshape(int(len(i.pixels)/4), 4) i.pixels = q[::-1].flatten() [/code] работает, а по Y он почему-то меняет порядок, вместо RGBA я получаю ABGR то есть альфа первая и пиксели перепутаны.
Дарова аноны, такое дело, пишу паралельную функцию на С и нужно ее запустить в питоне, но без гемора c ctypes так он ее будет питонизировать, в общем мне нужно что бы питон передавал функции на С аргументы и принимал выходное значение. только вез вот таких конструкций.
>>1871479 >np.array(i.pixels).reshape(int(len(i.pixels)/4), 4) На моменте, когда у тебя осмысленное название в строчку не влезло и пришлось переименовывать в i, стоило задуматься, сможешь ли ты этот мысленный конструкт осознать, чтобы потом отдебажить.
>>1871529 >Что не так? Посмотри на свою картинку: первые четыре числа [1, 0, 0, 1], и после перестановки должно было получиться [0, 0, 1, 1], а не [0, 0.7, 0, 0.9] как у тебя.
>>1871530 > первые четыре числа [1, 0, 0, 1], и после перестановки должно было получиться [0, 0, 1, 1] RGBA в GBRA? Зачем? Он хочет инвертнуть по Y же. Данные идут RGBA|RGBA|RGBA:RGBA|RGBA|RGBA, нужно переставить первый ряд со вторым, что и происходит.
>>1871532 > Он хочет инвертнуть по Y же. Понял, я в глаза ебусь. В таком случае ты делаешь правильно, но только переворачиваешь по оси X. По оси Y нужно вот так: a[:, ::-1].
Откликнулся на джуниорскую позицию, сегодня приходит письмо -- "У нас в компании вообще нет команды разработчиков, так что вам полностью придется отвечать за результат и с нуля написать ERP систему." Это давно джуны так работают?
>>1871297 >да, они жрут память, но я понятия не имею сколько Погугли профилировщики для питона, также есть функции которые показывают размер переменной типа getsizeof, int_info.
>>1871573 > content length автоматически просчитается для поста То есть его можно вообще не вводить? Или вводить всё же надо, но оставить пустым? > второе надо добавить вручную А откуда его взять? Ебучий яндекс на этот счёт вообще нихуя не написал в своей ебучей документации
>>1871576 Не надо вводить. >А откуда его взять? айди и секрет у тебя должны быть, делаешь их через : и энкодишь в бейз64, ну и добавляешь такой заголовок.
Правда что рыночек пистон-вакансий на джуна сильно перегрет вкатунами? Просто сейчас из каждого утюга струится: "приходите к нам в питон, он очень очень легкий". И понятно что большинство не способных само отвалится по итогу. Но ведь благодаря рекламе много и умненьких ребят входят в айти через пистон. Сам писал только пару проектов на крестах, пробовал пайтон, он действительно хороший язык, но оч боюсь не найти работу из-за наплыва народу
Аноны, помогите, как распарсить эти байтики в integer? b"\x00\x00\x00\x00\x00\x00'\x10" Это по идее должен быть 0, но когда я пишу struct.unpack('L', smpp_tx_node_value)[0] то получаю 1163899028698562560 вместо 0
>>1871502 >>1871502 Чувак, подскажи, у меня есть CPU-intensive workload, однако я не могу использовать multiprocessing и насколько я знаю, нативный threading не сюйтабелен для компутации на Питоне из-за GIL. Какие уменя варианты с минимум зависимостей (python идет с blender)
Есть отсортированный список float чисел. Как наиболее быстро обрезать все его значения которые меньше некого числа? По идее список отсортированный, поэтому выполняться это должно быстрее чем O(n), как это сделать на практике в питоне?
>>1872041 >>1872021 Почти верно, но ситуация не настолько проста как здесь: a = [1, 3, 5, 7, 9] slice = a[bisect.bisect_left(a, 6):
Это слишком простой кейс. Потому что у меня в списке лежат не числа а объекты. А вот у каждого объекта уже есть атрибут order. Как поступать в таком случае?..
есть 2 файла в строках первого есть строки из второго файла, как сделать так что при совпадении строк из первого и второго в конец строки которая из 1го файла дописать текст?
>>1872086 Ты же понимаешь что ты второй раз за О(n) проходишься по уже отсортированному списку?.. С таким успехом я могу просто пойти по списку через for each пока не встречу элемент, который превосходит тот, что я указал
>>1872093 >>1872061 А вообще ответ на задачу прост. Чекаем исходный код модуля bisect, пишем свою функцию, которая принимает коллбек (лямбда-функцию) и работает уже на ее основе
>>1872087 Если нет ограничений по памяти, то читаешь второй в сет, потом итерируешься по первому и смотришь в сете, пишешь в новый файл, в конце старый заменяешь. Если есть, то итерируешься по первому, на каждую строчку итерируешь второй, дальше так же.
>>1872093 Вообще принцип называется "дихотомия". Стартуешь со среднего элемента, тогда у тебя с каждой стороны от твоего элемента половина интервала. Если больше, выбираешь середину от первого интервала, если меньше, то от второго. И так далее рекурсивно.
Нужно только аккуратнее с округлением быть.
bisect нужен для того, чтобы свои велосипеды в этой части не изобретать, в простых случаях.
>>1871971 Я знаю что в numba можно отключать GIL (@ngit(nogil=True)) так же там есть паралейный рейндж (prange), и самое главное что он переводит в питон в своего рода машинный код через JIT компилятор, так же вы можете обратить внимание на cthon Но конечно для лучший производительности лучше синергировать Python и С. (btw C довольно похож на питон, но {} и ; реально бесит)
>>1872293 >btw C довольно похож на питон Вот совсем-совсем нет. Практически ничего общего. Только во втором питоне форматирование строк напоминало, но в третьем другое принято. И целочисленное деление во втором было, в третьем убрали.
А всё остальное другое. Циклы другие, if-else другие, switch нет, присвоение-сравнение нет (в 3.8 в виде особого оператора), оператора ++ нет, без которого Си не Си, никаких констант и #define, другое построение стандартной библиотеки, другие строки. То есть нет массы всего того, к чему привыкаешь в Си, и есть масса другого, чего нет в Си/C++ в принципе.
Ебанутый вопрос, по фронту, тк с беком проще на джанго, а где взять или вообще брать такие морды к форумам, как у двача или подобных, или вообще морды к форумам. Ну вы знаете, еще есть другие модные и молодежные форумы с регой, они вообще однотипные, где брать подобное?
Ньюфаг в треде. не бейте Что из себя в среднем представляет тестировка приложений и почему для этого нужен питон? Нашёл свою первую заявку до этого не работал. Нужен питон и знание "основ тестирования ПО". Чего мне ожидать от такой работы, как вообще тестировка проходит? С помощью специальных утилит или ручками?
Парни, посоветуйте либу, которая работает с 2d векторной графикой. Хочу рисовать 2d-тян. Сейчас смотрю на canvas в родном tkinter, turtle и pycairo. В какую лучше вкатиться и есть ли годная альтернатива?
Есть программа на винде, грубо говоря, она сохраняет картинки, а информацию о картинке хранит в виде текста только на рабочем окне программы и не сохраняет. Направьте, как можно парсить эту инфу?
>>1872919 >'iyr:2020, hgt:178cm, ecl:grn, hcl:#18171d, pid:613792489, cid:240, eyr:2028, >byr:1972' Я бы так распарсил, может модно как-то красивее, но я быдлокодер:
a = 'iyr:2020, hgt:178cm, ecl:grn, hcl:#18171d, pid:613792489, cid:240, eyr:2028, byr:1972'
dictionary = {} for x in a.split(", "): dictionary[x.split(":")[0]] = x.split(":")[1] print(dictionary)
Да я понял. Там какая-то жесть блин с этой функцией. Поочерёдно выдаёт два разных класса, по два раза. Единственное что приходило на ум, это перевести вывод в текстовую переменную и распарсить текст, привязать счётчик. Но это какие-то костыли костылей и я забил. Нашёл решение попроще хоть и менее удобное.
У меня есть много строк, в которых надо заменить определенные символы другими. Как это сделать наиболее четко в Питоне? Вариант с: phone_number = raw_phone_number.replace('-', '').replace('(', '').replace(')', '').replace(' ', '')
(например если мы очищаем номера телефонов) не катит, мало того чтоб смотрится не очень, так еще и проходится по одной и той же строке несколько раз вместо одного
>>1873156 Напиши хелпер, который принимает memoryview строки и мап символов замены и делай всего один проход. При желании можно даже сделать так, что бы всего одна аллокация была
>>1873195 Конечно же, не бывает программ, которые по умолчанию подгружают заранее некие не всегда нужные библиотеки и программы типа того же кайт, которые я уже отключил.
Ты безусловно показываешь себя таким образом профи, а не тупым мудаком. Мои поздравления.
Предыдущий:
Литература:
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