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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Питон тред №116 /python/ 1977853 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #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
2 1977911
Вкот, змеиные братья
3 1977912
Какую версию джанги учить? Уже есть 3.+
4 1977975
>>77912
Самое свежее учи, потому что сейчас всё активно перепиливается под ASGI и, скорее всего, скоро это будет стандартом.
5 1977981
>>77912
Лучше изучать новое.

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

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

Кто-нибудь бы пункт для шапки про джангу проапгрейдил.
6 1978005
>>77975
>>77981
Спасибо!
7 1978016
Сейчас начал изучать питон, в 2017 учил в универе с++, но на отвали, особо не вникал и все задачи либо у кого-то брал, либо делал на подобие, поэтому самые минимальные знания в программировании есть.

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

Короче вопрос в чем, работает ли тут тема с прорешиванием огромного числа задач и соответствующим повышении скилла, или если не прет, лучше вообще не соваться?
thisistheway.jpg21 Кб, 318x418
8 1978021

> все задачи либо у кого-то брал, либо делал на подобие


Так и продолжай, в чем проблема?
9 1978117
Где взять годные задачи, чтобы практиковаться в написании простых прог, работе с с типами данных, списковыми включениями и прочим?
10 1978167
>>78117
https://www.freecodecamp.org/news/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f/
Из списка советую выбрать хакерранк(для новичков, но сложность заданий очень быстро наростает), проект ейлера(сложные задания), SPOJ.

32 минуты назад, кстати, стартовала международная олимпиада гугла по программированию.
https://codingcompetitions.withgoogle.com
11 1978311
>>78117
Банальный литкод как раз годен для таких задач. Если hard на алгоритмы, то easy и частично medium как раз вот на базовое кодирование.
12 1978420
Кто может рассказать про работу в компании с githubом? Это получается есть общий аккаунт и у каждого работника есть логин пароль для входа, чтобы отправлять коммиты, так?
13 1978430
image.png72 Кб, 1127x570
14 1978471
Чому нихуя не выводится?
15 1978480
Формально ищу работу более полугода, иногда захожу на хх, скажите, мне кажется или вакансий на самом деле не так много? Вот ввел я все свои навыки и достижения и хх мне показывает 800 вакансий, где-то половина это будет не питон, а другой язык, четверть это смежные профессии, типа мл, фронт, hr и пр., от оставшейся четверти 75% это вакансии с опытом работы от 3 лет, знания сложных стеков, какой-нибудь gprc и пр для хайлоада и оставшийся процент это как раз то что надо, но в ней hrы совсем голову потеряли от ждунов и просто каким-то непотребством занимаются, хуй попадешь, даже с опытом требуют тестовые задания, которые делать день и это до созвона. Вопрос, неужели полностью вкатится в работу так сложно, я прям депрессию ловлю с хх
16 1978488
>>78471
У тебя main нет во view, есть text.
Я тут тоже джангу стал изучать, если хочешь можно скооперироваться типо peer-to-peer leaning
17 1978489
>>78488
*в шаблоне
18 1978510
>>78488
Да я начал пол часа назад джангу, от меня мало толку будет.
Поменял в index все на text и все равно нихрена не выводит.
19 1978578
>>78510
endfor слитно пишется
20 1978582
Кто-нибудь читал/просматривал обе книги? Это два 1500-страничных томика по практическому использованию Пайтона для intermediate юзеров. Вот не знаю, на какой стул сесть.
21 1978584
>>78582
Лутца читал, все хорошо, но про ассинхронность и многопоточность ничего нет.
22 1978590
>>78584
Вторую книгу Лутца? Ну, это 2010 год. Standard Library by Example - 2017 год, что немного лучше.
image.png40 Кб, 820x159
23 1978591
bruh
24 1978625
>>78582
Рекомендовал бы официальной документацией и гуглом ограничиться, параллельно работая над каким-то проектом, а то уйму времени на воду потеряешь. А уже когда надобность в инструментах по-сложнее возникнет, вроде асинхронности, тогда к книгам обратиться - строго по теме, чтобы было.
25 1978632
>>78625
Да мне не к спеху. Я вообще сейчас открываю книжку по Пайтону, открываю IPython и под фортепианный эмбиент перепечатываю примеры, представляя, что играю на фоно. А еще в уголке экрана включаю видео с кабины поезда, катящимся по заснеженной Норвегии. Кайф.

>параллельно работая над каким-то проектом


В этом-то и проблема: то, что я хочу запилить - достаточно сложно, тут надо хотя бы какую-то книгу по микропроектам пройти. Знаешь годные книги по проектам?
26 1978633
Привет, жвач. Пишу бесплатный софт для школьников в качестве первого серьёзного проекта. Подскажите, пожалуйста, как можно оптимизировать код и прикрутить ко всему этому нормальный GUI?
А также, какие будут дополнительные рекоммендации по тому, что можно добавить сюда ещё. Пока программа умеет только вычислять площадь треугольника и цилиндра, но надо что-то ещё, мб какую-нибудь вшитую справку для егэ и т.д.
27 1978642
>>78633
ООП, один хер гуйки это ООП.
28 1978644
>>78632
Automating boring stuff. Остальное по хотелкам. Хочешь написать скрапер рутрекера на докачку серий текущих сериалов с выводом в телегу? Я никак не могу спокойно потратить на это время, завис с заказчиком на хуйне полной
мимо
29 1978645
>>78642
Понял, там инфы покурить надо много. Займусь
30 1978647
>>78420
Да, все так.
31 1978651
>>78644

>Automating boring stuff.


Смотрел видео-лекции Швайгарта по этой книге. Уж очень основы.
32 1978653
>>78633

>нормальный GUI


Самый простой вариант - при помощи tkinter. Но по-моему для GUI питон вообще лучше не использовать.
33 1978661
>>78653
А что насчёт PyQT5?
34 1978664
>>78661
tkinter ограниченный, но простой, встроенный и без лицензии.
В PyQt, мне кажется, лучше не лезть, если не работал с обычным Qt, который на C++.
https://dev.to/amigosmaker/python-gui-pyqt-vs-tkinter-5hdd
35 1978683
>>78661

>А что насчёт PyQT5?


Для твоей задачи перебор. Вообще, писать интерфейсы в одиночку лучше всего на электроне. Но если интерфейс совсем простой, пофиг на дизайн, и прямо обязательно нужен питон, то юзай tkinter.
36 1978686
>>78633
Сначала треды научись делать, а потом интерфейс делай.
37 1978854
Возможно ли сохранить код jupyter notebook вместе с переменными? То есть задал я A=25, закрыл файл, потом открыл, ввел A, а мне выдало 25 вместо A not defined.
38 1978890
>>78633
С GUI надо разбираться отдельно, сначала научиться работать с GUI, потом уже прикручивать. GUI требует изменения структуры программы, это не тоже самое, что input из консоли добавить.

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

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

Пожалуй присоединяюсь к тому, чтобы сначала с tkinter что-нибудь поделать.
39 1978897
>>78890
Понял, тогда постараюсь сначала ткинтер покурить, потом уже что-то посерьёзнее сделаю. Просто есть идея, чтобы когда ищешь площадь цилиндра, например, по заданным параметрам 3д-моделька показывалась сбоку. Или чертёж 2д-фигуры со всеми указанными параметрами на этом же чертеже
40 1978940
>>78890

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


Надо стремиться к тому, чтобы было как input из консоли добавить, делать все модульным, чтоб вот была основная программа, у нее был известный интерфейс для общения с другими модулями, нужен консольный интерфейс, сделал модуль для консольного интерфейса, нужен десктоп - сделал для десктопа, веб - сделал для веба, и подключаешь эти модули по необходимости, а центральный код самой основной программы вообще никак не трогать.
41 1978942
>>78854
В ipython, а значит и в jupyter, есть магическая команда %store

https://ipython.readthedocs.io/en/stable/config/extensions/storemagic.html
42 1978975
Двач, прошу, последняя надежда на тебя, я уже с ума схожу, суть:
Пользуюсь джанго орм в асинхронном скрипте, вызываю функцию через sync_to_async в которую передаю ключ модели, меняю 2 поля модели, сохраняю, но она не сохраняется, код:
https://pastebin.com/1WY6gr6z
Да, там больше логов, я просмотрел все, наверное, что мог, все должно работать, все логи печатаются, и 2 поля до присвоения и после через саму модель и правильно отображается ее ключ, но в базу значения не попадают, я просто уже даже не предстовляю в чем может быть проблема, натолкните меня
43 1978987
Около полугода пишу на питоне. Автоматизация отчетности, работа с бд (скл и носкл), парсинг и гугл.шытс. Сейчас появился вариант с новой работой, но там надо знать джангу и веб. Реально ли изучить джангу, mvc, rest и т.п. за месяц ?
44 1979009
Не могу решить задачки на кодварсе, я совсем плох?
45 1979031
>>78987
Если каждый день, часов по 25 и всё будешь запоминать - станешь спецом
46 1979032
>>79009
без практики нихуя не выйдет. пробуй снова, потом уже и получится
47 1979037
>>79031
Ладно, тогда отклоню оффер и останусь бездарной питочмоней.
48 1979040
двач, есть список пар (int, str), нужно отсортировать в порядке убывания чисел, где пары с одинаковым значением отсортированы в обратном лексикографическом порядке строк
можно, конечно, сделать sorted(array, key=lambda x: (x[1], x[0])) и дойти до последнего элемента с максимальным числовым значением, но мне не очень нравится это решение
49 1979043
>>79040
reverse=True забыл, да
50 1979048
>>79040
sorted(array, key=lambda x: (x[0], -x[1])) ?
51 1979051
>>79048
в таком случае сортировка сначала будет по строкам, потом по интам, что не то что мне нужно
52 1979055
Откуда для split в print(a.split()[0]) взялось [0]? Там же только два параметра, sep и maxsplit.
53 1979056
>>79051
а, нет, ошибся, все в порядке, только в другом проблема - минус для строк неопределенная операция
изображение.png4 Кб, 414x219
54 1979061
>>79055
Сплит возвращает список, а [0] - доступ к первому элементу этого списка. По смыслу там (a.split())[0]
image.png4 Кб, 398x30
55 1979063
Что такое main_diag? Это словарь? Если это словарь, то row это значение или ключ?
56 1979064
>>79063
i это индекс объекта из списка, row его содержание
57 1979067
>>79063
Это set. Который set() или который a={2,3,4}
Что-то вроде std::unordered_set из c++ - набор неповторяющихся неупорядочненых значений.

Ты всегда можешь набрать print(type(main_diag)), кстати.
58 1979069
>>79056

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


Мимо прочитал. Тогда чем sorted(l, key=lambda x: (x[0], x[1]), reverse=True) не устраивает?
59 1979073
Эти задачи с кодварса имеют хоть какое-то отношение к реальному погромированию? Почти все задачи походят на забивание гвоздей микроскопом и изобретение велосипедов. И какая-то у них пизданутая сложность, начиная с 5 kyu
60 1979083
>>79067

>Ты всегда можешь набрать print(type(main_diag)), кстати.


Точно. Что-то тупанул
61 1979102
>>78987
Если хорошо понимаешь, как работает веб, есть опыт с html, и нормально плаваешь в питоне, включая ООП и т.п. вещи то реально.

Вопрос ещё на каком уровне "знать джангу".
62 1979106
двач, помоги , в питон только вкатился ,
имеется
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
63 1979254
>>78975
Попробую угадать - операция в БД происходит в отдельном потоке, какая-то часть конфигурации сделана в другом потоке, и некоторая часть стека (Django ORM или коннектор к БД) не готова к такому положению дел. Документация (https://docs.djangoproject.com/en/3.1/topics/async/#asgiref.sync.sync_to_async) постоянно указывает на то, насколько это нестабильная конструкция.

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

В целом запрос выглядит просто, и даже если эта БД создавалась через Django, ей все равно можно манипулировать через другие, асихнронные по умолчаию, библиотеки.
64 1979261
>>78987

>mvc


да

>rest


да

>джангу


нет, но я думаю тебе и базового уровня ее хватит
65 1979290
>>77853 (OP)
Нахуячил решение для задачки https://leetcode.com/problems/jump-game-ii/ особо не думаю и внезапно оно прошло, но я че-то сам не въехал как. Тут надо найти наименьшее число переходов, но в коде это никак не учитывается - просто обычная рекурсия
66 1979300
>>79261
Задумался что значит вообще знать джангу? Одно дело уметь рендерить темплейты через функциональные вью, другое писать на drf, третье писать свои бекенды для авторизации, паролей, пермишшоны, мидлевери и прочее, ну а предположим все это умеешь, что дальше будет знать джангу?
67 1979304
>>79300
Учитывая что другалек в треде "изучает рест", в его случае идет речь о понимании устройства хеловорлда на джанге и какой нибудь hello-world app, а у тебя вопрос философский, на уровне с какого момента можно говорить что я знаю пытон?
68 1979305
>>79254
Оказалось все гараздо тупее и тривиальнее, хотя отчасти и правильно, я наговнокодил так что многие названия очень похожи, хотя и значат разное и просто загружал объект заранее из бд, без доп полей, потом я про это забыл и в эту функцию передавал ключ модели и сохранял поля, а потом оказывается есть последняя строчка про которую я забыл, которая меняет поле той модели, которую я загрузил в начале, той модели, в которой нет доп полей и потом он ее сохраняет, т.е я сначала сохраняю с полями, а потом без, а ощущение словно поля просто не созранялись, час-два точно убил на этот баг
69 1979328
>>79304
Ну под "знать джангу" я скорей бекенд подразумеваю. Судя по задачам заказчика, надо будет парсить хмл разной структуры, делать запросы к разным бд, и результат отображать в браузере + реализовать правку этих сущностей в сурсцах.
70 1979333
>>79304

>на уровне с какого момента можно говорить что я знаю пытон?


Ну если какой-либо синглтон можешь запилить без подсмотров, то можно сказать что знаешь. Остальное дочитаешь.
71 1979434
>>79328
ETL а чистом виде, на фреймворки не смотри. Большинство проектов такие, ну стэк только меняется.
Может только задачи другие. Типо M2M (ещё кто-то помнит о таком?) безучастия в процессе человека.
72 1979446
>>79434
Ну джанго это желание заказчика. Пока не вижу, где он там должен применяться, я вообще подумал, что под решение его задачи нужен какой-нить апач айрфлоу и редис, но с обоими не работалю
73 1979476
>>79446

>я подумал...


Братишка, на твоем уровне думать еще рано и платят тебе не за это
74 1979494
>>79446
Хороший вопрос как у тебя весь этот обмен данными будет устроен. В первую очередь как и откуда ты будешь брать xml, как они к тебе будут попадать в движок.

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

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

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

Лучше какой-нибудь aiohttp под это использовать.
75 1979498
>>79476
Ну вот я так недавно после мини-отпуска, на эмоциях и из-за сжатых сроков повесил боевую базу.

>>79494
Пока сам не понимаю, но расти хочется, поэтому наверно попробую вкотиться в это. Если обосрусь за испытательный срок, так обосрусь, зато опыт. Тем более если заказчик что-то нашёл в моём опыте, значит он готов идти на такие риски.
76 1979499
Анонсы, спасите меня от костылей:

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

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

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

Но даже в моей голове это выглядит как велосипед. Что посоветуете?
77 1979520
>>79498

> Тем более если заказчик что-то нашёл в моём опыте, значит он готов идти на такие риски.


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

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

Если ты единственный исполнитель, то проблема может быть в том, что заказчик вот не компетентен совсем. Он что-то слышал, что-то представляет, ему кто-то что-то сказал, вот он и предлагает. Но не понимает, что сложно а что просто, откуда какие проблемы, и т.п.С такими довольно тяжело бывает, но тоже работа и в первую очередь опыт какой-то.
78 1979528
>>79499
Модель как модель, простая и обычная.

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

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

Плохо тогда, когда у тебя в итоге 90% данных это твои логи, тебе их надо как-то чистить и т.п.
79 1979531
>>79520
Там уже есть команда (архитекторы, девопсы и т.п.), меня берут на позицию разраба бэка, с уклоном в бд. Сам я дата аналист/дата недоинженер, ментора там не будет, вся работа через лида/прожект менеджера, который меня и собесил.
80 1979534
>>79531
Но как питухон разраба меня берут первым.
16002699864500.mp43,6 Мб, mp4,
856x480, 0:16
81 1979576
>>78016

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

Короче после этого словил фрустрацию и долго не мог прийти в себя, но все-таки убеждаю себя в том, что если подтяну элементарную математику и надрочу руку в таких задачах, то проблем в обычной работе в будущем возникнуть не должно.
82 1979582
>>79576

Вроде и тест на IQ проходил, причем несколько раз с разной периодичностью, выдавало от 110 до 114(что вроде как считается за норму). Пиздец какой-то.
83 1979584
>>79576>>78016
Если не вникать в унылые бесполезные доказательства, а просто общую концепцию разбирать (геометрический смысл, который просто первым пунктом должен идти в любой теме - так как память человека визуальная, и думают мозги изображениями и визуальными образами, а не (текстовыми) символами или теоремами) и потом решать задачи разных типов - тогда первые два курса матана можно освоить за 4-6 месяцев на неплохом уровне.
84 1979590
>>79584

Благодарю за совет.
85 1979591
>>79584
Блин, забыл что посты не редактируются.

Ищи всякие штуки вроде desmos.com/calculator - это может помочь, чтобы ты все эти переменные, графики и производные представлял в виде цельного визуального образа. Тогда любая задача с этим связанная станет тривиальной - так как тебе буквально очевидно что написано и в каком уравнении, и это один цельный образ - а не какой-то набор разрозненных математических символов.
Разница как между тем, чтобы по буквам читать (и терять смысл предложений) - или по словам и словосочетаниям.
1613128704118.png278 Кб, 860x623
86 1979633
>>79528
Спасибо. Добра
87 1979661
Как узнать равны ли первое или второе число в двух разных списках?
[[0,0], [0,1], [0,2],
[1,0], [1,1], [1,2],
[2,0], [2,1], [2,2]]
88 1979665
>>79661
Взять их по индексам и сравнить оператором == ?
89 1979676
>>79665
Листы добавляются по мере работы программы, поэтому заранее номера позиций неизвестны
90 1979747
>>79676
ну так напиши сортировку с функцией филтьром
91 1979770
>>77853 (OP)
Сап анончики, вот есть пик1, вроде все выглядит логично, вводишь себе массив A, потом вводишь количество элементов N и все должно работать, но после ввода массива А, возникает пик2
Если не сложно объясните пожалуйста что я делаю не так ?
92 1979777
>>79770
Ладно, я разобрался, извините за беспокойство
93 1979892
>>79770
https://ideone.com/BI9qLf
Можешь не считывать N (удалить потом из списка первый элемент), в питоне это не особо требуется, так как в списке всё-равно массив указателей. Осторожно, такая фигня числа через точку считывает как два отдельных.
ebalgovno.png11 Кб, 502x178
94 1979973
Прохожу курс Python на Stepik. Задача: " Однажды, посетив магазин канцелярских товаров, Вася купил X карандашей, Y ручек и Z фломастеров. Известно, что цена ручки на 2 рубля больше цены карандаша и на 7 рублей меньше цены фломастера. Также известно, что стоимость карандаша составляет 3 рубля. Требуется определить общую стоимость покупки."

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

Запускаю у себя - все работает и с разными значениями. Пытаюсь отправить на Степике - пишет, что неверно и иди нахуй. Скажите пожалуйста, в чем проблема?
95 1979991
>>79973

А бля, до меня дошло, где я проебался, но пока не дошло как исправить, пиздец
96 1980008
>>79973
>>79991

Разобрался
97 1980034
>>79770
что за плагин для исключений?
98 1980133
>>80034
майорское расширение питона для визуальной студии
99 1980134
>>80133

>майковское


ебучий-сафари-фикс
100 1980220
Анчоусы, через пару недель собес на стажировку в сбер. Питонистом. Как подготовиться максимально? Что смотреть что читать? Пока планирую дрочить литкод, сделать петпроджет лайтовый круд по стэку который у них и просто дрочить солиды кисы dry и прочую лабуду с restful. Всё правильно или что-то изменить?
101 1980253
>>80220
дрочат хуй, а питон изучают
102 1980286
В питоне можно сделать функцию, которая будет создавать пустые переменные?
Или можно только создать значения в словаре и работать с ними?
103 1980289
>>80286

Дублирую вопрос
104 1980290
>>80289
Нихуясе, а тебе зачем?
105 1980291
>>80290

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



Просто интересно. Но чет я подозреваю, что хуй там.
106 1980298
>>80286
Можно, но переменные все равно в словаре будут, просто в другом. Из словаря выхода нет.
107 1980300
>>80133
нихуя ты спалился!
108 1980301
Есть краткое руководство по питону, чтобы буквально код и комментарии к нему? В офф документации захлебнуться можно от воды, а в статьях еще хуже.
Screenshot 2021-03-29 at 11.25.06.png396 Кб, 2020x616
110 1980319
>>80286
Дальше сам догадаешься? С классами тоже так можно
111 1980422
>>80319
Типа так невзначай похвастался, что у тебя макбук и ты успешен?

>С классами тоже так можно


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

Но это не единственная проблема с __dict__.
112 1980436
Пишу скрипт для автозаполнения сайта через 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
которые мне нужны?
113 1980476
>>80436
c Keys.LEFT понял почему не работает, ячейка была выделена поэтому это было перемещение по тексту.
114 1980477
>>80436
getText() берет текст
Для скролла можешь pyautogui использовать.
115 1980486
>>80477
Наверное я проебался с геттекст() , это вроде из явы.
В селениуме есть же встроенные функции получения значений классов. get_attribute() и get_property()
116 1980488
>>79892
Крч я не совсем понял что ты написал ввиду своего начального изучения питона , но данная проблема помогла разобраться мне как работает типичный "for k in range N" и что вообще происходит , а еще то что там чтобы вводить массив и все нормально работает надо вводить "A=[int(b) for b in input().split()] вводил с телефона по памяти вроде не проебся, но спасибо за ответ.
117 1980497
>>80486
<div class="slick-cell l1 r1 undefined">49</div>
Да getText это не из питона, get_attribute() работает, но как вытащить из получаемого объекта "49"?
118 1980498
>>80497
или хотя бы source этого объекта после find
119 1980500
>>80497
num = driver.find_element_by_zalupa().get_attribute()
текст будет в переменной num
120 1980518
>>80500
Всё разобрался, спасибо всем. В общем попробовал подняться этажом выше и взять не ячейку а целую строку и вывести .text, сначала выдала всё кроме нужного и я понял т.к. у меня на нужной ячейке был .click() её содержимое получить было нельзя.
121 1980567
>>78488
@errordesuka, в телеге напиши
мимо другой анон
122 1980707
>>80567
А ты насколько крут уже в джанге?
мимодругойанон
Screenshot8.png5 Кб, 973x73
123 1980762
Так, ваше пипу обязательно 32 битная версия нужна? Скачал и установил 64 битный питон.
124 1981026
>>80762

>Python


>Шиндоус


А ты не очень умный
125 1981034
>>81026

>Python


>Шиндоус


Питон на винде нормальной работает.
126 1981036
>>77853 (OP)
Есть множество sql query на обновление данных в таблице (через sql alchemy)
Можно ли при помощи threading выполнить эти запросы конкурентно? И что если таких запросов несколько тысяч штук? Создавать по треду на каждый запрос - уебанство
127 1981041
>>81036
А что за запросы такие и откуда пришли, что прям несколько тысяч надо сразу запихнуть?
Ты не дудось базу запросами, а собери в один лучше и проверь скорость работы. В любом случае можешь обвешать таблицу локами.
128 1981074
>>81036
Посмотри, что такое ACID. Всё уже придумали.
129 1981075
Есть пандасовый датафрейм со значениями и датами со временем. Нужно сгруппировать значения в списки по дням.
Например https://ru.stackoverflow.com/questions/920086/Группировка-dataframe-по-дате
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]
Если важно у меня все списки будут разной длинны.
130 1981092
>>81075
df.groupby(pd.Grouper(key="date", freq="D"))['val'].apply(list).reset_index()
131 1981096
>>81036
SQL Alchemy обязательна? Есть же pewee-async/tortoise и ещё какие-то для MySQL/PostgreSQL, если уж очень ORM нужна
132 1981097
>>81034

>Нормально


Часть пакетов не может быть установлена/собрана. Uvloop'a нет, uvicorn дропнул поддержку IOCP, hypercorne все ещё нестабилен. Куча нюансов, если просто книжки дрочить, то норм. Все равно же в контейнере все разворачивают, в шиндоус докер поддерживается, WLS есть, можно же и там все делать.
ya.png2,3 Мб, 1200x1600
133 1981104
>>77853 (OP)
Как работать с сайтами, на пиотне? В смысле не скрэплинг йобаный, а получение информации с сайта и отправление другой например, в сообщение и т.д.
Просто когда я пытаюсь найти в интернете инфу, мне выдают ебучий скрэплинг, а я блять не хочу делать сайты.
134 1981108
>>81104
Ну так-то скрапинг это оно и есть - шлем запросы, получаем ответы, потом извлекаем.
135 1981113
Вот читаю я Лутца и там следующее:
Допустим у нас проект, в котором модуль main.py импортирует модуль A.py. Модуль A импортирует B, а B импортирует C. В такой ситуации, если нам понадобится перезагрузить все модули, то просто reload A не сработает, ведь его внутренние импорты не будут перезагружены. Как решение Лутц предлагает огромную рекурсивную поеботу, которая обходит все модули на произвольную глубину и всё перегружает. Это всё прикольно, но почему бы для решения этой задачи не импортировать модули сразу с перезагрузкой? То есть в модуле A мы импортируем B следующим образом:
import B
reload B
Тогда при reload A у нас B сразу же перезагрузится, ведь выполнится reload B. Менее изящное, но более простое решение. Тем более мы не перегружаем вообще всё, а явно указываем какие модули мы собираемся перегружать.
Я ещё плохо разбираюсь в программировании и питоне, в чём я не прав?
136 1981114
>>81113
Так ты всегда всё импортируешь дважды, проеб по скорости.
137 1981116
>>81114
Я это понимаю. Но если у меня только два модуля требуют перезагрузки, а Лутцевская функция перегружает вообще все модули из пространства имён (а она так и делает), то проигрывает Лутц.
138 1981123
Тем более можно сделать проверку наличия объекта модуля и при отсутствии импортировать, а при наличии перегружать.
139 1981132
>>78942
Эта требует ручного перечисления всех переменных и никакие аргументы кроме простого ввода не принимает.
Нашел вот это 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'.
Походу толком ничего не сохранишь. Всё какие-то костыли.
140 1981138
>>81116
У него это просто пруф оф концепт, ты можешь произвольно для своей ситуации делать.
141 1981150
я нихуя не понял, помогите
142 1981155
>>81150
Добавь драйвер в PATH ты че питон только скачал
143 1981158
>>81155
ну тк, я зеленый хуище. хотя я и сам почитал ошибку. Сначала скачал файл и тупо запустил как еблан. А потом только допёр что до него путь нужно хуйнуть в
driver = webdriver.Chrome(executable_path=r"C:\Users\User\Desktop\chromedriver.exe")
144 1981161
>>81138
Да я понял. Я просто удивился что моё решение СИЛЬНО проще и потому усомнился в его адекватности.
145 1981162
>>81158
можно просто в PATH добавить и кинуть драйвер рядом с исходником
146 1981174
>>81162
а пон спс
147 1981266
mod.py:
a = 3
def func(): print(a)

main.py:
from mod import func
func()

Я правильно понимаю, что в пространтсве имёy модуля main функция func() будет выглядеть как print(3) ?
148 1981290
>>81266
Нет, будет объект function с именем 'func'
149 1981293
>>78488
Я другой анон, годик назад пробовал джангу, наковырял франкенштейна, но т.к. питон я не изучил нормально и появилось 100500 важных дел забил, сейчас сделал комбэк, дрочу питона уже месяц по 4+ часа в день, хочу через пару недель окунуться в джангу и начать ебашить на ней. Если вы скооперировались можно к вам?
150 1981307
>>81104
То что ты хочешь делается через апи если оно есть, если нет то только парсеры
151 1981315
>>81290
Тело то у функции какое?
152 1981323
>>78633
Бро, как и тебе посоветовали займись ооп, ну или функциями для начала, а то это больше не проект, а задачка.
153 1981458
>>81315
У объекта тело какое?
154 1981565
>>81293
Там ниже контакты есть.
155 1981600
Может знает кто, как в пайчарме нормально с sqlite работать? Вроде сделал всё как надо, а подсветки и прочего нет. Что не так?
Если создать не много по другому, то будет ворой пик или так всё и должно быть? В гайдах на ютубе по другому всё.
156 1981607
>>81600
В питоновых файлах не будет подсветки. В скулёвских - будет.
Снимок экрана 2021-03-30 в 18.50.29.png61 Кб, 1036x374
157 1981623
158 1981663
Аноны подскажите плиз в чего щас лучше вкатываться, в какой язык программирования?сам в этом ноль,хотел бы найти учителя который будет вести,буду ему % от зп платить и в дальнейшим тоже
159 1981692
>>81663
Тебе в общий тред, а не сюда.
160 1981695
Можете верить, можете нет, но сейчас я удалил path в urlpatterns, но он продолжает меня вести на этот адрес. Как такое возможно? Перезапускал и проект и пайчарм. На стековерфлов есть такой вопрос и там никто ничего не знает.
161 1981703
>>81607

>В питоновых файлах не будет подсветки


Вообще-то будет, нужно только подсоединить нужную базу данных в панели database.
162 1981710
>>81695
Проверил в другом браузере там все нормально, в этом продолжает отображать путь.
163 1981715
>>81703
Правда? А хтмл верстку в джеэсе он у тебя тоже подсвечивать будет?
Это строка, с точки зрения питона, поэтому он и не будет подсвечивать.
164 1981721
>>81692
Скинь ссылку плиз
165 1981768
>>81721
Сам как-нибудь, нулевую полистай
166 1981801
>>81715

>А хтмл верстку в джеэсе он у тебя тоже подсвечивать будет?


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

>Это строка, с точки зрения питона


С точки зрения подсветки синтаксиса это не имеет никакого значения. Только в случае с sqlite надо сначала подсоединить базу данных, чтобы пайчарм знал, какие в ней таблицы.
167 1981807
>>81663
Рекомендую самому искать и изучать инфу, сейчас вкатывайся во что хочешь, это зависит от того что ты хочешь делать(веб,десктоп и прочее). Могу только свой список кинуть который сам насобирал, по нему изучаю все, пока что неплохо идет
168 1981823
>>81807
Да мне чтобы за границу свалить и получать 7к зелёных не вылазия из дому,что попроще наверно,чтобы взяли же ещё навыки и опыт нужен
169 1981835
>>81823
лел, дохуя хочешь.
а если серьезно амбиции это хорошо, ты можешь в принципе любой язык который пригоден под веб выучить, т.к. ты в питон треде, то можешь в принципе посмотреть в сторону джанго как основного фреймворка, он хороший и мощный, на нем работает сайт варгейминга, гугл некоторые сервисы и прочее, для его освоения нужно знать сам синтаксис, ооп в питоне, БД , регулярные выражения.
170 1981845
>>81835
Классический страницашлеп без cs образования, нахуй никому не нужен. Только в Урюпинске помощником эникея можно идти.
171 1981864
>>81845
Ты про фронт говоришь, бэкендер это другое, или ты думаешь что выучишь фреймворк и будешь бесконечно пилить магазины?
Толковый разраб везде нужен, в том числе и фронтендер
172 1981865
>>81835
И за сколько это всё освоить можно?так лол там даже сранные сантехники 5-6к $ получают
173 1981878
>>81865
Ну бля, питон, подрочишь задачи и ооп 1-1.5 месяца интенсивно. Почитаешь о сетях и устройстве интернета, изучишь гит-несколько дней. Фреймворк и базы хз сколько, но на базовом уровне за неделю.
В принципе после этого можешь делать ебы.
Потом нужно знать современные инструменты, паттерны, rest... и тд., список большой, но без него нахуй не нужен быдешь у пиндосов
174 1981883
>>81878
После того как это освою,мне для начала годик в рф поработать или сразу стараться в компании сша рваться?там же надо ещё учить на инглише или это не обязательно?
175 1981895
>>81883
я не знаю, я просто собрал кучу инфы что требуется от разработчика сейчас и как сейчас пишут код, какие технологии используют, по рф я бы мог еще сказать, по бугру нет, но там в основном по технологиям тоже самое, по работе кури ютуб.
176 1981914
>>81710
У меня пидорский питон иногда не видит изменения в файле и приходится пересоздавать. Даже если удаляю файл все равно его запускает. Даже если терминал перезапускаю.
177 1981925
>>81864
Нужны не настолько, чтобы вытягивать себе из-за границы спеца. К себе вытягивают сильных спецов из сложных областей.
178 1981943
Что почитать ++ программисту, чтоб пистон ваш за месяц осилить? По работе оче надо код портировать. Там в шапке часть материалов начинается с хуеты типа "информатика это...", "введём понятие переменной и цикла...". Что полистать кроме документации?
179 1981950
>>81865

>там даже сранные сантехники 5-6к $ получают


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

Если хочешь работать на штаты, то я бы ориентировался на 3-4к в месяц. За большие деньги ты не нужен, поскольку проще нанять местного раба в офис.
180 1981956
>>81950
*Поскольку проще нанять инженера, который может тянуть на себе код, а не месяцапитониста за 7к.
181 1981960
>>81943
Саммерфильд, хотя это с основ.
Intermediate Python, там выжимка про специфику.
Видео курс специфики питона для умеющих программировать
https://www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW
image.png9 Кб, 655x68
182 1982008
А так нельзя сделать?
183 1982018
>>77853 (OP)
Друзья, здравствуйте. Может ли кто-то, понимающий питон, посмотреть на эту проблему: https://github.com/philippj/SteamworksPy/issues/62

Очень нужно хотя бы понять, куда сосать с этой проблемой.
184 1982067
Какой мастхев для вебмакаки на текущий день?
Пока что имеются
- Средние знание пистона
- FastAPI

- RabbitMQ
- Kafka

- Redis
- ETCD
- MongoDB
- PostrgeSQL

- Amazon
- Docker
- GitlabCI

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

Последние пункты хотел бы особо расширить, так как хочется узнать больше архитектурных паттернов
185 1982100
>>81041
Надо обновить записи в базе. Их там дохера, и обновить нужно все
186 1982128
>>77853 (OP)
Сначала показалось что мужик на пикрелейтед ебет трех питонов в ротеш. В чем смысл слабой типизации питона?
187 1982159
>>82128

>В чем смысл слабой типизации питона?


В удобстве?
188 1982162
Объясните мне Я НЕ ПОНИМАЮ!
Импортирую переменную через from:
from modul import a
В пространстве имён появляется имя a. Меняю в файле modul значение a.
del (a) #объект а удаляется
from modul import a
print (a) #выводится изночальное значение, а не изменённое.

Вопрос: почему так нахуй? Где питон берёт значение, если объекта модуля modul нет?
Я знаю как перегрузить правильно, я хочу понять почему ТАК не работает.
189 1982176
Прочитал укус питона, а дальше что делать не знаю.
Ещё читать книжки, или что? Библиотек не знаю, горем с пополам могу назвать пару методов, да и всё.
image.png1,7 Мб, 1280x720
190 1982177
191 1982181
>>82159
Может быть может быть. Вот думаю это недостаток или плюс. С одной стороны разрабы должны быть не дураками. С другой стороны столько языков разных включая brainfuck что даже не знаю. Меня одолевают смутные сомнения.
192 1982191
>>82162
Импорт модулей это дорого, пистон кеширует данные по нему. Если хочешь перезагрузки, то юзай reload.
193 1982244
PyPy теперь соответствует спецификации/реализации Python 3.7. Кто-то пробовал его в деле?
194 1982248
Почему пистон не сделают компилируемым? ГОвно же с утиной типизацией через interface смогли
195 1982272
>>82162
То есть в памяти где-то всё равно сидит объект модуля из которого импортировали переменную?

>Если хочешь перезагрузки, то юзай reload.


Да я же говорю - я знаю как.
196 1982273
>>82248
Зачем? Код и так компилируется, если может.
197 1982279
>>82176
читай еще и решай задачки
198 1982302
>>82176
ИМХО укус питона это рекламная брошюра питона, а не учебник никакой. Я после прочтения книжку понял, а про питон не понял нихуя. Что и как делать то? Но после него проще читать уже что-то более серьёзное. Я после него Лутца читаю, но он не для всех - слишком подробно.
199 1982307
>>82273
Я надеюсь, что ты не имеешь ввиду pyc файлы, я про нормальную компиляцию с бинарником и запуском без интрепретатора на машине
200 1982312
Питоны, вы в rest api отдаете вложенные объекты или делаете несколько запросов и "собираете" связанные объекты на клиенте?
201 1982316
>>82312
Если было бы много дублирующихся данных, которые можно было закешировать в разных запросах, то делал бы второе.
202 1982337
У кого-нить есть опыт работы с протоколом MODBUS, в частности с библиотеками типа pymodbus?
203 1982350
Хочется попасть в яндекс на стажировку, вроде в питоне немного разбираюсь, но вот меня смущают сильно пункты про классические структуры и алгоритмы, когда можно понять что ты хорош в алгоритмах? Ну знаю я различие между кучей и очередью и стеком, знаю алгоритмы сортировки и алгоритм быстрой сортировки, немного знаю синтаксис си и си++ с указателями и т.д, а что еще важно? Кроме литкода что-то еще важно дрочить?
204 1982352
>>81036
Обновлено: ни треды, ни асинхронка не помогают
Походу в postgres стоит лок на операцию update, как его блин убрать
image.png43 Кб, 1415x643
205 1982360
Я новичок, чо мне питон мозги трахает?
206 1982369
>>82360
Решил,скобки потерял
207 1982372
>>82176
так он только простые конструкции объясняет,
https://proproprogs.ru/
вот тебе годный сайт блогера selfedu, он чуть направит тебя
208 1982379
>>82369
Если написано Syntax Error то значит это ты долбоеб и питон тут ни при чем
Даже не сри такими кнйсами здесь
209 1982382
>>82350
Графы, деревья и алгоритмы обхода их знаешь? Всякие задачи на вычисление вложенных скобочек решал?
210 1982384
>>82337
Я с модбасом работал, с pymodbus - нет.
>>82352
А объединять запросы в один не получится, как в джанге bulk_update()?
211 1982387
>>82352
Дурачок, лок стоит для того, чтоб целостность обеспечить. Он же не знает, собираешься ты обновлять одно поле 10 раз или что ты делать будешь.
Я тебе уже написал, собираешь запрос в один update и обновляешь.
212 1982409
>>82384
Ну вот смотри. Через модбас терминал я посылаю реквест в шестнадцатиричной системе и получаю ответ в ней же. А в паймодбасе есть функция, через которую запрос делается. И там только три аргумента - адрес, количество регистров и юнит ID. В итоге я получаю сообщение что не получено никакого ответа. А в терминале я посылал реквест из 4 параметров - адрес, функциональный код, адрес регистра и количество регистров.
чяднт?
213 1982415
Помогите с датафреймами.
Есть несколько датафреймов с котировками и датами. Мне их нужно совместить. Но прикол в том, что даты не совсем совпадают. Если что даты идут как индексы. Мне нужно чтобы в финальном фрейме были все даты, а если котировки на заданную дату нет, то она заменяется на предыдущую.
Пример исходных данных и результата в пастебине. https://pastebin.com/5HiEb47C
214 1982435
>>82409
Я так понимаю, ты создал правильный инстанс клиента, с правильными параметрами, вызвал метод .connect() и он вернул True, все так?
Если нет ответа, то скорее всего адрес слейва неправильно указал.

>там только три аргумента - адрес, количество регистров и юнит ID


Все правильно, функциональный код pymodbus за тебя подставляет. Адрес - это адрес регистра, unit - это адрес слейва.

>чяднт?


Не показываешь код. Без кода трудно угадать, что не так.
215 1982448
>>82435
Первый пик - отправка запроса и прием ответа в терминале. Все работает нормально. Второй пик - пояснение реквеста. Третий пик - мой код.
216 1982452
>>82435
Все зараболо! Ты был прав, я адрес слейва неправильно писал. Лучей добра тебе!
217 1982453
>>82435
Все заработало! Ты был прав, я адрес слейва неправильно писал. Лучей добра тебе!
218 1982460
>>82387
Собрать запросы INSERT в один - хуйня вопрос. Дефолтный пример это 1й пикрил
А как собрать запросы UPDATE в один? Хрень со второго пикрила - ерунда, он обновляет любые строки где проходит condition
219 1982485
>>82460
Через UNION ALL или через JOIN на временную таблицу, где будут твои параметры под кондишн
220 1982514
>>82485

>UNION ALL


Лучше не стоит, равносильно в цикле запускать обновление
>>82460
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;
221 1982571
Почему про ООП и классы так мало пишут, если это едва ли не самое важное в погромировании?
222 1982594
Есть список в котором дохулиард 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 тоже медленные). Можно ли как-то то ускорить такую операцию?
223 1982701
>>82594
Это выглядит как очень подходящая для распараллеливания задача. Порезать исходные данные на N кусков, запустить N дочерних процессов, каждый процесс обработает свой кусок, а потом склеить результаты. Можно самому, с помощью модуля
concurrent.futures из стандартной библиотеки, можно поискать какие-то свои подходы для numpy, может библиотеку какую поискать
224 1982704
>>82571
Где мало пишут? Про ООП литературы просто дохуя.
225 1982716
>>82382
Писал когда-то разложение дерева в словарь питона, но это все тоже прочту и порешаю
226 1982723
>>82701
multiprocessing.imap_unordered
227 1982732
>>82723
селффикс
>>82701
df_split = array_split(df, N)
with multiprocessing.Pool(8) as pool:
____df = pd.concat(pool.imap_unordered(process_func, df_split))
Если не важен порядок
228 1982741
Объясните дауну, куда смотреть во вкладке Network в инструментах браузера, чтобы спарсить динамическую страницу (подгрузка фото).
Пробовал гуглить, но везде одно "смотри network". Где можно подробней про это почитать?
229 1982748
>>82741
Двачую. Daun++ где почитать про парсинг веб страниц.
230 1982773
>>82701

>Это выглядит как очень подходящая для распараллеливания задача.


Нет. Это не вычислительная задача, а прогон по памяти. Тебе дороже будет рассылать по процессам, чем делать всё в одном процессе.
231 1982776
232 1982779
>>82773
А если там правда 100500 тысяч мильенов массивов в списке? Неужели при больших объемах парализация не поможет ускориться на многоядерных процессорах?
233 1982783
>>82779
Чтобы запустить что-то параллельно, надо раздать распределить по процессам задания. Это сложно и дорого.

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

Это скорее многопоточная задача. Кстати надо тестировать, может она адекватно работает под тредами, поскольку работа должна быть внутри np, которая не задевает GIL.
234 1982804
>>82514
Нихуя себе
Со 100 секунд время исполнения запроса упало до 800 м
235 1982807
>>82783
Когда данные реально большие, эти расходы не важны, иначе бы параллельных вычислений просто не было бы

> которая не задевает GIL.


Когда используешь процессы, а не треды, на GIL похую
236 1982810
>>82804
800 мс
237 1982815
>>82807
У каждого процесса своя память. Тебе надо расклонировать твой список по другим процессам, потом собрать результат с других процессов. Это очень дорогие операции, они дороже вызова np.roll() будут.

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

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

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

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

Здесь проблема в том, что используется дорогой вызов np функций с передачей туда np.array объектов.
238 1982830
Как мне форсированно сохранить данные которые я записал в файл (при помощи open('filename', 'w') ) ?
Если где-то в процессе выполнения скрипта случится исключение или просто прога вылетит, то уже записанные данные не исчезнут?
239 1982837
>>82830
Для надёжности надо метод flush() использовать, это принудительный сброс данных.

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

Возможно тебе стоит чуть архитектуру изменить, вынести открытие-запись в файл в отдельные функции, перехватывать исключения, которые у тебя возникают, и в обработчике исключений делать закрытие файла.
240 1982838
>>82830
У open есть настройки буфферинга. Алсо, можно явно делать flush.
241 1982848
>>82701
Да такая мысль тоже была. Надо попробовать.
242 1982854
Анонче, пилю юнит тесты на пайтест. Есть вопрос как делать:
Есть один продукт, который будет интегрироваться с другими.
Задача: писать тесты собственно для продукта И для интегрируемых продуктов.
Вопрос: Стоит ли для каждого продукта, включая собственный пилить отдельный репо? После успешной интеграции с продуктом, тесты будут переделаны вместе а продуктом. Спасибо. Продукт Тим сказали мне делать ресерч как лучше хуже.
243 1982855
>>82773

>Тебе дороже будет рассылать по процессам, чем делать всё в одном процессе.


>>82723

>multiprocessing.imap_unordered


Если основное количество вычислений будет делаться нампаем, то можно использовать потоки - они будут работать как надо.
image.png31 Кб, 1118x235
244 1982895
Ох Иисусе Христе блять... Ебаный Пуйчарм... Вот че он мне блять понавыделял? А главное - нахуя?
Весь экран вдруг засрало зеленым цветом, хуй пойми зачем и почему, как убирать нахуй? Пидарасы из жетбрейнс здесь сидят? Рот я ебал вашего говноконвеера, нахуй на VSCode съебываю
245 1982912
>>82855
Смотри на задачу, там надо делать np.roll(np.array, shift).

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

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

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

Я почему-то думаю, что тут можно какие-то более глубокие оптимизации делать. Не просто же так у него вот эти мелкие np.array присутствуют, что-то с ними он ещё делает.
image.png4 Кб, 413x60
246 1982927
В списке есть тупл как я понял как сделать обычный список, чтобы у каждого элемент был свой идекс?
247 1982928
>>82895

>нахуй на VSCode съебываю


помянем
248 1982936
Первая картинка. Снизу время выполнения. По какой причине способ через s+= быстрее, чем через ф-строки и генераторы?

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

>>82927
Вторая картинка?
Ну либо если тупл один, то просто [0] допиши за списком, чтобы оно этот один тупл извлекало?
249 1982948
>>82701
вообще numba jit вроде хорошо дружит с numpy
250 1982949
>>82594
Скинь куда-нибдь текстовый файл с дохулиардом np.array, бинарник и код для его открытия или код для генерации.

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

Или не скидывай, я сам сгенерирую - просто масштабы укажи, сколько нулей и какие размеры массивов.
251 1982954
>>81315
У тебя main нет вo view, есть text.
Я тyт тoже джангy стал изyчать, если xoчешь мoжнo скooпеpиpoваться типo peer-to-peer leaning
(Автор этого поста был забанен. Помянем.)
252 1982979
>>82954
Это не джанга, я питон пока учу. Первый том Лутца вот дочитал.
253 1982990
254 1983013
И меня возьмите в гомоджангу, надо за месяц освоить.
255 1983031
>>82949
Код с цифрами скинуть не могу np.array те что внутри 100 элементов, всего их в списке порядка 107, ведущих нулей от 0 до 100.
b243448595.png455 Кб, 1069x1340
256 1983055
Сап, двач, есть один проект, который загружает настройки из файла settings.ini

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

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

В чём может быть дело?
q8fBiaIvd6A.jpg174 Кб, 1000x500
257 1983063
Чуваки, как можно объединить два списка поэлементно в один?
Например:
list1 = [a, b, f, g]
list2 = [1, 2, 3, 4]
нужно list3[a1, b2, f3, g4]
258 1983065
>>83063
list3 = []
for i in range(len(list1)):
list3.append(list1+list2)
изображение.png18 Кб, 746x234
259 1983071
260 1983073
>>83063

>list1 || list2

261 1983075
>>83063
[''.join(map(str, i)) for i in zip(list1, list2)]
262 1983076
>>83055
Константа меджик там, юзай !
263 1983078
>>83076
не понял, можно поподробнее?
Стикер63 Кб, 200x200
264 1983080
>>83071
list3 = [list1 + str(list2) for i in range(len(list1))]
изображение.png1,8 Мб, 1332x753
265 1983081
266 1983083
>>83071
>>83065
>>83073
>>83075
Спасибо, парни! Лучей добра вам
267 1983096
>>83055
бамп вопросу
268 1983104
>>83078
Пукон кривое говно и не переопределяет адрес.
Для начала найди как вывести текущую директорию и попробуй пройтись по ней в верх.
269 1983106
>>83104
я бы согласился, но ведь с начальным параметром то работает
270 1983113
>>82594
С np не работал, но, если просто через async делать, такие результаты.
271 1983125
>>83113
А, тут малость не то сделано: вместо всех начальных нулей только один свапнут. Но не думаю, что сильная разница была бы.
изображение.png411 Кб, 1260x895
272 1983127
>>83055
Может это даст какие-то зацепки?
Слева лог работающей программы. Справа, когда я заменил путь в файле конфигурации. (после выделенной строки начинается ошибка)
Если вернуть значения в файле конфигурации обратно, то программа всё равно не запускается
273 1983135
>>83113

>async


Когда вы блять уже усвоите что асинхронка в принципе не способна сделать быстрее ни одну числодробилку? Ни в пистоне, ни в жс, ни где-то еще
274 1983139
>>83135
Ну, вычисления, может, и не сделает, а здесь другая история.
275 1983155
>>83127
сравнил - это два одинаковых лога до этого момента
276 1983195
>>83139

> здесь другая история


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

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

Алсо, для более сложных задач, с несколькими потоками исполнения. У тебя всё будет работать не так, как ты зассчитываешь. Не смотря на слова async/await вызов функции main, весь цикл и вызовы swap_zero будут полностью синхронными, а не так, как ты ждёшь, наверное.
277 1983198
>>83055
сука 3 часа
в итоге оказалось, что
config.read(ini_path, encoding="utf-8")
можно записать без энкодинга, и всё равно будет работать
config.read(ini_path)
278 1983199
>>83198
ну и мякотка в том, что без энкодинга не работает в pyCharm'e
вообще хз, как вы мне бы могли помочь
15834518320332.jpg75 Кб, 711x711
279 1983200
Аноны, я вот только начал. Прохожу курс на юдасити. У меня такой вопрос.
До этого ничего не учил именно на инглише, я очень свободно понимаю и терпимо говорю, никогда не тестил свой уровень. Но я читаю на русском с умопомрачительной скоростью. Если сравнивать - книга на русском у меня упирается в 200-300 страниц до "уставания", на английском около 70-80 страниц, это конечно касается худ.литры.
Вот и вопросы такие:
1)Cтоит ли мне миксовать курсы и гайды на инглише с базовыми книгами на русском?
2)Вообще эти базовые книги на русском актуальны, хорошо написаны и их следует читать?
3)В случае если стоит ради бОльшего количества информации и большей ее доступности читать литературу на русском - не возникнет ли у меня проблем с мешаниной в голове между, например, integer и целое число и прочие понятия, даже базовые арифметические операции лучше наверное запоминать на одном из двух языков?
4)Если таки стоит читать на русском - какую книгу в бумаге я мог бы купить? Мне так очень удобно, с закладками, выделением. У меня есть ридер, и телефон офк, но это немного не то.
Сорян за нуботу, хочу организовать как-то свой "курс" заранее
280 1983215
>>83031

>Код с цифрами скинуть не могу 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, это не проблема. Иначе сложнее, но скорее всего и для этих ситуацию решения есть. Может другие аноны подскажут.
281 1983217
>>83195
Да, действительно. Что-то мозги заспагеттировались.
Через asyncio даже медленнее получается.
282 1983231
>>82594
Хуй знает че тут всякие подосы развели. Папки пришел нахуй, всем лежать, всем стоять

ProcessPoolExecutor ёпта
283 1983247
>>83231
Убеждаюсь в том, что без целевой вышки нельзя допускать до программирования вообще. Максимум простенький фронт делать.

А может быть и можно. Должен же кто-то создавать спрос на 128-ми ядерные процы и 1тб память для запуска простейших задач, которые деды на 386 процах реализовывали.
284 1983249
>>83247
У нас такое качество вышки что это вообще не показатель, все зависит от мозгов индивида, это не компьютер сайенз в гарварде где дрочат. У нас старый пердежный дед набирает часы и рисует хуету на доске, а сдается все беготней, молитвами, пиздежом и покупкой готовых работ, т.к. делать их тебя не то что не научили, а почикали программу так что забыли даже попытаться научить.
19345011.jpg117 Кб, 792x595
285 1983257
>>83247
А ты дохуя программист у нас?
286 1983258
>>83247

>А может быть и можно. Должен же кто-то создавать спрос на 128-ми ядерные процы и 1тб память для запуска простейших задач, которые деды на 386 процах реализовывали.


Вот ты и выдал свою необразованность, плебей.
287 1983259
>>83200
Современных адекватных русских материалов очень мало. Культура перевода вымерла. Старые книги были очень хорошими, и авторские русские книги, и качественные переводы. Сейчас почти нет, только когда документация от разработчиков, вроде nginx или postgres.

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

Поэтому лучше на английском.
288 1983261
>>83257
Определённо. Я не будут тыкать технологию туда, где она не эффективна, не нужна и вообще не работает.
289 1983286
>>83200
Крепкие оригинально русские книги по айти это вообще редкость, а переводные это неизбежные косяки перевода и лаг по сравнению с оригиналом.
Я вообще хуею с тех, что боятся английской тех. литературы. Это не художественная, где дохуя собственно художественности и всяких изъебов литературных.
Да и какая скорость чтения для учебника, надо вникать и практиковаться, подгугливать и смотреть документацию параллельно.
290 1983289
>>83286
>>83259
Спасибо, я просто наивно полагал что наша школа перевода и тут творит чудеса, но видимо нет.
Ну тогда не особо важный, но все равно вопрос - если я все таки захочу бумажный учебник(желательно мягкий), то какой выбрать и можно ли его заказать, не знаю, с амазона, типа он вообще дойдет, кек?
291 1983298
>>83289
С амазона можно заказывать через форвардера, там будет какая-то пятерка-десятка сверху максимум.
Конкретные тайтлы хз, надо знать твой уровень.
b243447199.png347 Кб, 1069x1160
292 1983339
>>83198
ага, короче аноны. СУКА 6 часов спустя я просто удалил файл конфигурации, создал текстовый домент, переименовал его в .ini и всё заработало. Винда что-то делала с файлом конфигурации, что он переставал работать
293 1983371
Я наверное какое-то кощунство спрошу, потому что поиск по треду вообще ничего не показал, но стоит ли проплатить какой-нибудь уже скомпилированный курс типа удеми или кодеакадеми. Я не ради какого-то всратого сертификата спрашиваю, а потому что у меня фантазии нет чтобы свои проекты придумывать, а там все включено. Или я не прав и с таким мышлением не преуспею?
294 1983391
>>83371
мне нравятся курсы, но я бы посоветовал тебе начать с бесплатных (rutracker)
295 1983528
>>83031

>внутри 100 элементов, всего их в списке порядка 107


>>82594

>работает очень медленно


Ты точно правильные числа написал?
1000 строк по 200 элементов через слайсы работают за 30 мс.
https://ideone.com/KJCLr8

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

Там двумерный np.array вместо списка - преобразование списка в np.array всё-равно 0 мс требует, а вот jit-вариант просаживается до 9 мс с ним.
296 1983566
>>83528

>1000 строк по 200 элементов через слайсы работают за 30 мс.


а у него 10 миллионов строк по 100 элементов. Получается несколько минут при такой скорости.
изображение.png7 Кб, 300x173
297 1983580
>>83566
А, это он 10^7 107 хотел написать...
Тогда хули он думает, написать программу на си на 20 строк, и передавать в неё массив - или нубму заюзать.
Питон же не для таких задач, очевидно.

Вариант с мусором из нумпи не проходит из-за того что у меня оперативка заканчивается, а так за 4 секунды выполняется самым тупым кодом с нумбой.
298 1983617
>>83195

>асинхронный кал на х86


ясно
299 1983618
>>83247

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


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

>Максимум простенький фронт делать.


Фронт уже давно сложнее бека.
300 1983630
Подскажите плиз.
Первый раз делаю питон проект с базой данных.
веб страничка где ты получаешь инфу из базы и выводишь ее. и кнопка где ты заносишь инфу в базу.
Разве верно получать данные из бд напрямую при каждой загрузке страницы?
Как правильно это сделать?
301 1983637
>>83630
Ты пидор
Гугли про кеш
302 1983638
>>83630
если база данных небольшая, то так и надо
303 1983642
>>83638
Ты че пидор что ли?
304 1983791
>>83630
Не занимайся преждевременной оптимизацией.
305 1983824
>>79591
Хороший совет. Возьму на заметку.
306 1983841
Салам двач. Требуется пояснение за потоки и структуру программы.
Для опыта пишу говнопрогу - генератор карты сайта.
В идеале: у главного класса proc_manager было три сына - классы старший page_walker, средний test_url и младший, совсем дурак и кроме писания в файлы нихуя не умеет - file_writer. Каждый реализован отдельным процессом средствами модуля meltipricessing для создания процессов и общения процессов между собой.
В классе page_walker хочу запустить многопоточное чтение очереди Queue, наполняющуюся годными урлками из процесса test_url, чтобы минимизировать ожидание ответа от сервера. Самый простой способ, что нашёл - модуль concurrent.futures и класс ThreadPoolExecutor

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

1. Многопоточная обработка не робит, почему? Что закоментить ThreadPoolExecutor, что self.walk() - разницы никакой. Почему?
2. Сама структура программы, которую я описал в идеале - насколько она приемлема? Так программируют или есть шаблоны проектирования попроще и поудобнее?
3. Есть ли способы огюрганизовать многопоточное чтение из очереди и доступ по урлкам проще, чем описанный?
Буду рад любым советам
307 1983878
>>83841
Код принимаем только на абонентский ящик, не забудь вложить марки для ответа.
308 1983884
>>83841
Да не нахуй... 1 апреля же прошло уже
309 1983918
>>83289
Почему тебе нужен именно мягкий учебник? поясни.
310 1983920
>>83918
Носит в сумке наверное.
311 1983946
>>83918
Чтобы было легко и не жалко его насиловать же.
Я просто вчера часов 8 учил стартовый синтаксис по юдасити, мне как преподу не нравится их структура, да простые, но когда говорят о дата-структурах лучше бы мне сначала озвучили их всех, а потом толкали про каждый телегу, в итоге я вчера остановился на сетах, которые судя по юдасити как бы нахуй не нужны, ну т.е. объяснить их преимущества и особенности перед листом они как бы не могут, потому что он идет 3м в списке, и кажется после листов и туплов просто ненужной хуйней. Я понимаю что скорее всего сет будет наиболее часто встречаться далее, приходится читать извне, и книга позволяющая быстро освежить знания без гугла мне была бы в помощь.
312 1984034
Можно ли открыть в канвасе изображение и сделать из него например трапецию? Хочу сделать изображение гранью вращающегося куба. И не пойму как это можно сделать.
313 1984055
Посмотрел сейчас фильм Житие Брайана по Монти Пайтон. Почему в честь него назвали ваш язык? Он такой же смешной и абсурдный?
314 1984061

>2020


>Опять пишешь свой реквестс потому что попенсорс ебаны уже лет пять теряют формдату и куки на редиректах

315 1984081
>>84055
Это легенда прикрытия.
316 1984082
>>83946

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


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

Ну и иногда плюшки вроде возможности удобного объединения, вычисления разности и т.п., но это реже на практике встречается.
317 1984121
>>84082
Я пока пытаюсь с этим очень ограниченным набором знаний придумать себе промежуточную задачу, которая меня удовлетворит. Я придумал, но для нее нужны роллы процентов, случайные значения, я пока до этого не дошел, но уверен что это все есть в любом языке.
В сетах я уже использовал юнионы и сделал задачку про ашотов на рынке, которая выдает ответы в духе - какой фрукт не продают оба ашота, какой фрукт продают оба. По идее сейчас с дикшинари я смогу забить и цены и их придуманные локации, чтобы сделать поисковик самых дешевых помидоров на рынке ближе всего к тебе.
Сорян за нуботу, я тут 90% треда даже не понимаю, только вот начал и мне пока все нравится.
image.png144 Кб, 300x195
318 1984147
>>84121
import random
изображение.png67 Кб, 2139x1014
319 1984174
На что заменить конструкцию return "Vector(" + str(t) + ")" ? Она не проходит тесты. А без кавычек ответ и вовсе нельзя прочитать.
320 1984196
>>84174
На return Vector(t) по идее
321 1984199
>>84196
Тогда вылезает нечитабельная залупа <__main__.Vector object at 0x7f1b11a7c048>
322 1984202
>>84174
Какие "тесты"?

п.с. ты анус ставишь что массивы a и b точно будут одной длины?
323 1984216
>>84199
Добавь туда два метода __str__ и __repr__:
def __str__(self):
return f"vec [{', '.join(str(x) for x in self.x)}]"
__repr__=__str__
324 1984219
>>84199
__repr__ реализуй, а не вот эту хуйню со строками возвращай

__str__ будет __repr__ использовать, так что его вполне хватит
325 1984286
>>83946
С перечислением структур данных есть проблема - их слишком много (даже в стандартной библиотеке). Частота их использования падает экспоненциально при удалении от str/list, а если говорить про те, которые используются 90% времени - то ты их уже изучил.

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

Я не знаю, какую книгу тебе посоветовать, но проверь - может документация для тебя будет работать как справочник? Во-первых, есть сайт. Страница, которая тебя интересует, https://docs.python.org/3/library/stdtypes.html, написана фундаментально, в ней все имеет смысл, но может быть трудно выловить суть. Во-вторых, функция help выводит справку на объект: help(list), help(dict.items), help('foobar') и т. д.
326 1984295
>>84286

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


Очевидные множественные проверки на наличие элемента без set ты никак не сделаешь
мимо делал лочки
327 1984303
>>84174

>return "Vector(" + str(t) + ")"


Предыдущие ответы все правильные, просто добавлю, что такой return вернет строку, а не объект класса Vector. То, что тебе "вылезает", когда ты работаешь со своим классом, определяется в этом же классе методами repr или str - выше это уже написали. "Вылезти" всегда может только строка. Даже если кажется, что "вылазит" не строка, этап превращения в строку происходит всегда.

Кракозябра "Vector object at 0x7f1b11a7c048" - это работа той реализации метода repr, которая досталась тебе от класса object - (неявного) предка всех классов, которые ты определяешь.
Screenshot from 2021-04-02 20-52-04.png5 Кб, 261x123
328 1984327
>>84295
Для рутинных проверок это, конечно, лучший вариант. Определенные ситуации требуют frozenset, но говорить "зачастую нужно" было ошибкой.
329 1984335
>>84303
Я уже немного бьюсь головой об стол. От кракозябры я избавился своим способом, но вот сверить длину и нормально выбросить исключение не выходит. Это уже на завтра.
330 1984365
Смотрите, у меня есть приложение, которое в просто потребляет 80мб, если загрузить, например 200к объектов, то в памяти должно быть минимум по одному сложному объекту + корутина + еще что-то, но я разделил прибавившуюся память на кол-во объектов и получил что на 1 объект требуется 6-9 байт, я может чего-то не понимаю, но разве на 1 переменную минимум 64 бита не выделяется в системе? А тут еще питон и более сложные объекты, почему так мало памяти потребляется?(объекты в программе по сути словари с переменными и парой методов, переменных штук 10 и у каждого объекта почти все разные(разные строки, разные числа))
331 1984368
>>84055
Монти Пайтон это не только фильм про Брайна, у них было целое шоу на телевидении и еще несколько фильмов.
image.png290 Кб, 384x737
332 1984374
чё учить после того как я выусл всё это????
333 1984377
>>84365

>но я разделил прибавившуюся память


Где память смотрел? Всё там верно прибавляется.
334 1984384
>>84365
Списки (и вероятно словари и прочие коллекции) не создаются с нулевой длинной - они создаются с такой длиной, которая статистически минимизирует необходимость перевыделения памяти под коллекцию. При необходимости расширить коллекцию она увеличивается в два раза - это хорошая (лучшая?) стратегия по минимизации количества перевыделений памяти.

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

Скорее всего, при загрузке новых объектов, для них уже было выделено место.
335 1984385
>>84374
Решай задачи.
336 1984399
>>84377
Через systemd status
337 1984400
>>84384
Но вопрос остается, если есть объект в котором хранится 10 полей, например, строк, которые иммутабельны, это разве не значит что на объект минимум 30 байт понадобится? А то я может чего не понимаю важного
338 1984416
>>84400
Смотри функцию sys.getsizeof()
она тебе показывает, сколько объект занимает.
При этом надо учитывать, что есть у тебя список, например, то это будет размер самого списка и указателей на объекты, а без размеров объектов.

То есть условно список из 1000 объектов это 8кб + память на объекты, это на уровне ещё 30 кб минимум.
339 1984418
>>84385
А после задач чё учить?
340 1984423
>>84365
Скорее всего у тебя некорректные замеры.

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

Короче тут много нюансов.
341 1984424
>>84400
Конечно, память понадобится, но если ты видишь, что процесс забрал себе меньше памяти, чем ожидалось - значит, у процесса заранее была свободная неиспользуемая память. Все-таки, в процессе работает интерпретатор, который наверняка не хочет на каждое новое поле в конструкторе просить у ОС память. Это не вопрос конкретно к питону, это вопрос ко всему стеку.

Ты можешь узнать размеры объектов при помощи модуля sys, но это тоже непросто.
342 1984433
>>84418
Задачи - решать, а не учить. Что касается языка, то ты уже все выучил, применяй знания теперь. Решил, чем хочешь заниматься, или не получается?
343 1984441
Есть один скрипт, который последовательно делает всякое. Я хочу чтоб он весь работал как функция. То есть я буду вводить значения исходных данных, а мне выдастся результат. При этом я не хочу весь скрипт переписывать в виде функции def xxx(a,b):.... Я думал это решается тем что я сделаю исходный скрипт модулем, но оказалось, что при импортировании скрипт исполняется. Естественно это невозможно без исходных данных.
Так вот есть вариант не переписывать скрипт как функцию, но чтоб в него передавать иходные данные и он с ними исполнялся? Надеюсь понятно описал.
Прост скрипт длинный и у меня теряется форматирование при простом копировании строчек. Да и вообще лень под def всё загонять.
344 1984442
>>84424
Комментарий к тому, что на скринах, другой анон
На первых двух память расходуется в классе, а не в экземплярах (инстансах) класса
Чтобы узнать размер класса, надо сделать
sys.getsizeof(C), но это очень большая величина будет, потому как там очень много системных переменных на каждый класс.

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

Тут очень много тонкостей, конечно, надо помнить, что все объекты в питоне хранятся как ссылки, поэтому узнать реально занимаемый объём довольно сложно.
345 1984444
>>84441
Нет, не понятно ты написал. Оформляй всё как функцию, единственно грамотный вариант.

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

> Нет, не понятно ты написал.


Приведу пример. В исходном скрипте №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 у меня некоторые отступы при копировании съедает, поэтому муторно.
347 1984450
>>84433
Не получается( Есть какой ни-будь совет по поводу этого?
348 1984451
>>84374
Метапрограммирование
Многопоточность
Асинхронность
ORM и асинхронные операции с БД
Серверы и бэкенд разработка
349 1984452
>>84451
Что считаешь самым интересным из перечисленного, и почему?
350 1984456
>>84451
И ещё где лучше всего брать задачки?
я знаю сайт:
https://www.codewars.com
На этом мои полномочия всё.

Кстати, ООП это хуйня или не хуйня всё таки? По тому, что я прочитал, напрашивается вывод - всё полезно в меру
351 1984468
>>84452
Самое интересное для меня - многопоточность и асинхронность. Прикладных задач такого рода на питоне относительно мало. Самое востребованное - бекенд.

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

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

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

ООП нужно. Не прям нужно-нужно, но видеть его ты будешь постоянно.
352 1984480
>>84468
Бля чел спасибо большое
353 1984509
Если нужно прописать для класса статический метод, нужно обязательно декорировать его как "@staticmethod"? Или эта фича просто для читаемости? Работает же, вроде, и без декоратора.
354 1984512
>>84509
А, разобрался - это чтобы можно было его из инстансов вызывать.
355 1984515
>>84374
Здесь совсем база. Смотри на всякие генераторы, итераторы, контексты, классы, замыкания и т.п.

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

Вот делай.
356 1984525
>>84515
Кстати, если хочется в игры pygame полная хуйня, так поиграться, или там реально можно что нибудь человеческое сдлеать?

я какое то время совсем чуть чуть в юнити погружался и в c# знаю примерно столько же сколько в питоне
357 1984557
Чет не могу придумать как из нескольких датафреймов или списков вытаскивать отсутствующие в целевом фрейме/списке даты и добавлять их по по порядку.
Чтоб понятней было вот пример https://pastebin.com/upNwa5US
шаблон.png2,3 Мб, 1280x720
beard 358 1984572
Вкатывальщики на месте?
Никто не хочет вместе повкатываться?
У меня начальный уровень, знаю синтексис-хуё-мое, пытаюсь вьехать в ооп.

Если кто хочет присоединиться оставяйте телегу.
359 1984592
Как заобщать два процесса между собой с максимальной скоростью по типу FIFO? Обычные файлы оказываются быстрее средств модуля multiprocessing
360 1984595
>>84572
А ты няшный?
Че делать будем?
361 1984596
>>84595
Обсуждать что не понятно. Решать задачки, а потом смотреть кто лучше решил.
362 1984597
>>84596
Так я тоже самое могу и на дваче сделать, а посмотреть кто лучше решил в лучших решениях на том же кодварсе или чекио
363 1984604
>>84597
Ну значит это не для вас молодой человек написано.
Мне кажется кооперация, это именно что позволило человеку слезть с пальмы. На приведенные аргументы ,я отвечу аналогией:
Есть допустим сессионная игра, где можно играть либо со случайными людьми, либо взять уже знакомого напарника и осуществлять поиск игры уже с ним, в обоих случаях ты играешь в команде, но даже напарник будет играть чуть хуже чем случайные тимейты, эффективность игры с напарником будет выше. Тим - команда, плей - играть, группа всегда действует эффективней одиночек. Можно сказать что главное различие в степени отвлечённости.
364 1984609
>>84604
То есть ты хочешь кооперироваться с таким же ебаклаком как ты и потом будете сравнивать ваши писаки с лучшими решениями, а если че потом бежать на двач и спрашивать че не так, все правильно понял?
изображение.png121 Кб, 233x300
365 1984615
>>84609
Правильное решение, не то что записано в лучших, а то что помогло разобраться.
366 1984623
>>84604
БИТАРДИЯ ДЛЯ ВКАТЫВАЛЬЩИКОВ 2.0
367 1984672
>>84448
Скрипт№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 368 1984691
Есть допустим класс 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]
369 1984757
>>84691
Как раз занимаюсь сейчас тем, что хочу разбить класс-монолит на несколько. Не на питоне правда.

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

Так удобнее поддерживать, структура данных постоянна, надо задокументировать и хранить в отдельном модуле. Обработчики данных активно меняются и перепиливаются, их может несколько версий разных быть, можно наследовать от класса с данными и мешать друг другу не будут.
370 1984760
>>84604
Идея красивая, не новая, но сложно реализуемая. Особенно когда удалённо всё общение, да ещё через месседжеры.

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

Этим кстати универы как раз очень хороши. Там все одного возраста, статуса, вместе осваивают что-то, общаются на эти темы и тем самым быстро растут в уровне, даже если в программе про айти мало.
1112223333.jpg188 Кб, 1608x867
371 1984778
Помогите начинающему, я сделал так, потому что логично использовать рейндж(ну в моей голове логично), по идее я этого еще не должен уметь и он выдает такое говно, при этом для любых чисел работает все. Что ему не нравится?
372 1984788
>>84778
Проверяй что вводят, мож там строки хяучат.
373 1984804
>>84691
Если классы небольшие то канешн разносить не надо. Если они крупные то создавать один God-class херовая затея
Был на проекте где было 2 таких крупных класса с ебалионом методов в каждом (штук 40 наверно), через какое-то время была абсолютно нихера не ясно что куда идет
374 1984807
>>84788
Я ебал в рот, они хотели этого
375 1984811
>>84691

>Не проще ли создать один класс


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

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

Стоит заметить, что изначальная предпосылка "класс - это данные и операции" здесь не нарушается. Меняется понятие данных - вызовы методов превращаются в объекты - и над ними тоже можно определять операции. Например, какой-нибудь класс 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...". В общем, твоя конкретная ситуация - это главная подсказка, как поступать.
376 1984813
>>84807
if x in range(a, b) работает только если x - число типа int. В общем случае ты пишешь либо как на скриншоте, либо if a <= x < b.
377 1984817
>>84813
Там в задании четко указано что число чисто int от 1 до 200.
Я видимо просрал понимание инклюзивности/эксклюзивности операторов сравнения, поэтому в башку автоматом пришла идея нагуглить есть ли range как явление и применить его.
378 1984819
>>84817
Ты же понимаешь что итератор in range должен целиком поштучно пройтись по каждому значению в нем пока не найдет совпадение? Насколько это хуевее простого знака сравнения догадываешься?
379 1984820
>>84819
Догадываюсь, вот и печет, благо там дальше задания внезапно проясняющие это
380 1984823
>>84817

>понимание инклюзивности/эксклюзивности операторов сравнения


Вероятно. В коде с range нет обработки отрезка [50; 150], а также числа 180.

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

>>84819

>итератор in range должен целиком поштучно пройтись


Не должен, в range эта операция переопределена и оптимизирована до нескольких простых сравнений.
381 1984826
>>84778
У тебя пропущен диапазон от 50 до 150
range (1, 50) работает в диапазоне от 1 до 49,
то есть если у тебя
range(1, 50), range(51, 100) то число 50 не обработается

Исключение из-за того, что ты некорректно строки сшиваешь.
Использую "txt {} txt".format(num)
Вариант использовать f-string или старые %d
Как ты делаешь работает в JS, в питоне нужно явное преобразование к строке
382 1984827
>>84823
И 200 тоже не дает пингвина.
383 1984830
>>84826
>>84823
Спасибо, я уже покурить сходил и дошло до меня в чем был косяк с рейнджами, прочитал про операторы снова.
384 1984848
>>84778
3 урока спустя они просят написать меня то что я написал сразу, кек
385 1984856
Кто-то сверху написал что Универы хорошо тем, что освавиваете программирование вместе с другими людьми.

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

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

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

Да у меня есть небольшие, или даже большие(хз) проблемы в понимание OOP, да и я до сих пор не знаю где мне нужно использовать замыкание или деструктор, может потом как нибудь пойму.
386 1984872
>>84856
Ну представь, ты хочешь выучить английский язык, тебе говорят что с мотивацией у тебя этой займет от полугода(в среде) до 2х лет очень ленивого учения если ты еще и тупой. В школе+универе ты учил английский лет 8 или около, по 2-3 часа в неделю. Если бы у тебя была мотивация, ты бы успел выучить за ~1200 часов 3 иностранных языка до флюент разговора, но ты прекрасно видел как твои одногруппники сдавали инглишь на 4-5, зная только матершину и мемасики.
Тут так же, мотивация и желание изучать что-то дает миллионный пинок под жопу любому окружению, инструментам(образовательная программа, группы, контроль успеваемости, конспектирование) если человеку не надо.
387 1984873
>>84856

>У меня в группе программирует 3-4 человека


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

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

Огромная разница. Вот представь, что в твоём окружении нет ни одного, кто бы понимал хоть немного в технологиях и кому это было бы интересно. Ты бы свихнулся и не смог развиваться.
388 1984882
Последний вопрос, анончики.
Я не понимаю почему это вообще работает. Типа питон понимает плурал форм в английском или я загоняюсь, типа до этого одиночная форма city или dildo не всплывала нигде, вместо воплей ЗАДЕФАЙНЬ city он спокойно делает свое дело. Я не понимаю почему
68843409019640.jpg19 Кб, 480x432
389 1984889
>>84691
A пocле зaдaч чё учить?
390 1984895
>>84882
Снова ты? Это конструкция языка, которую он понимает, причем тут задефайнь?
391 1984898
>>84895
Ну т.е. мне хотелось убедится, что он просто понимает единственное и множественное число английского, если я неправильно назову единственное или множественное число, то выдает ошибку что name is not defined. Мне это показалось странным
392 1984920
>>84672
Я уже переписал в функцию. Но спасибо за идею. В будущем пригодится.
393 1984929
>>84898
Какие числа?
for hui in iterable
На месте hui может быть что угодно, оно присваивается в этой конструкции.
1.png8 Кб, 205x162
394 1984931
>>84882
Конструкция "for x in y" неявно определяет новую переменную x вне зависимости от того, как конкретно она называется. Вот, например, обход списка в цикле while с явным определением переменной x - конструкция for x in y гораздо чище.
395 1984972
>>84889
Это твоя пизда?
396 1984975
>>77853 (OP)
В каком формате держать мини-кеш при использовании скрипта?

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

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

Не работа, свой скрипт.
397 1984982
>>84975
В принципе для этого уже есть готовые решения в стардартной библиотеке, смотри, например, на lru_cache в модуле functools
https://docs.python.org/3/library/functools.html#functools.lru_cache

Естественно ты можешь сделать аналог, возможно более функциональный. Или использовать какое-нибудь внешний сервис для этого memcached/redis, если тебе надо долго хранить, вне приложения.
398 1984986
>>84975
А если ты не хочешь поднимать redis, то может стоит глянуть в сторону sqlite, но это зависит от того, какие данные у тебя как ключ используются, какие тебе надо хранить.

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

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

Так можно хранить очень большие данные, создавать каталоги с именем-хешем, большие файлы и др.
399 1984993
Как по-православному хранить регексы, если в коде их много и на них плотно завязан функционал? Выносить в отдельный модуль как строки и потом вставлять эти строки в re.re_method? Какой-нибудь класс с регексами создавать? Алсо, стоит ли их отдельно компилировать на последних версиях пайтона?
изображение.png4 Кб, 623x67
400 1985004
Вывести на печать полученные числа с контрольными знаками, а также модуль и весовые коэффициенты.

скину пятихатку кто сделает
tg - @katarsssis
401 1985144
>>84975
cache = :MEMORY:
image.png41 Кб, 1345x477
402 1985319
схуяли макс арг пустой сиквенс блять? чё это значит вообще
403 1985352
>>85319
Если словарь пустой он по массиву и не идет.
404 1985361
>>84873
Социоблядики пытаются в прогерство, ещё небось друг другу в инсте лайкаете фото кода.
beard 405 1985368
У меня встал вопрос.
Вот учу я пит%ух%он, и хочу попробовать какой-нибудь уеб-фреймворк, например Flask. Но я так понимаю я немогу просто написать pip install flask, и сделать збс. К нему же ещё нужно доставлять какой-нибудь апач да?
406 1985384
>>85368
Чаще какой-нибудь nginx и gunicorn
407 1985388
>>85384
Я слышал что некоторые разрабатывают на винде ,а потом переносят в никсы, это что они это все говно себе на ПК корячат?
408 1985390
>>85388
Ты вполне можешь на винду WSL2 и Ubuntu поставить и не париться
409 1985410
Поясните для тупых, зачем нужен pickle? Чем его использование отличается от простого складирование в файл?
410 1985419
>>85410
По сети передавать
411 1985421
Анон, а подскажи как отправлять смс с компа самым простым способом? Симка и брелок от любого оператора не проблема. Само собой не бесплатно. Главное возможность автоматизировать отправку большого количества разных сообщений разным абонентам
412 1985422
>>83618
В каком месте сложнее? Там весь стек ограничивается одним фреймворком и парой либ
413 1985449
Допустим у меня есть класс который должен работать со словарями. Соответственно базовый объект класса словарь. Тогда правильно ли будет наследовать класс от dict и в ините прописать загрузку существующего словаря, либо создание нового если не существует, а потом уже полноценно вызывать методы для объекта?

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

Какой подход верный? Или оба имеют право на существование?
414 1985450
415 1985457
>>85449
1й не исключает второго. Если не передаешь ничего в инит, то создавай просто пустой, в чем проблема? Только наследоваться надо не от dict, а от абстрактного класса в зависимости от того, что тебе нужно (mapping или mutable mapping или еще чего) https://docs.python.org/3/library/collections.abc.html#collections-abstract-base-classes
416 1985495
>>85457
Тут вопрос немного в другом. Если допустим создаём класс без наследования, но хотим работать с ним как со словарём.
417 1985548
>>85495

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

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'}

.
418 1985597
>>85319
То и значит, max() с пустыми последовательностями не работает, max([]) кидает ошибку. По какой-то причине список a у тебя не сформировался, наверно, на вход подали x длинной 1 или вообще пустой, и твой цикл просто не запустился, и список a остался пустым. С этим можно бороться, используя значение по умолчанию, например, max([], default=0) не упадет с ошибкой, а вернет 0, но не всегда возможно найти приемлемое значение по умолчанию, тогда нужно следить, чтобы пустой список в b]max()[/b] просто не попадал, как-то по особому обрабатывать этот случай, ну или ловить и обрабатывать такое исключение
419 1985709
поскажите как обработать список подсетей cidr формата типа
8.8.8.8/24
8.8.8.8/16
192.168.1.20/24
192.168.1.20/8
итд

чтобы остались только маски которые вмещают большее количество адресов? (т.е из списка выше оставить /16 и /8)
420 1985712
>>85368
Для разработки хватит и фласка. Веб сервер (упомянутый стек nginx + gunicorn) понадобится для продакшена.
421 1985713
>>85709
переди в биты
422 1985715
>>85713
*переведи
423 1985718
>>85713
а смысл?
мне надо из файлика убрать дубли, оставив старшие маски.
424 1985757
>>85709
При помощи стандартной библиотеки: https://docs.python.org/3/library/ipaddress.html#ipaddress.ip_network
425 1985778
>>85757
Т. е. парсить подсети, адреса использовать как ключи в словаре, в значениях отслеживать текущее самое маленькое число (размер подсети).
426 1985781
>>85778
а как?

если я правильно помню ipaddress.ip_network проверяет на валидность адреса(а они и так 100% валидные) а вот как по маске сортировать я нигде не нашел.
427 1985813
>>85781
В общем долго объяснять
https://pastebin.com/QttRhFQi
428 1985920
>>85813
спасибо
429 1985923
Потсаны, а что означает конструкция arr[1:] в питоне?
Я не питонист, просто книжку по алгоритмам читаю.
430 1985944
>>85923
num py шолле?
arr[:] возвращает arr (alist[:] возвращает копию списка)
431 1985950
>>85923
Это значит, взять все элементы, начиная с первого, не забываем, что индексы у нас начинаются с нуля.
Так, если word = "qwerty", то word[1:] будет "werty"
432 1985970
почему этот код не работает?

from itertools import count
list(count(0)) # wait
print('done')
433 1986066
>>85970
count - бесконечный генератор. list бесконечно разворачивает его
434 1986236
>>85410
Сериализация же. Multiprocessing.Pipe использует pickle для свёртывания данных для передачи.
435 1986243
Работал кто с модулем 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(), чтобы вытягивать и в список или датафрейм?
Вот придумали люди программу,которая считает всё что нужно, но результаты выдает только неиндексируемым текстом или вообще графиками.
436 1986255
>>86243
А, всё наверное отмена. Покопался в методе summary, нашел пару методов. А потом оказалось, что функция dir(results) дает все методы, которые выводят искомые значения в нормальном формате. Но чую эта библиотека мне еще подкинет сюрпризов.
437 1986429
>>85709
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]
438 1986801
Есть обычный синхронный код (эвентлуп) он шлет всякие запросы по апи на бинанс.
Я хочу написать асинхронную функцию, которая будет говорить мне (писать лог) каждую минуту, сколько я потратил лимита по запросам.

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

Можно ли запускать одним скриптом синхронный код, и асинхронный? Если нет, то подскажите что можно прочитать и как мне реализовать задуманное.
439 1986882
>>86801
А тебе данными нужно обмениваться с основным кодом или только в лог писать?
440 1986906
Где питона дрочите? Прошел два курсе на степике, прошел их тренажёр с задачами, дальше чем заниматься? Литкод? Может знаете ещё какие-нибудь бесплатные курсы, но уже не для совсем начинающих питонщиков, можно с упором в одну какую-нибудь тему.
441 1986908
>>86801
В асинхронном программировании ключевая сущность это "задача", примерно как тред в многопоточном.

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

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

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

>Можно ли запускать одним скриптом синхронный код, и асинхронный?


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

Если тебе надо, чтобы код работал одновременно, то или надо сделать твой синхронный код асинхронным, либо выносить его в отдельный тред и возиться с синхронизацией для обмена информацией с основным потоком. Базовые примитивы asyncio не thread-safe.
442 1986910
>>86882
Хочу данные в асинхронную функцию передавать, а она будет писать лог каждую минуту.

Можно конечно же это сделать синхронной функцией(не думал как, но полюбому можно), но я хочу именно попрактиковаться в асинхронности.
443 1986955
>>86910
Данные будут передаваться только при инициализации? Можешь асинхронную функцию в отдельный процесс отправить.
Screenshot 2021-04-05 at 20.50.36.png16 Кб, 410x98
444 1986957
>>86908

>Если тебе надо, чтобы код работал одновременно, то или надо сделать твой синхронный код асинхронным



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

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

Вот смотри мой нынешний код, это бесконечная функция-эвентлуп с вызовом самописных функций, условиями, переключателями, и прочими запросами. Идея в том, чтобы знать сколько я трачу лимита на запросы.
Получается, что я не могу тупо дописать async-await в функцию эвент лупа? Точнее могу, но тогда прийдется писать await в каждой строчке чтобы поймать нужный момент для выхода из функции и передачи управления в функцию счетчик? Ссорян что тебе приходится писать мой бред, у меня проблема с выражением своих мыслей
445 1986963
>>86955

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


Это как?

>Можешь асинхронную функцию в отдельный процесс отправить.


И она типо уйдет работать в фон и не будет блокировать основной(синхронный) код?
446 1986997
>>86957

>Получается что await, это как бы места выхода из функций?


Да, только на await можно прервать исполнение функции. Тут начинаются подводные камни, что на самом деле не на каждом. Но, у тебя 100% гарантия, что без await переключения не будет.

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


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

Тебе надо дать возможность перехода тогда, когда у тебя программа блокируется, ждёт ресурс какой-то. Либо когда тяжёлая операция, раз в сколько-то итераций цикла ты даёшь возможность перейти, вот чтобы функция не могла работать больше чем 10мс-1000мс без переключения . Либо каждый раз, когда ты используешь какой-то ограниченный ресурс, который надо контролировать.
447 1987022
>>86963
Я чет перечитал посты и понял, что возможно объебался.
Как я понял, у тебя есть некоторый код, который шлет запросы на апи и есть проверка количества запросов через ту же апишку, которую ты хочешь вынести в одну функцию, причем весь код синхронный?
Может тебе асинхронность не нужна вовсе? Сделал бы функцию в отдельном процессе, которая бы ходила бы с проверкой раз в минуту и выдавала значения в stdout/файл.
448 1987165
Нужно проверить массив строк (в среднем ~1000-1500 по длине) на наличие в ней определённого символа. Что теоретически работало бы быстрее: конвертирование её в сет и проверка через symbol in set или re.findall()?
449 1987168
>>87165

> наличие в них


fxd.
450 1987185
>>87165
Второе, при создании сета ты и так проходишься по всему списку
451 1987200
>>87165
Поясните, разве что-то может быть быстрее, чем пройти по каждому элементу и сравнить? Какие вообще альтернативы могут быть? (для неупорядоченных данных)
452 1987273
>>87185

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


Так regex'ы же, наверное, тоже, нет? Они же не терминируются после первого матча.
453 1987283
>>87200

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


В данной задаче как раз тупая проверка именно в массивах строку будет самая быстрая.

Ох бля, это ж Python. Ну х.з. но в любом случае лишняя конверсия скушает время.
454 1987387
>>86997
Вижу что шаришь. Есть ли смысл делать асинхронность с api запросами (request)?! Скажем их 5 штук, они идут друг за другом. Но некоторые работают медленно и задерживают другие.
455 1987519
>>87165
быстрее всего будет проверка
string = "какая-то строка, возможно длинная"
symbol = "з"
или даже
symbol = "возм"
symbol in string

Это питон, тут для стандартных операций не нужно изобретать велосипеды или прикручивать фреймворки. Всё есть в языке и работает быстро.
456 1987522
>>87387
Смысл есть. Но тебе придётся освоить сетевые функции asyncio, которые довольно сильно отличаются от синхронных. Но это полезно.

asyncio в первую очередь нужен для сетевых задач, в сетях надо смотреть именно сюда. В других случаях может быть разумнее смотреть на многопоточные и многопроцессные подходы.
457 1987605
>>87022

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


Не. Там у них лимит 1200 веса на запросы. Разные запросы жрут по разному этот вес. Его нельзя превышать, иначе забанят.
И остаток этого веса нужно считать самому, они эту инфу не представляют.

А у меня обычный бесконечный код с разными запросами к апи. И я хочу раз в минуту выводить лог с информацией по потраченного весу. В синхронном варианте это делать как-то по не круто я считаю.
15953039445470.jpg83 Кб, 1280x720
458 1987623
Подскажите в sqlalchemy какие-то свои приколы с SUM ?

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

У них такие же приколы и postgres.
459 1987631
>>87623

>Тут sum по int из mysql превращается в pandas


>dtype = object


>а если я колонку переделаю на float, то нормально.


Прочитай это предложение и попробуй его понять. Что ты написал? Что нормально? Что ненормально?
460 1987633
>>87623
ну если ты не знаешь pandas и sqlalchemy, то тебе и будет непонятно.

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

как sqlalchemy имитировать
select sum(field) ?
Мне не нужно чистый sql, с ним все работает.
Мне нужно это уебищный orm-синтаксис заюзать чтобы понять какой из опенсорсов налажал
461 1987636
>>87631
Да, действительно ужасно сформулировал.

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

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

В качестве этапа этого расследования мне нужно понять как обычно работают в sqlalchemy с sum, но при этом не создавать полноценные маппинги объектов. В этом проекте нет ORM в в виде объектов. Только запросы и базы данных все абстракционированы через sqlalchemy
462 1987673
Аноны, ай нид хэлп. Суть такова, есть фукнция:
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

И она не работает правильно. Мне нужно чтобы чтобы она возвращала результат если одно число больше другого в указанном диапазоне. Вот именно с этим диапазоном и затык. Я нуб, если чо. Учу язык ровно неделю.
463 1987684
>>87673
Сам спросил, сам отвечаю:
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
464 1987690
>>86801
Тебе просто надо добавить логгер в loop с помощью .create_task, без await, тупо по системе fire and forget. https://pastebin.com/MVeypk70
465 1987791
>>79040
Стандартный алгоритм сортировки в Питоне стабилен. Поэтому можно сделать два последовательных прохода с разными ключами (secondary key идёт первым, primary key - вторым).

mylist.sort(key = lambda x: x[1], reverse = True)
mylist.sort(key = lambda x: x[0], reverse = True)
466 1987836
Python + SQL - зачем учат в такой связке?
467 1987854
>>87836
Для дата инженерии, наверно.
468 1987857
>>87836
sql учат ко всему, это базовый скилл. И такой хуйни куча, даже если она не оговаривается. Не получится выучить пару конкретных кейвордов и на что-то претендовать.
469 1988227
x = re.sub(r"(?<=\w)[A-Z]", w1, x)
Можно ли задать первому паттерну такое условие, чтобы учитывалось исключительно i-тое вхождение?
470 1988302
>>87690
Спасибо что ответил. Сейчас прочту и попробую понять что там у тебя, и как это к себе применить.

Пока только до такой схемы додумался пикрелейтед.
По сути функция my() должна ебашить без остановки, но эвентлуп ее тормозит. Пришлось в синхронный код добавить async-await
471 1988326
Пилю авторизацию на джанго. Что лучше использовать, встроенный механизм авторизации или чето типа allauth? С одной стороны, мне кажется лучше использоваться меньше всякого стороннего говна. И если мне будет чего-то не хватать в стандартной авторизации, я ведь всегда смогу это допилить? Типа там дополнительные поля или авторизации через другие соц.сети. С другой стороны хз.
472 1988695
Есть ченить типа джавараша только по питону?
473 1988725
>>88302

>По сути функция my() должна ебашить без остановки, но эвентлуп ее тормозит.


Получается, что функция my() доходит до await, передает эстафетную палочку исполнения второй таске и ждёт пока эта вторая таска вернет жезл власти над эвентлупом обратно. Выходит, надо смотреть что там у тебя боте целую секунду выполняется. Ты там случайно time.sleep() вместо asyncio.sleep() нигде не вписал, или у тебя запрос к апи синхронный?

>Пришлось в синхронный код добавить async-await


Все правильно сделал, главное чтобы заработало, а потом уже, если будет критично, вынесешь в отдельный тред.
А вообще, я думал, все биржи давно перешли на вебсокеты, и ты просто подписываешься на стримы событий и ждешь сообщений. Какой смысл апи долбить постоянно - непонятно.
474 1988726
>>88227
Попробуй re.findall
475 1988752
>>88227
Можно сделать так https://ideone.com/jJ4zXe но лучше не надо
476 1988801
>>88752
Примерно так я и делал, но беда в том, что замена происходит для всех совпадающих символов (а это мне не нужно).
477 1988861
>>88801

> замена происходит для всех совпадающих символов (а это мне не нужно)



Не очень понятно. Приведи примеры, как нужно и как нет.
Снимок экрана 2021-04-07 в 13.07.43.png212 Кб, 1920x923
478 1988889
>>77853 (OP)
Привет, анон. Ситуация в том, что по незнанию раньше ставил пакеты через Пип без виртуального окружения, теперь же, при попытке поставить что-либо получаю миллион неясных ошибок, нужно как-то вернуть все в первоначальное состояние. Как это сделать?

Ну и классика, те пакеты, что я поставил через виртуальное окружение не видны в пайчарме, какие-то блять костыли. Как решить проблему?
479 1988903
>>88861
Да не, я, кажется, код не так скопировал. Все работает но я надеялся, что замена в регулярках имеет больше параметров
480 1988977
Коллеги приветствую.
Где брать практику для пистона?
Вот прочитал я укус питона, подучил основы.
Вот как теперь их применить на практике?
Пробовал на codewars, но как по мне там задачки сложноваты для новичка.
481 1988991
>>88889
Удали site-packages/
482 1989022
>>88977
Leetcode пробовал? Там есть разбивка по уровням сложности, легкие должны быть норм для тебя. Вот еще можешь попробовать https://stepik.org/course/431/info
483 1989027
>>88903
Тогда вот так вроде можно.

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)
484 1989032
>>89027
Звездочки съелись.

https://pastebin.com/Qm6gjd2K
Снимок экрана 2021-04-07 в 15.57.57.png100 Кб, 748x175
485 1989066
>>88991
Удалить из виртуального окружения или вообще глобально? Глобально можно как-то вернуть дефолтные настройки? Так же у меня похоже проблема с $PATH, может с этим что-то связано?
486 1989071
знающие fedex api тут есть?
487 1989107
Всем привет, я тот анон, который смог выбить в начале марта проект на 800 долларов и наконец его завершил, теперь точно уверен что фриланс жив, не знаю почему меня некоторые отговаривали, получилось просто супер, попробовал и многопоточность и асинхронность серьезную и drf хорошо выучил, в общем все, надеюсь с таким опытом у меня будет небольшой шанс получить работу...
488 1989144
>>89066
Path у тебя засран. Сделай в том окружении или глобально, где засрано pip freeze > ~/all.txt
Потом берешь и удаляешь те, что не нужны
489 1989145
>>89027
>>89032
Всё, сам разобрался, i-тое вхождение оказалось ненужным, а нужен был флаг r'\1'.
490 1989190
>>88725

>Ты там случайно time.sleep() вместо asyncio.sleep() нигде не вписал, или у тебя запрос к апи синхронный?


Да, запрос самый примитивный, синхронный. По пол секунды ждет ответа.

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


Запросы баланса, выставление/отмена ордеров.

В итоге я решил использовать multiprocessing, мне кажется это хорошим вариантом, и вроде работает.
Как этот чувак показывает https://www.youtube.com/watch?v=35yYObtZ95o
491 1989232
>>82128
Типизация в питоне сильная, например, строку с числом сложить не получиться, "2"+1 не вернет ни 3, ни "21", такое выражение выкинет ошибку, но она динамическая, это значит, что переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной, то есть, например, в джаве если напишешь int x = 1, а потом x = "qwerty", то компилятор на хуй тебя пошлет, а в питоне пожалуйста, интерпретатор все съест, только надо понимать, что если написать x = 1, то в x будет лежать int, и сделать с ним можно будет только то, что можно делать с int,
а если потом написать x = "qwerty", то там уже будет лежать строка, и с x можно будет делать только то, что можно делать со строкой
492 1989260
>>89022
Спасибо за ответ. Здоровья тебе.
493 1989401
>>82128
люди до сих пор путают статическую/динамическую и слабу/сильную типизацию
494 1989408
Всем привет! Почему реквест не работает черкз луп со списками юрл?
495 1989458
>>89408
Чо бля? Код показывай
Вангую, ты ты даже эвент луп не запустил
496 1989482
Привет тред. Подскажите в какую сторону копать, чтобы сделать сайт для игры в какую-нибудь "висилицу", например. То есть оба игрока играют, ходят по очереди. Как это вообще реализуется, понимаю когда просто клиент делает запрос к серверу и тот возвращает простую страницу, а в случае с примером выше как это делается? Где почитать и как вкатиться в подобные приложения?
multiproc.png76 Кб, 1318x754
497 1989529
Приветы.
Можно ли из экземпляра запустить несвязанный метод в отдельном процессе? Не пойму почему не получается. Что я проебал?
498 1989557
>>89529
ХЗ. У тебя ругается на то, что ты делаешь
args = non iterable object
некий Syncronized объект из модуля multiprocessing.

Тебе надо передавать в args tuple
Может как arts = (self.value_obj,)
(запятую поставить, чтобы tuple был)
499 1989558
>>89458
for url in [url1, url2]:
....page = requests.get(url)
....print(page.txt)

Оочень долго думает и что-то делает и потом Фейлит. По отдельности все работает прост у меня 20+ ссылок, для каждой писать метод - думал обойдётся.
500 1989561
>>89529
Запятую проебал в аргументах, без нее пистон это как обычную группировку воспринимает
501 1989563
>>89558
Попрофилируй чутка, поймешь на какой именно урле пиздец
start = time.time()
page = requests.get(url)
print(time.time() - start)
print(page.txt)
502 1989575
>>89563
На всех. Просто ни одна не работает в лупе.
Но этот луп в классе и методе. Не знаю, если это решает.
503 1989585
Время нубовопросов. Хочу сделать для практики дашбоард и тянуть на нее график битка. Нашел апи бинанса и документацию по их эндпоинтам..
Куда двигаться дальше и что/где посмотреть по работе с апи и эндпоинтами?
504 1989655
>>89575
Ну ты может тогда класс скинешь, раз очевидно проблема в нём
505 1989685
>>89482

>понимаю когда просто клиент делает запрос к серверу и тот возвращает простую страницу


Создаешь пять простых страниц:
1. Создание партии игры
2. Подключение к существующей партии игры
3. Страница ожидания хода
4. Страница выполнения хода
5. Страница результата партии
Клиент периодически делает запрос и получает одну из страниц, в зависимости от состояния партии. Состояние изменяется от действия пользователя или сервера, допустим, истекло время хода игрока. Можно не отдавать всю страницу, а только изменения состояния, с помощью аякс-запросов или вебсокетов. Всё, ты готов. Берешь какой-нибудь фласк, или даже боттл, и пилишь игру. Удачи.
>>89585
Делаешь http-запрос на эндпоинт согласно документации. Примеры можешь посмотреть на гитхабе по запроса "binance api" там сотни клиентов разного уровня паршивости.
506 1989728
>>81878
Сумасшедший, что ты блять несёшь. Какие полтора месяца? Если кто-то с нуля и без вышки за два года вкатиться, то это уже победа. Подставь вместо программиста врача, инженера, архитектора, экономиста и напиши про "изи вкатиться за полтора месяца". Тебя обоссут в любой тематической доске. И только погромисты несут хуйню про "пять неделю и уже сеньор 300к наносек"
507 1989733
Изучаю основы питона, не могу понять такую конструкцию, в других ЯП с таким не сталкивался.
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, что он может принимать какие-то выражения, или такие выражения можно писать только в качестве параметров функций?
508 1989783
>>89733
вроде можешь так написать, если использовать лямбда функцию.
Хотя я сам нуб в питоне но насколько я понимаю вместо отдельной функции ты можешь заюзать безымянную функцию.
так делают при функциональном программировании.
пусть меня поправят питонщики, если я не прав
509 1989818
>>81914
>>81695
__pycache__ удалите, ну что вы как эти
510 1989824
>>89733
Бля, ну там же русскиманглийским языком написано. Сделай w.capitalize, где w это символ строки string. Тебе это непонятно?
511 1989837
>>89733

>Интересуют параметры, которые принимает 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()], если нужен настоящий список.

Вообще, разумные вопросы задаешь, но тебе, кажется, надо почитать немножко основы про базовые модели данных в Питоне.
512 1989841
>>89733

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


Оно ничего не создаёт, потому что ты его не обернул в [] (генератор списка) или в () (генераторное выражение)

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


Потому что выше
513 1989881
Если не знаю математики то вкатываться в питон пустая трата времени?
514 1989915
>>89881
Если питон сейчас учат школьники 5-6 классов, то как думаешь?
515 1989929
>>89915
Ну и ты душила. Я питун чтоле чтобы думать учу?
516 1989934
>>89929
Тогда пустая трата времени. Вкатывайся в содержанки, там за тебя всё продумают и ещё и выебут.
517 1989935
>>89881
Для таких как ты умные люди пишут библиотеки и фреймворки.
519 1990002
>>89728
Ну если ты до вката вообще не представляешь что такое программирование и базовые вещи то это на долго да,
Я говорил про 1.5 месяца на синтаксис,задачи и ооп, всякое быстроизучаемое типо гита потыкать,остальное это уже да долгое изучение и практика.
Ну и на твои перечисленные профессии надо учиться чтобы куда-то взяли, в разработке закинул резюме, прошел интервью
520 1990048
>>90002

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


Интересно, если в резюме написать, что работал менеджером по продажам, по закупкам, организации туров и т.п., два месяца назад начал изучать программирование. Позовут на интервью?

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

По факту, с нуля за год стать разработчиком невозможно. Вот невозможно, и всё.
521 1990065
>>90048
Пиздец, ты чем читаешь? Где блять написанно что нужно пиздовать после двух месяцев работать? За 5-6 месяцев реально стать, у меня есть живые примеры. В итоге после дрочки 5 месячной ты знаешь язык+вебфреймворк+базу+хтмл/ксс+инструменты для разработки и у тебя уже есть проект простенький который просто покажет что ты не хуй какой-то.
522 1990190
>>77853 (OP)
А какая команда используется для вызова/использования фреймворка?
Или тут такого нет?
523 1990658
>>90065
>>90002

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


На два года, да

> Я говорил про 1.5 месяца на синтаксис,задачи и ооп


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

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


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

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


Как отличить вкатыша от человека, который работает. Вкатыш думает, что после прохождения собеседования работать не придется. Ну или придется, но это вообще не важно и всем похуй. Нет, тебя просто выкинут с испытательного и все. Напиздеть в резюме и без мыла пролезть реально и возможно. На неделю-две примерно. Стоит ли 10-15 тысяч за эти две недели того или нет – думаю, вопрос риторический
524 1990659
>>90065
За 5 месяцев "выдрочить все фреймворки" нельзя. 5 месяцев на базовый синтаксис без ООП потратить — норм результат. То, что ты говоришь это лютая хуйня
525 1990742
Как вообще для вката jetbrains academy + leetcode + свой аналог двощей на джанге? Плюс ещё Кормена наебнуть и что-нибудь по проектированию рестухи. Из опыта в ит стажировочка по системной АНАЛитике и 3 курс вузика по прикладной информатике. Плюс пара хаков выигранных. Хватит такого чтобы каким-нибудь джуном пойти или ещё чего-то наебнуть?
526 1990761
>>90658
Ты троллишь или что? Свитчеры с другого языка вообще только синтаксис смотрят и фишки языка, если ты пишешь на чем-то одном вкат в другой язык быстр и легок. Далее они просто фреймворк дрочат нужный.

>Как отличить вкатыша от человека, который работает.


Где я писал что дальше учиться не придется, я описал сколько времени для вката надо, сижу в конфе с 20 бэкендерами/фронтами(спб), у всех начало карьеры в основном 19-20 год, кого не спроси вкат 5-12 месяцев. Да и сам я дрочу по своему плану программу, по моим прикидкам там на 6 месяцев макс до работы
>>90659
пиздец, 5 месяцев на базовый синтаксис это необучамым дебилом надо быть, дети для егэ учат питон за неделю. Выдрочить нельзя, так я и не писал про это, но довести знания до состояния что возьмут на работу можно(читай ответ выше).
527 1990764
>>90190
тут просто ставится фреймворк pipом и инициализируется коммандой, дальше пляшешь, почитай как создать приложение на джанго
528 1991004
>>90761
Бля эти фантазии вкатышей, мое почтение. Почаще повторяй это. Ну и про свитч с одного языка на другой за пару дней это пиздец ор. Надеюсь, ты заплатил за новый курс скиллбокса?
529 1991025
>>91004
Сомневаюсь что ты вообще где-то работаешь,какие нахуй пару дней, где я такое написал? Если ты разраб и блять 1.5 месяца учишь синтаксис языка, то это умственная отсталость явная. Я уже прошел это, потратил столько сколько я писал, уже после месяца дроча по 4 часа в день я свободно использовал классы и у меня не вызывало трудностей использование декораторов, хоть пруф того что где-то работаешь, посмотрю хоть на разработчика который 5 месяцев изучает базовый синтаксис питона.
530 1991748
>>91025
Какой базовый синтаксис, мудило? Где я об этом писал? Пиздос, сам чета придумал, сам в это поверил, сам теперь с этим спорить начал. За месяц, говоришь, уже ООП изучил с базовым синтаксисом? Ну сможешь в два ифа отсортировать три числа по возрастанию? А что такое self знаешь?
image.png38 Кб, 938x498
531 1991920
>>91748

>Какой базовый синтаксис, мудило?


Ты собрался синтаксис чтобы свичнуться 1.5 месяца учить лел, придумал также как ты придумываешь сроки "пара дней", "пару месяцев".
Не могу сказать что ООП в полной мере овладел(мало практики в реальном проекте еще), но то что такое self это базовое знание.
IMG20210411150856215.jpg10 Кб, 352x171
532 1992556
>>91920

> Ты собрался синтаксис чтобы свичнуться 1.5 месяца учить лел


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

> Не могу сказать что ООП в полной мере овладел(мало практики в реальном проекте еще)


Так ты и условиями не овладел, лол.

> но то что такое self это базовое знание.


Да? И что это?
Пиздец, твое решение это просто ебаный позор. Еще и из гугла нагло спизженное. Я так могу и вообще без условий обойтись
533 1992567
>>92556

>И где я такое говорил? Ты это буквально сам придумал.


>>90658 >>91004

>Так ты и условиями не овладел, лол.


ога

>Пиздец, твое решение это просто ебаный позор.


Ты бы границы сначала поставил(очевидно что я знаю и о min/max, и о map), потом бы возникал, ты написал в 2 ифа, из 3 чисел, я написал как ты запросил, написал бы без ифов, решил бы без ифов. Решение не пиздил все задачи решаю сам.

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

> >И где я такое говорил? Ты это буквально сам придумал.


Ну так и где я там это написал?

> Ты бы границы сначала поставил


Если для тебя такие вещи не понятны, то соболезную.

> очевидно что я знаю и о min/max, и о map


И именно поэтому максимальное число ищешь не встроенной функцией? Расскажешь, ага

> потом бы возникал, ты написал в 2 ифа, из 3 чисел, я написал как ты запросил, написал бы без ифов, решил бы без ифов. Решение не пиздил все задачи решаю сам.


Конечно сам, твердо и четко. Так же, как ты про max знаешь. Только почему-то не используешь))))

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


"Мое решение" это рофл по поводу "написал с двумя ифами". Ладно, чет твои попытки сманяврировать меня уже утомили
535 1992594
>>92584

>Ну так и где я там это написал?


например

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



>Если для тебя такие вещи не понятны, то соболезную.


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

>Конечно сам, твердо и четко. Так же, как ты про max знаешь. Только почему-то не используешь))))


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

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


Утверждаешь что я не знаю встроенные функции потому что я их не использую, а маняврирую я?
Тред утонул или удален.
Это копия, сохраненная 21 мая 2021 года.

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

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