Программирование

Ответить в тред Ответить в тред
Check this out!
Питон тред №116 /python/ Аноним 26/03/21 Птн 09:50:59 19778531
16107856067140.jpeg 28Кб, 398x400
398x400
77396428.jpg 52Кб, 1200x900
1200x900
EP-200108475.jpg 705Кб, 2028x2100
2028x2100
Тред, посвящённый языку программирования Питон, #116

Предыдущий: >>1967018 (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
Аноним 26/03/21 Птн 11:14:16 19779112
Вкот, змеиные братья
Аноним 26/03/21 Птн 11:16:39 19779123
Какую версию джанги учить? Уже есть 3.+
Аноним 26/03/21 Птн 12:14:35 19779754
>>1977912
Самое свежее учи, потому что сейчас всё активно перепиливается под ASGI и, скорее всего, скоро это будет стандартом.
Аноним 26/03/21 Птн 12:23:23 19779815
>>1977912
Лучше изучать новое.

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

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

Кто-нибудь бы пункт для шапки про джангу проапгрейдил.
Аноним 26/03/21 Птн 12:54:15 19780056
Аноним 26/03/21 Птн 13:03:35 19780167
Сейчас начал изучать питон, в 2017 учил в универе с++, но на отвали, особо не вникал и все задачи либо у кого-то брал, либо делал на подобие, поэтому самые минимальные знания в программировании есть.

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

Короче вопрос в чем, работает ли тут тема с прорешиванием огромного числа задач и соответствующим повышении скилла, или если не прет, лучше вообще не соваться?
Аноним 26/03/21 Птн 13:10:49 19780218
thisistheway.jpg 21Кб, 318x418
318x418
> все задачи либо у кого-то брал, либо делал на подобие
Так и продолжай, в чем проблема?
Аноним 26/03/21 Птн 15:55:28 19781179
Где взять годные задачи, чтобы практиковаться в написании простых прог, работе с с типами данных, списковыми включениями и прочим?
Аноним 26/03/21 Птн 16:32:32 197816710
>>1978117
https://www.freecodecamp.org/news/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f/
Из списка советую выбрать хакерранк(для новичков, но сложность заданий очень быстро наростает), проект ейлера(сложные задания), SPOJ.

32 минуты назад, кстати, стартовала международная олимпиада гугла по программированию.
https://codingcompetitions.withgoogle.com
Аноним 26/03/21 Птн 18:24:08 197831111
>>1978117
Банальный литкод как раз годен для таких задач. Если hard на алгоритмы, то easy и частично medium как раз вот на базовое кодирование.
Аноним 26/03/21 Птн 20:02:08 197842012
Кто может рассказать про работу в компании с githubом? Это получается есть общий аккаунт и у каждого работника есть логин пароль для входа, чтобы отправлять коммиты, так?
Аноним 26/03/21 Птн 20:13:36 197843013
Аноним 26/03/21 Птн 20:53:43 197847114
image.png 72Кб, 1127x570
1127x570
Чому нихуя не выводится?
Аноним 26/03/21 Птн 21:00:08 197848015
Формально ищу работу более полугода, иногда захожу на хх, скажите, мне кажется или вакансий на самом деле не так много? Вот ввел я все свои навыки и достижения и хх мне показывает 800 вакансий, где-то половина это будет не питон, а другой язык, четверть это смежные профессии, типа мл, фронт, hr и пр., от оставшейся четверти 75% это вакансии с опытом работы от 3 лет, знания сложных стеков, какой-нибудь gprc и пр для хайлоада и оставшийся процент это как раз то что надо, но в ней hrы совсем голову потеряли от ждунов и просто каким-то непотребством занимаются, хуй попадешь, даже с опытом требуют тестовые задания, которые делать день и это до созвона. Вопрос, неужели полностью вкатится в работу так сложно, я прям депрессию ловлю с хх
Аноним 26/03/21 Птн 21:07:15 197848816
>>1978471
У тебя main нет во view, есть text.
Я тут тоже джангу стал изучать, если хочешь можно скооперироваться типо peer-to-peer leaning
Аноним 26/03/21 Птн 21:08:26 197848917
Аноним 26/03/21 Птн 21:17:01 197851018
>>1978488
Да я начал пол часа назад джангу, от меня мало толку будет.
Поменял в index все на text и все равно нихрена не выводит.
Аноним 26/03/21 Птн 22:27:44 197857819
>>1978510
endfor слитно пишется
Аноним 26/03/21 Птн 22:35:40 197858220
MarkLutzProgram[...].jpeg 73Кб, 500x656
500x656
ThePython3Stand[...].jpg 161Кб, 669x938
669x938
Кто-нибудь читал/просматривал обе книги? Это два 1500-страничных томика по практическому использованию Пайтона для intermediate юзеров. Вот не знаю, на какой стул сесть.
Аноним 26/03/21 Птн 22:42:04 197858421
>>1978582
Лутца читал, все хорошо, но про ассинхронность и многопоточность ничего нет.
Аноним 26/03/21 Птн 22:45:19 197859022
>>1978584
Вторую книгу Лутца? Ну, это 2010 год. Standard Library by Example - 2017 год, что немного лучше.
Аноним 26/03/21 Птн 22:45:55 197859123
image.png 40Кб, 820x159
820x159
bruh
Аноним 27/03/21 Суб 00:04:51 197862524
>>1978582
Рекомендовал бы официальной документацией и гуглом ограничиться, параллельно работая над каким-то проектом, а то уйму времени на воду потеряешь. А уже когда надобность в инструментах по-сложнее возникнет, вроде асинхронности, тогда к книгам обратиться - строго по теме, чтобы было.
Аноним 27/03/21 Суб 00:17:42 197863225
>>1978625
Да мне не к спеху. Я вообще сейчас открываю книжку по Пайтону, открываю IPython и под фортепианный эмбиент перепечатываю примеры, представляя, что играю на фоно. А еще в уголке экрана включаю видео с кабины поезда, катящимся по заснеженной Норвегии. Кайф.
>параллельно работая над каким-то проектом
В этом-то и проблема: то, что я хочу запилить - достаточно сложно, тут надо хотя бы какую-то книгу по микропроектам пройти. Знаешь годные книги по проектам?
Аноним 27/03/21 Суб 00:17:57 197863326
image.png 303Кб, 1920x1080
1920x1080
image.png 306Кб, 1920x1080
1920x1080
Привет, жвач. Пишу бесплатный софт для школьников в качестве первого серьёзного проекта. Подскажите, пожалуйста, как можно оптимизировать код и прикрутить ко всему этому нормальный GUI?
А также, какие будут дополнительные рекоммендации по тому, что можно добавить сюда ещё. Пока программа умеет только вычислять площадь треугольника и цилиндра, но надо что-то ещё, мб какую-нибудь вшитую справку для егэ и т.д.
Аноним 27/03/21 Суб 00:32:43 197864227
>>1978633
ООП, один хер гуйки это ООП.
Аноним 27/03/21 Суб 00:34:45 197864428
>>1978632
Automating boring stuff. Остальное по хотелкам. Хочешь написать скрапер рутрекера на докачку серий текущих сериалов с выводом в телегу? Я никак не могу спокойно потратить на это время, завис с заказчиком на хуйне полной
мимо
Аноним 27/03/21 Суб 00:39:50 197864529
>>1978642
Понял, там инфы покурить надо много. Займусь
Аноним 27/03/21 Суб 00:42:29 197864730
Аноним 27/03/21 Суб 01:00:39 197865131
>>1978644
>Automating boring stuff.
Смотрел видео-лекции Швайгарта по этой книге. Уж очень основы.
Аноним 27/03/21 Суб 01:12:55 197865332
>>1978633
>нормальный GUI
Самый простой вариант - при помощи tkinter. Но по-моему для GUI питон вообще лучше не использовать.
Аноним 27/03/21 Суб 01:42:12 197866133
Аноним 27/03/21 Суб 02:00:20 197866434
Аноним 27/03/21 Суб 06:35:27 197868335
>>1978661
>А что насчёт PyQT5?
Для твоей задачи перебор. Вообще, писать интерфейсы в одиночку лучше всего на электроне. Но если интерфейс совсем простой, пофиг на дизайн, и прямо обязательно нужен питон, то юзай tkinter.
Аноним 27/03/21 Суб 06:47:49 197868636
>>1978633
Сначала треды научись делать, а потом интерфейс делай.
Аноним 27/03/21 Суб 11:50:14 197885437
Возможно ли сохранить код jupyter notebook вместе с переменными? То есть задал я A=25, закрыл файл, потом открыл, ввел A, а мне выдало 25 вместо A not defined.
Аноним 27/03/21 Суб 12:45:19 197889038
>>1978633
С GUI надо разбираться отдельно, сначала научиться работать с GUI, потом уже прикручивать. GUI требует изменения структуры программы, это не тоже самое, что input из консоли добавить.

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

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

Пожалуй присоединяюсь к тому, чтобы сначала с tkinter что-нибудь поделать.
Аноним 27/03/21 Суб 12:55:55 197889739
>>1978890
Понял, тогда постараюсь сначала ткинтер покурить, потом уже что-то посерьёзнее сделаю. Просто есть идея, чтобы когда ищешь площадь цилиндра, например, по заданным параметрам 3д-моделька показывалась сбоку. Или чертёж 2д-фигуры со всеми указанными параметрами на этом же чертеже
Аноним 27/03/21 Суб 14:15:35 197894040
>>1978890
>GUI требует изменения структуры программы, это не тоже самое, что input из консоли добавить.
Надо стремиться к тому, чтобы было как input из консоли добавить, делать все модульным, чтоб вот была основная программа, у нее был известный интерфейс для общения с другими модулями, нужен консольный интерфейс, сделал модуль для консольного интерфейса, нужен десктоп - сделал для десктопа, веб - сделал для веба, и подключаешь эти модули по необходимости, а центральный код самой основной программы вообще никак не трогать.
Аноним 27/03/21 Суб 14:18:09 197894241
Аноним 27/03/21 Суб 15:30:41 197897542
Двач, прошу, последняя надежда на тебя, я уже с ума схожу, суть:
Пользуюсь джанго орм в асинхронном скрипте, вызываю функцию через sync_to_async в которую передаю ключ модели, меняю 2 поля модели, сохраняю, но она не сохраняется, код:
https://pastebin.com/1WY6gr6z
Да, там больше логов, я просмотрел все, наверное, что мог, все должно работать, все логи печатаются, и 2 поля до присвоения и после через саму модель и правильно отображается ее ключ, но в базу значения не попадают, я просто уже даже не предстовляю в чем может быть проблема, натолкните меня
Аноним 27/03/21 Суб 15:52:10 197898743
Около полугода пишу на питоне. Автоматизация отчетности, работа с бд (скл и носкл), парсинг и гугл.шытс. Сейчас появился вариант с новой работой, но там надо знать джангу и веб. Реально ли изучить джангу, mvc, rest и т.п. за месяц ?
Аноним 27/03/21 Суб 16:55:12 197900944
Не могу решить задачки на кодварсе, я совсем плох?
Аноним 27/03/21 Суб 17:31:28 197903145
>>1978987
Если каждый день, часов по 25 и всё будешь запоминать - станешь спецом
Аноним 27/03/21 Суб 17:32:05 197903246
>>1979009
без практики нихуя не выйдет. пробуй снова, потом уже и получится
Аноним 27/03/21 Суб 17:40:17 197903747
>>1979031
Ладно, тогда отклоню оффер и останусь бездарной питочмоней.
Аноним 27/03/21 Суб 17:43:25 197904048
двач, есть список пар (int, str), нужно отсортировать в порядке убывания чисел, где пары с одинаковым значением отсортированы в обратном лексикографическом порядке строк
можно, конечно, сделать sorted(array, key=lambda x: (x[1], x[0])) и дойти до последнего элемента с максимальным числовым значением, но мне не очень нравится это решение
Аноним 27/03/21 Суб 17:45:47 197904349
Аноним 27/03/21 Суб 17:54:25 197904850
>>1979040
sorted(array, key=lambda x: (x[0], -x[1])) ?
Аноним 27/03/21 Суб 17:57:04 197905151
>>1979048
в таком случае сортировка сначала будет по строкам, потом по интам, что не то что мне нужно
Аноним 27/03/21 Суб 18:02:28 197905552
Откуда для split в print(a.split()[0]) взялось [0]? Там же только два параметра, sep и maxsplit.
Аноним 27/03/21 Суб 18:02:59 197905653
>>1979051
а, нет, ошибся, все в порядке, только в другом проблема - минус для строк неопределенная операция
Аноним 27/03/21 Суб 18:11:08 197906154
изображение.png 4Кб, 414x219
414x219
>>1979055
Сплит возвращает список, а [0] - доступ к первому элементу этого списка. По смыслу там (a.split())[0]
Аноним 27/03/21 Суб 18:13:58 197906355
image.png 4Кб, 398x30
398x30
Что такое main_diag? Это словарь? Если это словарь, то row это значение или ключ?
Аноним 27/03/21 Суб 18:16:18 197906456
>>1979063
i это индекс объекта из списка, row его содержание
Аноним 27/03/21 Суб 18:24:57 197906757
>>1979063
Это set. Который set() или который a={2,3,4}
Что-то вроде std::unordered_set из c++ - набор неповторяющихся неупорядочненых значений.

Ты всегда можешь набрать print(type(main_diag)), кстати.
Аноним 27/03/21 Суб 18:25:32 197906958
>>1979056
>в порядке убывания чисел
Мимо прочитал. Тогда чем sorted(l, key=lambda x: (x[0], x[1]), reverse=True) не устраивает?
Аноним 27/03/21 Суб 18:39:23 197907359
Эти задачи с кодварса имеют хоть какое-то отношение к реальному погромированию? Почти все задачи походят на забивание гвоздей микроскопом и изобретение велосипедов. И какая-то у них пизданутая сложность, начиная с 5 kyu
Аноним 27/03/21 Суб 19:00:50 197908360
>>1979067
>Ты всегда можешь набрать print(type(main_diag)), кстати.
Точно. Что-то тупанул
Аноним 27/03/21 Суб 19:45:41 197910261
>>1978987
Если хорошо понимаешь, как работает веб, есть опыт с html, и нормально плаваешь в питоне, включая ООП и т.п. вещи то реально.

Вопрос ещё на каком уровне "знать джангу".
Аноним 27/03/21 Суб 19:51:03 197910662
двач, помоги , в питон только вкатился ,
имеется
path = "/opt/backup/"
command = "du -sh --time " + path + ""
args = shlex.split(command)
p = subprocess.Popen(args)
print(p)
в выводе ловлю
du: cannot access '/opt/backup/
': No such file or directory
хочу получить вес каждой директории и файла
/opt/backup/
db
123123
log
123123
Аноним 27/03/21 Суб 23:54:53 197925463
>>1978975
Попробую угадать - операция в БД происходит в отдельном потоке, какая-то часть конфигурации сделана в другом потоке, и некоторая часть стека (Django ORM или коннектор к БД) не готова к такому положению дел. Документация (https://docs.djangoproject.com/en/3.1/topics/async/#asgiref.sync.sync_to_async) постоянно указывает на то, насколько это нестабильная конструкция.

Думаю, это можно обойти, поддерживая отдельный поток (процесс) для записи в базу, в котором явно будут создаваться объекты для работы ORM (соединения и т. д.). Общение - через какую-нибудь очередь.

В целом запрос выглядит просто, и даже если эта БД создавалась через Django, ей все равно можно манипулировать через другие, асихнронные по умолчаию, библиотеки.
Аноним 28/03/21 Вск 00:15:18 197926164
>>1978987
>mvc
да
>rest
да
>джангу
нет, но я думаю тебе и базового уровня ее хватит
Аноним 28/03/21 Вск 01:25:33 197929065
image.png 16Кб, 706x539
706x539
image.png 26Кб, 1289x306
1289x306
>>1977853 (OP)
Нахуячил решение для задачки https://leetcode.com/problems/jump-game-ii/ особо не думаю и внезапно оно прошло, но я че-то сам не въехал как. Тут надо найти наименьшее число переходов, но в коде это никак не учитывается - просто обычная рекурсия
Аноним 28/03/21 Вск 01:49:20 197930066
>>1979261
Задумался что значит вообще знать джангу? Одно дело уметь рендерить темплейты через функциональные вью, другое писать на drf, третье писать свои бекенды для авторизации, паролей, пермишшоны, мидлевери и прочее, ну а предположим все это умеешь, что дальше будет знать джангу?
Аноним 28/03/21 Вск 01:54:29 197930467
>>1979300
Учитывая что другалек в треде "изучает рест", в его случае идет речь о понимании устройства хеловорлда на джанге и какой нибудь hello-world app, а у тебя вопрос философский, на уровне с какого момента можно говорить что я знаю пытон?
Аноним 28/03/21 Вск 01:54:32 197930568
>>1979254
Оказалось все гараздо тупее и тривиальнее, хотя отчасти и правильно, я наговнокодил так что многие названия очень похожи, хотя и значат разное и просто загружал объект заранее из бд, без доп полей, потом я про это забыл и в эту функцию передавал ключ модели и сохранял поля, а потом оказывается есть последняя строчка про которую я забыл, которая меняет поле той модели, которую я загрузил в начале, той модели, в которой нет доп полей и потом он ее сохраняет, т.е я сначала сохраняю с полями, а потом без, а ощущение словно поля просто не созранялись, час-два точно убил на этот баг
Аноним 28/03/21 Вск 04:23:44 197932869
>>1979304
Ну под "знать джангу" я скорей бекенд подразумеваю. Судя по задачам заказчика, надо будет парсить хмл разной структуры, делать запросы к разным бд, и результат отображать в браузере + реализовать правку этих сущностей в сурсцах.
Аноним 28/03/21 Вск 05:40:43 197933370
>>1979304
>на уровне с какого момента можно говорить что я знаю пытон?
Ну если какой-либо синглтон можешь запилить без подсмотров, то можно сказать что знаешь. Остальное дочитаешь.
Аноним 28/03/21 Вск 13:30:38 197943471
>>1979328
ETL а чистом виде, на фреймворки не смотри. Большинство проектов такие, ну стэк только меняется.
Может только задачи другие. Типо M2M (ещё кто-то помнит о таком?) безучастия в процессе человека.
Аноним 28/03/21 Вск 13:43:56 197944672
>>1979434
Ну джанго это желание заказчика. Пока не вижу, где он там должен применяться, я вообще подумал, что под решение его задачи нужен какой-нить апач айрфлоу и редис, но с обоими не работалю
Аноним 28/03/21 Вск 14:20:31 197947673
>>1979446
>я подумал...
Братишка, на твоем уровне думать еще рано и платят тебе не за это
Аноним 28/03/21 Вск 14:33:49 197949474
>>1979446
Хороший вопрос как у тебя весь этот обмен данными будет устроен. В первую очередь как и откуда ты будешь брать xml, как они к тебе будут попадать в движок.

Джанго это CRUD классический. Для сервисов он не удобен.

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

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

Лучше какой-нибудь aiohttp под это использовать.
Аноним 28/03/21 Вск 14:42:37 197949875
>>1979476
Ну вот я так недавно после мини-отпуска, на эмоциях и из-за сжатых сроков повесил боевую базу.

>>1979494
Пока сам не понимаю, но расти хочется, поэтому наверно попробую вкотиться в это. Если обосрусь за испытательный срок, так обосрусь, зато опыт. Тем более если заказчик что-то нашёл в моём опыте, значит он готов идти на такие риски.
Аноним 28/03/21 Вск 14:42:38 197949976
Анонсы, спасите меня от костылей:

Задача: выводить минимальный лог (время + ключ) в админ панель.

Как я хочу сделать: есть модель User с полем secret_key ключик используется в заголовке http для доступа к АПИ. Я хочу создать модель Call с полями:
- key = ForeignKeyField("User", on_field=secret_key)
- date = datetimefield(auto_now_add=True)

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

Но даже в моей голове это выглядит как велосипед. Что посоветуете?
Аноним 28/03/21 Вск 15:17:25 197952077
>>1979498
> Тем более если заказчик что-то нашёл в моём опыте, значит он готов идти на такие риски.
На самом деле самый вопрос в том, насколько заказчик адекватен. Там в команду берут, где ты не один прогер, или ближе к фриланс работе, где ты единственный исполнитель.

Если в команду, то норм.

Если ты единственный исполнитель, то проблема может быть в том, что заказчик вот не компетентен совсем. Он что-то слышал, что-то представляет, ему кто-то что-то сказал, вот он и предлагает. Но не понимает, что сложно а что просто, откуда какие проблемы, и т.п.С такими довольно тяжело бывает, но тоже работа и в первую очередь опыт какой-то.
Аноним 28/03/21 Вск 15:24:56 197952878
>>1979499
Модель как модель, простая и обычная.

Для логов есть специальные инструменты, но это для хайлоада или больших данных актуально.

Твоя модель хороша и другого не требуется, если ты эти логи хранишь постоянно и их не очень много.

Плохо тогда, когда у тебя в итоге 90% данных это твои логи, тебе их надо как-то чистить и т.п.
Аноним 28/03/21 Вск 15:28:10 197953179
>>1979520
Там уже есть команда (архитекторы, девопсы и т.п.), меня берут на позицию разраба бэка, с уклоном в бд. Сам я дата аналист/дата недоинженер, ментора там не будет, вся работа через лида/прожект менеджера, который меня и собесил.
Аноним 28/03/21 Вск 15:29:13 197953480
>>1979531
Но как питухон разраба меня берут первым.
Аноним 28/03/21 Вск 16:10:01 197957681
16002699864500.mp4 3644Кб, 856x480, 00:00:16
856x480
>>1978016

Дублирую вопрос. Минут 25 сидел и думал над уравнением 4 класса, не дошло. Посмотрел решение, не дошло. Пошел смотреть на ютубе объяснение решение задачи, и только потом стало все понятно. Правда нужно отметить, что из школьной математики я помню только формулу дискриминанта, формулы сокращенного умножения, многочлены, таблицу умножения и теорему Пигора.

Короче после этого словил фрустрацию и долго не мог прийти в себя, но все-таки убеждаю себя в том, что если подтяну элементарную математику и надрочу руку в таких задачах, то проблем в обычной работе в будущем возникнуть не должно.
Аноним 28/03/21 Вск 16:12:57 197958282
>>1979576

Вроде и тест на IQ проходил, причем несколько раз с разной периодичностью, выдавало от 110 до 114(что вроде как считается за норму). Пиздец какой-то.
Аноним 28/03/21 Вск 16:16:30 197958483
>>1979576>>1978016
Если не вникать в унылые бесполезные доказательства, а просто общую концепцию разбирать (геометрический смысл, который просто первым пунктом должен идти в любой теме - так как память человека визуальная, и думают мозги изображениями и визуальными образами, а не (текстовыми) символами или теоремами) и потом решать задачи разных типов - тогда первые два курса матана можно освоить за 4-6 месяцев на неплохом уровне.






Аноним 28/03/21 Вск 16:19:11 197959084
>>1979584

Благодарю за совет.
Аноним 28/03/21 Вск 16:19:39 197959185
>>1979584
Блин, забыл что посты не редактируются.

Ищи всякие штуки вроде desmos.com/calculator - это может помочь, чтобы ты все эти переменные, графики и производные представлял в виде цельного визуального образа. Тогда любая задача с этим связанная станет тривиальной - так как тебе буквально очевидно что написано и в каком уравнении, и это один цельный образ - а не какой-то набор разрозненных математических символов.
Разница как между тем, чтобы по буквам читать (и терять смысл предложений) - или по словам и словосочетаниям.
Аноним 28/03/21 Вск 16:46:38 197963386
1613128704118.png 278Кб, 860x623
860x623
Аноним 28/03/21 Вск 17:16:14 197966187
Как узнать равны ли первое или второе число в двух разных списках?
[[0,0], [0,1], [0,2],
[1,0], [1,1], [1,2],
[2,0], [2,1], [2,2]]
Аноним 28/03/21 Вск 17:22:53 197966588
>>1979661
Взять их по индексам и сравнить оператором == ?
Аноним 28/03/21 Вск 17:26:42 197967689
>>1979665
Листы добавляются по мере работы программы, поэтому заранее номера позиций неизвестны
Аноним 28/03/21 Вск 18:21:17 197974790
>>1979676
ну так напиши сортировку с функцией филтьром
Аноним 28/03/21 Вск 18:31:53 197977091
image.png 9Кб, 449x221
449x221
image.png 20Кб, 844x284
844x284
>>1977853 (OP)
Сап анончики, вот есть пик1, вроде все выглядит логично, вводишь себе массив A, потом вводишь количество элементов N и все должно работать, но после ввода массива А, возникает пик2
Если не сложно объясните пожалуйста что я делаю не так ?
Аноним 28/03/21 Вск 18:41:16 197977792
>>1979770
Ладно, я разобрался, извините за беспокойство
Аноним 28/03/21 Вск 20:28:59 197989293
>>1979770
https://ideone.com/BI9qLf
Можешь не считывать N (удалить потом из списка первый элемент), в питоне это не особо требуется, так как в списке всё-равно массив указателей. Осторожно, такая фигня числа через точку считывает как два отдельных.
Аноним 28/03/21 Вск 21:36:26 197997394
ebalgovno.png 11Кб, 502x178
502x178
Прохожу курс Python на Stepik. Задача: " Однажды, посетив магазин канцелярских товаров, Вася купил X карандашей, Y ручек и Z фломастеров. Известно, что цена ручки на 2 рубля больше цены карандаша и на 7 рублей меньше цены фломастера. Также известно, что стоимость карандаша составляет 3 рубля. Требуется определить общую стоимость покупки."

Пример: на входе: 1 1 1; на выходе: 20.

Запускаю у себя - все работает и с разными значениями. Пытаюсь отправить на Степике - пишет, что неверно и иди нахуй. Скажите пожалуйста, в чем проблема?
Аноним 28/03/21 Вск 21:43:07 197999195
>>1979973

А бля, до меня дошло, где я проебался, но пока не дошло как исправить, пиздец
Аноним 28/03/21 Вск 21:51:16 198000896
Аноним 28/03/21 Вск 22:12:23 198003497
>>1979770
что за плагин для исключений?
Аноним 28/03/21 Вск 23:50:03 198013398
>>1980034
майорское расширение питона для визуальной студии
Аноним 28/03/21 Вск 23:50:35 198013499
>>1980133
>майковское
ебучий-сафари-фикс
Аноним 29/03/21 Пнд 01:35:15 1980220100
Анчоусы, через пару недель собес на стажировку в сбер. Питонистом. Как подготовиться максимально? Что смотреть что читать? Пока планирую дрочить литкод, сделать петпроджет лайтовый круд по стэку который у них и просто дрочить солиды кисы dry и прочую лабуду с restful. Всё правильно или что-то изменить?
Аноним 29/03/21 Пнд 07:40:24 1980253101
>>1980220
дрочат хуй, а питон изучают
Аноним 29/03/21 Пнд 10:11:31 1980286102
В питоне можно сделать функцию, которая будет создавать пустые переменные?
Или можно только создать значения в словаре и работать с ними?
Аноним 29/03/21 Пнд 10:20:44 1980289103
Аноним 29/03/21 Пнд 10:21:13 1980290104
>>1980289
Нихуясе, а тебе зачем?
Аноним 29/03/21 Пнд 10:24:10 1980291105
>>1980290

> В питоне можно сделать функцию, которая будет создавать пустые переменные?

Просто интересно. Но чет я подозреваю, что хуй там.
Аноним 29/03/21 Пнд 10:39:26 1980298106
>>1980286
Можно, но переменные все равно в словаре будут, просто в другом. Из словаря выхода нет.
Аноним 29/03/21 Пнд 10:41:16 1980300107
Аноним 29/03/21 Пнд 10:44:11 1980301108
Есть краткое руководство по питону, чтобы буквально код и комментарии к нему? В офф документации захлебнуться можно от воды, а в статьях еще хуже.
Аноним 29/03/21 Пнд 10:44:59 1980302109
Аноним 29/03/21 Пнд 11:26:02 1980319110
Screenshot 2021[...].png 396Кб, 2020x616
2020x616
>>1980286
Дальше сам догадаешься? С классами тоже так можно
Аноним 29/03/21 Пнд 13:51:40 1980422111
>>1980319
Типа так невзначай похвастался, что у тебя макбук и ты успешен?

>С классами тоже так можно
Можно, но всё-таки это неправильно и грязно. И не всегда работает.
У тебя может не быть __dict__ у объекта, если ты создавал его с __slots__
Соответственно при попытке присвоить какой-то существующей переменной значение у тебя будет исключение
Корректно присваивать через setattr
setattr(obj, var_name, var_value)
В случае __slots__ ты, конечно, так сможешь только определённые в __slots__ значения переопределить, не совсем что автору надо.

Но это не единственная проблема с __dict__.
Аноним 29/03/21 Пнд 14:06:13 1980436112
Пишу скрипт для автозаполнения сайта через Selenium, есть проблемы мешающие или замедляющие работу.
Так как таблица формируется динамически, то элементы появляются только после прокрутки и поиск например строки 20 если она не отображается не получится, по классам поиск не работает только по селектору. Если например найти элемент:
<div class="slick-cell l1 r1 undefined">49</div>
то могу выделить и заполнить ячейку однако текст 49 не могу получить никак, есть ли способ получить значение?
Что-то вроде найти селектор и использовать функцию .text выдают пустой результат.
Почему работает:
ActionChains(driver).send_keys(Keys.TAB).perform();
но не работает никакие комбинации Keys.LEFT/Keys.ARROW_LEFT
которые мне нужны?
Аноним 29/03/21 Пнд 14:41:05 1980476113
>>1980436
c Keys.LEFT понял почему не работает, ячейка была выделена поэтому это было перемещение по тексту.
Аноним 29/03/21 Пнд 14:41:11 1980477114
>>1980436
getText() берет текст
Для скролла можешь pyautogui использовать.
Аноним 29/03/21 Пнд 14:55:20 1980486115
>>1980477
Наверное я проебался с геттекст() , это вроде из явы.
В селениуме есть же встроенные функции получения значений классов. get_attribute() и get_property()
Аноним 29/03/21 Пнд 14:55:54 1980488116
>>1979892
Крч я не совсем понял что ты написал ввиду своего начального изучения питона , но данная проблема помогла разобраться мне как работает типичный "for k in range N" и что вообще происходит , а еще то что там чтобы вводить массив и все нормально работает надо вводить "A=[int(b) for b in input().split()] вводил с телефона по памяти вроде не проебся, но спасибо за ответ.
Аноним 29/03/21 Пнд 15:06:11 1980497117
>>1980486
<div class="slick-cell l1 r1 undefined">49</div>
Да getText это не из питона, get_attribute() работает, но как вытащить из получаемого объекта "49"?
Аноним 29/03/21 Пнд 15:07:42 1980498118
>>1980497
или хотя бы source этого объекта после find
Аноним 29/03/21 Пнд 15:09:23 1980500119
>>1980497
num = driver.find_element_by_zalupa().get_attribute()
текст будет в переменной num
Аноним 29/03/21 Пнд 15:32:12 1980518120
>>1980500
Всё разобрался, спасибо всем. В общем попробовал подняться этажом выше и взять не ячейку а целую строку и вывести .text, сначала выдала всё кроме нужного и я понял т.к. у меня на нужной ячейке был .click() её содержимое получить было нельзя.
Аноним 29/03/21 Пнд 16:11:58 1980567121
>>1978488
@errordesuka, в телеге напиши
мимо другой анон
Аноним 29/03/21 Пнд 19:28:19 1980707122
>>1980567
А ты насколько крут уже в джанге?
мимодругойанон
Аноним 29/03/21 Пнд 20:38:58 1980762123
Screenshot8.png 5Кб, 973x73
973x73
Так, ваше пипу обязательно 32 битная версия нужна? Скачал и установил 64 битный питон.
Аноним 30/03/21 Втр 01:37:56 1981026124
>>1980762
>Python
>Шиндоус
А ты не очень умный
Аноним 30/03/21 Втр 01:46:33 1981034125
>>1981026
>Python
>Шиндоус
Питон на винде нормальной работает.
Аноним 30/03/21 Втр 01:53:07 1981036126
>>1977853 (OP)
Есть множество sql query на обновление данных в таблице (через sql alchemy)
Можно ли при помощи threading выполнить эти запросы конкурентно? И что если таких запросов несколько тысяч штук? Создавать по треду на каждый запрос - уебанство
Аноним 30/03/21 Втр 02:00:26 1981041127
>>1981036
А что за запросы такие и откуда пришли, что прям несколько тысяч надо сразу запихнуть?
Ты не дудось базу запросами, а собери в один лучше и проверь скорость работы. В любом случае можешь обвешать таблицу локами.
Аноним 30/03/21 Втр 07:40:25 1981074128
>>1981036
Посмотри, что такое ACID. Всё уже придумали.
Аноним 30/03/21 Втр 07:53:15 1981075129
Есть пандасовый датафрейм со значениями и датами со временем. Нужно сгруппировать значения в списки по дням.
Например https://ru.stackoverflow.com/questions/920086/%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-dataframe-%D0%BF%D0%BE-%D0%B4%D0%B0%D1%82%D0%B5
df = pd.DataFrame({'val':np.random.randint(100, size=20), 'date':pd.date_range('2018-12-01', freq='500T', periods=20)})

Предлагают df.groupby(pd.Grouper(key="date", freq="D")).sum()
Но мне нужно не сумму считать, а все 'val' соединить в список. Для примера это будет так
date val
2018-12-01 [65, 63, 8]
2018-12-02 [12, 0, 74]
2018-12-03 [86, 27, 57]
Если важно у меня все списки будут разной длинны.
Аноним 30/03/21 Втр 09:08:10 1981092130
>>1981075
df.groupby(pd.Grouper(key="date", freq="D"))['val'].apply(list).reset_index()
Аноним 30/03/21 Втр 09:22:09 1981096131
>>1981036
SQL Alchemy обязательна? Есть же pewee-async/tortoise и ещё какие-то для MySQL/PostgreSQL, если уж очень ORM нужна
Аноним 30/03/21 Втр 09:24:47 1981097132
>>1981034
>Нормально
Часть пакетов не может быть установлена/собрана. Uvloop'a нет, uvicorn дропнул поддержку IOCP, hypercorne все ещё нестабилен. Куча нюансов, если просто книжки дрочить, то норм. Все равно же в контейнере все разворачивают, в шиндоус докер поддерживается, WLS есть, можно же и там все делать.
Аноним 30/03/21 Втр 09:42:53 1981104133
ya.png 2332Кб, 1200x1600
1200x1600
>>1977853 (OP)
Как работать с сайтами, на пиотне? В смысле не скрэплинг йобаный, а получение информации с сайта и отправление другой например, в сообщение и т.д.
Просто когда я пытаюсь найти в интернете инфу, мне выдают ебучий скрэплинг, а я блять не хочу делать сайты.
Аноним 30/03/21 Втр 10:08:52 1981108134
>>1981104
Ну так-то скрапинг это оно и есть - шлем запросы, получаем ответы, потом извлекаем.
Аноним 30/03/21 Втр 10:13:30 1981113135
Вот читаю я Лутца и там следующее:
Допустим у нас проект, в котором модуль main.py импортирует модуль A.py. Модуль A импортирует B, а B импортирует C. В такой ситуации, если нам понадобится перезагрузить все модули, то просто reload A не сработает, ведь его внутренние импорты не будут перезагружены. Как решение Лутц предлагает огромную рекурсивную поеботу, которая обходит все модули на произвольную глубину и всё перегружает. Это всё прикольно, но почему бы для решения этой задачи не импортировать модули сразу с перезагрузкой? То есть в модуле A мы импортируем B следующим образом:
import B
reload B
Тогда при reload A у нас B сразу же перезагрузится, ведь выполнится reload B. Менее изящное, но более простое решение. Тем более мы не перегружаем вообще всё, а явно указываем какие модули мы собираемся перегружать.
Я ещё плохо разбираюсь в программировании и питоне, в чём я не прав?
Аноним 30/03/21 Втр 10:16:45 1981114136
>>1981113
Так ты всегда всё импортируешь дважды, проеб по скорости.
Аноним 30/03/21 Втр 10:20:28 1981116137
>>1981114
Я это понимаю. Но если у меня только два модуля требуют перезагрузки, а Лутцевская функция перегружает вообще все модули из пространства имён (а она так и делает), то проигрывает Лутц.
Аноним 30/03/21 Втр 10:32:52 1981123138
Тем более можно сделать проверку наличия объекта модуля и при отсутствии импортировать, а при наличии перегружать.
Аноним 30/03/21 Втр 10:46:50 1981132139
>>1978942
Эта требует ручного перечисления всех переменных и никакие аргументы кроме простого ввода не принимает.
Нашел вот это https://stackoverflow.com/questions/2960864/how-to-save-all-the-variables-in-the-current-python-session первый ответ
Но при сохранении выдает Can't pickle <built-in function input>: it's not the same object as builtins.input

Потом при загрузке invalid load key, '\x27'.
Походу толком ничего не сохранишь. Всё какие-то костыли.

Аноним 30/03/21 Втр 11:04:30 1981138140
>>1981116
У него это просто пруф оф концепт, ты можешь произвольно для своей ситуации делать.
Аноним 30/03/21 Втр 11:19:42 1981150141
image.png 34Кб, 427x406
427x406
image.png 99Кб, 1435x471
1435x471
я нихуя не понял, помогите
Аноним 30/03/21 Втр 11:24:57 1981155142
>>1981150
Добавь драйвер в PATH ты че питон только скачал
Аноним 30/03/21 Втр 11:27:51 1981158143
>>1981155
ну тк, я зеленый хуище. хотя я и сам почитал ошибку. Сначала скачал файл и тупо запустил как еблан. А потом только допёр что до него путь нужно хуйнуть в
driver = webdriver.Chrome(executable_path=r"C:\Users\User\Desktop\chromedriver.exe")
Аноним 30/03/21 Втр 11:29:37 1981161144
>>1981138
Да я понял. Я просто удивился что моё решение СИЛЬНО проще и потому усомнился в его адекватности.
Аноним 30/03/21 Втр 11:29:39 1981162145
>>1981158
можно просто в PATH добавить и кинуть драйвер рядом с исходником
Аноним 30/03/21 Втр 11:36:02 1981174146
Аноним 30/03/21 Втр 13:38:54 1981266147
mod.py:
a = 3
def func(): print(a)

main.py:
from mod import func
func()


Я правильно понимаю, что в пространтсве имёy модуля main функция func() будет выглядеть как print(3) ?
Аноним 30/03/21 Втр 14:03:09 1981290148
>>1981266
Нет, будет объект function с именем 'func'
Аноним 30/03/21 Втр 14:04:23 1981293149
>>1978488
Я другой анон, годик назад пробовал джангу, наковырял франкенштейна, но т.к. питон я не изучил нормально и появилось 100500 важных дел забил, сейчас сделал комбэк, дрочу питона уже месяц по 4+ часа в день, хочу через пару недель окунуться в джангу и начать ебашить на ней. Если вы скооперировались можно к вам?
Аноним 30/03/21 Втр 14:09:41 1981307150
>>1981104
То что ты хочешь делается через апи если оно есть, если нет то только парсеры
Аноним 30/03/21 Втр 14:13:21 1981315151
>>1981290
Тело то у функции какое?
Аноним 30/03/21 Втр 14:21:40 1981323152
>>1978633
Бро, как и тебе посоветовали займись ооп, ну или функциями для начала, а то это больше не проект, а задачка.
Аноним 30/03/21 Втр 16:23:50 1981458153
>>1981315
У объекта тело какое?
Аноним 30/03/21 Втр 17:58:55 1981565154
>>1981293
Там ниже контакты есть.
Аноним 30/03/21 Втр 18:41:18 1981600155
image.png 30Кб, 937x283
937x283
image.png 15Кб, 561x305
561x305
Может знает кто, как в пайчарме нормально с sqlite работать? Вроде сделал всё как надо, а подсветки и прочего нет. Что не так?
Если создать не много по другому, то будет ворой пик или так всё и должно быть? В гайдах на ютубе по другому всё.
Аноним 30/03/21 Втр 18:44:35 1981607156
>>1981600
В питоновых файлах не будет подсветки. В скулёвских - будет.
Аноним 30/03/21 Втр 18:50:46 1981623157
Снимок экрана 2[...].png 61Кб, 1036x374
1036x374
Аноним 30/03/21 Втр 19:06:41 1981663158
Аноны подскажите плиз в чего щас лучше вкатываться, в какой язык программирования?сам в этом ноль,хотел бы найти учителя который будет вести,буду ему % от зп платить и в дальнейшим тоже
Аноним 30/03/21 Втр 19:22:27 1981692159
>>1981663
Тебе в общий тред, а не сюда.
Аноним 30/03/21 Втр 19:24:38 1981695160
Можете верить, можете нет, но сейчас я удалил path в urlpatterns, но он продолжает меня вести на этот адрес. Как такое возможно? Перезапускал и проект и пайчарм. На стековерфлов есть такой вопрос и там никто ничего не знает.
Аноним 30/03/21 Втр 19:26:22 1981703161
>>1981607
>В питоновых файлах не будет подсветки
Вообще-то будет, нужно только подсоединить нужную базу данных в панели database.
Аноним 30/03/21 Втр 19:28:40 1981710162
>>1981695
Проверил в другом браузере там все нормально, в этом продолжает отображать путь.
Аноним 30/03/21 Втр 19:30:05 1981715163
>>1981703
Правда? А хтмл верстку в джеэсе он у тебя тоже подсвечивать будет?
Это строка, с точки зрения питона, поэтому он и не будет подсвечивать.
Аноним 30/03/21 Втр 19:30:50 1981721164
Аноним 30/03/21 Втр 19:48:29 1981768165
>>1981721
Сам как-нибудь, нулевую полистай
Аноним 30/03/21 Втр 20:00:24 1981801166
>>1981715
>А хтмл верстку в джеэсе он у тебя тоже подсвечивать будет?
В жс файлах будет. В питоновских нет, по крайней мере по умолчанию.
>Это строка, с точки зрения питона
С точки зрения подсветки синтаксиса это не имеет никакого значения. Только в случае с sqlite надо сначала подсоединить базу данных, чтобы пайчарм знал, какие в ней таблицы.
Аноним 30/03/21 Втр 20:02:15 1981807167
>>1981663
Рекомендую самому искать и изучать инфу, сейчас вкатывайся во что хочешь, это зависит от того что ты хочешь делать(веб,десктоп и прочее). Могу только свой список кинуть который сам насобирал, по нему изучаю все, пока что неплохо идет
Аноним 30/03/21 Втр 20:20:20 1981823168
>>1981807
Да мне чтобы за границу свалить и получать 7к зелёных не вылазия из дому,что попроще наверно,чтобы взяли же ещё навыки и опыт нужен
Аноним 30/03/21 Втр 20:26:55 1981835169
>>1981823
лел, дохуя хочешь.
а если серьезно амбиции это хорошо, ты можешь в принципе любой язык который пригоден под веб выучить, т.к. ты в питон треде, то можешь в принципе посмотреть в сторону джанго как основного фреймворка, он хороший и мощный, на нем работает сайт варгейминга, гугл некоторые сервисы и прочее, для его освоения нужно знать сам синтаксис, ооп в питоне, БД , регулярные выражения.
Аноним 30/03/21 Втр 20:30:41 1981845170
>>1981835
Классический страницашлеп без cs образования, нахуй никому не нужен. Только в Урюпинске помощником эникея можно идти.
Аноним 30/03/21 Втр 20:39:48 1981864171
>>1981845
Ты про фронт говоришь, бэкендер это другое, или ты думаешь что выучишь фреймворк и будешь бесконечно пилить магазины?
Толковый разраб везде нужен, в том числе и фронтендер
Аноним 30/03/21 Втр 20:40:23 1981865172
>>1981835
И за сколько это всё освоить можно?так лол там даже сранные сантехники 5-6к $ получают
Аноним 30/03/21 Втр 20:47:19 1981878173
>>1981865
Ну бля, питон, подрочишь задачи и ооп 1-1.5 месяца интенсивно. Почитаешь о сетях и устройстве интернета, изучишь гит-несколько дней. Фреймворк и базы хз сколько, но на базовом уровне за неделю.
В принципе после этого можешь делать ебы.
Потом нужно знать современные инструменты, паттерны, rest... и тд., список большой, но без него нахуй не нужен быдешь у пиндосов
Аноним 30/03/21 Втр 20:49:59 1981883174
>>1981878
После того как это освою,мне для начала годик в рф поработать или сразу стараться в компании сша рваться?там же надо ещё учить на инглише или это не обязательно?
Аноним 30/03/21 Втр 20:54:26 1981895175
>>1981883
я не знаю, я просто собрал кучу инфы что требуется от разработчика сейчас и как сейчас пишут код, какие технологии используют, по рф я бы мог еще сказать, по бугру нет, но там в основном по технологиям тоже самое, по работе кури ютуб.
Аноним 30/03/21 Втр 21:16:05 1981914176
>>1981710
У меня пидорский питон иногда не видит изменения в файле и приходится пересоздавать. Даже если удаляю файл все равно его запускает. Даже если терминал перезапускаю.
Аноним 30/03/21 Втр 21:34:17 1981925177
>>1981864
Нужны не настолько, чтобы вытягивать себе из-за границы спеца. К себе вытягивают сильных спецов из сложных областей.
Аноним 30/03/21 Втр 21:58:01 1981943178
Что почитать ++ программисту, чтоб пистон ваш за месяц осилить? По работе оче надо код портировать. Там в шапке часть материалов начинается с хуеты типа "информатика это...", "введём понятие переменной и цикла...". Что полистать кроме документации?
Аноним 30/03/21 Втр 22:13:10 1981950179
>>1981865
>там даже сранные сантехники 5-6к $ получают
В твоих маняфантазиях? Это хорошая зарплата для специалиста с вышкой. Рабочие специальности получают в полтора-два раза меньше. Говночисты - в три.

Если хочешь работать на штаты, то я бы ориентировался на 3-4к в месяц. За большие деньги ты не нужен, поскольку проще нанять местного раба в офис.
Аноним 30/03/21 Втр 22:18:26 1981956180
>>1981950
*Поскольку проще нанять инженера, который может тянуть на себе код, а не месяцапитониста за 7к.
Аноним 30/03/21 Втр 22:22:12 1981960181
Аноним 30/03/21 Втр 23:27:21 1982008182
image.png 9Кб, 655x68
655x68
А так нельзя сделать?
Аноним 30/03/21 Втр 23:43:00 1982018183
>>1977853 (OP)
Друзья, здравствуйте. Может ли кто-то, понимающий питон, посмотреть на эту проблему: https://github.com/philippj/SteamworksPy/issues/62

Очень нужно хотя бы понять, куда сосать с этой проблемой.
Аноним 31/03/21 Срд 00:28:16 1982067184
Какой мастхев для вебмакаки на текущий день?
Пока что имеются
- Средние знание пистона
- FastAPI

- RabbitMQ
- Kafka

- Redis
- ETCD
- MongoDB
- PostrgeSQL

- Amazon
- Docker
- GitlabCI

- Умение писать микросервисы и масштабировать их
- Сейчас щупаю на работе CQRS c эвент сорсингом и DDD

Последние пункты хотел бы особо расширить, так как хочется узнать больше архитектурных паттернов
Аноним 31/03/21 Срд 01:56:00 1982100185
>>1981041
Надо обновить записи в базе. Их там дохера, и обновить нужно все
Аноним 31/03/21 Срд 04:18:30 1982128186
>>1977853 (OP)
Сначала показалось что мужик на пикрелейтед ебет трех питонов в ротеш. В чем смысл слабой типизации питона?
Аноним 31/03/21 Срд 07:56:15 1982159187
>>1982128
>В чем смысл слабой типизации питона?
В удобстве?
Аноним 31/03/21 Срд 08:05:17 1982162188
Объясните мне Я НЕ ПОНИМАЮ!
Импортирую переменную через from:
from modul import a
В пространстве имён появляется имя a. Меняю в файле modul значение a.
del (a) #объект а удаляется
from modul import a
print (a) #выводится изночальное значение, а не изменённое.

Вопрос: почему так нахуй? Где питон берёт значение, если объекта модуля modul нет?
Я знаю как перегрузить правильно, я хочу понять почему ТАК не работает.
Аноним 31/03/21 Срд 09:05:44 1982176189
Прочитал укус питона, а дальше что делать не знаю.
Ещё читать книжки, или что? Библиотек не знаю, горем с пополам могу назвать пару методов, да и всё.
Аноним 31/03/21 Срд 09:06:06 1982177190
image.png 1725Кб, 1280x720
1280x720
Аноним 31/03/21 Срд 09:15:43 1982181191
>>1982159
Может быть может быть. Вот думаю это недостаток или плюс. С одной стороны разрабы должны быть не дураками. С другой стороны столько языков разных включая brainfuck что даже не знаю. Меня одолевают смутные сомнения.
Аноним 31/03/21 Срд 09:36:48 1982191192
>>1982162
Импорт модулей это дорого, пистон кеширует данные по нему. Если хочешь перезагрузки, то юзай reload.
Аноним 31/03/21 Срд 10:57:26 1982244193
PyPy теперь соответствует спецификации/реализации Python 3.7. Кто-то пробовал его в деле?
Аноним 31/03/21 Срд 11:13:24 1982248194
Почему пистон не сделают компилируемым? ГОвно же с утиной типизацией через interface смогли
Аноним 31/03/21 Срд 11:45:29 1982272195
>>1982162
То есть в памяти где-то всё равно сидит объект модуля из которого импортировали переменную?
>Если хочешь перезагрузки, то юзай reload.
Да я же говорю - я знаю как.
Аноним 31/03/21 Срд 11:46:10 1982273196
>>1982248
Зачем? Код и так компилируется, если может.
Аноним 31/03/21 Срд 11:54:21 1982279197
>>1982176
читай еще и решай задачки
Аноним 31/03/21 Срд 12:25:55 1982302198
>>1982176
ИМХО укус питона это рекламная брошюра питона, а не учебник никакой. Я после прочтения книжку понял, а про питон не понял нихуя. Что и как делать то? Но после него проще читать уже что-то более серьёзное. Я после него Лутца читаю, но он не для всех - слишком подробно.
Аноним 31/03/21 Срд 12:36:28 1982307199
>>1982273
Я надеюсь, что ты не имеешь ввиду pyc файлы, я про нормальную компиляцию с бинарником и запуском без интрепретатора на машине
Аноним 31/03/21 Срд 12:40:58 1982312200
Питоны, вы в rest api отдаете вложенные объекты или делаете несколько запросов и "собираете" связанные объекты на клиенте?
Аноним 31/03/21 Срд 12:43:58 1982316201
>>1982312
Если было бы много дублирующихся данных, которые можно было закешировать в разных запросах, то делал бы второе.
Аноним 31/03/21 Срд 13:09:34 1982337202
У кого-нить есть опыт работы с протоколом MODBUS, в частности с библиотеками типа pymodbus?
Аноним 31/03/21 Срд 13:29:26 1982350203
Хочется попасть в яндекс на стажировку, вроде в питоне немного разбираюсь, но вот меня смущают сильно пункты про классические структуры и алгоритмы, когда можно понять что ты хорош в алгоритмах? Ну знаю я различие между кучей и очередью и стеком, знаю алгоритмы сортировки и алгоритм быстрой сортировки, немного знаю синтаксис си и си++ с указателями и т.д, а что еще важно? Кроме литкода что-то еще важно дрочить?
Аноним 31/03/21 Срд 13:31:48 1982352204
>>1981036
Обновлено: ни треды, ни асинхронка не помогают
Походу в postgres стоит лок на операцию update, как его блин убрать
Аноним 31/03/21 Срд 13:44:49 1982360205
image.png 43Кб, 1415x643
1415x643
Я новичок, чо мне питон мозги трахает?
Аноним 31/03/21 Срд 13:56:09 1982369206
>>1982360
Решил,скобки потерял
Аноним 31/03/21 Срд 13:58:52 1982372207
>>1982176
так он только простые конструкции объясняет,
https://proproprogs.ru/
вот тебе годный сайт блогера selfedu, он чуть направит тебя
Аноним 31/03/21 Срд 14:05:08 1982379208
>>1982369
Если написано Syntax Error то значит это ты долбоеб и питон тут ни при чем
Даже не сри такими кнйсами здесь
Аноним 31/03/21 Срд 14:11:19 1982382209
>>1982350
Графы, деревья и алгоритмы обхода их знаешь? Всякие задачи на вычисление вложенных скобочек решал?
Аноним 31/03/21 Срд 14:11:22 1982384210
>>1982337
Я с модбасом работал, с pymodbus - нет.
>>1982352
А объединять запросы в один не получится, как в джанге bulk_update()?
Аноним 31/03/21 Срд 14:14:30 1982387211
>>1982352
Дурачок, лок стоит для того, чтоб целостность обеспечить. Он же не знает, собираешься ты обновлять одно поле 10 раз или что ты делать будешь.
Я тебе уже написал, собираешь запрос в один update и обновляешь.
Аноним 31/03/21 Срд 14:55:30 1982409212
>>1982384
Ну вот смотри. Через модбас терминал я посылаю реквест в шестнадцатиричной системе и получаю ответ в ней же. А в паймодбасе есть функция, через которую запрос делается. И там только три аргумента - адрес, количество регистров и юнит ID. В итоге я получаю сообщение что не получено никакого ответа. А в терминале я посылал реквест из 4 параметров - адрес, функциональный код, адрес регистра и количество регистров.
чяднт?
Аноним 31/03/21 Срд 15:05:05 1982415213
Помогите с датафреймами.
Есть несколько датафреймов с котировками и датами. Мне их нужно совместить. Но прикол в том, что даты не совсем совпадают. Если что даты идут как индексы. Мне нужно чтобы в финальном фрейме были все даты, а если котировки на заданную дату нет, то она заменяется на предыдущую.
Пример исходных данных и результата в пастебине. https://pastebin.com/5HiEb47C
Аноним 31/03/21 Срд 15:29:25 1982435214
>>1982409
Я так понимаю, ты создал правильный инстанс клиента, с правильными параметрами, вызвал метод .connect() и он вернул True, все так?
Если нет ответа, то скорее всего адрес слейва неправильно указал.
>там только три аргумента - адрес, количество регистров и юнит ID
Все правильно, функциональный код pymodbus за тебя подставляет. Адрес - это адрес регистра, unit - это адрес слейва.
>чяднт?
Не показываешь код. Без кода трудно угадать, что не так.
Аноним 31/03/21 Срд 15:45:59 1982448215
photo2021-03-31[...].jpg 43Кб, 680x524
680x524
photo2021-03-31[...].jpg 21Кб, 1052x209
1052x209
photo2021-03-31[...].jpg 39Кб, 1053x663
1053x663
>>1982435
Первый пик - отправка запроса и прием ответа в терминале. Все работает нормально. Второй пик - пояснение реквеста. Третий пик - мой код.
Аноним 31/03/21 Срд 15:52:21 1982452216
>>1982435
Все зараболо! Ты был прав, я адрес слейва неправильно писал. Лучей добра тебе!
Аноним 31/03/21 Срд 15:52:42 1982453217
>>1982435
Все заработало! Ты был прав, я адрес слейва неправильно писал. Лучей добра тебе!
Аноним 31/03/21 Срд 15:58:14 1982460218
image.png 3Кб, 434x189
434x189
image.png 2Кб, 690x67
690x67
>>1982387
Собрать запросы INSERT в один - хуйня вопрос. Дефолтный пример это 1й пикрил
А как собрать запросы UPDATE в один? Хрень со второго пикрила - ерунда, он обновляет любые строки где проходит condition
Аноним 31/03/21 Срд 16:11:48 1982485219
>>1982460
Через UNION ALL или через JOIN на временную таблицу, где будут твои параметры под кондишн
Аноним 31/03/21 Срд 16:42:21 1982514220
>>1982485
>UNION ALL
Лучше не стоит, равносильно в цикле запускать обновление
>>1982460
update from, первая ссылка в гугле
Например
update table_name as t set
column_a = c.column_a
from (values
('123', 1),
('345', 2)
) as c(column_b, column_a)
where c.column_b = t.column_b;
Аноним 31/03/21 Срд 17:31:08 1982571221
Почему про ООП и классы так мало пишут, если это едва ли не самое важное в погромировании?
Аноним 31/03/21 Срд 17:53:09 1982594222
Есть список в котором дохулиард np.array. Нужно с каждым произвести следующую манипуляцию - откинуть ведущие нули и дописать такое же количество нулей в конец. То есть
Было
[
[0 0 0 1 5 0]
[0 4 6 7 8 2]
...
]
Стало
[
[1 5 0 0 0 0]
[4 6 7 8 2 0]
...
]
Решение в лоб (в цикле ищем первый не нулевой элемент и аппендим срез от этого элемента до конца и np.zeros с количеством недостающих нулей) работает очень медленно (np.roll и np.trim_zeroes тоже медленные). Можно ли как-то то ускорить такую операцию?
Аноним 31/03/21 Срд 19:27:54 1982701223
>>1982594
Это выглядит как очень подходящая для распараллеливания задача. Порезать исходные данные на N кусков, запустить N дочерних процессов, каждый процесс обработает свой кусок, а потом склеить результаты. Можно самому, с помощью модуля
concurrent.futures из стандартной библиотеки, можно поискать какие-то свои подходы для numpy, может библиотеку какую поискать
Аноним 31/03/21 Срд 19:30:45 1982704224
>>1982571
Где мало пишут? Про ООП литературы просто дохуя.
Аноним 31/03/21 Срд 19:36:08 1982716225
>>1982382
Писал когда-то разложение дерева в словарь питона, но это все тоже прочту и порешаю
Аноним 31/03/21 Срд 19:42:19 1982723226
Аноним 31/03/21 Срд 19:47:35 1982732227
>>1982723
селффикс
>>1982701
df_split = array_split(df, N)
with multiprocessing.Pool(8) as pool:
____df = pd.concat(pool.imap_unordered(process_func, df_split))
Если не важен порядок
Аноним 31/03/21 Срд 20:00:38 1982741228
Объясните дауну, куда смотреть во вкладке Network в инструментах браузера, чтобы спарсить динамическую страницу (подгрузка фото).
Пробовал гуглить, но везде одно "смотри network". Где можно подробней про это почитать?
Аноним 31/03/21 Срд 20:10:49 1982748229
>>1982741
Двачую. Daun++ где почитать про парсинг веб страниц.
Аноним 31/03/21 Срд 20:42:37 1982773230
>>1982701
>Это выглядит как очень подходящая для распараллеливания задача.
Нет. Это не вычислительная задача, а прогон по памяти. Тебе дороже будет рассылать по процессам, чем делать всё в одном процессе.
Аноним 31/03/21 Срд 20:45:26 1982776231
Аноним 31/03/21 Срд 20:47:18 1982779232
>>1982773
А если там правда 100500 тысяч мильенов массивов в списке? Неужели при больших объемах парализация не поможет ускориться на многоядерных процессорах?
Аноним 31/03/21 Срд 20:54:42 1982783233
>>1982779
Чтобы запустить что-то параллельно, надо раздать распределить по процессам задания. Это сложно и дорого.

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

Это скорее многопоточная задача. Кстати надо тестировать, может она адекватно работает под тредами, поскольку работа должна быть внутри np, которая не задевает GIL.
Аноним 31/03/21 Срд 21:17:46 1982804234
>>1982514
Нихуя себе
Со 100 секунд время исполнения запроса упало до 800 м
Аноним 31/03/21 Срд 21:20:03 1982807235
>>1982783
Когда данные реально большие, эти расходы не важны, иначе бы параллельных вычислений просто не было бы
> которая не задевает GIL.
Когда используешь процессы, а не треды, на GIL похую
Аноним 31/03/21 Срд 21:22:13 1982810236
Аноним 31/03/21 Срд 21:36:55 1982815237
>>1982807
У каждого процесса своя память. Тебе надо расклонировать твой список по другим процессам, потом собрать результат с других процессов. Это очень дорогие операции, они дороже вызова np.roll() будут.

Раскидывание по процессам работает в других случаях, когда задание небольшое по объёму, но требует больших вычислительных ресурсов. Здесь другая история.

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

Может быть надо смотреть в сторону numba, это очень сильная штука, я слёту не смог, но я не работаю с numpy/numba.

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

Здесь проблема в том, что используется дорогой вызов np функций с передачей туда np.array объектов.
Аноним 31/03/21 Срд 21:56:34 1982830238
Как мне форсированно сохранить данные которые я записал в файл (при помощи open('filename', 'w') ) ?
Если где-то в процессе выполнения скрипта случится исключение или просто прога вылетит, то уже записанные данные не исчезнут?
Аноним 31/03/21 Срд 22:04:38 1982837239
>>1982830
Для надёжности надо метод flush() использовать, это принудительный сброс данных.

Гарантий наверное нет, тут ещё от шалостей ОС может зависеть, что произойдёт, если прибьётся процесс с незакрытым файлом.

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

Аноним 31/03/21 Срд 22:06:52 1982838240
>>1982830
У open есть настройки буфферинга. Алсо, можно явно делать flush.
Аноним 31/03/21 Срд 22:22:17 1982848241
>>1982701
Да такая мысль тоже была. Надо попробовать.
Аноним 31/03/21 Срд 22:36:27 1982854242
Анонче, пилю юнит тесты на пайтест. Есть вопрос как делать:
Есть один продукт, который будет интегрироваться с другими.
Задача: писать тесты собственно для продукта И для интегрируемых продуктов.
Вопрос: Стоит ли для каждого продукта, включая собственный пилить отдельный репо? После успешной интеграции с продуктом, тесты будут переделаны вместе а продуктом. Спасибо. Продукт Тим сказали мне делать ресерч как лучше хуже.
Аноним 31/03/21 Срд 22:37:42 1982855243
>>1982773
>Тебе дороже будет рассылать по процессам, чем делать всё в одном процессе.
>>1982723
>multiprocessing.imap_unordered
Если основное количество вычислений будет делаться нампаем, то можно использовать потоки - они будут работать как надо.
Аноним 31/03/21 Срд 23:12:44 1982895244
image.png 31Кб, 1118x235
1118x235
Ох Иисусе Христе блять... Ебаный Пуйчарм... Вот че он мне блять понавыделял? А главное - нахуя?
Весь экран вдруг засрало зеленым цветом, хуй пойми зачем и почему, как убирать нахуй? Пидарасы из жетбрейнс здесь сидят? Рот я ебал вашего говноконвеера, нахуй на VSCode съебываю
Аноним 31/03/21 Срд 23:33:43 1982912245
>>1982855
Смотри на задачу, там надо делать np.roll(np.array, shift).

Вот сам вызов долго работает, а сам ролл отрабатывает очень быстро, вне зависимости от размера массива.

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

Анон бы ещё озвучил величины примерные. Сколько в списке массивов, какого размера примерно и какого типа элементы. И сколько по времени это работает, и сколько надо.

Я почему-то думаю, что тут можно какие-то более глубокие оптимизации делать. Не просто же так у него вот эти мелкие np.array присутствуют, что-то с ними он ещё делает.

Аноним 01/04/21 Чтв 00:16:32 1982927246
image.png 4Кб, 413x60
413x60
В списке есть тупл как я понял как сделать обычный список, чтобы у каждого элемент был свой идекс?
Аноним 01/04/21 Чтв 00:17:13 1982928247
>>1982895
>нахуй на VSCode съебываю
помянем
Аноним 01/04/21 Чтв 00:38:59 1982936248
изображение.png 48Кб, 945x585
945x585
изображение.png 2Кб, 252x165
252x165
Первая картинка. Снизу время выполнения. По какой причине способ через s+= быстрее, чем через ф-строки и генераторы?

Я конечно понимаю, что оно видит, что строка только на запись и потому там прокает оптимизация для s+=, так что реально оно не создавало на каждом шаге новую строку - но с этой оптимизацией результат вроде как всё-равно не должен превосходить однострочник.

>>1982927
Вторая картинка?
Ну либо если тупл один, то просто [0] допиши за списком, чтобы оно этот один тупл извлекало?
Аноним 01/04/21 Чтв 01:39:43 1982948249
>>1982701
вообще numba jit вроде хорошо дружит с numpy
Аноним 01/04/21 Чтв 01:48:10 1982949250
>>1982594
Скинь куда-нибдь текстовый файл с дохулиардом np.array, бинарник и код для его открытия или код для генерации.

Мне интересно выдрачивать код, чтобы он быстрее работал.

Или не скидывай, я сам сгенерирую - просто масштабы укажи, сколько нулей и какие размеры массивов.
Аноним 01/04/21 Чтв 02:06:26 1982954251
>>1981315
У тебя main нет вo view, есть text.
Я тyт тoже джангy стал изyчать, если xoчешь мoжнo скooпеpиpoваться типo peer-to-peer leaning
(Автор этого поста был забанен. Помянем.)
Аноним 01/04/21 Чтв 06:34:49 1982979252
>>1982954
Это не джанга, я питон пока учу. Первый том Лутца вот дочитал.
Аноним 01/04/21 Чтв 07:58:32 1982990253
Аноним 01/04/21 Чтв 09:46:39 1983013254
И меня возьмите в гомоджангу, надо за месяц освоить.
Аноним 01/04/21 Чтв 10:36:52 1983031255
>>1982949
Код с цифрами скинуть не могу np.array те что внутри 100 элементов, всего их в списке порядка 107, ведущих нулей от 0 до 100.
Аноним 01/04/21 Чтв 11:16:44 1983055256
b243448595.png 455Кб, 1069x1340
1069x1340
Сап, двач, есть один проект, который загружает настройки из файла settings.ini

Я перевожу этот проект в exe при помощи auto-py-to-exe

Проект работает. Но меняю в settings.ini параметр "F:/GoogleDrive" на "C:/GoogleDrive" и программа перестаёт запускаться

В чём может быть дело?
Аноним 01/04/21 Чтв 11:31:12 1983063257
q8fBiaIvd6A.jpg 174Кб, 1000x500
1000x500
Чуваки, как можно объединить два списка поэлементно в один?
Например:
list1 = [a, b, f, g]
list2 = [1, 2, 3, 4]
нужно list3[a1, b2, f3, g4]
Аноним 01/04/21 Чтв 11:33:36 1983065258
>>1983063
list3 = []
for i in range(len(list1)):
list3.append(list1+list2)
Аноним 01/04/21 Чтв 11:39:26 1983071259
изображение.png 18Кб, 746x234
746x234
Аноним 01/04/21 Чтв 11:40:20 1983073260
Аноним 01/04/21 Чтв 11:42:35 1983075261
>>1983063
[''.join(map(str, i)) for i in zip(list1, list2)]
Аноним 01/04/21 Чтв 11:42:37 1983076262
>>1983055
Константа меджик там, юзай !
Аноним 01/04/21 Чтв 11:44:39 1983078263
>>1983076
не понял, можно поподробнее?
Аноним 01/04/21 Чтв 11:46:08 1983080264
Стикер 63Кб, 200x200
200x200
>>1983071
list3 = [list1 + str(list2) for i in range(len(list1))]
Аноним 01/04/21 Чтв 11:47:28 1983081265
изображение.png 1865Кб, 1332x753
1332x753
Аноним 01/04/21 Чтв 11:51:42 1983083266
Аноним 01/04/21 Чтв 12:13:38 1983096267
Аноним 01/04/21 Чтв 12:23:42 1983104268
>>1983078
Пукон кривое говно и не переопределяет адрес.
Для начала найди как вывести текущую директорию и попробуй пройтись по ней в верх.
Аноним 01/04/21 Чтв 12:28:01 1983106269
>>1983104
я бы согласился, но ведь с начальным параметром то работает
Аноним 01/04/21 Чтв 12:52:40 1983113270
.png 83Кб, 665x1023
665x1023
.JPG 27Кб, 320x313
320x313
>>1982594
С np не работал, но, если просто через async делать, такие результаты.
Аноним 01/04/21 Чтв 13:02:23 1983125271
>>1983113
А, тут малость не то сделано: вместо всех начальных нулей только один свапнут. Но не думаю, что сильная разница была бы.
Аноним 01/04/21 Чтв 13:03:04 1983127272
изображение.png 411Кб, 1260x895
1260x895
>>1983055
Может это даст какие-то зацепки?
Слева лог работающей программы. Справа, когда я заменил путь в файле конфигурации. (после выделенной строки начинается ошибка)
Если вернуть значения в файле конфигурации обратно, то программа всё равно не запускается
Аноним 01/04/21 Чтв 13:08:50 1983135273
>>1983113
>async
Когда вы блять уже усвоите что асинхронка в принципе не способна сделать быстрее ни одну числодробилку? Ни в пистоне, ни в жс, ни где-то еще
Аноним 01/04/21 Чтв 13:11:12 1983139274
>>1983135
Ну, вычисления, может, и не сделает, а здесь другая история.
Аноним 01/04/21 Чтв 13:23:10 1983155275
>>1983127
сравнил - это два одинаковых лога до этого момента
Аноним 01/04/21 Чтв 14:15:32 1983195276
>>1983139
> здесь другая история
Здесь у тебя асинхронность в принципе не используется, никак. Только одна задача, не преключения задач, ничего.

Ты можешь просто удалить всю эту асинхронную обвязку и всё будет работать как без неё.

Алсо, для более сложных задач, с несколькими потоками исполнения. У тебя всё будет работать не так, как ты зассчитываешь. Не смотря на слова async/await вызов функции main, весь цикл и вызовы swap_zero будут полностью синхронными, а не так, как ты ждёшь, наверное.
Аноним 01/04/21 Чтв 14:19:26 1983198277
>>1983055
сука 3 часа
в итоге оказалось, что
config.read(ini_path, encoding="utf-8")
можно записать без энкодинга, и всё равно будет работать
config.read(ini_path)
Аноним 01/04/21 Чтв 14:21:35 1983199278
>>1983198
ну и мякотка в том, что без энкодинга не работает в pyCharm'e
вообще хз, как вы мне бы могли помочь
Аноним 01/04/21 Чтв 14:25:23 1983200279
15834518320332.jpg 75Кб, 711x711
711x711
Аноны, я вот только начал. Прохожу курс на юдасити. У меня такой вопрос.
До этого ничего не учил именно на инглише, я очень свободно понимаю и терпимо говорю, никогда не тестил свой уровень. Но я читаю на русском с умопомрачительной скоростью. Если сравнивать - книга на русском у меня упирается в 200-300 страниц до "уставания", на английском около 70-80 страниц, это конечно касается худ.литры.
Вот и вопросы такие:
1)Cтоит ли мне миксовать курсы и гайды на инглише с базовыми книгами на русском?
2)Вообще эти базовые книги на русском актуальны, хорошо написаны и их следует читать?
3)В случае если стоит ради бОльшего количества информации и большей ее доступности читать литературу на русском - не возникнет ли у меня проблем с мешаниной в голове между, например, integer и целое число и прочие понятия, даже базовые арифметические операции лучше наверное запоминать на одном из двух языков?
4)Если таки стоит читать на русском - какую книгу в бумаге я мог бы купить? Мне так очень удобно, с закладками, выделением. У меня есть ридер, и телефон офк, но это немного не то.
Сорян за нуботу, хочу организовать как-то свой "курс" заранее
Аноним 01/04/21 Чтв 14:56:42 1983215280
>>1983031
>Код с цифрами скинуть не могу np.array те что внутри 100 элементов, всего их в списке порядка 107, ведущих нулей от 0 до 100.
Смотри вот какая история. Я только предупреждаю, что сам на numpy реально ничего не делал.

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

Я глянул быстро, но не мучал, своя работа висит.
Вот, я бы в эту сторону смотрел:
1) создаёшь двумерный numpy массив. Не большой питон-список из небольших np.array, а двумерный np.array размерности 10М х 100
2) создаёшь векторизующую функцию через np.vectorize
там первым параметром ты указываешь питон-функцию, которая будет применена к элементам массива
my_rotate = np.verctorize(rotate)
в rotate описываешь логику преобразования элемента
после чего делаешь my_rotate(np_2dimension_array)

В общем это примерная идея, смотри сам в этом направлении. Может какие-то более эффективные подходы могут быть. Но это должно работать быстро, быстрее всех других решений.

Правда при условии, что у тебя двумерный массив, если у тебя np.array всегда длины ровно 100, это не проблема. Иначе сложнее, но скорее всего и для этих ситуацию решения есть. Может другие аноны подскажут.
Аноним 01/04/21 Чтв 14:56:58 1983217281
>>1983195
Да, действительно. Что-то мозги заспагеттировались.
Через asyncio даже медленнее получается.
Аноним 01/04/21 Чтв 15:17:02 1983231282
>>1982594
Хуй знает че тут всякие подосы развели. Папки пришел нахуй, всем лежать, всем стоять

ProcessPoolExecutor ёпта
Аноним 01/04/21 Чтв 15:33:31 1983247283
>>1983231
Убеждаюсь в том, что без целевой вышки нельзя допускать до программирования вообще. Максимум простенький фронт делать.

А может быть и можно. Должен же кто-то создавать спрос на 128-ми ядерные процы и 1тб память для запуска простейших задач, которые деды на 386 процах реализовывали.
Аноним 01/04/21 Чтв 15:38:13 1983249284
>>1983247
У нас такое качество вышки что это вообще не показатель, все зависит от мозгов индивида, это не компьютер сайенз в гарварде где дрочат. У нас старый пердежный дед набирает часы и рисует хуету на доске, а сдается все беготней, молитвами, пиздежом и покупкой готовых работ, т.к. делать их тебя не то что не научили, а почикали программу так что забыли даже попытаться научить.
Аноним 01/04/21 Чтв 15:49:04 1983257285
19345011.jpg 117Кб, 792x595
792x595
>>1983247
А ты дохуя программист у нас?
Аноним 01/04/21 Чтв 15:50:03 1983258286
>>1983247
>А может быть и можно. Должен же кто-то создавать спрос на 128-ми ядерные процы и 1тб память для запуска простейших задач, которые деды на 386 процах реализовывали.
Вот ты и выдал свою необразованность, плебей.
Аноним 01/04/21 Чтв 15:56:21 1983259287
>>1983200
Современных адекватных русских материалов очень мало. Культура перевода вымерла. Старые книги были очень хорошими, и авторские русские книги, и качественные переводы. Сейчас почти нет, только когда документация от разработчиков, вроде nginx или postgres.

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

Поэтому лучше на английском.
Аноним 01/04/21 Чтв 15:58:51 1983261288
>>1983257
Определённо. Я не будут тыкать технологию туда, где она не эффективна, не нужна и вообще не работает.

Аноним 01/04/21 Чтв 16:33:32 1983286289
>>1983200
Крепкие оригинально русские книги по айти это вообще редкость, а переводные это неизбежные косяки перевода и лаг по сравнению с оригиналом.
Я вообще хуею с тех, что боятся английской тех. литературы. Это не художественная, где дохуя собственно художественности и всяких изъебов литературных.
Да и какая скорость чтения для учебника, надо вникать и практиковаться, подгугливать и смотреть документацию параллельно.
Аноним 01/04/21 Чтв 16:36:22 1983289290
>>1983286
>>1983259
Спасибо, я просто наивно полагал что наша школа перевода и тут творит чудеса, но видимо нет.
Ну тогда не особо важный, но все равно вопрос - если я все таки захочу бумажный учебник(желательно мягкий), то какой выбрать и можно ли его заказать, не знаю, с амазона, типа он вообще дойдет, кек?
Аноним 01/04/21 Чтв 16:42:53 1983298291
>>1983289
С амазона можно заказывать через форвардера, там будет какая-то пятерка-десятка сверху максимум.
Конкретные тайтлы хз, надо знать твой уровень.
Аноним 01/04/21 Чтв 17:07:53 1983339292
b243447199.png 347Кб, 1069x1160
1069x1160
>>1983198
ага, короче аноны. СУКА 6 часов спустя я просто удалил файл конфигурации, создал текстовый домент, переименовал его в .ini и всё заработало. Винда что-то делала с файлом конфигурации, что он переставал работать
Аноним 01/04/21 Чтв 17:26:39 1983371293
Я наверное какое-то кощунство спрошу, потому что поиск по треду вообще ничего не показал, но стоит ли проплатить какой-нибудь уже скомпилированный курс типа удеми или кодеакадеми. Я не ради какого-то всратого сертификата спрашиваю, а потому что у меня фантазии нет чтобы свои проекты придумывать, а там все включено. Или я не прав и с таким мышлением не преуспею?
Аноним 01/04/21 Чтв 17:39:02 1983391294
>>1983371
мне нравятся курсы, но я бы посоветовал тебе начать с бесплатных (rutracker)
Аноним 01/04/21 Чтв 19:28:42 1983528295
>>1983031
>внутри 100 элементов, всего их в списке порядка 107
>>1982594
>работает очень медленно
Ты точно правильные числа написал?
1000 строк по 200 элементов через слайсы работают за 30 мс.
https://ideone.com/KJCLr8

Я потестил всякое разное - питон говно ебаное и не один из вариантов не догоняет jit-вариант.
Обрати внимание на np_musor - собственный код циклов на питоне настолько медленный, что проще вызвать нагромождение функций из numpy чтобы получить массив (sm) со смещениями и потом через roll и bool-массивы прокрутить массивы. На больших числах всего в 6 раз отстаёт от jit-варианта.

Там двумерный np.array вместо списка - преобразование списка в np.array всё-равно 0 мс требует, а вот jit-вариант просаживается до 9 мс с ним.
Аноним 01/04/21 Чтв 20:08:28 1983566296
>>1983528
>1000 строк по 200 элементов через слайсы работают за 30 мс.
а у него 10 миллионов строк по 100 элементов. Получается несколько минут при такой скорости.
Аноним 01/04/21 Чтв 20:37:18 1983580297
изображение.png 7Кб, 300x173
300x173
>>1983566
А, это он 10^7 107 хотел написать...
Тогда хули он думает, написать программу на си на 20 строк, и передавать в неё массив - или нубму заюзать.
Питон же не для таких задач, очевидно.

Вариант с мусором из нумпи не проходит из-за того что у меня оперативка заканчивается, а так за 4 секунды выполняется самым тупым кодом с нумбой.
Аноним 01/04/21 Чтв 21:09:49 1983617298
>>1983195
>асинхронный кал на х86
ясно
Аноним 01/04/21 Чтв 21:09:59 1983618299
>>1983247
>Убеждаюсь в том, что без целевой вышки нельзя допускать до программирования вообще.
Вышка в лучшем случае дает базу, при помощи которой будет легче учиться дальше. В худшем - ничего. А все потому, что ни один нормальный программист не пойдет преподавать.
>Максимум простенький фронт делать.
Фронт уже давно сложнее бека.
Аноним 01/04/21 Чтв 21:21:01 1983630300
Подскажите плиз.
Первый раз делаю питон проект с базой данных.
веб страничка где ты получаешь инфу из базы и выводишь ее. и кнопка где ты заносишь инфу в базу.
Разве верно получать данные из бд напрямую при каждой загрузке страницы?
Как правильно это сделать?
Аноним 01/04/21 Чтв 21:31:26 1983637301
>>1983630
Ты пидор
Гугли про кеш
Аноним 01/04/21 Чтв 21:33:43 1983638302
>>1983630
если база данных небольшая, то так и надо
Аноним 01/04/21 Чтв 21:40:40 1983642303
Аноним 02/04/21 Птн 00:50:45 1983791304
>>1983630
Не занимайся преждевременной оптимизацией.
Аноним 02/04/21 Птн 06:37:12 1983824305
>>1979591
Хороший совет. Возьму на заметку.
Аноним 02/04/21 Птн 08:59:24 1983841306
IMG202104012023[...].jpg 5807Кб, 3000x4000
3000x4000
IMG202104012023[...].jpg 6173Кб, 3000x4000
3000x4000
Салам двач. Требуется пояснение за потоки и структуру программы.
Для опыта пишу говнопрогу - генератор карты сайта.
В идеале: у главного класса proc_manager было три сына - классы старший page_walker, средний test_url и младший, совсем дурак и кроме писания в файлы нихуя не умеет - file_writer. Каждый реализован отдельным процессом средствами модуля meltipricessing для создания процессов и общения процессов между собой.
В классе page_walker хочу запустить многопоточное чтение очереди Queue, наполняющуюся годными урлками из процесса test_url, чтобы минимизировать ожидание ответа от сервера. Самый простой способ, что нашёл - модуль concurrent.futures и класс ThreadPoolExecutor

Это ситуация в идеале, на данном этапе есть говнокод и я знаю, что это говнокод. По этому говнокод есть вопросы. Фоты прикладываю (извините что фоты, а не скрины, уже убегать надо было).

1. Многопоточная обработка не робит, почему? Что закоментить ThreadPoolExecutor, что self.walk() - разницы никакой. Почему?
2. Сама структура программы, которую я описал в идеале - насколько она приемлема? Так программируют или есть шаблоны проектирования попроще и поудобнее?
3. Есть ли способы огюрганизовать многопоточное чтение из очереди и доступ по урлкам проще, чем описанный?
Буду рад любым советам
Аноним 02/04/21 Птн 10:19:44 1983878307
>>1983841
Код принимаем только на абонентский ящик, не забудь вложить марки для ответа.
Аноним 02/04/21 Птн 10:35:38 1983884308
>>1983841
Да не нахуй... 1 апреля же прошло уже
Аноним 02/04/21 Птн 11:10:16 1983918309
>>1983289
Почему тебе нужен именно мягкий учебник? поясни.
Аноним 02/04/21 Птн 11:12:28 1983920310
>>1983918
Носит в сумке наверное.
Аноним 02/04/21 Птн 12:28:21 1983946311
>>1983918
Чтобы было легко и не жалко его насиловать же.
Я просто вчера часов 8 учил стартовый синтаксис по юдасити, мне как преподу не нравится их структура, да простые, но когда говорят о дата-структурах лучше бы мне сначала озвучили их всех, а потом толкали про каждый телегу, в итоге я вчера остановился на сетах, которые судя по юдасити как бы нахуй не нужны, ну т.е. объяснить их преимущества и особенности перед листом они как бы не могут, потому что он идет 3м в списке, и кажется после листов и туплов просто ненужной хуйней. Я понимаю что скорее всего сет будет наиболее часто встречаться далее, приходится читать извне, и книга позволяющая быстро освежить знания без гугла мне была бы в помощь.
Аноним 02/04/21 Птн 15:04:49 1984034312
Можно ли открыть в канвасе изображение и сделать из него например трапецию? Хочу сделать изображение гранью вращающегося куба. И не пойму как это можно сделать.
Аноним 02/04/21 Птн 15:56:09 1984055313
Посмотрел сейчас фильм Житие Брайана по Монти Пайтон. Почему в честь него назвали ваш язык? Он такой же смешной и абсурдный?
Аноним 02/04/21 Птн 16:13:46 1984061314
>2020
>Опять пишешь свой реквестс потому что попенсорс ебаны уже лет пять теряют формдату и куки на редиректах
Аноним 02/04/21 Птн 16:42:24 1984081315
>>1984055
Это легенда прикрытия.
Аноним 02/04/21 Птн 16:45:34 1984082316
>>1983946
>в итоге я вчера остановился на сетах, которые судя по юдасити как бы нахуй не нужны, ну т.е. объяснить их преимущества и особенности перед листом они как бы не могут, потому что он идет 3м в списке, и кажется после листов и туплов просто ненужной хуйней.
Это потому что ты пока не мыслишь категориями "сложность вычислений", "производительность" и т.п.
Поиск по сетам работает быстро, по спискам медленно. Вот это главное.

Ну и иногда плюшки вроде возможности удобного объединения, вычисления разности и т.п., но это реже на практике встречается.
Аноним 02/04/21 Птн 17:42:33 1984121317
>>1984082
Я пока пытаюсь с этим очень ограниченным набором знаний придумать себе промежуточную задачу, которая меня удовлетворит. Я придумал, но для нее нужны роллы процентов, случайные значения, я пока до этого не дошел, но уверен что это все есть в любом языке.
В сетах я уже использовал юнионы и сделал задачку про ашотов на рынке, которая выдает ответы в духе - какой фрукт не продают оба ашота, какой фрукт продают оба. По идее сейчас с дикшинари я смогу забить и цены и их придуманные локации, чтобы сделать поисковик самых дешевых помидоров на рынке ближе всего к тебе.
Сорян за нуботу, я тут 90% треда даже не понимаю, только вот начал и мне пока все нравится.
Аноним 02/04/21 Птн 18:27:28 1984147318
image.png 144Кб, 300x195
300x195
Аноним 02/04/21 Птн 19:01:54 1984174319
изображение.png 67Кб, 2139x1014
2139x1014
На что заменить конструкцию return "Vector(" + str(t) + ")" ? Она не проходит тесты. А без кавычек ответ и вовсе нельзя прочитать.
Аноним 02/04/21 Птн 19:36:13 1984196320
>>1984174
На return Vector(t) по идее
Аноним 02/04/21 Птн 19:38:56 1984199321
>>1984196
Тогда вылезает нечитабельная залупа <__main__.Vector object at 0x7f1b11a7c048>
Аноним 02/04/21 Птн 19:41:21 1984202322
>>1984174
Какие "тесты"?

п.с. ты анус ставишь что массивы a и b точно будут одной длины?
Аноним 02/04/21 Птн 19:59:00 1984216323
>>1984199
Добавь туда два метода __str__ и __repr__:
def __str__(self):
return f"vec [{', '.join(str(x) for x in self.x)}]"
__repr__=__str__


Аноним 02/04/21 Птн 20:01:10 1984219324
>>1984199
__repr__ реализуй, а не вот эту хуйню со строками возвращай

__str__ будет __repr__ использовать, так что его вполне хватит
Аноним 02/04/21 Птн 21:06:41 1984286325
>>1983946
С перечислением структур данных есть проблема - их слишком много (даже в стандартной библиотеке). Частота их использования падает экспоненциально при удалении от str/list, а если говорить про те, которые используются 90% времени - то ты их уже изучил.

set, кстати, используется достаточно редко. Свойство отсутствия повторений в set не такое сильное, как кажется на первый взгляд, и чаще всего вообще нежелательно, как и отсутствие заданного порядка итерации. А в тех местах, где множества нужны, их зачастую нельзя использовать, потому что set мутабелен и не хешируется, например, {{1}} в питоне написать нельзя. В таких случаях используется frozenset.

Я не знаю, какую книгу тебе посоветовать, но проверь - может документация для тебя будет работать как справочник? Во-первых, есть сайт. Страница, которая тебя интересует, https://docs.python.org/3/library/stdtypes.html, написана фундаментально, в ней все имеет смысл, но может быть трудно выловить суть. Во-вторых, функция help выводит справку на объект: help(list), help(dict.items), help('foobar') и т. д.
Аноним 02/04/21 Птн 21:17:30 1984295326
>>1984286
>А в тех местах, где множества нужны, их зачастую нельзя использовать, потому что set мутабелен и не хешируется, например, {{1}} в питоне написать нельзя. В таких случаях используется frozenset.
Очевидные множественные проверки на наличие элемента без set ты никак не сделаешь
мимо делал лочки
Аноним 02/04/21 Птн 21:23:15 1984303327
>>1984174
>return "Vector(" + str(t) + ")"
Предыдущие ответы все правильные, просто добавлю, что такой return вернет строку, а не объект класса Vector. То, что тебе "вылезает", когда ты работаешь со своим классом, определяется в этом же классе методами repr или str - выше это уже написали. "Вылезти" всегда может только строка. Даже если кажется, что "вылазит" не строка, этап превращения в строку происходит всегда.

Кракозябра "Vector object at 0x7f1b11a7c048" - это работа той реализации метода repr, которая досталась тебе от класса object - (неявного) предка всех классов, которые ты определяешь.
Аноним 02/04/21 Птн 21:54:57 1984327328
Screenshot from[...].png 5Кб, 261x123
261x123
>>1984295
Для рутинных проверок это, конечно, лучший вариант. Определенные ситуации требуют frozenset, но говорить "зачастую нужно" было ошибкой.
Аноним 02/04/21 Птн 21:59:52 1984335329
>>1984303
Я уже немного бьюсь головой об стол. От кракозябры я избавился своим способом, но вот сверить длину и нормально выбросить исключение не выходит. Это уже на завтра.
Аноним 02/04/21 Птн 22:15:47 1984365330
Смотрите, у меня есть приложение, которое в просто потребляет 80мб, если загрузить, например 200к объектов, то в памяти должно быть минимум по одному сложному объекту + корутина + еще что-то, но я разделил прибавившуюся память на кол-во объектов и получил что на 1 объект требуется 6-9 байт, я может чего-то не понимаю, но разве на 1 переменную минимум 64 бита не выделяется в системе? А тут еще питон и более сложные объекты, почему так мало памяти потребляется?(объекты в программе по сути словари с переменными и парой методов, переменных штук 10 и у каждого объекта почти все разные(разные строки, разные числа))
Аноним 02/04/21 Птн 22:18:26 1984368331
>>1984055
Монти Пайтон это не только фильм про Брайна, у них было целое шоу на телевидении и еще несколько фильмов.
Аноним 02/04/21 Птн 22:24:45 1984374332
image.png 290Кб, 384x737
384x737
чё учить после того как я выусл всё это????
Аноним 02/04/21 Птн 22:26:21 1984377333
>>1984365
>но я разделил прибавившуюся память
Где память смотрел? Всё там верно прибавляется.
Аноним 02/04/21 Птн 22:30:36 1984384334
>>1984365
Списки (и вероятно словари и прочие коллекции) не создаются с нулевой длинной - они создаются с такой длиной, которая статистически минимизирует необходимость перевыделения памяти под коллекцию. При необходимости расширить коллекцию она увеличивается в два раза - это хорошая (лучшая?) стратегия по минимизации количества перевыделений памяти.

ОС, в свою очередь, тоже может зарезервировать больше памяти для процесса, чем тот просит - по схожим причинам.

Скорее всего, при загрузке новых объектов, для них уже было выделено место.
Аноним 02/04/21 Птн 22:31:39 1984385335
Аноним 02/04/21 Птн 22:45:20 1984399336
Аноним 02/04/21 Птн 22:47:06 1984400337
>>1984384
Но вопрос остается, если есть объект в котором хранится 10 полей, например, строк, которые иммутабельны, это разве не значит что на объект минимум 30 байт понадобится? А то я может чего не понимаю важного
Аноним 02/04/21 Птн 23:01:53 1984416338
>>1984400
Смотри функцию sys.getsizeof()
она тебе показывает, сколько объект занимает.
При этом надо учитывать, что есть у тебя список, например, то это будет размер самого списка и указателей на объекты, а без размеров объектов.

То есть условно список из 1000 объектов это 8кб + память на объекты, это на уровне ещё 30 кб минимум.
Аноним 02/04/21 Птн 23:03:10 1984418339
>>1984385
А после задач чё учить?
Аноним 02/04/21 Птн 23:06:46 1984423340
>>1984365
Скорее всего у тебя некорректные замеры.

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

Короче тут много нюансов.
Аноним 02/04/21 Птн 23:07:27 1984424341
Screenshot 1.png 17Кб, 522x182
522x182
Screenshot 2.png 24Кб, 530x249
530x249
Screenshot 3.png 27Кб, 526x241
526x241
>>1984400
Конечно, память понадобится, но если ты видишь, что процесс забрал себе меньше памяти, чем ожидалось - значит, у процесса заранее была свободная неиспользуемая память. Все-таки, в процессе работает интерпретатор, который наверняка не хочет на каждое новое поле в конструкторе просить у ОС память. Это не вопрос конкретно к питону, это вопрос ко всему стеку.

Ты можешь узнать размеры объектов при помощи модуля sys, но это тоже непросто.
Аноним 02/04/21 Птн 23:12:41 1984433342
>>1984418
Задачи - решать, а не учить. Что касается языка, то ты уже все выучил, применяй знания теперь. Решил, чем хочешь заниматься, или не получается?
Аноним 02/04/21 Птн 23:18:50 1984441343
Есть один скрипт, который последовательно делает всякое. Я хочу чтоб он весь работал как функция. То есть я буду вводить значения исходных данных, а мне выдастся результат. При этом я не хочу весь скрипт переписывать в виде функции def xxx(a,b):.... Я думал это решается тем что я сделаю исходный скрипт модулем, но оказалось, что при импортировании скрипт исполняется. Естественно это невозможно без исходных данных.
Так вот есть вариант не переписывать скрипт как функцию, но чтоб в него передавать иходные данные и он с ними исполнялся? Надеюсь понятно описал.
Прост скрипт длинный и у меня теряется форматирование при простом копировании строчек. Да и вообще лень под def всё загонять.
Аноним 02/04/21 Птн 23:21:11 1984442344
>>1984424
Комментарий к тому, что на скринах, другой анон
На первых двух память расходуется в классе, а не в экземплярах (инстансах) класса
Чтобы узнать размер класса, надо сделать
sys.getsizeof(C), но это очень большая величина будет, потому как там очень много системных переменных на каждый класс.

На третьем скрине память расходуется в словаре d, а не в экземпляре класса. В экземпляре хранится только ссылка на словарь.

Тут очень много тонкостей, конечно, надо помнить, что все объекты в питоне хранятся как ссылки, поэтому узнать реально занимаемый объём довольно сложно.
Аноним 02/04/21 Птн 23:23:16 1984444345
>>1984441
Нет, не понятно ты написал. Оформляй всё как функцию, единственно грамотный вариант.

Все нормальные редакторы умеют сдвигать. Используюй vim или vscode, там это не так сложно сделать.

Аноним 02/04/21 Птн 23:30:55 1984448346
>>1984444
> Нет, не понятно ты написал.
Приведу пример. В исходном скрипте №1 есть
Date_range = pd.date_range(start=start_date, end=end_date, freq='D')
Date_range.to_csv(f'{name}.csv')
Я из скрипта №2 задаю start_date=1/1/2020, end_date=1/1/2021, name=test
И у меня появится test.csv с датами. Естественно там намного больше операций, но смысл такой.

jupyter notebook у меня некоторые отступы при копировании съедает, поэтому муторно.
Аноним 02/04/21 Птн 23:35:19 1984450347
>>1984433
Не получается( Есть какой ни-будь совет по поводу этого?
Аноним 02/04/21 Птн 23:35:31 1984451348
>>1984374
Метапрограммирование
Многопоточность
Асинхронность
ORM и асинхронные операции с БД
Серверы и бэкенд разработка
Аноним 02/04/21 Птн 23:37:17 1984452349
>>1984451
Что считаешь самым интересным из перечисленного, и почему?
Аноним 02/04/21 Птн 23:41:22 1984456350
>>1984451
И ещё где лучше всего брать задачки?
я знаю сайт:
https://www.codewars.com
На этом мои полномочия всё.

Кстати, ООП это хуйня или не хуйня всё таки? По тому, что я прочитал, напрашивается вывод - всё полезно в меру
Аноним 03/04/21 Суб 00:03:01 1984468351
>>1984452
Самое интересное для меня - многопоточность и асинхронность. Прикладных задач такого рода на питоне относительно мало. Самое востребованное - бекенд.

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

Порешай алгоритмические задачки (codewars, hackerrank, leetcode), поанализируй данные (kaggle), сделай рогалик в терминале, чтобы генерировать коридоры и ходить по ним, напиши простой сайт на чем-нибудь маленьком (flask?) по гайду, напиши чат или посканируй порты в локальной сети, попарси сайт.

Лично я делал алгоритмические задачи и писал рогалик (получилось, кстати, ужасно). Потом сайт.

ООП нужно. Не прям нужно-нужно, но видеть его ты будешь постоянно.
Аноним 03/04/21 Суб 00:14:25 1984480352
>>1984468
Бля чел спасибо большое
Аноним 03/04/21 Суб 00:59:04 1984509353
Если нужно прописать для класса статический метод, нужно обязательно декорировать его как "@staticmethod"? Или эта фича просто для читаемости? Работает же, вроде, и без декоратора.
Аноним 03/04/21 Суб 01:03:15 1984512354
>>1984509
А, разобрался - это чтобы можно было его из инстансов вызывать.
Аноним 03/04/21 Суб 01:05:51 1984515355
>>1984374
Здесь совсем база. Смотри на всякие генераторы, итераторы, контексты, классы, замыкания и т.п.

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

Вот делай.
Аноним 03/04/21 Суб 01:23:40 1984525356
>>1984515
Кстати, если хочется в игры pygame полная хуйня, так поиграться, или там реально можно что нибудь человеческое сдлеать?

я какое то время совсем чуть чуть в юнити погружался и в c# знаю примерно столько же сколько в питоне
Аноним 03/04/21 Суб 03:26:19 1984557357
Чет не могу придумать как из нескольких датафреймов или списков вытаскивать отсутствующие в целевом фрейме/списке даты и добавлять их по по порядку.
Чтоб понятней было вот пример https://pastebin.com/upNwa5US
beard 03/04/21 Суб 06:55:59 1984572358
шаблон.png 2348Кб, 1280x720
1280x720
Вкатывальщики на месте?
Никто не хочет вместе повкатываться?
У меня начальный уровень, знаю синтексис-хуё-мое, пытаюсь вьехать в ооп.

Если кто хочет присоединиться оставяйте телегу.
Аноним 03/04/21 Суб 09:25:51 1984592359
Как заобщать два процесса между собой с максимальной скоростью по типу FIFO? Обычные файлы оказываются быстрее средств модуля multiprocessing
Аноним 03/04/21 Суб 09:37:34 1984595360
>>1984572
А ты няшный?
Че делать будем?
Аноним 03/04/21 Суб 09:42:26 1984596361
>>1984595
Обсуждать что не понятно. Решать задачки, а потом смотреть кто лучше решил.
Аноним 03/04/21 Суб 09:44:28 1984597362
>>1984596
Так я тоже самое могу и на дваче сделать, а посмотреть кто лучше решил в лучших решениях на том же кодварсе или чекио
Аноним 03/04/21 Суб 10:09:03 1984604363
>>1984597
Ну значит это не для вас молодой человек написано.
Мне кажется кооперация, это именно что позволило человеку слезть с пальмы. На приведенные аргументы ,я отвечу аналогией:
Есть допустим сессионная игра, где можно играть либо со случайными людьми, либо взять уже знакомого напарника и осуществлять поиск игры уже с ним, в обоих случаях ты играешь в команде, но даже напарник будет играть чуть хуже чем случайные тимейты, эффективность игры с напарником будет выше. Тим - команда, плей - играть, группа всегда действует эффективней одиночек. Можно сказать что главное различие в степени отвлечённости.
Аноним 03/04/21 Суб 10:21:42 1984609364
>>1984604
То есть ты хочешь кооперироваться с таким же ебаклаком как ты и потом будете сравнивать ваши писаки с лучшими решениями, а если че потом бежать на двач и спрашивать че не так, все правильно понял?

Аноним 03/04/21 Суб 10:32:41 1984615365
изображение.png 121Кб, 233x300
233x300
>>1984609
Правильное решение, не то что записано в лучших, а то что помогло разобраться.
Аноним 03/04/21 Суб 10:53:32 1984623366
>>1984604
БИТАРДИЯ ДЛЯ ВКАТЫВАЛЬЩИКОВ 2.0
Аноним 03/04/21 Суб 12:40:44 1984672367
>>1984448
Скрипт№2:
def hack_this_shit(start_date, end_date, name):
with open('script1.py') as script1:
exec(script1.read())

if __name__ == '__main__':
hack_this_shit(дата1, дата2, имя_файла)

В скрипте№1 придется убрать объявления переменных, которые собираешься передавать ну и имена должны совпадать: start_date, end_date, name

Но вообще правильно тебе сказали переписать как обычную функцию твой код в скрипт№1
beard 03/04/21 Суб 13:13:06 1984691368
Есть допустим класс Zalupa, в нем расписаны свойства объекта. Но для операций создаётся новый класс Action в котором методы будут воздействовать на Zlupa. Зачем разносить объект и действия в разные классы? Не проще ли создать один класс, в нём определить обьект и действия над ним?

Что-то вроде:


class Zalupa(object):

def __init__(self, name=None, length =None,length =None):
self.name = name
self.length = address
self.length = phone


class Action(object):
...
...
def Obrezanie():
del zalupa[name]


Аноним 03/04/21 Суб 14:44:12 1984757369
>>1984691
Как раз занимаюсь сейчас тем, что хочу разбить класс-монолит на несколько. Не на питоне правда.

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

Так удобнее поддерживать, структура данных постоянна, надо задокументировать и хранить в отдельном модуле. Обработчики данных активно меняются и перепиливаются, их может несколько версий разных быть, можно наследовать от класса с данными и мешать друг другу не будут.
Аноним 03/04/21 Суб 14:48:29 1984760370
>>1984604
Идея красивая, не новая, но сложно реализуемая. Особенно когда удалённо всё общение, да ещё через месседжеры.

Надо чтобы больше живого общения было.

Этим кстати универы как раз очень хороши. Там все одного возраста, статуса, вместе осваивают что-то, общаются на эти темы и тем самым быстро растут в уровне, даже если в программе про айти мало.
Аноним 03/04/21 Суб 15:03:36 1984778371
1112223333.jpg 188Кб, 1608x867
1608x867
Помогите начинающему, я сделал так, потому что логично использовать рейндж(ну в моей голове логично), по идее я этого еще не должен уметь и он выдает такое говно, при этом для любых чисел работает все. Что ему не нравится?
Аноним 03/04/21 Суб 15:11:27 1984788372
>>1984778
Проверяй что вводят, мож там строки хяучат.
Аноним 03/04/21 Суб 15:21:46 1984804373
>>1984691
Если классы небольшие то канешн разносить не надо. Если они крупные то создавать один God-class херовая затея
Был на проекте где было 2 таких крупных класса с ебалионом методов в каждом (штук 40 наверно), через какое-то время была абсолютно нихера не ясно что куда идет
Аноним 03/04/21 Суб 15:24:26 1984807374
1222222.jpg 39Кб, 555x595
555x595
1403269460eoom3[...].jpg 51Кб, 650x375
650x375
>>1984788
Я ебал в рот, они хотели этого
Аноним 03/04/21 Суб 15:28:35 1984811375
>>1984691
>Не проще ли создать один класс
Проще, и чаще всего именно так и нужно поступать. Идея класса как раз и заключается в том, чтобы определить и тип данных, и операции над ними.

Какие могут быть поводы разделить операции и данные? Например, снижение связанности компонентов в событийной архитектуре. Вместо того, чтобы иметь прямой доступ к мутации состояния, компоненты получают возможность отправлять события (действия) в абстрактное "наверх". Как сказано в >>1984757, это дает дополнительную свободу при внесении изменений.

Стоит заметить, что изначальная предпосылка "класс - это данные и операции" здесь не нарушается. Меняется понятие данных - вызовы методов превращаются в объекты - и над ними тоже можно определять операции. Например, какой-нибудь класс ColorChangeAction может иметь метод convert to style change action или clone. Или, может даже apply change, который примет объект состояния и что-нибудь с ним сделает. В redux, например, это не так, и функция типа apply change определяется один раз рядом с хранилищем состояния. Но где-нибудь это может сделано и так.

Иногда сам тип данных не располагает к добавлению методов. Например, класс Point2D скорее всего не должен иметь метод "set to current active element", потому что методы такого рода привязывают класс ко всему подряд в приложении и постепенно превращают простейший контейнер для двух чисел в god object.

В этом случае, кстати, вполне можно говорить об объекте действия "set to current active element" с методом applychange(self, point2d). Или же просто о каком-то контроллере с методом "set to current...". В общем, твоя конкретная ситуация - это главная подсказка, как поступать.
Аноним 03/04/21 Суб 15:31:20 1984813376
>>1984807
if x in range(a, b) работает только если x - число типа int. В общем случае ты пишешь либо как на скриншоте, либо if a <= x < b.
Аноним 03/04/21 Суб 15:33:34 1984817377
>>1984813
Там в задании четко указано что число чисто int от 1 до 200.
Я видимо просрал понимание инклюзивности/эксклюзивности операторов сравнения, поэтому в башку автоматом пришла идея нагуглить есть ли range как явление и применить его.
Аноним 03/04/21 Суб 15:36:21 1984819378
>>1984817
Ты же понимаешь что итератор in range должен целиком поштучно пройтись по каждому значению в нем пока не найдет совпадение? Насколько это хуевее простого знака сравнения догадываешься?
Аноним 03/04/21 Суб 15:37:34 1984820379
>>1984819
Догадываюсь, вот и печет, благо там дальше задания внезапно проясняющие это
Аноним 03/04/21 Суб 15:40:14 1984823380
>>1984817
>понимание инклюзивности/эксклюзивности операторов сравнения
Вероятно. В коде с range нет обработки отрезка [50; 150], а также числа 180.

a in range(a, b) == True
b in range(a, b) == False

>>1984819
>итератор in range должен целиком поштучно пройтись
Не должен, в range эта операция переопределена и оптимизирована до нескольких простых сравнений.
Аноним 03/04/21 Суб 15:41:12 1984826381
>>1984778
У тебя пропущен диапазон от 50 до 150
range (1, 50) работает в диапазоне от 1 до 49,
то есть если у тебя
range(1, 50), range(51, 100) то число 50 не обработается

Исключение из-за того, что ты некорректно строки сшиваешь.
Использую "txt {} txt".format(num)
Вариант использовать f-string или старые %d
Как ты делаешь работает в JS, в питоне нужно явное преобразование к строке
Аноним 03/04/21 Суб 15:41:15 1984827382
>>1984823
И 200 тоже не дает пингвина.
Аноним 03/04/21 Суб 15:43:59 1984830383
>>1984826
>>1984823
Спасибо, я уже покурить сходил и дошло до меня в чем был косяк с рейнджами, прочитал про операторы снова.
Аноним 03/04/21 Суб 15:55:44 1984848384
>>1984778
3 урока спустя они просят написать меня то что я написал сразу, кек
Аноним 03/04/21 Суб 16:04:20 1984856385
Кто-то сверху написал что Универы хорошо тем, что освавиваете программирование вместе с другими людьми.

У меня в группе из 23 человек программирует только 3-4 человека, на втором потоке так-же, остальные всегда пишут в личку типо
1 - А почему a = 2 + 2 всегда 4, после такого и жопа сгореть может ( Ему надо было суммировать все это )

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

За пол семестра первого курса я уже приступил к освоению фреймворка(Django), но до этого немного в bs4 и requests покапался, а они до сих пор не знают как работает цикл, стыд.

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

Аноним 03/04/21 Суб 16:25:18 1984872386
>>1984856
Ну представь, ты хочешь выучить английский язык, тебе говорят что с мотивацией у тебя этой займет от полугода(в среде) до 2х лет очень ленивого учения если ты еще и тупой. В школе+универе ты учил английский лет 8 или около, по 2-3 часа в неделю. Если бы у тебя была мотивация, ты бы успел выучить за ~1200 часов 3 иностранных языка до флюент разговора, но ты прекрасно видел как твои одногруппники сдавали инглишь на 4-5, зная только матершину и мемасики.
Тут так же, мотивация и желание изучать что-то дает миллионный пинок под жопу любому окружению, инструментам(образовательная программа, группы, контроль успеваемости, конспектирование) если человеку не надо.
Аноним 03/04/21 Суб 16:26:14 1984873387
>>1984856
>У меня в группе программирует 3-4 человека
Вот у тебя в группе программирует 3-4 человека, у вас есть общие интересы, обмен знаниями, взаимная поддержка, конкуренция и мотивация. Вы постоянно друг у друга на виду.

А анон пытается хоть одного найти, чтобы как-то через чат общаться.

Огромная разница. Вот представь, что в твоём окружении нет ни одного, кто бы понимал хоть немного в технологиях и кому это было бы интересно. Ты бы свихнулся и не смог развиваться.
Аноним 03/04/21 Суб 16:40:25 1984882388
ЫЫЫ.jpg 54Кб, 786x329
786x329
ЫЫЫ2.jpg 59Кб, 786x546
786x546
Последний вопрос, анончики.
Я не понимаю почему это вообще работает. Типа питон понимает плурал форм в английском или я загоняюсь, типа до этого одиночная форма city или dildo не всплывала нигде, вместо воплей ЗАДЕФАЙНЬ city он спокойно делает свое дело. Я не понимаю почему
Аноним 03/04/21 Суб 16:42:44 1984889389
68843409019640.jpg 19Кб, 480x432
480x432
>>1984691
A пocле зaдaч чё учить?
Аноним 03/04/21 Суб 16:47:53 1984895390
>>1984882
Снова ты? Это конструкция языка, которую он понимает, причем тут задефайнь?
Аноним 03/04/21 Суб 16:49:47 1984898391
>>1984895
Ну т.е. мне хотелось убедится, что он просто понимает единственное и множественное число английского, если я неправильно назову единственное или множественное число, то выдает ошибку что name is not defined. Мне это показалось странным
Аноним 03/04/21 Суб 17:13:59 1984920392
>>1984672
Я уже переписал в функцию. Но спасибо за идею. В будущем пригодится.
Аноним 03/04/21 Суб 17:29:52 1984929393
>>1984898
Какие числа?
for hui in iterable
На месте hui может быть что угодно, оно присваивается в этой конструкции.
Аноним 03/04/21 Суб 17:32:44 1984931394
1.png 8Кб, 205x162
205x162
>>1984882
Конструкция "for x in y" неявно определяет новую переменную x вне зависимости от того, как конкретно она называется. Вот, например, обход списка в цикле while с явным определением переменной x - конструкция for x in y гораздо чище.
Аноним 03/04/21 Суб 18:52:08 1984972395
Аноним 03/04/21 Суб 19:07:19 1984975396
>>1977853 (OP)
В каком формате держать мини-кеш при использовании скрипта?

Условно, у меня луп, где каждые 10 секунд совершается запрос и прилетает id и еще некоторая инфа. Я хочу сохранить id и пару других полей в кеш, и, если при следующем запросе, мне пришли опять те же данные, не делать последующие действия.

На ум сейчас просто log \ txt \ json файл с перезаписыванием приходит. Есть что то другое, или жсона будет достаточно ?

Не работа, свой скрипт.
Аноним 03/04/21 Суб 19:15:53 1984982397
>>1984975
В принципе для этого уже есть готовые решения в стардартной библиотеке, смотри, например, на lru_cache в модуле functools
https://docs.python.org/3/library/functools.html#functools.lru_cache

Естественно ты можешь сделать аналог, возможно более функциональный. Или использовать какое-нибудь внешний сервис для этого memcached/redis, если тебе надо долго хранить, вне приложения.
Аноним 03/04/21 Суб 19:19:56 1984986398
>>1984975
А если ты не хочешь поднимать redis, то может стоит глянуть в сторону sqlite, но это зависит от того, какие данные у тебя как ключ используются, какие тебе надо хранить.

Общий паттерн в этом случае такой, что ты по ключевым данным гененируешь хеш, например sha-hash от сортированного json, и хранишь в базе или файлах данные для этого хеша.

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

Так можно хранить очень большие данные, создавать каталоги с именем-хешем, большие файлы и др.
Аноним 03/04/21 Суб 19:40:01 1984993399
Как по-православному хранить регексы, если в коде их много и на них плотно завязан функционал? Выносить в отдельный модуль как строки и потом вставлять эти строки в re.re_method? Какой-нибудь класс с регексами создавать? Алсо, стоит ли их отдельно компилировать на последних версиях пайтона?
Аноним 03/04/21 Суб 20:12:51 1985004400
изображение.png 4Кб, 623x67
623x67
Вывести на печать полученные числа с контрольными знаками, а также модуль и весовые коэффициенты.

скину пятихатку кто сделает
tg - @katarsssis

Аноним 03/04/21 Суб 22:59:02 1985144401
Аноним 04/04/21 Вск 02:51:24 1985319402
image.png 41Кб, 1345x477
1345x477
схуяли макс арг пустой сиквенс блять? чё это значит вообще
Аноним 04/04/21 Вск 05:03:30 1985352403
>>1985319
Если словарь пустой он по массиву и не идет.
Аноним 04/04/21 Вск 07:23:08 1985361404
>>1984873
Социоблядики пытаются в прогерство, ещё небось друг другу в инсте лайкаете фото кода.
beard 04/04/21 Вск 08:03:20 1985368405
У меня встал вопрос.
Вот учу я пит%ух%он, и хочу попробовать какой-нибудь уеб-фреймворк, например Flask. Но я так понимаю я немогу просто написать pip install flask, и сделать збс. К нему же ещё нужно доставлять какой-нибудь апач да?
Аноним 04/04/21 Вск 08:57:49 1985384406
>>1985368
Чаще какой-нибудь nginx и gunicorn
Аноним 04/04/21 Вск 09:04:07 1985388407
>>1985384
Я слышал что некоторые разрабатывают на винде ,а потом переносят в никсы, это что они это все говно себе на ПК корячат?
Аноним 04/04/21 Вск 09:05:39 1985390408
>>1985388
Ты вполне можешь на винду WSL2 и Ubuntu поставить и не париться
Аноним 04/04/21 Вск 09:39:55 1985410409
Поясните для тупых, зачем нужен pickle? Чем его использование отличается от простого складирование в файл?
Аноним 04/04/21 Вск 09:55:04 1985419410
>>1985410
По сети передавать
Аноним 04/04/21 Вск 10:07:05 1985421411
Анон, а подскажи как отправлять смс с компа самым простым способом? Симка и брелок от любого оператора не проблема. Само собой не бесплатно. Главное возможность автоматизировать отправку большого количества разных сообщений разным абонентам
Аноним 04/04/21 Вск 10:11:13 1985422412
>>1983618
В каком месте сложнее? Там весь стек ограничивается одним фреймворком и парой либ
Аноним 04/04/21 Вск 11:10:35 1985449413
Допустим у меня есть класс который должен работать со словарями. Соответственно базовый объект класса словарь. Тогда правильно ли будет наследовать класс от dict и в ините прописать загрузку существующего словаря, либо создание нового если не существует, а потом уже полноценно вызывать методы для объекта?


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

Какой подход верный? Или оба имеют право на существование?
Аноним 04/04/21 Вск 11:14:58 1985450414
Аноним 04/04/21 Вск 11:23:46 1985457415
>>1985449
1й не исключает второго. Если не передаешь ничего в инит, то создавай просто пустой, в чем проблема? Только наследоваться надо не от dict, а от абстрактного класса в зависимости от того, что тебе нужно (mapping или mutable mapping или еще чего) https://docs.python.org/3/library/collections.abc.html#collections-abstract-base-classes
Аноним 04/04/21 Вск 12:08:29 1985495416
>>1985457
Тут вопрос немного в другом. Если допустим создаём класс без наследования, но хотим работать с ним как со словарём.
Аноним 04/04/21 Вск 13:01:16 1985548417
>>1985495

Т.е. можно сделать:

class WizCoin:
def __init__(self, galleons, sickles, knuts):
self.galleons = galleons
self.sickles = sickles
self.knuts = knuts

или же

class WizCoin(dict):
def __init__(self):
galleons={'Krasiqu'}


.
Аноним 04/04/21 Вск 13:35:07 1985597418
>>1985319
То и значит, max() с пустыми последовательностями не работает, max([]) кидает ошибку. По какой-то причине список a у тебя не сформировался, наверно, на вход подали x длинной 1 или вообще пустой, и твой цикл просто не запустился, и список a остался пустым. С этим можно бороться, используя значение по умолчанию, например, max([], default=0) не упадет с ошибкой, а вернет 0, но не всегда возможно найти приемлемое значение по умолчанию, тогда нужно следить, чтобы пустой список в b]max()[/b] просто не попадал, как-то по особому обрабатывать этот случай, ну или ловить и обрабатывать такое исключение
Аноним 04/04/21 Вск 15:35:08 1985709419
поскажите как обработать список подсетей cidr формата типа
8.8.8.8/24
8.8.8.8/16
192.168.1.20/24
192.168.1.20/8
итд

чтобы остались только маски которые вмещают большее количество адресов? (т.е из списка выше оставить /16 и /8)
Аноним 04/04/21 Вск 15:39:05 1985712420
>>1985368
Для разработки хватит и фласка. Веб сервер (упомянутый стек nginx + gunicorn) понадобится для продакшена.
Аноним 04/04/21 Вск 15:39:22 1985713421
Аноним 04/04/21 Вск 15:39:56 1985715422
Аноним 04/04/21 Вск 15:41:01 1985718423
>>1985713
а смысл?
мне надо из файлика убрать дубли, оставив старшие маски.
Аноним 04/04/21 Вск 16:01:05 1985757424
Аноним 04/04/21 Вск 16:10:24 1985778425
>>1985757
Т. е. парсить подсети, адреса использовать как ключи в словаре, в значениях отслеживать текущее самое маленькое число (размер подсети).
Аноним 04/04/21 Вск 16:12:54 1985781426
>>1985778
а как?

если я правильно помню ipaddress.ip_network проверяет на валидность адреса(а они и так 100% валидные) а вот как по маске сортировать я нигде не нашел.
Аноним 04/04/21 Вск 16:38:07 1985813427
Аноним 04/04/21 Вск 17:45:10 1985920428
Аноним 04/04/21 Вск 17:49:57 1985923429
Потсаны, а что означает конструкция arr[1:] в питоне?
Я не питонист, просто книжку по алгоритмам читаю.
Аноним 04/04/21 Вск 18:23:26 1985944430
>>1985923
num py шолле?
arr[:] возвращает arr (alist[:] возвращает копию списка)
Аноним 04/04/21 Вск 18:37:04 1985950431
>>1985923
Это значит, взять все элементы, начиная с первого, не забываем, что индексы у нас начинаются с нуля.
Так, если word = "qwerty", то word[1:] будет "werty"
Аноним 04/04/21 Вск 19:16:35 1985970432
почему этот код не работает?

from itertools import count
list(count(0)) # wait
print('done')
Аноним 04/04/21 Вск 21:25:38 1986066433
>>1985970
count - бесконечный генератор. list бесконечно разворачивает его
Аноним 05/04/21 Пнд 00:50:14 1986236434
>>1985410
Сериализация же. Multiprocessing.Pipe использует pickle для свёртывания данных для передачи.
Аноним 05/04/21 Пнд 01:14:44 1986243435
Работал кто с модулем statsmodels.tsa.vector_ar? Тут https://www.statsmodels.org/dev/vector_ar.html#model-fitting после слов In [15]: results.summary() выводится огромная таблица, но у нее нет никакого индексирования. Сам объект results является <statsmodels.tsa.vector_ar.var_model.VARResultsWrapper at 0x7fb285d67b70>.
Так вот возможно ли как-то обратиться к этому result или result.summary(), чтобы вытягивать и в список или датафрейм?
Вот придумали люди программу,которая считает всё что нужно, но результаты выдает только неиндексируемым текстом или вообще графиками.
Аноним 05/04/21 Пнд 01:43:50 1986255436
>>1986243
А, всё наверное отмена. Покопался в методе summary, нашел пару методов. А потом оказалось, что функция dir(results) дает все методы, которые выводят искомые значения в нормальном формате. Но чую эта библиотека мне еще подкинет сюрпризов.
Аноним 05/04/21 Пнд 12:42:53 1986429437
>>1985709
filtered_nets = []
for net in cidr_list:
____addr, mask = net.split('/')
____if int(mask) < 24:
________filtered_nets.append(net)

При желании можно в одну строчку
[net for net in cidr_list if int (net.split('/')[1]) < 24]
Аноним 05/04/21 Пнд 17:49:48 1986801438
Screenshot 2021[...].png 55Кб, 544x534
544x534
Screenshot 2021[...].png 23Кб, 324x294
324x294
Есть обычный синхронный код (эвентлуп) он шлет всякие запросы по апи на бинанс.
Я хочу написать асинхронную функцию, которая будет говорить мне (писать лог) каждую минуту, сколько я потратил лимита по запросам.

Как я понимаю, это должна быть асинхронная функция, чтобы она не вмешивалась в ход основного кода?

Можно ли запускать одним скриптом синхронный код, и асинхронный? Если нет, то подскажите что можно прочитать и как мне реализовать задуманное.
Аноним 05/04/21 Пнд 18:29:15 1986882439
>>1986801
А тебе данными нужно обмениваться с основным кодом или только в лог писать?
Аноним 05/04/21 Пнд 18:43:01 1986906440
Где питона дрочите? Прошел два курсе на степике, прошел их тренажёр с задачами, дальше чем заниматься? Литкод? Может знаете ещё какие-нибудь бесплатные курсы, но уже не для совсем начинающих питонщиков, можно с упором в одну какую-нибудь тему.
Аноним 05/04/21 Пнд 18:43:09 1986908441
>>1986801
В асинхронном программировании ключевая сущность это "задача", примерно как тред в многопоточном.

async-await и планировщик это механизмы для переключения задач.

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

А вторая задача при каждом запросе запрашивает ресурс у первой, и ей же отправляет статистику использования ресурсов. Взаимодействие, например, через очереди.

>Можно ли запускать одним скриптом синхронный код, и асинхронный?
Синхронный код это такой, который работает от начала и до конца, пока не кончится. Асинхронный такой, в котором предусмотрены механизмы для переключения на другую задачу в определённых await-местах, а в остальном это те же синхронные задачи.

Если тебе надо, чтобы код работал одновременно, то или надо сделать твой синхронный код асинхронным, либо выносить его в отдельный тред и возиться с синхронизацией для обмена информацией с основным потоком. Базовые примитивы asyncio не thread-safe.
Аноним 05/04/21 Пнд 18:43:30 1986910442
>>1986882
Хочу данные в асинхронную функцию передавать, а она будет писать лог каждую минуту.

Можно конечно же это сделать синхронной функцией(не думал как, но полюбому можно), но я хочу именно попрактиковаться в асинхронности.


Аноним 05/04/21 Пнд 19:01:52 1986955443
>>1986910
Данные будут передаваться только при инициализации? Можешь асинхронную функцию в отдельный процесс отправить.
Аноним 05/04/21 Пнд 19:02:14 1986957444
Screenshot 2021[...].png 16Кб, 410x98
410x98
>>1986908
>Если тебе надо, чтобы код работал одновременно, то или надо сделать твой синхронный код асинхронным

Так и подозревал. Почему-то считал что асинхронный код как-бы работает в фоне но потом запустил пикрелейтед и понял что это не так принт не выполнился.




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

Вот смотри мой нынешний код, это бесконечная функция-эвентлуп с вызовом самописных функций, условиями, переключателями, и прочими запросами. Идея в том, чтобы знать сколько я трачу лимита на запросы.
Получается, что я не могу тупо дописать async-await в функцию эвент лупа? Точнее могу, но тогда прийдется писать await в каждой строчке чтобы поймать нужный момент для выхода из функции и передачи управления в функцию счетчик? Ссорян что тебе приходится писать мой бред, у меня проблема с выражением своих мыслей
Аноним 05/04/21 Пнд 19:08:25 1986963445
>>1986955
>Данные будут передаваться только при инициализации?
Это как?

>Можешь асинхронную функцию в отдельный процесс отправить.
И она типо уйдет работать в фон и не будет блокировать основной(синхронный) код?
Аноним 05/04/21 Пнд 19:26:45 1986997446
>>1986957
>Получается что await, это как бы места выхода из функций?
Да, только на await можно прервать исполнение функции. Тут начинаются подводные камни, что на самом деле не на каждом. Но, у тебя 100% гарантия, что без await переключения не будет.

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

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

Аноним 05/04/21 Пнд 19:43:21 1987022447
>>1986963
Я чет перечитал посты и понял, что возможно объебался.
Как я понял, у тебя есть некоторый код, который шлет запросы на апи и есть проверка количества запросов через ту же апишку, которую ты хочешь вынести в одну функцию, причем весь код синхронный?
Может тебе асинхронность не нужна вовсе? Сделал бы функцию в отдельном процессе, которая бы ходила бы с проверкой раз в минуту и выдавала значения в stdout/файл.
Аноним 05/04/21 Пнд 21:06:55 1987165448
Нужно проверить массив строк (в среднем ~1000-1500 по длине) на наличие в ней определённого символа. Что теоретически работало бы быстрее: конвертирование её в сет и проверка через symbol in set или re.findall()?
Аноним 05/04/21 Пнд 21:07:28 1987168449
Аноним 05/04/21 Пнд 21:25:02 1987185450
>>1987165
Второе, при создании сета ты и так проходишься по всему списку
Аноним 05/04/21 Пнд 21:43:13 1987200451
>>1987165
Поясните, разве что-то может быть быстрее, чем пройти по каждому элементу и сравнить? Какие вообще альтернативы могут быть? (для неупорядоченных данных)
Аноним 05/04/21 Пнд 22:32:23 1987273452
>>1987185
> при создании сета ты и так проходишься по всему списку
Так regex'ы же, наверное, тоже, нет? Они же не терминируются после первого матча.
Аноним 05/04/21 Пнд 22:36:03 1987283453
>>1987200
>Поясните, разве что-то может быть быстрее, чем пройти по каждому элементу и сравнить?
В данной задаче как раз тупая проверка именно в массивах строку будет самая быстрая.

Ох бля, это ж Python. Ну х.з. но в любом случае лишняя конверсия скушает время.
Аноним 05/04/21 Пнд 23:37:55 1987387454
>>1986997
Вижу что шаришь. Есть ли смысл делать асинхронность с api запросами (request)?! Скажем их 5 штук, они идут друг за другом. Но некоторые работают медленно и задерживают другие.
Аноним 06/04/21 Втр 01:49:24 1987519455
>>1987165
быстрее всего будет проверка
string = "какая-то строка, возможно длинная"
symbol = "з"
или даже
symbol = "возм"
symbol in string

Это питон, тут для стандартных операций не нужно изобретать велосипеды или прикручивать фреймворки. Всё есть в языке и работает быстро.
Аноним 06/04/21 Втр 02:04:20 1987522456
>>1987387
Смысл есть. Но тебе придётся освоить сетевые функции asyncio, которые довольно сильно отличаются от синхронных. Но это полезно.

asyncio в первую очередь нужен для сетевых задач, в сетях надо смотреть именно сюда. В других случаях может быть разумнее смотреть на многопоточные и многопроцессные подходы.
Аноним 06/04/21 Втр 06:20:02 1987605457
>>1987022
> Как я понял, у тебя есть некоторый код, который шлет запросы на апи и есть проверка количества запросов через ту же апишку
Не. Там у них лимит 1200 веса на запросы. Разные запросы жрут по разному этот вес. Его нельзя превышать, иначе забанят.
И остаток этого веса нужно считать самому, они эту инфу не представляют.

А у меня обычный бесконечный код с разными запросами к апи. И я хочу раз в минуту выводить лог с информацией по потраченного весу. В синхронном варианте это делать как-то по не круто я считаю.
Аноним 06/04/21 Втр 08:42:08 1987623458
15953039445470.jpg 83Кб, 1280x720
1280x720
Подскажите в sqlalchemy какие-то свои приколы с SUM ?

я пытаюсь разобраться в одном опенсорсе, но не понимаю где они налажали.
Тут sum по int из mysql превращается в pandas dtype = object
а если я колонку переделаю на float, то нормально.
Пытаюсь зайти с другой стороны - от возможных типовых ошибок в sqlalchemy.
Исходник для меня сложненький (

У них такие же приколы и postgres.
Аноним 06/04/21 Втр 08:55:19 1987631459
>>1987623
>Тут sum по int из mysql превращается в pandas
>dtype = object
>а если я колонку переделаю на float, то нормально.
Прочитай это предложение и попробуй его понять. Что ты написал? Что нормально? Что ненормально?
Аноним 06/04/21 Втр 08:58:51 1987633460
>>1987623
ну если ты не знаешь pandas и sqlalchemy, то тебе и будет непонятно.

Короче, есть попроще формулировка:


как sqlalchemy имитировать
select sum(field) ?
Мне не нужно чистый sql, с ним все работает.
Мне нужно это уебищный orm-синтаксис заюзать чтобы понять какой из опенсорсов налажал
Аноним 06/04/21 Втр 09:06:21 1987636461
>>1987631
Да, действительно ужасно сформулировал.

sum по полю int должен быть, очевидно, числовым типом где бы он ни был представлен. Хоть в pandas, хоть промежуточных местах в sqlalchemy. И это я называю нормальным.

Я пытаюсь накопать в каком месте в процессе трансформации из sql в pandas dataframe эта колонка превращается в object - и это ненормально.

В качестве этапа этого расследования мне нужно понять как обычно работают в sqlalchemy с sum, но при этом не создавать полноценные маппинги объектов. В этом проекте нет ORM в в виде объектов. Только запросы и базы данных все абстракционированы через sqlalchemy
Аноним 06/04/21 Втр 10:36:30 1987673462
Аноны, ай нид хэлп. Суть такова, есть фукнция:
def coldhot(user_number):
if user_number == hidden_number:
return 0
elif user_number > hidden_number in range(1,10) or user_number < hidden_number in range(1,10):
return 1
elif user_number > hidden_number in range(10, 20) or user_number < hidden_number in range(20):
return 2
elif user_number > hidden_number in range(50) or user_number < hidden_number in range(50):
return 3
else:
return 4

И она не работает правильно. Мне нужно чтобы чтобы она возвращала результат если одно число больше другого в указанном диапазоне. Вот именно с этим диапазоном и затык. Я нуб, если чо. Учу язык ровно неделю.
Аноним 06/04/21 Втр 10:53:51 1987684463
>>1987673
Сам спросил, сам отвечаю:
def coldhot(user_number):
test_number = user_number - hidden_number
if user_number == hidden_number:
return 0
elif test_number <= 10 and test_number >= -10:
return 1
elif test_number <= 20 and test_number >= -20:
return 2
elif test_number <= 50 and test_number >= -50:
return 3
else:
return 4
Аноним 06/04/21 Втр 11:10:32 1987690464
>>1986801
Тебе просто надо добавить логгер в loop с помощью .create_task, без await, тупо по системе fire and forget. https://pastebin.com/MVeypk70
Аноним 06/04/21 Втр 13:32:59 1987791465
>>1979040
Стандартный алгоритм сортировки в Питоне стабилен. Поэтому можно сделать два последовательных прохода с разными ключами (secondary key идёт первым, primary key - вторым).

mylist.sort(key = lambda x: x[1], reverse = True)
mylist.sort(key = lambda x: x[0], reverse = True)
Аноним 06/04/21 Втр 14:06:49 1987836466
Python + SQL - зачем учат в такой связке?
Аноним 06/04/21 Втр 14:12:38 1987854467
>>1987836
Для дата инженерии, наверно.
Аноним 06/04/21 Втр 14:14:27 1987857468
>>1987836
sql учат ко всему, это базовый скилл. И такой хуйни куча, даже если она не оговаривается. Не получится выучить пару конкретных кейвордов и на что-то претендовать.
Аноним 06/04/21 Втр 18:43:48 1988227469
x = re.sub(r"(?<=\w)[A-Z]", w1, x)
Можно ли задать первому паттерну такое условие, чтобы учитывалось исключительно i-тое вхождение?
Аноним 06/04/21 Втр 19:28:44 1988302470
11.png 50Кб, 620x480
620x480
22.png 107Кб, 1186x790
1186x790
33.png 49Кб, 472x418
472x418
>>1987690
Спасибо что ответил. Сейчас прочту и попробую понять что там у тебя, и как это к себе применить.

Пока только до такой схемы додумался пикрелейтед.
По сути функция my() должна ебашить без остановки, но эвентлуп ее тормозит. Пришлось в синхронный код добавить async-await
Аноним 06/04/21 Втр 19:52:43 1988326471
Пилю авторизацию на джанго. Что лучше использовать, встроенный механизм авторизации или чето типа allauth? С одной стороны, мне кажется лучше использоваться меньше всякого стороннего говна. И если мне будет чего-то не хватать в стандартной авторизации, я ведь всегда смогу это допилить? Типа там дополнительные поля или авторизации через другие соц.сети. С другой стороны хз.
Аноним 07/04/21 Срд 08:30:47 1988695472
Есть ченить типа джавараша только по питону?
Аноним 07/04/21 Срд 09:45:25 1988725473
>>1988302
>По сути функция my() должна ебашить без остановки, но эвентлуп ее тормозит.
Получается, что функция my() доходит до await, передает эстафетную палочку исполнения второй таске и ждёт пока эта вторая таска вернет жезл власти над эвентлупом обратно. Выходит, надо смотреть что там у тебя боте целую секунду выполняется. Ты там случайно time.sleep() вместо asyncio.sleep() нигде не вписал, или у тебя запрос к апи синхронный?
>Пришлось в синхронный код добавить async-await
Все правильно сделал, главное чтобы заработало, а потом уже, если будет критично, вынесешь в отдельный тред.
А вообще, я думал, все биржи давно перешли на вебсокеты, и ты просто подписываешься на стримы событий и ждешь сообщений. Какой смысл апи долбить постоянно - непонятно.
Аноним 07/04/21 Срд 09:55:22 1988726474
Аноним 07/04/21 Срд 11:11:24 1988752475
Аноним 07/04/21 Срд 12:29:21 1988801476
>>1988752
Примерно так я и делал, но беда в том, что замена происходит для всех совпадающих символов (а это мне не нужно).
Аноним 07/04/21 Срд 13:38:51 1988861477
>>1988801
> замена происходит для всех совпадающих символов (а это мне не нужно)

Не очень понятно. Приведи примеры, как нужно и как нет.
Аноним 07/04/21 Срд 14:08:01 1988889478
Снимок экрана 2[...].png 212Кб, 1920x923
1920x923
>>1977853 (OP)
Привет, анон. Ситуация в том, что по незнанию раньше ставил пакеты через Пип без виртуального окружения, теперь же, при попытке поставить что-либо получаю миллион неясных ошибок, нужно как-то вернуть все в первоначальное состояние. Как это сделать?

Ну и классика, те пакеты, что я поставил через виртуальное окружение не видны в пайчарме, какие-то блять костыли. Как решить проблему?
Аноним 07/04/21 Срд 14:20:17 1988903479
>>1988861
Да не, я, кажется, код не так скопировал. Все работает но я надеялся, что замена в регулярках имеет больше параметров
Аноним 07/04/21 Срд 15:34:43 1988977480
Коллеги приветствую.
Где брать практику для пистона?
Вот прочитал я укус питона, подучил основы.
Вот как теперь их применить на практике?
Пробовал на codewars, но как по мне там задачки сложноваты для новичка.
Аноним 07/04/21 Срд 15:45:17 1988991481
Аноним 07/04/21 Срд 16:05:23 1989022482
>>1988977
Leetcode пробовал? Там есть разбивка по уровням сложности, легкие должны быть норм для тебя. Вот еще можешь попробовать https://stepik.org/course/431/info
Аноним 07/04/21 Срд 16:11:07 1989027483
>>1988903
Тогда вот так вроде можно.

input = "aaAaaBBaBBbbb"
replace = r"\1_mysub_"
n = 3

output = re.sub(r"^(.?((?<=\w)[A-Z].?){%s})(?<=\w)[A-Z]" % (n - 1), replace, input)
print (output)
Аноним 07/04/21 Срд 16:14:05 1989032484
Аноним 07/04/21 Срд 16:58:31 1989066485
Снимок экрана 2[...].png 100Кб, 748x175
748x175
>>1988991
Удалить из виртуального окружения или вообще глобально? Глобально можно как-то вернуть дефолтные настройки? Так же у меня похоже проблема с $PATH, может с этим что-то связано?
Аноним 07/04/21 Срд 17:02:58 1989071486
знающие fedex api тут есть?
Аноним 07/04/21 Срд 17:37:28 1989107487
Всем привет, я тот анон, который смог выбить в начале марта проект на 800 долларов и наконец его завершил, теперь точно уверен что фриланс жив, не знаю почему меня некоторые отговаривали, получилось просто супер, попробовал и многопоточность и асинхронность серьезную и drf хорошо выучил, в общем все, надеюсь с таким опытом у меня будет небольшой шанс получить работу...
Аноним 07/04/21 Срд 18:37:56 1989144488
>>1989066
Path у тебя засран. Сделай в том окружении или глобально, где засрано pip freeze > ~/all.txt
Потом берешь и удаляешь те, что не нужны
Аноним 07/04/21 Срд 18:37:57 1989145489
>>1989027
>>1989032
Всё, сам разобрался, i-тое вхождение оказалось ненужным, а нужен был флаг r'\1'.
Аноним 07/04/21 Срд 19:37:58 1989190490
>>1988725
>Ты там случайно time.sleep() вместо asyncio.sleep() нигде не вписал, или у тебя запрос к апи синхронный?
Да, запрос самый примитивный, синхронный. По пол секунды ждет ответа.

>Какой смысл апи долбить постоянно - непонятно.
Запросы баланса, выставление/отмена ордеров.


В итоге я решил использовать multiprocessing, мне кажется это хорошим вариантом, и вроде работает.
Как этот чувак показывает https://www.youtube.com/watch?v=35yYObtZ95o

Аноним 07/04/21 Срд 20:15:49 1989232491
>>1982128
Типизация в питоне сильная, например, строку с числом сложить не получиться, "2"+1 не вернет ни 3, ни "21", такое выражение выкинет ошибку, но она динамическая, это значит, что переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной, то есть, например, в джаве если напишешь int x = 1, а потом x = "qwerty", то компилятор на хуй тебя пошлет, а в питоне пожалуйста, интерпретатор все съест, только надо понимать, что если написать x = 1, то в x будет лежать int, и сделать с ним можно будет только то, что можно делать с int,
а если потом написать x = "qwerty", то там уже будет лежать строка, и с x можно будет делать только то, что можно делать со строкой
Аноним 07/04/21 Срд 20:36:59 1989260492
>>1989022
Спасибо за ответ. Здоровья тебе.
Аноним 07/04/21 Срд 22:54:48 1989401493
>>1982128
люди до сих пор путают статическую/динамическую и слабу/сильную типизацию
Аноним 07/04/21 Срд 23:00:39 1989408494
Всем привет! Почему реквест не работает черкз луп со списками юрл?
Аноним 07/04/21 Срд 23:34:28 1989458495
>>1989408
Чо бля? Код показывай
Вангую, ты ты даже эвент луп не запустил
Аноним 07/04/21 Срд 23:53:58 1989482496
Привет тред. Подскажите в какую сторону копать, чтобы сделать сайт для игры в какую-нибудь "висилицу", например. То есть оба игрока играют, ходят по очереди. Как это вообще реализуется, понимаю когда просто клиент делает запрос к серверу и тот возвращает простую страницу, а в случае с примером выше как это делается? Где почитать и как вкатиться в подобные приложения?
Аноним 08/04/21 Чтв 00:34:17 1989529497
multiproc.png 76Кб, 1318x754
1318x754
Приветы.
Можно ли из экземпляра запустить несвязанный метод в отдельном процессе? Не пойму почему не получается. Что я проебал?
Аноним 08/04/21 Чтв 00:55:07 1989557498
>>1989529
ХЗ. У тебя ругается на то, что ты делаешь
args = non iterable object
некий Syncronized объект из модуля multiprocessing.

Тебе надо передавать в args tuple
Может как arts = (self.value_obj,)
(запятую поставить, чтобы tuple был)
Аноним 08/04/21 Чтв 00:56:27 1989558499
>>1989458
for url in [url1, url2]:
....page = requests.get(url)
....print(page.txt)

Оочень долго думает и что-то делает и потом Фейлит. По отдельности все работает прост у меня 20+ ссылок, для каждой писать метод - думал обойдётся.
Аноним 08/04/21 Чтв 00:57:30 1989561500
>>1989529
Запятую проебал в аргументах, без нее пистон это как обычную группировку воспринимает
Аноним 08/04/21 Чтв 00:59:29 1989563501
>>1989558
Попрофилируй чутка, поймешь на какой именно урле пиздец
start = time.time()
page = requests.get(url)
print(time.time() - start)
print(page.txt)
Аноним 08/04/21 Чтв 01:47:44 1989575502
>>1989563
На всех. Просто ни одна не работает в лупе.
Но этот луп в классе и методе. Не знаю, если это решает.
Аноним 08/04/21 Чтв 02:19:45 1989585503
Время нубовопросов. Хочу сделать для практики дашбоард и тянуть на нее график битка. Нашел апи бинанса и документацию по их эндпоинтам..
Куда двигаться дальше и что/где посмотреть по работе с апи и эндпоинтами?
Аноним 08/04/21 Чтв 08:53:10 1989655504
>>1989575
Ну ты может тогда класс скинешь, раз очевидно проблема в нём
Аноним 08/04/21 Чтв 10:19:38 1989685505
>>1989482
>понимаю когда просто клиент делает запрос к серверу и тот возвращает простую страницу
Создаешь пять простых страниц:
1. Создание партии игры
2. Подключение к существующей партии игры
3. Страница ожидания хода
4. Страница выполнения хода
5. Страница результата партии
Клиент периодически делает запрос и получает одну из страниц, в зависимости от состояния партии. Состояние изменяется от действия пользователя или сервера, допустим, истекло время хода игрока. Можно не отдавать всю страницу, а только изменения состояния, с помощью аякс-запросов или вебсокетов. Всё, ты готов. Берешь какой-нибудь фласк, или даже боттл, и пилишь игру. Удачи.
>>1989585
Делаешь http-запрос на эндпоинт согласно документации. Примеры можешь посмотреть на гитхабе по запроса "binance api" там сотни клиентов разного уровня паршивости.
Аноним 08/04/21 Чтв 11:20:43 1989728506
>>1981878
Сумасшедший, что ты блять несёшь. Какие полтора месяца? Если кто-то с нуля и без вышки за два года вкатиться, то это уже победа. Подставь вместо программиста врача, инженера, архитектора, экономиста и напиши про "изи вкатиться за полтора месяца". Тебя обоссут в любой тематической доске. И только погромисты несут хуйню про "пять неделю и уже сеньор 300к наносек"
Аноним 08/04/21 Чтв 11:25:30 1989733507
Изучаю основы питона, не могу понять такую конструкцию, в других ЯП с таким не сталкивался.
def toJadenCase(string):
return " ".join(w.capitalize() for w in string.split())
С .join все понятно, соединяет cтроку из списка строк используя разделись, к которому применена. Интересуют параметры, которые принимает join - принимает он массив или список какой-то. В данном случае он принимает в качестве параметров выражение "w.capitalize() for w in string.split()", которое судя по всему создает список. Но почему я не могу написать "a = w.capitalize() for w in string.split()" в таком случае, чтобы у меня этот массив записался в а? Это какая-то особенность оператора join, что он может принимать какие-то выражения, или такие выражения можно писать только в качестве параметров функций?
Аноним 08/04/21 Чтв 11:54:06 1989783508
>>1989733
вроде можешь так написать, если использовать лямбда функцию.
Хотя я сам нуб в питоне но насколько я понимаю вместо отдельной функции ты можешь заюзать безымянную функцию.
так делают при функциональном программировании.
пусть меня поправят питонщики, если я не прав
Аноним 08/04/21 Чтв 12:27:26 1989818509
Аноним 08/04/21 Чтв 12:33:20 1989824510
>>1989733
Бля, ну там же русскиманглийским языком написано. Сделай w.capitalize, где w это символ строки string. Тебе это непонятно?
Аноним 08/04/21 Чтв 12:40:55 1989837511
>>1989733
>Интересуют параметры, которые принимает join - принимает он массив или список какой-то.

str.join принимает в качестве аргумента итерируемый объект (iterable). В частности, список (list) - iterable, но можно и генератор какой-нибудь.

>В данном случае он принимает в качестве параметров выражение "w.capitalize() for w in string.split()", которое судя по всему создает список.

Создается не список, а генератор.

>Но почему я не могу написать "a = w.capitalize() for w in string.split()" в таком случае, чтобы у меня этот массив записался в а

Можешь, только надо делать так: a = (w.capitalize() for w in string.split()), если нужет генератор, или так a = [w.capitalize() for w in string.split()], если нужен настоящий список.

Вообще, разумные вопросы задаешь, но тебе, кажется, надо почитать немножко основы про базовые модели данных в Питоне.
Аноним 08/04/21 Чтв 12:41:42 1989841512
>>1989733
>выражение "w.capitalize() for w in string.split()", которое судя по всему создает список
Оно ничего не создаёт, потому что ты его не обернул в [] (генератор списка) или в () (генераторное выражение)
>почему я не могу написать "a = w.capitalize() for w in string.split()" в таком случае
Потому что выше
Аноним 08/04/21 Чтв 13:17:48 1989881513
Если не знаю математики то вкатываться в питон пустая трата времени?
Аноним 08/04/21 Чтв 13:29:54 1989915514
>>1989881
Если питон сейчас учат школьники 5-6 классов, то как думаешь?
Аноним 08/04/21 Чтв 13:37:13 1989929515
>>1989915
Ну и ты душила. Я питун чтоле чтобы думать учу?
Аноним 08/04/21 Чтв 13:38:26 1989934516
>>1989929
Тогда пустая трата времени. Вкатывайся в содержанки, там за тебя всё продумают и ещё и выебут.
Аноним 08/04/21 Чтв 13:38:33 1989935517
>>1989881
Для таких как ты умные люди пишут библиотеки и фреймворки.
Аноним 08/04/21 Чтв 13:41:13 1989948518
Аноним 08/04/21 Чтв 14:09:32 1990002519
>>1989728
Ну если ты до вката вообще не представляешь что такое программирование и базовые вещи то это на долго да,
Я говорил про 1.5 месяца на синтаксис,задачи и ооп, всякое быстроизучаемое типо гита потыкать,остальное это уже да долгое изучение и практика.
Ну и на твои перечисленные профессии надо учиться чтобы куда-то взяли, в разработке закинул резюме, прошел интервью
Аноним 08/04/21 Чтв 14:37:27 1990048520
>>1990002
>Ну и на твои перечисленные профессии надо учиться чтобы куда-то взяли, в разработке закинул резюме, прошел интервью
Интересно, если в резюме написать, что работал менеджером по продажам, по закупкам, организации туров и т.п., два месяца назад начал изучать программирование. Позовут на интервью?

Ты, конечно, скорее всего просто жирный тролль.

По факту, с нуля за год стать разработчиком невозможно. Вот невозможно, и всё.
Аноним 08/04/21 Чтв 14:49:51 1990065521
>>1990048
Пиздец, ты чем читаешь? Где блять написанно что нужно пиздовать после двух месяцев работать? За 5-6 месяцев реально стать, у меня есть живые примеры. В итоге после дрочки 5 месячной ты знаешь язык+вебфреймворк+базу+хтмл/ксс+инструменты для разработки и у тебя уже есть проект простенький который просто покажет что ты не хуй какой-то.
Аноним 08/04/21 Чтв 16:42:29 1990190522
>>1977853 (OP)
А какая команда используется для вызова/использования фреймворка?
Или тут такого нет?
Аноним 09/04/21 Птн 00:13:01 1990658523
>>1990065
>>1990002
> Ну если ты до вката вообще не представляешь что такое программирование и базовые вещи то это на долго да,
На два года, да
> Я говорил про 1.5 месяца на синтаксис,задачи и ооп
А, ты имел ввиду свитчеров из другого языка? Ну я вот по работе сейчас частично свитчуюсь с питона на пхп, чтобы дописать кусок кода в сервисе. Думаю, как раз за месяц-полтора управлюсь.
> всякое быстроизучаемое типо гита потыкать,остальное это уже да долгое изучение и практика.
А то есть все-таки не про свитчеров с языка на язык? Тогда ты прос о нереальную хуйню несешь. С таким же успехом можно сказать, что в квантовой физике теоремы учишь за полтора месяца, а там дальше просто практика и все. Ну лет на 6 практики, ага.
> Ну и на твои перечисленные профессии надо учиться чтобы куда-то взяли, в разработке закинул резюме, прошел интервью
Как отличить вкатыша от человека, который работает. Вкатыш думает, что после прохождения собеседования работать не придется. Ну или придется, но это вообще не важно и всем похуй. Нет, тебя просто выкинут с испытательного и все. Напиздеть в резюме и без мыла пролезть реально и возможно. На неделю-две примерно. Стоит ли 10-15 тысяч за эти две недели того или нет – думаю, вопрос риторический
Аноним 09/04/21 Птн 00:14:20 1990659524
>>1990065
За 5 месяцев "выдрочить все фреймворки" нельзя. 5 месяцев на базовый синтаксис без ООП потратить — норм результат. То, что ты говоришь это лютая хуйня
Аноним 09/04/21 Птн 01:46:38 1990742525
Как вообще для вката jetbrains academy + leetcode + свой аналог двощей на джанге? Плюс ещё Кормена наебнуть и что-нибудь по проектированию рестухи. Из опыта в ит стажировочка по системной АНАЛитике и 3 курс вузика по прикладной информатике. Плюс пара хаков выигранных. Хватит такого чтобы каким-нибудь джуном пойти или ещё чего-то наебнуть?
Аноним 09/04/21 Птн 02:22:41 1990761526
>>1990658
Ты троллишь или что? Свитчеры с другого языка вообще только синтаксис смотрят и фишки языка, если ты пишешь на чем-то одном вкат в другой язык быстр и легок. Далее они просто фреймворк дрочат нужный.
>Как отличить вкатыша от человека, который работает.
Где я писал что дальше учиться не придется, я описал сколько времени для вката надо, сижу в конфе с 20 бэкендерами/фронтами(спб), у всех начало карьеры в основном 19-20 год, кого не спроси вкат 5-12 месяцев. Да и сам я дрочу по своему плану программу, по моим прикидкам там на 6 месяцев макс до работы
>>1990659
пиздец, 5 месяцев на базовый синтаксис это необучамым дебилом надо быть, дети для егэ учат питон за неделю. Выдрочить нельзя, так я и не писал про это, но довести знания до состояния что возьмут на работу можно(читай ответ выше).
Аноним 09/04/21 Птн 02:34:41 1990764527
>>1990190
тут просто ставится фреймворк pipом и инициализируется коммандой, дальше пляшешь, почитай как создать приложение на джанго
Аноним 09/04/21 Птн 13:23:22 1991004528
>>1990761
Бля эти фантазии вкатышей, мое почтение. Почаще повторяй это. Ну и про свитч с одного языка на другой за пару дней это пиздец ор. Надеюсь, ты заплатил за новый курс скиллбокса?
Аноним 09/04/21 Птн 13:52:16 1991025529
>>1991004
Сомневаюсь что ты вообще где-то работаешь,какие нахуй пару дней, где я такое написал? Если ты разраб и блять 1.5 месяца учишь синтаксис языка, то это умственная отсталость явная. Я уже прошел это, потратил столько сколько я писал, уже после месяца дроча по 4 часа в день я свободно использовал классы и у меня не вызывало трудностей использование декораторов, хоть пруф того что где-то работаешь, посмотрю хоть на разработчика который 5 месяцев изучает базовый синтаксис питона.
Аноним 10/04/21 Суб 13:09:16 1991748530
>>1991025
Какой базовый синтаксис, мудило? Где я об этом писал? Пиздос, сам чета придумал, сам в это поверил, сам теперь с этим спорить начал. За месяц, говоришь, уже ООП изучил с базовым синтаксисом? Ну сможешь в два ифа отсортировать три числа по возрастанию? А что такое self знаешь?
Аноним 10/04/21 Суб 16:05:32 1991920531
image.png 38Кб, 938x498
938x498
>>1991748
>Какой базовый синтаксис, мудило?
Ты собрался синтаксис чтобы свичнуться 1.5 месяца учить лел, придумал также как ты придумываешь сроки "пара дней", "пару месяцев".
Не могу сказать что ООП в полной мере овладел(мало практики в реальном проекте еще), но то что такое self это базовое знание.
Аноним 11/04/21 Вск 11:11:35 1992556532
IMG202104111508[...].jpg 10Кб, 352x171
352x171
>>1991920
> Ты собрался синтаксис чтобы свичнуться 1.5 месяца учить лел
И где я такое говорил? Ты это буквально сам придумал.
> Не могу сказать что ООП в полной мере овладел(мало практики в реальном проекте еще)
Так ты и условиями не овладел, лол.
> но то что такое self это базовое знание.
Да? И что это?
Пиздец, твое решение это просто ебаный позор. Еще и из гугла нагло спизженное. Я так могу и вообще без условий обойтись
Аноним 11/04/21 Вск 11:45:27 1992567533
>>1992556
>И где я такое говорил? Ты это буквально сам придумал.
>>1990658 >>1991004
>Так ты и условиями не овладел, лол.
ога
>Пиздец, твое решение это просто ебаный позор.
Ты бы границы сначала поставил(очевидно что я знаю и о min/max, и о map), потом бы возникал, ты написал в 2 ифа, из 3 чисел, я написал как ты запросил, написал бы без ифов, решил бы без ифов. Решение не пиздил все задачи решаю сам.

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

Аноним 11/04/21 Вск 12:07:23 1992584534
>>1992567
> >И где я такое говорил? Ты это буквально сам придумал.
Ну так и где я там это написал?
> Ты бы границы сначала поставил
Если для тебя такие вещи не понятны, то соболезную.
> очевидно что я знаю и о min/max, и о map
И именно поэтому максимальное число ищешь не встроенной функцией? Расскажешь, ага
> потом бы возникал, ты написал в 2 ифа, из 3 чисел, я написал как ты запросил, написал бы без ифов, решил бы без ифов. Решение не пиздил все задачи решаю сам.
Конечно сам, твердо и четко. Так же, как ты про max знаешь. Только почему-то не используешь))))
> Так что спок анальник, сначала изъясняйся понятнее, есть четкое условие, тем более если погуглить твое решение тоже есть, если бы гуглил спококойно бы взял его.
"Мое решение" это рофл по поводу "написал с двумя ифами". Ладно, чет твои попытки сманяврировать меня уже утомили
Аноним 11/04/21 Вск 12:38:49 1992594535
>>1992584
>Ну так и где я там это написал?
например
>А, ты имел ввиду свитчеров из другого языка? Ну я вот по работе сейчас частично свитчуюсь с питона на пхп, чтобы дописать кусок кода в сервисе. Думаю, как раз за месяц-полтора управлюсь.

>Если для тебя такие вещи не понятны, то соболезную.
Понятны, но когда задача такого плана я привык к четкому условию, за месяц 10 дней я прорешал овер 200 задач взятых отовсюду, так что привычка осталась.

>Конечно сам, твердо и четко. Так же, как ты про max знаешь. Только почему-то не используешь))))
Не бывает людей которые пишут на питоне хотя бы день и не знают о ней, ты сам прекрасно это знаешь. Если ты только и можешь копировать чужой код, а простая математика для тебя обязательно спизженное решение, то мне тебя жаль, скорее всего ты сам то от вкатыша далеко не ушел.
>Ладно, чет твои попытки сманяврировать меня уже утомили
Утверждаешь что я не знаю встроенные функции потому что я их не использую, а маняврирую я?


Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов