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


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
515 46 156

python /python/ python 09/07/19 Втр 13:18:54 14309141
image.png (1562Кб, 1350x1080)
1350x1080
image.png (1059Кб, 1200x798)
1200x798
image.png (71Кб, 2048x1024)
2048x1024
Аноним 09/07/19 Втр 15:45:10 14310372
Как работает инкапсуляция в питоне?
Аноним 09/07/19 Втр 16:11:57 14310473
image.png (250Кб, 402x482)
402x482
>>1431037
Через соглашение между джентельменами
Аноним 09/07/19 Втр 20:46:33 14311774
Доброго вечера, достопочтенные.
Пытаюсь в Трединг....
В общем задача задать аргументы для 4 потоков, они изменяемые и зависят от входящих данных, и чтобы каждый поток выполнялся строго друг за другом, 1(2 или 3 или 4) закончился начался снова 1 (2 или 3 или 4) соответственно, но с другими данными. Как это делается?
мы задаем в функции аргумент в который будем передавать threading.Event()
и в самой функции ставим вот ето вот
арг = агрумент уникальный для каждого из тредов
арг.wait()
арг.clear()
тело функции
арг.set()
?

вообще че то я запутался с динамическими аргументами... надо попробовать просто написать это без динамики со статическими данными.
Аноним 09/07/19 Втр 21:41:19 14312155
Аноним 09/07/19 Втр 21:48:47 14312316
>>1431037
value - public
_value - protected
__value - private
Так и работает
Аноним 10/07/19 Срд 00:37:38 14313617
15582628101070.jpg (113Кб, 700x836)
700x836
Аноним 10/07/19 Срд 08:07:44 14314438
Пацаны,що с этим делать

libpython2.7 : Depends: libpython2.7-stdlib (= 2.7.15-4ubuntu4~18.04) but 2.7.15~rc1-1ubuntu0.1 is to be installed

-1ubuntu0.1 is to be installed
Depends: libpython2.7-stdlib (= 2.7.15-4ubuntu4~18.04) but 2.7.15~rc1-1ubuntu0.1 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).


Никакие комманды не работают,хелп
Аноним 10/07/19 Срд 11:58:20 14315059
>>1431443
Быстро фикс,позор мне, последняя сточка помогла

Сорри за даунизм
Аноним 10/07/19 Срд 12:21:57 143151210
Если мне нужно сохранить лист numpy-массивов в файл, смогу ли я просто использовать read и write методы?
Аноним 10/07/19 Срд 12:35:13 143151411
>>1431047
Почему же тогда чтоб получит значение __value класса A, то мне надо написать var._A__value?
Аноним 10/07/19 Срд 12:42:39 143151712
Аноним 10/07/19 Срд 12:52:35 143152113
>>1431517
Тогда это уже не соглашение, не находишь?
Аноним 10/07/19 Срд 12:59:33 143152214
покажи мне его.webm (3962Кб, 1280x720, 00:00:26)
1280x720
Как в питоне можно уместить в одну строкчу конструкцию из
if чота:не-pass else: if (чота2):не-pass else: не-пасс
?

знакомому с очень широким монитором очень нада!
Аноним 10/07/19 Срд 13:03:49 143152415
Аноним 10/07/19 Срд 13:04:58 143152616
>>1431177
Поправьте что-то или просто обоссыте.
https://pastebin.com/zTFzbuXe
вроде все идет нормально. размыми "тредами" чи не? как узнать то.... хер его знает
Аноним 10/07/19 Срд 13:26:04 143153717
>>1431521
А что это? Местную инкапсуляцию ультрапросто обходить, то, что никто не ебошит приватные методы вне класса держится только на соглашении
Аноним 10/07/19 Срд 15:26:30 143160818
>>1431177
Скажи че тебе надо сначала
Аноним 10/07/19 Срд 15:53:10 143162519
Как обрабатывать исключение когда передаешь объект в функцию и вызываешь внутри его метод, чтобы не было ошибки что у объекта нет этого метода. Что это за тип исключения?
Аноним 10/07/19 Срд 16:20:09 143164720
>>1431608
Есть массив пользователей, поскольку обращаться к базе по средствам одного аккаунт нельзя очень часто и много, я хочу разделить массив между техническими аккаунтами.
Я не погромировал и не учился этому, все что делаю делаю на ощупь по
Собственно каждый раз запуская тред мне надо передать в него нужные параметры имя пароль и массив который он будет обрабатывать.
Понял что можно запустить тред и отдать ему только маасив // количество тех акаунтов. А разделение на количество запросов можно организовать в самой функции.
Собственно вопрос в том как организовать многопоточность с динамическим данными юсер:пас . у меня не правильно, надо задать жёсткий контроль в количестве и первым ждать исполнение последнего. Чтобы не на плодить этого говна кучу кучную.
Аноним 10/07/19 Срд 17:14:41 143169621
>>1431647
>обращаться к базе по средствам одного аккаунт нельзя
>по средствам
На питоне все такие безграмотные мудаки, или ты один такой феномен?
Аноним 10/07/19 Срд 17:17:03 143170022
Аноним 10/07/19 Срд 17:19:59 143170123
>>1431647
Почему тебе простой zip данных и cycle аккаунтов в цикле не подходит?
Аноним 10/07/19 Срд 17:27:39 143170624
Антош, поясни мне за проектирование программ.

Я, кажется, что-то делаю не так. Мне нужно было написать программу(в одно рыло) на мобилки + сервер для их обслуживания. К слову, опыта работы у меня было не много. Естественно я начал искать фреймворки. Начиркал, как Грэди Буч завещал, схему классов и объектов для мобилок(сразу же столкнулся с тем что не понятно на каком моменте можно прекращать придумывать абстрактные классы и писать уже код). Начал пилилить мобильное приложение. Столкнулся с тем, что объекты классов стало очень сложно с какого-то момента использовать и модифицировать. И в конечном счете, вместо красивого ООП стиля все вылилось в хз что за стиль, яля говнокод. Ок.
После этого взялся за серверную часть. Там я выбрал фреймфорк джанго(потому что немного его знал). Опять начал изучать по хожу написания кода вместе с изучением фреймворка. В результате, куча времени и я опять сталкиваюсь с тем: писать ли функцию/класс под конкретную нужду, или продумывать офигенный класс-родитель который я потом могу использовать наследованием или сменой параметров объекта под любую задачу того рода для которой этот класс готовился. Меня тянет сделать этот клутой класс-родитель. И тут я понимаю что это иногда занимает недели, когда написав быстренько под конкретную задачу займет 1-3 дня. Потом я прочитал в закрепе как кто-то написал что для нормального программиста писать 15 000 кода - это норма. Я посмотрел свой код. Ну, я написал около 2 000 питоновского кода за пол года. Я "быстрый".
Чертовы фреймворки. Говорят что должны ускорить разработку. Чертов джанго такой большой, что это утверждение у меня стоит под вопросов. Чертов ООП. Говорят что он должен ускорить разработку за счет наследования. Хрен там, все работает не так как планировалось. Не всегда удобно менять методы. Если хочешь изменить класс фреймворка, то надо изучить его код, потому что в доках не всегда дается полноценная информация.

Правильно/не правильно я работаю? Как вы проектируете и воплощаете в жизнь свой код? Можете ли кинуть примеры хорошего кода? Ведь, если смотреть первый попавшийся на гитхабе, то нет гарантии что код писал не говнокодер.
Аноним 10/07/19 Срд 17:30:20 143170925

Я сейчас "слегка", что отражается на качестве текста. Сорри.

>>1431706 - кун.
Аноним 10/07/19 Срд 17:30:49 143171026
>>1431709
> "слегка" уставший

Самофикс.
Аноним 10/07/19 Срд 17:33:26 143171127
Аноним 10/07/19 Срд 17:39:35 143171428
>>1431711
Потому что это непонятная хуйня, где есть 2.5 книги и ролика по питону, но зато куча хуйни по жс и css редактор
Аноним 10/07/19 Срд 17:51:42 143172429
>>1431714
Что лучше: profit == 0, или profit > 0?
Аноним 10/07/19 Срд 17:54:57 143172630
>>1431724
Что лучше: захламлённое помещение или чистое?
Аноним 10/07/19 Срд 18:01:36 143173031
>>1431726
Если в захламленном помещении легко найти то что нужно, то лучше оно. Ведь в чистом вообще ничего нет.
Аноним 10/07/19 Срд 18:03:47 143173332
>>1431730
>Ведь в чистом вообще ничего нет.
Такой предпосылки не давалось.
Аноним 10/07/19 Срд 18:04:04 143173533
image.png (20Кб, 441x183)
441x183
я написал функцию приведения опыта в уровень, но она очень не практична, чем больше опыта - тем больше времени выполняется подсчет.
как фиксить?
https://pastebin.com/dMB448ta
Аноним 10/07/19 Срд 18:07:39 143173834
>>1431696
Все педанты орфографии и грамоты такие желчные людишки, или только ты?
>>1431701
>zip данных
>cycle аккаунтов
Не понимаю как мне это поможет.
У меня есть список ID, по каждому ID надо сделать запрос. Количество запросов ограничено во времени, чтобы сократить время обработки всех ID нужно запустить еще 3.
Или ты по оформлению кода и его заграждению примитивными циклами?
Аноним 10/07/19 Срд 18:08:45 143174135
>>1431733
>ValueError: Такой предпосылки не давалось.
Аноним 10/07/19 Срд 18:27:28 143177536
Аноним 10/07/19 Срд 18:32:18 143178237
>>1431735
Мдя, алгоритмист из тебя
Что-то типа
exp_per_level = 1000
exp_sum = 0
lvl = 0;
while(exp_sum < target_exp):
\texp_sum += exp_per_level
\texp_per_level (star)= 1.2
\tlevel+=1
ЗЫ наверняка можно еще быстрее, учивая что next_level = log (exp_to_next_level/1000, 1.2), но я забыл как там эти ряды считаются
Аноним 10/07/19 Срд 18:40:47 143179238
>>1431782
>texp_per_level (star)= 1.2
чет я не вдупляю, что это?
Аноним 10/07/19 Срд 18:42:30 143179539
Аноним 10/07/19 Срд 19:14:02 143180940
Аноним 10/07/19 Срд 19:17:00 143181341
>>1431795
как мне понять, сколько осталось опыта, который не потратился на уровень?
Аноним 10/07/19 Срд 19:38:16 143182642
>>1431625
AttributeError

Ты можешь проводить эксперименты в консоли питона - набрать, например, str.foo, у класса str нет ни поля ни метода с именем foo, поэтому ты увидишь ошибку AttributeError. Можешь без исключений просто встроенной функцией проверять наличие атрибутировать у объекта: hasattr(obj, name), функция hasattr вернет True если в obj есть name, иначе False. А вообще, читай документацию
https://docs.python.org/3.7/library/exceptions.html#bltin-exceptions
Аноним 10/07/19 Срд 21:00:44 143188543
>>1431735
проигрул. вот как я бы сделол. оно на единичку меньше експы возвращает потому что я не знаю обосрался ли ты.
def calc_lvl_m(exp):
....lvl = 0
....lvlexp = 1000
....while(lvlexp <= exp):
........exp -= lvlexp
........lvl += 1
........lvlexp = round(next_lvl_exp next_lvl_k*lvl) - 1

....print("lvl: {}\nexp: {}".format(lvl, exp))
....return lvl, exp
Аноним 10/07/19 Срд 21:25:51 143189344
Аноним 10/07/19 Срд 21:48:07 143190045
Кто-нибудь из вас конспектирует знания/мысли. Если да, то как выбираете самое нужное, что предпочитаете, бумагу или электронную версию?
Аноним 10/07/19 Срд 22:14:50 143191446
>>1431900
вконтакте себе в лс шлю все заметки, либо в частую группу где состоишь только ты
Аноним 10/07/19 Срд 22:23:40 143191947
>>1431914
Там ведь вроде поиск не очень удобный
Аноним 11/07/19 Чтв 01:08:14 143200648
>>1430914 (OP)
> Кажется, устарел, требуется обновление или замена на что-то другое
Да вроде не особо.
Другое дело, что гайд не окончен, но вряд-ли кто-то возьмётся доделать.
Аноним 11/07/19 Чтв 01:08:37 143200849
>>1431526
Сорри конечно, не могу читать код без __main__, если это не библиотека, переписывай.
Аноним 11/07/19 Чтв 01:10:10 143200950
>>1431900
Коллега на работе завёл себе несколько тетрадок и от руки записывает туда какие-то вещи(вплоть до новых слов на инглише) + распечатывает себе whitepaper'ы. Но он датасаентист с приветом небольшим.
Аноним 11/07/19 Чтв 10:26:25 143224751
1.png (5Кб, 564x528)
564x528
мб не совсем по теме, но как при помощи opencv убрать вмятину? На рис. 1 оригинальное изображение, на рис. 2 - то, что хотелось бы. cv2.convexHull не совсем подходит, так как деформирует другие края (рис. 3).
Аноним 11/07/19 Чтв 11:13:42 143227752
>>1432247
Найти разницу между convexHull'ом и оригинальным изображением. Ты получишь бублик с разной толщиной краев. Там, где бублик тонкий, удали все совсем. Где толстый, оставь.
Аноним 11/07/19 Чтв 11:24:59 143228553
brainlet.png (21Кб, 326x253)
326x253
>>1432277
а как толщину бублика измерить?
Аноним 11/07/19 Чтв 11:34:09 143228854
>>1432285
1. Уменьши его толщину https://docs.opencv.org/3.4/db/df6/tutorial_erosion_dilatation.html . Не факт что это нужно, но должно быть нужно
2. Бублик превратится в серию островков. Ищешь площадь каждого островка https://docs.opencv.org/trunk/dd/d49/tutorial_py_contour_features.html Если она достаточно большая, увеличиваешь этот островок на 1 пиксель (чтобы отменить то что было на этапе 1, если ты его делал), и копируешь на свою картинку. Если маленькая, нихуя не делаешь
Аноним 11/07/19 Чтв 11:39:10 143228955
Аноним 11/07/19 Чтв 18:26:12 143257156
Подскажите плиз, как в пандасе сохранить структуру датафрейма после groupby, если я хочу отсеять элементы по значению некоторого признака. Это делает следующая строчка кода df.groupby(“someId”).apply(some_function), а функция определяется как:

def some_function(group):
if group[group[“some_feature”] > 0.1].shape[0] > 0:
return group[group[“some_feature”] > 0.1]
else:
return group

Проблема в том, что возвращается датафрейм с индексами - “someId”, по которым разлелялись группы.
Аноним 11/07/19 Чтв 18:42:26 143257957
Аноним 12/07/19 Птн 06:20:45 143289358
Где можно посмотреть список команд для api dvach?
12/07/19 Птн 13:43:13 143319359
>>1432975

Секта, где быдло из ютуба >>1432893

в разделе api джвача?
Аноним 12/07/19 Птн 14:19:23 143321760
Аноним 12/07/19 Птн 14:20:34 143321861
>>1433217
Там примеры есть работы, юзай их, не зря анон писал.
Правда насчёт актуальности хз ибо давно делали и апи могло обновиться.
Аноним 12/07/19 Птн 15:23:18 143324562
Анооон, как из функции а нескольких потоках получить ответ?
Аноним 12/07/19 Птн 17:19:09 143333863
>>1431706
Возможно, ты просто слишком сильно угорел по ООП и абстрагированию. Будь проще и код потянется.
Аноним 12/07/19 Птн 17:41:18 143335864
>>1431706

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

Решение: забить хуй на код и решать задачи, оптимизируя проблемы по мере их появления.

Видение того, "как надо делать" не возникает ниоткуда. Опыт, сын ошибок трудных, как говорится, решает.
Аноним 12/07/19 Птн 18:08:20 143337865
image.png (129Кб, 881x404)
881x404
>>1431706
Ебаный двощ обезумел. Слово из спам листа в посте.
Аноним 12/07/19 Птн 18:13:24 143338566
>>1431706
>Я, кажется, что-то делаю не так.
>Начиркал, как Грэди Буч завещал,
Я еще лет в 13 открыл в библио-глобусе его книгу и понял, что этот словоблуд вообще не стоит внимания.
>И в конечном счете, вместо красивого ООП стиля все вылилось в хз что за стиль, яля говнокод.
В ООП всегда так.
>Правильно/не правильно я работаю?
Нет. Набери в гугле "критика ООП" и читай, читай, читай.
Аноним 12/07/19 Птн 18:52:31 143343367
>>1433385
>критика ООП
>ну наследование заебись
>да и всё остальное
>а вот инкапсуляция говно
>ну как бы потому что мне нужна свобода
Не набирай, она в конечном счёте сводится к этому.
Аноним 12/07/19 Птн 19:45:36 143345368
image.png (23Кб, 605x238)
605x238
Разве вот так вложено нельзя идти по всему листу?
Аноним 12/07/19 Птн 20:13:17 143346869
>>1433453
Ты нигде не присваиваешь ничего списку a.
Аноним 12/07/19 Птн 20:22:22 143347370
>>1433245
Ну как переменную получить ну анон? Или классами все делоть
Аноним 12/07/19 Птн 20:23:50 143347471
image.png (150Кб, 475x476)
475x476
Аноним 12/07/19 Птн 21:57:15 143354072
>>1433453
Если хочешь работать именно со списками, лучше так:

hight = 10
width = 5
left = 1
right = 101
[[np.random.randint(left, right) for j in range(width)] for i in range(hight)]

Если хочешь с array из numpy, то как второй пример здесь >>1433474
Аноним 12/07/19 Птн 22:25:33 143355873
>>1433474
>>1433540
Спасибо, почему-то думал что по итератору можно получить доступ к самому элементу. Вообще randint тут чисто филер для проверки, вообще у меня должен быть лист из массивов NumPy разной длины, где каждый элемент массива — случайное значение из словаря или совершенно новое созданное по образцу из одной из категорий, но это уже проблема другого порядка.
Аноним 12/07/19 Птн 22:46:16 143357974
Чем urllib.request отличается от библиотеки requests?

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

вкатывальщик
Аноним 12/07/19 Птн 23:23:10 143360675
>>1433558
>по итератору можно получить доступ к самому элементу
Можно, но это работает иначе.
Аноним 12/07/19 Птн 23:35:14 143361776
>>1433579
requests - обёртка над urllib3. В остальном они немного по разному парсят урлы.
Аноним 13/07/19 Суб 01:18:00 143366577
>>1433558
Конечно можно. Только итерируемую последовательность во время итерации менять нельзя.
for x in xs:
    <делаем что-то с элементом x>
Здесь можно что-то делать с переменной x, но от присвоения переменной x какого-либо значения последовательность xs не поменяется.
Видишь, здесь >>1433474 в первом примере итерируемая последовательность это range, а не список a, элементы этой последовательности используются как индексы для доступа к списку a и изменению его элементов
Аноним 13/07/19 Суб 04:31:03 143369578
>>1433473
Открыл для себя global
Аноним 13/07/19 Суб 08:41:25 143372879
отцы нубский вопрос:
for comment in stream_comments():
comm_body = comment.body
if any(list in comm_body for list in config.spam_list):
for i in comm_body:
if i != config.reply_comm:
comment.reply(config.reply_comm)
else:
continue
пытаюсь сделать такое:
бот агрица если в теле коментария(comm_body) есть слова из config.spam_list, далее отвечает на комментарий из config.reply_comm, НО если тело коментария уже содержит ответ из config.reply_comm, то он его пропускает и идет дальше. при подобном раскладе почему то не выходить(
Аноним 13/07/19 Суб 14:48:11 143392380
Как питонисты смотрят на котлин?
Аноним 13/07/19 Суб 17:04:52 143403281
image.png (16Кб, 1352x77)
1352x77
В питоне есть какой нибудь синтаксический сахарок, чтобы передать в параметры функции N элементов массива, но не одним объектом, а поэлементно? Например, вот есть у меня пикрил, мне лень писать na_data[0]...na_data[7], но и в конструкторе я не хочу делать параметр массивом данных. можно ли как то зделоть зоебись сделать типа NetworkActivity(na_data[0]..na_data[7])?
Аноним 13/07/19 Суб 17:05:52 143403482
image.png (16Кб, 1244x79)
1244x79
>>1434032
бля, не туда аппендил
self.fix()
Аноним 13/07/19 Суб 17:13:10 143404083
>>1434032
можно. Если тебе надо передать ровно 8 элементов, а в na_data может быть больше, то код будет
foo(na_data[:8])

если список исходно из 8 элементов, то вообще
foo(
na_data)

Аноним 13/07/19 Суб 17:14:05 143404184
>>1434040
звезда проглатывается перед na_data
Аноним 13/07/19 Суб 17:14:06 143404285
Аноним 13/07/19 Суб 17:14:35 143404386
Аноним 13/07/19 Суб 17:15:20 143404587
image.png (23Кб, 1258x94)
1258x94
Аноним 13/07/19 Суб 17:15:45 143404688
Аноним 13/07/19 Суб 17:16:57 143404789
Screenshot.png (8Кб, 273x139)
273x139
Аноним 13/07/19 Суб 22:32:44 143437790
Как разместить элементы в окне по своему желанию в tkinter? pack() хуйню творит, конечно.
Аноним 13/07/19 Суб 23:02:29 143441791
>>1434377
Там еще есть grid, который, как можно догадаться, размещает элементы в ячейках таблицы, и place, который размещает элементы по очно заданным координатам.
Аноним 14/07/19 Вск 12:55:43 143472792
посоны, кто-нибудь занимался запуском питоновских скриптов из-под JVM? Что лучше для этого использовать? Py4J / Jython / JPype?
Аноним 14/07/19 Вск 13:32:30 143476793
>>1434417
Спасибо.
А есть какая-либо возможность "запретить" изменение габаритов окна?
Аноним 14/07/19 Вск 20:45:12 143523194
Кто-нибудь в PyQt5 разбирается?
Я сейчас с ума сойду. Надо перехватить событие закрытия окна, и я несколько дней не могу понять как это сделать. В одном источнике пишут, что надо добавить:
def closeEvent(self, e)
В класс описания окнна. Это не работает, функция не вызывается при закрытии. В другом источнике к этому добавляют в фуннкцию создания окна следующее:
quit = QAction("Quit", self)
quit.triggered.connect(self.closeEvent)
Это так же не работает, жалуется на неверное использование QAction:

QAction(parent: QObject = None): argument 1 has unexpected type 'str'
QAction(str, parent: QObject = None): argument 2 has unexpected type 'Ui_MainWindow'
QAction(QIcon, str, parent: QObject = None): argument 1 has unexpected type 'str'

Что я делаю не так? Как мне повесить событие на закрытие окна??
Аноним 14/07/19 Вск 21:10:37 143526195
Снимок экрана 2[...].png (175Кб, 2256x800)
2256x800
Аноним 14/07/19 Вск 21:22:38 143528196
>>1435261
Не понимаю. Я использую окошко из QT-редактора, вот код:
https://pastebin.com/N33z2Ttc
Что я делаю не так? Подскажи плиз
Аноним 14/07/19 Вск 21:23:29 143528497
можно ли удалить файл со скриптом после того, как python script.py запущен, но еще не отработал? если да, то как нибудь, имея только pid запущенного процесса, можно ли получить запущенный скрипт?
Аноним 14/07/19 Вск 21:37:45 143529598
>>1435284
Имя скрипта находится в переменной __file__
Аноним 14/07/19 Вск 21:38:45 143529699
>>1435281
Ты создаешь класс, наследуясь от object, а я от QMainWindow. object - базовый класс для всех.
Аноним 14/07/19 Вск 21:40:40 1435299100
>>1435284
я возможно недостаточно точно выразился. есть произвольная линуксовая система, на которой запущен скрипт командой python3 scriptname.py от имени рута, но запускал не я, хоть и есть доступ к руту. ни в / ни в ~ рута скрипта scriptname.py нет, да и через find/locate по всей системе он тоже не находится. мне нужно узнать, что именно делает скрипт, в иделае вообще получить его сорсы. как это можно сделать?
Аноним 14/07/19 Вск 21:40:52 1435300101
>>1435295
Но файл уже как бы удален же. Ему нужно как-то найти ссылку на файл, которую держит процесс скрипта.
Аноним 14/07/19 Вск 21:41:55 1435305102
>>1435300
как вообще интерпретатор питона реагирует на удаление файла, указанного при запуске?
Аноним 14/07/19 Вск 21:44:07 1435308103
15398462327630.jpg (48Кб, 475x640)
475x640
>>1435299
Серьезно? Лезь в оперативу и сиди выдергивай по кусочкам результат работы.
Аноним 14/07/19 Вск 21:46:05 1435313104
>>1435296
Это я вижу. Тоесть QT-редактором вабще пользоваться нельзя, т.к. после него всё перепиливать надо?
Аноним 14/07/19 Вск 21:46:14 1435314105
>>1435308
ну т.е. питон при запуске считывает весь файл в какой нибудь постоянный буфер, который остаётся в процессе до выхода?
Аноним 14/07/19 Вск 21:46:23 1435315106
>>1435305
Не знаю, скорее всего никак не реагирует. Файл уже считан, преобразован в байткод и все необходимое держится в памяти, как я себе это представляю.
Аноним 14/07/19 Вск 21:49:31 1435322107
>>1435313
Да почему нет то? Можно. Там просто при мастере проекта нужно выбирать нужные вещи. Базовый класс, систему, целевую версию и т.д. От него и зависит, что тебе он даст в начале.
>>1435314
Ну да. Никогда не видел результат работы sudo rm -rf /* в системе? Все, что осталось в оперативке - то и работает, пока не завершится. Так и работает в целом. Скрипт в оперативке.
Аноним 14/07/19 Вск 21:50:32 1435325108
Аноним 14/07/19 Вск 21:51:28 1435327109
>>1435322
>Да почему нет то? Можно. Там просто при мастере проекта нужно выбирать нужные вещи. Базовый класс, систему, целевую версию и т.д. От него и зависит, что тебе он даст в начале.
Есть на примете материал, который рассказывает как правильно сделать? Где там это всё выбирать.
Спасибо
Аноним 14/07/19 Вск 21:55:10 1435330110
Аноним 14/07/19 Вск 22:19:18 1435345111
Аноним 14/07/19 Вск 22:20:40 1435350112
>>1430914 (OP)
Наверное, постоянный вопрос в этих тредах, но сколько пройдёт времени Нормального обучения языку, прежде чем я смогу получать с этого какие-то деньги?
Аноним 14/07/19 Вск 22:21:44 1435355113
>>1435345
Ты можешь поместить скрипт в переменную а потом построчно его оттуда вытаскивать при помощи exec
Аноним 14/07/19 Вск 22:30:26 1435363114
>>1435330
>быстро глянул https://python-scripts.com/pyqt5
Ну вот тут он у них автоматом создаётся класс наследующий QMainWindow, а у меня при тех же действиях - от object.
Аноним 14/07/19 Вск 22:32:32 1435364115
>>1435355
каким образом, если я как раз и запустил этот pyrasite-shell для того, чтобы проанализировать скрипт? какие вообще у питоновского промта (который как >>> три > если вдруг разметка сожрёт выглядит) возможности к интроспекции? в том же гайде пишут, что можно если бы я знал модуль запущенного скрипта, то мог бы узнать какие там есть функции и классы через dir(my_module). а как узнать, какие в рантайме есть модули? понятно, что там будет еще куча всяких системных, но ведь наверняка должен быть и мой, нет?
Аноним 14/07/19 Вск 22:32:41 1435365116
>>1435363
Поэтому и говорят, что не надо слепо верить ide, нужно уметь делать все руками, а только потом - ide.
Аноним 14/07/19 Вск 22:36:47 1435369117
Аноним 14/07/19 Вск 22:39:53 1435371118
>>1435365
Да вот я ньюфаг, и не хотел особо разбираться в ide, хотел залететь на скорую руку, но что-то зациклился на этом.
Аноним 14/07/19 Вск 23:04:33 1435378119
>>1434767
Конечно. Метод resizable, пусть есть корневой виджет по имени root, тогда root.resizable(False, False) запретит изменение окна приложения по горизонтали и вертикали.
Ты такие штуки спрашиваешь, быстрее самому нагуглить, чем ждать, пока ответят на двоще, совсем простые вещи
Аноним 14/07/19 Вск 23:17:42 1435385120
Чё у вас там, пипенв среду уже создал?
Аноним 15/07/19 Пнд 09:35:59 1435478121
Анон, пишу говнокод короче, нужно подключится к ftp и скачать оттуда актуальные данные, но подключение не идет, я знаю в чем проблема, на работе у нас стоит прокси сервер, так вот как заставить через него работать мой говнокод? Когда подключаю свой мобильный как роутер, то без проблем конектится.
Аноним 15/07/19 Пнд 09:45:32 1435489122
>>1435478
Через обычного клиента получается зайти на ftp?
Аноним 15/07/19 Пнд 10:24:41 1435521123
>>1435478
Прокси должен прокидывать фтп порт наружу, или туннель давать.
Аноним 15/07/19 Пнд 10:31:05 1435524124
>>1435489
Дает без каких либо проблем.
>>1435521
Ну ведь он дает, если использовать какой нибудь браузер, но с говнокодом моим не дает.
Аноним 15/07/19 Пнд 10:41:24 1435529125
>>1435524
Посмотри про пассивный режим ftp и попробуй это использовать.
Аноним 15/07/19 Пнд 10:42:44 1435531126
>>1435529
хотя в доках написано, что он по-умолчанию работает
Аноним 15/07/19 Пнд 10:45:38 1435536127
>>1435478
На каком этапе проблема? Получается ли установить коннект с портом?
Аноним 15/07/19 Пнд 10:47:51 1435540128
>>1435529
Почитаю посмотрю
>>1435536
Как мне глянуть? через какой нибудь wireshark?
Аноним 15/07/19 Пнд 10:50:27 1435546129
Аноним 15/07/19 Пнд 10:53:11 1435548130
>>1435540
Ты как пытаешься подключаться, через ftplib?
Аноним 15/07/19 Пнд 11:10:02 1435558131
Аноним 15/07/19 Пнд 11:20:49 1435572132
>>1435558
Короче просто видимо порт 21 не открыт, я ебал, всем спасибо.
Аноним 15/07/19 Пнд 11:27:00 1435580133
Питонистусы, как сделать так чтобы при ошибке скрипт ждал моего подтверждения y/n и по результатам продолжал работу цикла или шёл дальше по скрипту?
Аноним 15/07/19 Пнд 11:56:26 1435598134
>>1435580
Внутрь try-блока ты уже не сможешь вернуться.

Что за логика у программы? Если конкретная функция выдаёт ошибку, то надо просто её в цикл обернуть с обработкой исключения или ошибочного значения, схематично
while True:
result = None
try:
result = try_do_work()
except:
yes_no = input()
if no:
break

если таких вызовов много, можно обернуть в какой-нибудь декоратор.
Аноним 15/07/19 Пнд 20:42:34 1436236135
10.png (24Кб, 616x266)
616x266
Кто может пояснить, зачем вот так пишут? Это не джуны, а матёрые сеньёры.
Аноним 15/07/19 Пнд 22:31:26 1436374136
>>1436236
А что не так, не достаточно информативная строка, или надо все в одну строчку писать, типа f-string надо использовать вместо format?
А, вижу, в info может быть либо ничего, либо только одно слово, тогда не нужен ни массив не join. Ну, проебались чуть, можно же исправить
Аноним 15/07/19 Пнд 22:38:37 1436388137
>>1436236
Вангую, что автор привык собирать строки таким образом, вот по привычке и сделал, хотя тут можно было бы обойтись без списка.
Аноним 16/07/19 Втр 00:48:18 1436489138
Аноны, доебал препод с тем, чтобы я на питоне накидал ему прогу с парсингом экселя и формочкой для собсна выбора файла, выбора диапазона ячеек и графиком.
Я с этим языком знаком лишь по синтаксису. Ткинтер вообще не ебу, а при попытках раскидать эксель в матрицу знатно заебался с пандой и хлрд, так и ничего не сделав.
Похуй с ним с ткинтером, сам нагуглю надеюсь как сделать форму со всеми этими свистоперделками. Поделитесь кодом, чтобы прочитать эксель файл как
[
[row1 column1, row1 column2...],
[row2 column1, row2 column2...],
...
]
С меня тонны благодарностей от препода и моя сердечная любовь до гроба no homo
Аноним 16/07/19 Втр 02:44:32 1436513139
>>1436489
Ставь или модуль pandas
(pip install pandas)
или можно сохранить данные в csv и парсить их.

Панды эти какие-то замудрённые, разбираться с ними надо. Но зато много умеют.

import pandas

df = pandas.read_excel('file1.xls')

for row in df.itertuples():
___ if isinstance(row[2], str):
___ ___ print(row[2], row[3])

Аноним 16/07/19 Втр 02:46:38 1436514140
>>1436489
>>1436513
>знатно заебался с пандой и хлрд
А, ты и сам это уже нашёл. Тогда не знаю.
Аноним 16/07/19 Втр 10:10:50 1436601141
>>1436489
>>1436513
Аноны, а может с json`ом сделать ?
Мимо другой анон
Аноним 16/07/19 Втр 10:29:46 1436611142
Аноним 16/07/19 Втр 14:02:43 1436697143
Добрый день

Аноны, к сожалению, я очередной хуй, который хочет вкатиться в python. Проблема в том, что у меня очень мало времени из=за работы, но есть деньги на то, чтобы купить курс (не надо только ссать на меня). Что скажеет про яндекс практикум? Их программа для backend
Аноним 16/07/19 Втр 15:53:06 1436815144
Аноны, я практикующийся ньюфаг, накидал знакомому софтинку для учёта вип-аккаунтов от серванта БФ4. Если кому не сложно, зацените код:
https://www.codepile.net/pile/2xO3Z9x6
В даннном случае, вся база хранится в списке. Список хранится в pickle-объекте. При загрузке программы pickle-файл считывается и содержимое помещается в базу, следом обновляется Qt таблица. При любом редактированнии базы (добавленние, удаление, редактирование), происходит сохраненние базы, загрузка, таблица отрисовывается с нуля.
В общем если кому не сложо глянуть - есть в этой программе что-то, что конкретнно не так, за что меня можо пнуть?
Аноним 16/07/19 Втр 16:04:42 1436828145
>>1430914 (OP)
Кто-нибудь знаком с pygame? Пытаюсь решить задачу - есть группа спрайтов-деревьев и спрайт огня. Деревья спавнятся в случайном месте по нажатию кнопки. Огонь доходит до дерева, активируется функция, которая определяет скорость, с которой оно сгорает. Но так как деревья спавнятся, нет конкретной переменной, которую можно вписать в функцию. Как можно применить функцию к экземпляру дерева?
Аноним 16/07/19 Втр 16:15:06 1436835146
>>1436815
>В общем если кому не сложо глянуть - есть в этой программе что-то, что конкретнно не так, за что меня можо пнуть?
Ты без обид, с точки зрения проектирования всё плохо.

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

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

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

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

Это идейно.
Аноним 16/07/19 Втр 16:19:27 1436839147
>>1436835
Хорошо, попробую осмыслить и учесть, хотя мне сейчас многое непонятно.

QT-код целиком из QT-редактора, я его не сам писал, потом он такой.
Аноним 16/07/19 Втр 16:30:13 1436846148
>>1436839
Попробуй спустя какое-то время переделать вёрстку, подвигать элементы и изменить их размер. Потом ещё раз. Сам придёшь к этому.

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

Все эти теории проектирования из жизни пришли.
Аноним 16/07/19 Втр 16:39:34 1436851149
>>1436846
>Попробуй спустя какое-то время переделать вёрстку, подвигать элементы и изменить их размер.
ну, на самом деле не вижу проблемы. В функциях отрытия окна можно отредактировать любой элемент разметки окна, для дочерних оконо по крайней мере. С основным окном не уверен. В общем мне не совсем понятно о чём речь

На самом деле я только собираюсь детальнее PyQt изучить, потому особо редактировать тот код, что да редактор, не могу.

>И с выбором данных, попробуй подумать, как ты будешь в другом формате их хранить
Тоже не совсем понимаю, ты про сохранение данных в pickle? Чуть позже собирался изучить SQL и применить базу данных для сохранения
Аноним 16/07/19 Втр 16:50:04 1436863150
>>1436828
Пайгейм не трогал. Ты не можешь получить экземпляр дерева рядом с огнем? Ты ссылки на деревья куда-то записываешь? У тебя задача на коллизию огня и дерева?
Аноним 16/07/19 Втр 17:06:57 1436874151
>>1436863
Там походу только пересечением координат объектов можно что-то сделать подобное.
Как-то пытался курсач на пайгейме сделать. Больше обсёра у меня не было. Пока не начал рабоать, офк.
Аноним 16/07/19 Втр 17:22:48 1436890152
image.png (158Кб, 1280x720)
1280x720
>>1436874
> Там походу только пересечением координат объектов можно что-то сделать подобное.
Коллизии так и делаются, в общем-то.
Аноним 16/07/19 Втр 18:00:23 1436927153
>>1436890
Ну вот и хорошо. Я не знал.
Аноним 16/07/19 Втр 21:47:10 1437131154
>>1436890
Лол, а там нет функции которая определяет коллизии объектов ? По моему вот так:

def is_collided_with(self, sprite):
return self.rect.colliderect(sprite.rect)
Аноним 16/07/19 Втр 21:55:50 1437137155
>>1437131
было бы странно, если бы их не было. но я подумал, раз тот анон о них не знает, то наверное нет. он же наверняка погуглил столкновения прежде чем самому писать алгоритм. не буду же я гуглить фичи пайгейма, который я ни разу не использовал и не собираюсь.
Аноним 16/07/19 Втр 23:20:00 1437218156
Почему по сабжу нет нормальной актуальной книги? Либо какие-то справочники, либо фигня для детей, либо старая книга Лутца с ненужной легаси 2.6, кроме 3.
Аноним 16/07/19 Втр 23:33:50 1437227157
>>1437218
Ты уверен что всё посмотрел?
Аноним 16/07/19 Втр 23:55:01 1437233158
>>1430914 (OP)
Жаба-джун заехал в тред
Поштудировал ваш Питонух и малость приохуел:
1) С хрена ли доступ к любому атрибуту и методу можно осуществлять как извне класса, так и просто из самого модуля точечной нотацией?.. Почему кладется хуй на систему геттеров-сеттеров?
2) Где вообще инкапсуляция как таковая? С хуя ли не могу адекватно задать приватные атрибуты в классе? Какие-то блять _ вместо private/public/protected . И есть ли тут вообще бля возможность сделать класс доступным ТОЛЬКО на уровне модуля, а? Че-то пока хуйня получается
Аноним 16/07/19 Втр 23:56:47 1437234159
Аноним 17/07/19 Срд 00:02:56 1437239160
>>1437227
Я не могу быть в этом 100% уверен. Но просмотрел несколько источников. Если у тебя есть годная книга, буду благодарен.
Аноним 17/07/19 Срд 00:18:10 1437243161
>>1437233
>геттеров-сеттеров
Нахуй ты со своей парашей лезешь и пытаешься устраивать правила?
>private/public/protected
Есть соглашение о использовании. Если додик или джун, например, то тебе ниего не мешает говнокодить и в джаве, используя везде public. Просто дандеры используй и методы соответствующие.
Аноним 17/07/19 Срд 00:20:01 1437246162
Аноним 17/07/19 Срд 00:36:19 1437270163
>>1437246
Ни то, ни другое. Мне нужна книга, но не сухой справочник.
Аноним 17/07/19 Срд 00:38:55 1437273164
>>1437243
>Нахуй ты со своей парашей лезешь и пытаешься устраивать правила?
Это унылая регулярная паста, не бугурти.

Система геттеров и сеттеров есть.
При желании, можно запретить и приватные методы снаружи вызывать, но это лишний код и оверхед, не нужно этого делать.
Аноним 17/07/19 Срд 16:36:30 1437654165
>При желании, можно запретить и приватные методы снаружи вызывать, но это лишний код и оверхед, не нужно этого делать.
Как это сделать, кстати?
В общих словах.

Если через __getattribute__(), то он и внутри класса посмотреть свойство/вызвать метод мешает.
Аноним 17/07/19 Срд 16:56:40 1437665166
>>1435580

def except_goto(func):

def wrapper(args, kwargs):
try:
result = func(
args, kwargs)
except:
quest_text = (
'Тут ошибочка вышла. ' +
'Можем повторить? y/n: '
)

answer = input(quest_text)

if answer == 'y':
return wrapper(args, *kwargs)
else:
return None

return result

return wrapper

Пример работы: https://repl.it/repls/FluidImprobableSeahorse
Аноним 17/07/19 Срд 17:03:55 1437667167
image.png (29Кб, 597x106)
597x106
image.png (38Кб, 602x207)
602x207
>>1437239
Ссылка с пика №2 - т.ме / python_textbooks
Да как вы блять заебали со своим спам-листом.
Аноним 17/07/19 Срд 19:07:50 1437747168
Screenshot.png (49Кб, 1259x574)
1259x574
>>1437654
Вот пример с приватными методами, в виде скрина, идейно

Я когда-то давно такое делал, но просто для фана, реально не использовал. Другие методы тоже есть.

Это не 100% метод, вот здесь можно обойти, если назвать объект не a, а self, никто не запрещает ведь. Но от этого можно защититься, можно контролировать, из какого файла идёт вызов и из какой строки. Тут демонстрация идеи.

Конечно, можно просто переопределить функцию is_local_call. Но ведь это защита не от хакеров, а от нежелательных прямых вызовов.

Есть другие способы, но тоже извращённые.
Аноним 17/07/19 Срд 19:17:19 1437753169
image.png (22Кб, 361x265)
361x265
>>1437747
Как-нибудь можно достать такую приватную функцию?
Аноним 17/07/19 Срд 19:17:38 1437754170
выфв.png (12Кб, 371x175)
371x175
Анон, почему это не работает?
Я ввожу с клавиатуры что угодно (это может быть str опвалопвао, int 43242, либо что-то смешанное типа 9t49ting_))!n3).
Мне нужно три развилки - если введено число, то а, если введена строка - то б, все остальное, в том числе смешанное - в.
В этом куске всегда срабатывает только string.
Аноним 17/07/19 Срд 19:21:21 1437758171
>>1437754
Потому что input всегда возвращает строку. Ты сам должен конвертировать в нужный тебе тип.
> The function then reads a line from input, converts it to a string (stripping a trailing newline), and returns that.
Аноним 17/07/19 Срд 19:25:19 1437763172
>>1437754
Во втором питоне input работает так, как тебе нужно.
Аноним 17/07/19 Срд 19:33:20 1437770173
>>1437758
А каким образом я могу сам конвертировать?
Допустим, у меня есть некий результат input - я ввел "312312". Как мне дальше на основе такого инпута ковертировать эту же самую информацию в другой тип?
Аноним 17/07/19 Срд 19:48:57 1437785174
>>1437770
Если у тебя там только строки и int'ы, то самое простое это
value = input()
try:
. . value = int(value)
. . # число
except ValueError:
. . # не int
Аноним 17/07/19 Срд 19:55:10 1437790175
1.png (38Кб, 136x233)
136x233
2.png (80Кб, 376x188)
376x188
Есть инвентарь в игре, задача идентифицировать объект в ячейке и посчитать количество (цифра в левом правом уголке).

Сейчас я делаю:
- пробегаю по всем ячейкам, делая скрины каждой отдельной, определяю пустые, чтобы с ними дальше совсем не работать. < 1 секунды времени

- Сначала я пытался распознавать объект пиксельхантингом, а количество распознавая цифру с левом верхнем уголке. Но отказался о этого т.к. получалось медленно и цифры распознавались нестабильно, ~98% что не устраивает.

- сейчас я навожу курсор на не пустую ячейку и распознаю уже текст тултипа. Тут текст 100% распознается хорошо и сразу 2 задачи и имя объекта и число.


Но это все равно слишком медленно. Как можно ускорить процесс? В плане алгоритма или может быть какие-то практические советы?


Например, почему
pyautogui.moveTo(x, y)
такой тормозной? Всего 10 позиций в секунду, а если еще нужно периодически ctrl зажимать, отжимать, то получается совсем уж смешная скорость. Есть способы двигать курсор и жать кнопки побыстрее?
Аноним 17/07/19 Срд 20:11:16 1437804176
>>1437790
О, PoE, клёво, давненько в него не заныривал. Много в него народу шпилит?
> пишет на скриптовом интерпретируемом пистоне с тормозной виртуальной машиной
> удивляется, что тормозит
Не еби мозги и бери C++ с OpenCV
Аноним 17/07/19 Срд 20:13:27 1437806177
Антошь будь няшей, поясни за aiohttp.
Мне нужно отвечать на GET запрос, причем так что ответ никак не зависит от запроса, а получается в результате работы заранее запущенных асинхронных задач. (это докер контейнер который начинает тестирование удаленных сервисов сразу после запуска, отдающий результат тестирования по http и тут же умирающий)
Набросал упрощенный примерчик https://pastebin.com/CRJPrqN5, он работает. Но вот что он говорит:
>DeprecationWarning: Changing state of started or joined application is deprecated
> app['json'] = json_
Что же делать?
Глобальные переменные? 2к19?
Аноним 17/07/19 Срд 20:15:01 1437807178
Аноним 17/07/19 Срд 20:20:23 1437814179
>>1437804
Я не погромист, это просто баловство,мозги размять когда время есть, поэтому на плюсы я так с наскока не пересяду при всем желании. Он же, на сколько я знаю, не самый дружелюбный для новичков.

OpenCV изучаю, с питоном же он тоже хорошо интегрируется.

Вроде много, от лиги к лиге сильно скачет цифра. Я сам не играю, просто трейдбота пишу сядя в хо
Аноним 17/07/19 Срд 20:39:12 1437826180
>>1437807
>>1437806
>Что же делать?
>Глобальные переменные? 2к19?
Глобальные не нужно. Ты просто делаешь класс, который за коммутацию отвечает, хранит, в том числе, json_

Создаёшь объект класса в функции main(), этот объект сохраняешь в app, и в других объектах, которые отвечают за связанные асинхронные задачи. Потом просто меняешь свойство json_, прямо или косвенно. В нём можно сделать метод вроде get_data_for_web(), можно не делать, работать напрямую.

Доки рекомендуют скорее подход, чтобы ты из app всем управлял, через какие-нибудь очереди и т.п., то есть что app такой главный и всем рулит, но это спорный подход и не для всех случаев. Может быть web-интерфейс вообще опционален?

Аноним 17/07/19 Срд 20:49:00 1437834181
>>1437806
Делаешь класс, который делает все. И будет достаточно его свойств, принципы ООП соблюдены - глобальные переменные не нужны.
Аноним 17/07/19 Срд 21:19:46 1437863182
>>1437826
Спасибо анон!
Сделал упрощенный пример и он работает без warnings.
https://pastebin.com/WTin2nVm
>>1437834
>Делаешь класс, который делает все.
ИМХО этот подход примерно эквивалентен глобальным переменным.
>принципы ООП соблюдены
И разумеется не соответствует ООП и более того является известным антипатерном - "объект бога".
Я признаться честно не большой специалист в программировании, но кажется asyncio более тяготеет к процедурщине. А уж тем более в моем случае, когда выполняется много мелких задачек, слабо связанных между собой, городить для этого единый класс, чтобы потом запускать методы по отдельности, только ради namespace, такое себе.
Лучше как >>1437826 анон предложил.
Но в любом случае спасибо.
Аноним 17/07/19 Срд 21:39:34 1437889183
>>1437814
>OpenCV изучаю, с питоном же он тоже хорошо интегрируется.
Тут ключ к успешному решению твоих задач.

> трейдбота пишу
Мм, прибыльно, наверное?
Аноним 17/07/19 Срд 22:34:47 1437924184
>>1437863
Сам только перекатываюсь на asyncio и aiohttp. Правда до этого и на питоне много писал, и на других платформах сетевые вещи писал.

Как спроектирован aiohttp пока не очень нравится, asyncio симпатичен и разумен. Доки рекомендуют всё хранить в app, но это грязно, видимо поэтому этот warnings и появляется.

Если делать класс, то это не глобальный объект. Ты ведь можешь сделать несколько таких классов.

Доки по aiohttp и рекомендации отчасти предполагают, что aiohttp главный объект, то есть что ты вебсервер реализуешь. Но это не всегда так. У меня может быть другой главный сервис, а aiohttp лишь один из сервесов, который там работает. Можно с ним, а можно без него. Или можно с двумя разными aiohttp, на разных портах и разного назначения.

Я сейчас вижу архитектуру так. Ты делаешь приложение my_service, инициализируешь его. В него уже передаёшь созданный, но не запущенный app (aiohttp сервис), либо даже просто соответствующий класс. Приложение my_service само пропишет ссылку на себя в app и стартует его.

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

Идея, чтобы asyncio-app отвечал за содержательный функционал мне не нравится, если задача уходит дальше, чем обычный вебсервер.
Аноним 17/07/19 Срд 22:36:55 1437927185
>>1437924
>web-app уже даёт интерфейс для app
опечатка, my_service даёт интерфейс для app, веб интерфейса
Аноним 17/07/19 Срд 22:58:08 1437943186
image.png (152Кб, 958x905)
958x905
Вечер в хату, котаны! Спасайте!
Задача: есть список сайтов, код которых надо пропарсить на наличие определенной сигнатуры html/js. То есть в идеале скрипт принимает на вход файл со списком и выдает другой файл где собраны сайты, на страницах которых есть нужный код. Проблема в том, что мои познания в питоне ограничиваются тем, что он простой и для большинства задач уже собран готовый велосипед. Мой максимум - разобраться за часик другой в чьем-то коде и попробовать докрутить под себя. Ну или за большее количество времени написать что-то криво-косо с нуля, если мне объяснят, какие основные библиотеки и фичи нужны для решения этой задачи. Помогите, антоны, с меня как всегда лучи добра.
Аноним 18/07/19 Чтв 00:16:10 1438012187
>>1437790
Определять тип объекта можно попробовать при помощи построения вектора кождого из товаров(вектор основывается на гистограмме цветов). Для этого надо для начала подобрать базу скринов и по ним вычислить вектора. Дальше делаешь скрин ячейки, вычисляешь вектор и делаешь быстрое перемножение: твой вектор ячейки на кучу векторов уже в БД (матричное перемножение итт), дальше сортируешь по степени схожести(от 0 до 0.9) и берешь самый лучший вариант.
Делал подобное, но на больших фотках, анализ одной, на процессоре, занимал примерно 0.002с, у тебя же фотки меньше, можешь сделать это все ещё и мультипроцессингом - вообще огонь будет.
Эх
Аноним 18/07/19 Чтв 04:56:51 1438059188
Какой попенсоурс джанго проджект можно посмотреть чтобы аж покайфовать как ахуенно сделоли?
Аноним 18/07/19 Чтв 10:33:43 1438109189
Котаны, подскажите, если вэб в питоне?
Куда перекатываться после пхп? И есть ли смысл перекатываться?
Я по мухосранску Краснодар hh смотрел - именно вэб вакансий чет совсем мало. Синтаксис питона знаю.
Ща ковыряюсь в Node.js. И думаю о питоне.
Короче мучаюсь выбором второй платформы для изучения.
Вообще в принципе преимущества питона в вэб-бекенде относительно пхп каковы? ( я не троллинга ради, хочу вектор для себя набить)
С node.js все понятно - там асинхронность из коробки, событийный цикл, все это интересно, но такое ощущение что noda нахрен никому не нужна в РФ.
А питон?
Аноним 18/07/19 Чтв 11:05:52 1438117190
>>1438109
>Котаны, подскажите, если вэб в питоне?
Учить пользоваться поиском, по технологиями и по вакансиям.

>>1438109
>Я по мухосранску
Я думаю там по всем направлениям IT мало вакансий.

>>1438109
>Вообще в принципе преимущества питона в вэб-бекенде относительно пхп каковы?
Просто более внятный и стройный код, сам язык поддерживает многие конструкции элегантно и удобно. После питона писать на пхп противно. Фреймворки тоже иначе сделаны, но это уже от фреймворка зависит.
Аноним 18/07/19 Чтв 11:30:52 1438121191
>>1438109
> ковыряюсь в Node.js.
>И думаю о питоне.

пидор
Аноним 18/07/19 Чтв 11:49:22 1438127192
Аноним 18/07/19 Чтв 12:23:10 1438137193
>>1431706
>на каком моменте можно прекращать придумывать абстрактные классы и писать уже код
С самого начала. Зачем тебе вообще классы в питоне? Напиши логику, а потом уже абстрагируй, если необходимость появится.
Аноним 18/07/19 Чтв 13:14:08 1438147194
Анон подскажи нубу плз. Пилю для себя скрипт. Хочу чтобы после обработки данных скрипт создавал файлик в гугл докс. Что вообще курить, в какую сторону двигаться?
Аноним 18/07/19 Чтв 13:16:53 1438150195
Аноним 18/07/19 Чтв 13:30:43 1438155196
>>1438150
Ну досюда то я догуглил. Просто чёто как-то страшновато туда лезть. Там вообще сильно сложно для самовкатывальщика?
Аноним 18/07/19 Чтв 13:36:52 1438157197
>>1438117
>>Я думаю там по всем направлениям IT мало вакансий.
ПХП > 100 вакансий. Питон + Джанго = 6.
Аноним 18/07/19 Чтв 16:15:40 1438288198
>>1438155
Программирование - это сложно [дот]
Аноним 18/07/19 Чтв 18:55:23 1438390199
Снимок экрана в[...].png (104Кб, 1920x1080)
1920x1080
какого хуя?
Аноним 18/07/19 Чтв 19:11:19 1438395200
>>1438157
Почему так? Почему элита не ценится?
Аноним 18/07/19 Чтв 19:14:44 1438399201
>>1430914 (OP)
нигеролюб идёт на хуй вместе со своим уёбищным тормозным питоном и всеми говнопроектами на нём.
Аноним 18/07/19 Чтв 19:43:06 1438418202
>>1438390
Если тебе непонятны такие пустяки, то ты выбрал неправильное занятие.
Это условие у тебя покрывается уже отработанным условием сверху.
Аноним 18/07/19 Чтв 19:44:01 1438421203
>>1438390
иф выполнится при любом t

то что над ним есть другой иф - иррелевантно, чтобы стало релевантно используй elif
Аноним 18/07/19 Чтв 19:47:34 1438425204
>>1438421
yatoopanool, у тебя же там И, а не ИЛИ
тогда хуй знает, не должно быть никаких варнингов. я не ебу что за иде и дефолтные условия, но дело в них
Аноним 18/07/19 Чтв 20:44:38 1438463205
Что там по асинхронным ORM сейчас годного есть, да чтоб с миграциями?
Аноним 18/07/19 Чтв 21:43:32 1438495206
>>1438425
Пиздец, все питонисты такие тупые, что больше одной строчки кода прочесть не могут?
Аноним 18/07/19 Чтв 21:55:50 1438499207
>>1438425
Тебе варнинг показывается не на if целиком, а только на первую его часть. Просто выделено слабо и сформулировано неочевидно, я сам долго понять не мог, пока не пригляделся, что там выделение есть.

По смыслу там должно быть не
if t >= 60 and t < 3600
а просто
if t < 3600

Аноним 18/07/19 Чтв 21:58:16 1438502208
>>1438499
А в плане читаемости лучше было бы использовать конструкцию

if t < 60:
....
elif t < 3600:
....
Аноним 18/07/19 Чтв 22:08:17 1438507209
>>1438495
соси хуй, быдло. к семантике языка это не имеет никакого отношения и в дефолтном питоне никаких варнингов не будет

>>1438495
понял, типа статический анализатор определил, что это бессмысленное сравнение ввиду предыдущего ифа
Аноним 18/07/19 Чтв 22:09:14 1438508210
>>1438499
>>1438507

> понял, типа статический анализатор определил, что это бессмысленное сравнение ввиду предыдущего ифа
Аноним 18/07/19 Чтв 22:24:28 1438518211
>>1438463
Нихуя.
Пулл коннектов делаешь и всё хорошо.
Аноним 18/07/19 Чтв 23:38:50 1438559212
В Python есть инструменты для взаимодействия с элементами приложений Windows? Хочу дать проге доступ к клавиатуре.
Аноним 19/07/19 Птн 01:29:02 1438591213
Аноним 19/07/19 Птн 03:08:10 1438605214
>>1437754
> if type(a) is b

Почему не instanceof?
Аноним 19/07/19 Птн 14:59:54 1438796215
написал программу с бесконечным циклом которая постоянно принтует "Ты пидор Ты пидор Ты пидор Ты пидор" первый раз за всё время обучения погромированнию получил удовлтеоврение и положительные эмоции.
Аноним 19/07/19 Птн 15:06:02 1438798216
>>1438796
>написал программу с бесконечным циклом которая постоянно принтует
>первый раз за всё время обучения
Надеюсь сегодня твой первый день обучения. Иначе тебе стоит поискать другую специальность.
Аноним 19/07/19 Птн 15:08:14 1438802217
>>1438796
я даже больше скажу. когда я её первый раз написал, после этого я редактировал её 3 раза, пока не довёл до того что в итоге там осталась только одна перменная. программа получилась идеально простой и понятной.

>>1438798
у меня итак другая специальность. просто мне досталась ангельская книжка по питхоне ну и вооружившись гугле переводчиком решил "чего добру то пропадать" вот сижу с июня потихоньку читаю её.
Аноним 19/07/19 Птн 15:10:30 1438803218
>>1438802
>пока не довёл до того что в итоге там осталась только одна перменная
Тебе действительно стоит поискать другую вещь для вката. Для такой программы не нужно переменных вообще.
Аноним 19/07/19 Птн 15:11:30 1438806219
>>1438803
я не собираюсь вкатываться блять, я тупо читаю книгу по питону которая нахялву досталась. у меня уже давно есть вкат в другую специальность.

кстати напиши код без перменных интересно как он будет выглядеть.
Аноним 19/07/19 Птн 15:15:41 1438813220
>>1438803
покажи код программы без перменных которая будет выводить бесконечно "Ты пидор...", заинтриговал.
Аноним 19/07/19 Птн 15:20:22 1438817221
>>1438803
жду код без переменных, кукаретик ебучий? а ты, что падла думал сейчас простых упражнений поверхностно нарешаешь и погромист дохуя? ахахах соси хуй маня, это тебе сюда вкатываться не надо, ты поверхностый хуесос который хочет зазубрить синтаксис и нихуя более. давай жду цикл WHILE без перменных
Аноним 19/07/19 Птн 15:26:00 1438823222
2019-07-19 1721[...].png (84Кб, 902x1010)
902x1010
Как вкатится в математику? Я может когда-то это все понимал, но сейчас что называется вижу фигу.
Аноним 19/07/19 Птн 15:43:30 1438841223
resmario.jpg (35Кб, 450x240)
450x240
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt

img_rgb = cv.imread('mario.png')
img_gray = cv.cvtColor(img_rgb, cv.COLOR_BGR2GRAY)
template = cv.imread('mario_coin.png',0)
w, h = template.shape[::-1]
res = cv.matchTemplate(img_gray,template,cv.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where( res >= threshold)

for pt in zip(*loc[::-1]):
cv.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)
cv.imwrite('res.png',img_rgb)


Чет не догоняю как вытянуть позиции(координаты) найденных темплейтов, в pt есть какие-то координаты но они не совпадают с объектами, совсем, и много повторяющихся значений.
Аноним 19/07/19 Птн 15:44:18 1438843224
>>1438803
>>1438798
ЭЭЭЭЙ, задрот. АУУУУУ, где твоя программа без перменных? Что ты там говорил, бля? Что это не моё? Може это не ТВОЁ? МАНЯ ЗАЛЁТНАЯ, ПОССАЛ ТЕБЕ НА ЕБАЛО С РАЗБЕГУ. пиздеть горазд, а как обосрался в игнор. чсвшное задротище, наверное такие ублюдки как ты пишут статьи на лурочке. вид важный будто хуй бумажный, а на деле нихуя не знает и не умеет, всё поверхностно. только на двоще передеть может. ТЫ ОБОССАН
Аноним 19/07/19 Птн 16:14:10 1438881225
>>1438813
while True: print("you're a faggot...")
Аноним 19/07/19 Птн 16:16:34 1438885226
>>1438823
Преставь себе два вектора, т.е. две стрелки, выходящие из начала координат. Как измерить их близость? Можно измерить расстояние между кончиками. Можно измерить угол. Можно измерить скалярное произведение.
При этом нам не важно, сколько измерений в твоем векторе, может быть 2, может быть 3, может быть 1000, у каждого такого вектора можно все это посчитать, просто формулы обобщаются на все большее число измерений. Т.е. например расстояние в 2д это
sqrt((x1-x2)^2+(y1-y2)^2) по теореме Пифагора, в 3д это sqrt((x1-x2)^2+(y1-y2)^2+(z1-z2)^2), а в общем виде sqrt((sum(xi-yi)^2)). То же можно провернуть и с формулами скалярного произведения, угла, и так далее.

Далее, в задаче темплейт матчинга нам нужно посчитать меру близости между двумя изображениями. У нас есть два изображения, большое и маленькое. Маленькое будет "скользить" по большому от пикселя к пикселю, и мы будем сравнивать близость между маленьким изображением и куском большого, на который мы в данный момент попадаем. Отсюда появляется T'(x', y') с одной стороны (маленькое изображение - нет скольжения) и I(x+x', y+y') - большое изображение. И R(x, y) = Yoba(T'(x', y'), I(x+x', y+y') ) - где Yoba является конкретной мерой близости. Соответственно R(x, y) измеряет близость каждого пикселя x,y и его окружения большого изображения и между твоим темплейтом.

Затем мы каждое изображение представляем в виде многомерного вектора и измеряем степень близости. Первое - это обобщенная на многомерный случай расстояние между кончиками векторов по теореме пифагора, только для упрощения рассчетов остается квадрат, не вычисляем корень x^2 + y^2 + z^2. Второе - это расстояние дополнительно делится на длины векторов. Третье - скалярное произведение. Четвертое косинус угла между векторами по формуле скалярное произведение делить на длины. И так далее.

Ну и да, если ты не понял, что я написал, ты не вкатишься никогда, потому что не все люди достаточно умные, чтобы оперировать на таком уровне абстракций. Если понял - то почитай десяток книг по компьютерному зрению, по DSP, несколько научных статей, и это проблем представлять не будет.
Аноним 19/07/19 Птн 16:21:02 1438891227
>>1438885
Спасибо за такой развернутый ответ!
Аноним 19/07/19 Птн 16:23:08 1438894228
Аноним 19/07/19 Птн 16:27:27 1438903229
>>1438157
И зачем нужен питон, если есть божественный пхп?
Аноним 19/07/19 Птн 16:28:55 1438905230
>>1438881
да, точно с ебланил. ну извини, ладно. да я же читал в книге что цикл работает если заявление тру. блять мог бы сам додуматься до этого.
Аноним 19/07/19 Птн 16:30:27 1438907231
>>1438905
Я не он. Не надо приносить извинения тому мудаку.
Аноним 19/07/19 Птн 16:31:24 1438909232
>>1438907
ладно, тот пидор остался безпруфным кукаретиком.

спасибо тебе, ещё раз.
Аноним 19/07/19 Птн 16:47:47 1438933233
noloops.png (25Кб, 542x223)
542x223
>>1438881
while не нужен
пример на 3.7, на 3.6 не заработает
Аноним 19/07/19 Птн 16:49:09 1438934234
Аноним 19/07/19 Птн 17:00:23 1438941235
>>1438934
3.6 и даже 3.5 ещё активно используются. Например под 3.7 ещё нет PyPy.
Аноним 19/07/19 Птн 18:42:17 1439017236
>>1438934
Я вообще 3.4.2 пользуюсь. И ничего, живу как-то.
Аноним 19/07/19 Птн 18:51:34 1439026237
>>1439017
Если асинхронщину не клепать, то может быть и всё равно.
Аноним 19/07/19 Птн 21:31:55 1439133238
>>1438894
он нихуя не понял всё равно, зря писал
Аноним 19/07/19 Птн 21:32:40 1439134239
>>1439133
Ты что ли понял болезный?
Аноним 19/07/19 Птн 21:38:54 1439139240
Аноним 19/07/19 Птн 22:14:36 1439150241
15462014536990.jpg (21Кб, 432x288)
432x288
Анон, помоги нюфажине. Тут падас или нампай.
Есть датафрейм вида
1 | 1 | 1,1
1 | 2 | 1,2
1 | 1 | 0,87
1 | 3 | 0,65
1 | 4 | 3
1 | 1 | 2,3
2 | 2 | 4
2 | 1 | 0,65
2 | 3 | 11
..........

Т.е первый столбец содержит идентификатор (как видно он может повторяться для строк), второй столбец колеблется в каких-то повторяющихся пределах, а третий содержит уникальные значения.
Надо:
- разбить табличку на минитаблички по параметру "1столбец". Я правильно понимаю. что первый столбец надо сделать ключом в таком случае?
- подсчитать частоту второго параметра для каждого идентификатора из первого столбца
- на основании этого для одинаковых параметров из второго столбца суммировать значения из 3го.
Аноним 20/07/19 Суб 10:07:05 1439297242
Сколько надо дрочить питон чтобы выйти хотя бы на 60к? Скажем, если я на обучение выделяю каждый день часа 4 после работы и один выходной с утра до вечера.
Наверняка таких вопросов дохуя было, можно в факе закрепить.
Аноним 20/07/19 Суб 10:15:42 1439301243
>>1439297
Ну мне кажется как повезет. Можешь пойти вообще как стажер за 90к.
Аноним 20/07/19 Суб 11:12:52 1439311244
>>1439297
Тут качество дрочения важнее количества
Аноним 20/07/19 Суб 12:39:16 1439337245
>>1439297
Такие вопросы обычно задают в "мы вам перезвоним".

Надо в первую очередь уметь программировать. На чём именно - не важно.

Если ты уже программируешь, то питон осваивается быстро. Если ты владеешь какой-то технологией на одном языке, будь это треды/процессы/async, то и на питоне с ними разберёшься относительно быстро.

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

Чистый питон никому не нужен. Нужны сопутствующие технологии, они требуют много времени на освоение, смотри вакансии по ключевому слову python.
Аноним 20/07/19 Суб 14:07:28 1439372246
2.png (21Кб, 753x247)
753x247
1.png (16Кб, 740x142)
740x142
Есть цифры такого вида (1 скрин), поигравшись немного с ресайзом и инверсией привел их в более менее стабильный для распознания tesseract'ом вид (2 скрин), но хоть и редко,все равно бывает плохо распознает.

Размер и шрифт цифр всегда один, но количество может быть до 99. Как, кроме tesseract'а можно распознавать их стабильнее и желательно побыстрее?

Аноним 20/07/19 Суб 14:18:01 1439380247
>>1439372
А насколько там стабильный источник цифр? Это скан или что-то ещё? Одинаковые цифры выглядят очень похожими друг на друга, с точностью до пикселя.

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

Аноним 20/07/19 Суб 14:35:25 1439390248
>>1439380
Небольшая нестабильность заключается в том, что это цифры на всплывающем полупрозрачном тултипе в игре, но в варианте 2 по идее они должны попиксельно совпадать.

Думал примерно о том, что ты говоришь, но только как о концепции, как это реализовывать не представляю. Мне нужно будет подготовить 10 контрольных (0123456789) и каждый раз их по кругу прогонять на тесовой картинке в поисках совпадений?
Аноним 20/07/19 Суб 15:15:51 1439419249
>>1439301
>>1439311
>>1439337
Ок, упрощу вопрос без гаданий об индивидуальности вопрошающего. Сколько у вас ушло времени, чтобы выйти по зп на 60к+?
Аноним 20/07/19 Суб 15:20:42 1439421250
>>1439419
Съеби нахуй дебил. Смотря в каком городе, че за контора, СУПЕР СИЛЬНО зависит от софт скилов на собесах, а не от умения кодить.
Аноним 20/07/19 Суб 15:23:52 1439424251
>>1439421
В первую очередь надо уметь программировать. Но этому и за годы можно не научиться, а сваливать всё на софт скиллы, которые да, тоже важны.
Аноним 20/07/19 Суб 15:27:51 1439428252
>>1439424
Не нужно философствовать, был конкретный вопрос от зеленого нуфага, у которого по определению не может быть харда, и на собесах будет решать именно софт.
Аноним 20/07/19 Суб 15:35:52 1439432253
>>1439390
Не знаю, как такое делать на питоне, наверное уже надо подключать пакеты numpy, чтобы быстро было.

Как у тебя эти картинки в питоне представлены? Картинка фиксированного размера в пикселях? В питон как, в виде списка кладёшь?

Вот если ты хранишь во вложенных списках
digit[y][x]
просто считаешь сумму в виде:
summ = 0
for y in range(SIZE_Y):
forn x in range(SIZE_X):
summ += (checking_number[y][x] - sample['5'][y][x])^2

summ = summ / (SIZE_X * SIZE_Y)

Только не ^2, а возведение в квадрат, две звезды которые

это среднеквадратичное отклонение. Так для всех цифр. Даже просто в питоне должно работать быстро, а если numpy, то ещё на порядок можно ускорить. Разные оптимизации можно придумать дополнительные.

В таком варианте даже если есть легкий фон, не страшно. Можно. Надо тестировать.

Смотришь, у какого образца будет минимальное отклонение.
Аноним 20/07/19 Суб 15:39:28 1439437254
>>1439428
Если ты неуверенно держишься и приходишь как на экзамен, это в минус.

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

Тысячи примеров, народ ничего не знает, показывает это, а потом валит всё на софт скиллы и на то, что муйню ненужную спрашивают.
Аноним 20/07/19 Суб 15:42:36 1439440255
>>1439428
>был конкретный вопрос от зеленого нуфага
Не нужны.
Зелёный нюфаг спросил про "60 т.р.", а не про то, "что надо уметь, чтобы взяли на работу". Это приговор. Нюфаг просто не понимает, что это лютый пиздец.
Аноним 20/07/19 Суб 15:55:15 1439448256
>>1439440
Да,он обречен, именно поэтому я начал свой пост с
>Съеби нахуй дебил.

Ну и что бы совсем не офтопить, дополнил для других залетных.
Аноним 20/07/19 Суб 19:59:07 1439622257
Аноним 20/07/19 Суб 20:22:25 1439629258
15330576481250.jpg (50Кб, 451x604)
451x604
Куда делась ссылка на конфигуратор кода?

Есть кусок кода в джаго работающий со связкой поста и мыл
вышибает
IndentationError: unindent does not match any outer indentation level

и указывает на строку subject
В чем проблема, не понимаю.

Кусок кода
https://ideone.com/yASeqi

помогите
Аноним 20/07/19 Суб 20:49:03 1439638259
разобрался, странно, вроде не мешал
Аноним 21/07/19 Вск 15:26:08 1439994260
Есть встроенная функция open()
Про нее могу почитать в документации в Built-in Functions

А в каком разделе можно почитать про файловые аргументы типо .write() или .close() ?
Аноним 21/07/19 Вск 15:53:44 1440006261
>>1439629
В 9-ой строке 3 таба, в 10-ой — 12 пробелов.
Аноним 21/07/19 Вск 16:57:57 1440049262
15335849576a3 ([...].gif (84Кб, 400x480)
400x480
Что лучше использовать для хранения списка структур: ванильный питоновский list([dict(), dict()...]) или pd.Dataframe
В какой структуре нода ищется быстрее?
Аноним 21/07/19 Вск 19:19:24 1440119263
Стоит ли читать Лутца? А то книга очень длинная. Не то, чтобы я не могу прочитать тысячу страниц, просто много никому ненужной информации. Есть годная альтернатива без воды "от и до"?
Аноним 21/07/19 Вск 19:22:07 1440122264
>>1440119
Может вообще в другой язык вкатиться? Python пользуется каким-то спросом?
Аноним 21/07/19 Вск 20:25:55 1440150265
>>1440122
Вкатывайся в Паскаль. Честно, плохого тебе тут не посоветуют.
Аноним 21/07/19 Вск 21:57:33 1440192266
Читаю Лутца, самую первую книгу для нобов, "Python learning" или что-то такое.

СТОЛКНУЛСЯ С ПРОБЛЕМОЙ

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

Сразу за этим РЕЗКО идут кулстори про списки/словари/пробки анальные. Не то, чтобы это прям не понятно, но аФФтар использует в объяснении вещи, которые ещё не проходили в рамках книги.

Так вот, насколько важно посимвольно понимать и прогонять примеры из книги? Если кто читал, прошу пояснить, в какой момент мне станет внезапно всё понятно.
Аноним 21/07/19 Вск 23:39:45 1440214267
>>1436489
Короче разобрался с вопросом. Как я и думал -- решение есть, надо лишь его правильно нагуглить.
метод as_matrix переводит почти в нужную мне матрицу (массив массивов-строк). Транспонировав (метод transpose, вроде из либы numpy) матрицу я получил то, что и реквестил.
Аноним 21/07/19 Вск 23:51:57 1440217268
>>1440192
Я для себя решил сначала решить задачки на питонтуторе чтобы иметь хоть какое-то представление о предмете, потом вернусь к Лутцу.
Аноним 22/07/19 Пнд 00:04:29 1440219269
Аноним 22/07/19 Пнд 00:22:10 1440230270
download (140Кб, 604x403)
604x403
>>1430914 (OP)
ВВОДНАЯ
Несостоявшаяся пхп макака которая только и смогла осилить процедурный код, поверхностно коснуться баз данных и ооп стало скушно, не интересно, можно применять только в вебе хочет вкатиться в питон.
ЗАДАЧА
Помочь макаке с поиском книжки на русском, чтоб как у О'райли Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript - свежее издание, годная подача материала, чтоб совсем для бомжей типа меня, и чтоб майнкрафт змейку писать научил!
Аноним 22/07/19 Пнд 00:34:50 1440236271
>>1440230
Поясните за Эрика Маттиса
Аноним 22/07/19 Пнд 01:55:05 1440258272
>>1430914 (OP)
Приветствую, питононы! Вопрос скорее - математический.

Есть простенький скрипт: https://rextester.com/TVNM46327
Как видно, при его исполнении, некое сгенерированное число - делится с остатком
на различные делители, являющиеся степенями двойки.
При этом, вся информация о числе - содержится в остатках.
В каждом из случаев - множитель спадает в ноль.

Пусть x - неизвестное число. Пусть стоит задача подобрать x перебором.
Пусть известно условие, которое исполняется, если число x - корректно.
Пусть также будет известна - максимальная битовая длина числа x,
и пусть она будет равна значению power = 12.
И пусть в качестве бонуса, искомое x находится в мультипликативной группе кольца вычетов
по простостому модулю (это не обязательно, но если поможет - вот).

Внимание, вопрос. Возможно ли, глядя на результат вывода предыдущего скрипта,
как-то ускорить подбор x, используя различные делители?
Существуют ли какие-либо закономерности, позволяющие, например, составить систему уравнений и решить её,
определив последовательность остатков/бит, и как следствие - составить из них искомое число x?
Аноним 22/07/19 Пнд 02:19:39 1440261273
>>1440258
Ничего не понятно. У тебя есть двоичное разложение числа, то есть фактически само число.

> Пусть известно условие, которое исполняется, если число x - корректно.
В общем случае никак. Вот пусть тебе криптохеш известен. Или экспонента числа по модулю (DH, RSA). Это как крайние случаи.

Собственно ты и лезешь в DH/RSA и спрашиваешь, нет ли быстрого способа вычислить. Способы есть, существенно более быстрые, чем перебор, но всё равно экспоненциальные. Но это тебе надо в специальную литературу лезть.

Или я не понимаю. То есть я точно не понимаю, что ты спрашиваешь.
Аноним 22/07/19 Пнд 03:07:20 1440270274
blob (41Кб, 800x800)
800x800
>>1440261
>Ничего не понятно.
Я скрипт, просто как пример скинул, чтобы было видно закономерности деления с остатком на степени двойки.
Некоторые вижу, а некоторые нет.
Может есть какие-то скрытые закономерности.
И хотелось бы их все учесть, собрать воедино и связать в алгоритм или систему уравнений, которую можно было бы взять и решить.
>У тебя есть двоичное разложение числа, то есть фактически само число.
Как видишь, в скрипте, число x - генерируется, а потом раскладывается.
Но если x неизвестно, неизвестно и его разложение, и множители, и остатки.
Известен только делитель - последовательно увеличивающаяся степень двойки.
Но, как видно по результатам работы скрипта, самый последний множитель в каждом разложении - равен нулю. Везде, при любом делителе.
И хотелось бы как-то через эти разложения, от числа, прийти к нулю кратчайшим путём (ну или от нуля к числу),
параллельно с этим - определяя (генерируя), как множители, так и главное - сами остатки.
Сдаётся мне, что использование нескольких делителей - может помочь в этом, потому что видно, что есть некие закономерности...
Но, всё это очень мутно у меня, пока что... Не могу сформулировать толком.

> Пусть известно условие, которое исполняется, если число x - корректно.
Тут имелось в виду то, что приходя от нуля к x, через генерацию множителей и остатков,
можно к нему либо прийти, либо не прийти.
Так вот, условие это такое, что оно исполняется, только если x составлено корректно.
То есть, когда подобранное из множителей и остатков число - действительно равно x.
Иначе, условие не исполняется.

>В общем случае никак. Вот пусть тебе криптохеш известен. Или экспонента числа по модулю (DH, RSA). Это как крайние случаи.
>Собственно ты и лезешь в DH/RSA и спрашиваешь, нет ли быстрого способа вычислить.
>Способы есть, существенно более быстрые, чем перебор, но всё равно экспоненциальные.
>Но это тебе надо в специальную литературу лезть.
Узко-специализированное нечто, для конкретных целей, ну там коллизии всякие (к хэшам),
или алгоритмы, атаки, бекдоры (RSA/DH) - всё это, не особо интересует...

Тут скорее, я пытаюсь - именно общий случай рассмотреть.

Но если хочешь узнать более конкретно, то вот...
На пикрелейтед - простая, циклическая и элементарная группа Zp малого порядка - 13. Z13
Как видишь, она состоит из 13-ти элементов, один из которых - нулевой (чёрная точка).
Остальные 12 элементов, имеют свой номер от 1 до 12.
Их можно складывать, вычитать, умножать и делить. А ещё, можно найти обратный элемент (-5 = 13 - 5 = 8; -6 = 7).
Операция деления тоже определена, ведь число 13 простое, поэтому кольцо это - является конечным полем, полем Галуа.
И в нём определена операция деления.
Ну, и собственно задача, есть элемент, пусть он будет седьмым. И надо найти его индекс - число 7.
Конечно же, число p может быть намного больше чем 13, и первое, что приходит в голову,
так это последовательный перебор всех значений от 0 до 7 (или до дохулиарда-семь).

Но чё-т сдаётся мне, что можно взять и поделить, а потом ещё раз, и ещё раз и ещё раз.
Аноним 22/07/19 Пнд 05:23:33 1440274275
>>1440270
>Ну, и собственно задача, есть элемент, пусть он будет седьмым. И надо найти его индекс - число 7.
Я всё равно не понимаю. Что такое индекс?
Ты можешь породить какую-то группу по умножению, её порядок будет = 12 (p-1 для простого p).
Но эту группу ты чем-то порождаешь, каким-то элементом.
Можно двойкой:
1, 2, 4, 8, 3, 6, 12, 11, 9, 5, 10, 7, 1
можно ещё чем-нибудь. Про выбор порождающих сейчас не помню.

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

Там есть более продвинутые алгоритмы, чем просто перебор, то есть для p порядка 2^64 ты можешь быстро найти, но они умеренно быстрые. Для 1000 бит ты уже не сможешь найти. Но это уже серьёзная наука по теории чисел и криптографии. Ты, конечно, можешь пытаться сам что-нибудь придумать, но поверь, ты не первый и даже не тысячный. Очень много думали и очень серьёзные люди.
Аноним 22/07/19 Пнд 07:55:43 1440286276
>>1440258
Тоесть тебе нихуя не известно про число, кроме длины его представления в двоичной системе и способа проверки этого числа на "правильность". И ты хочешь (быстро) найти это число?
Аноним 22/07/19 Пнд 08:59:44 1440304277
>>1440286
>кроме длины его представления в двоичной системе
010101
в данном случае это 6?
Аноним 22/07/19 Пнд 18:22:40 1440513278
AD62A337-3DDC-4[...].jpeg (156Кб, 750x798)
750x798
Почему 3?
Аноним 22/07/19 Пнд 18:27:56 1440518279
Аноним 22/07/19 Пнд 18:28:42 1440519280
Почему 3 можно объяснить ?
Аноним 22/07/19 Пнд 18:43:21 1440541281
>>1440519
things[2] = [1, 2, number]
[1, 2, number][2] = number
number = 3
Аноним 22/07/19 Пнд 18:46:25 1440545282
>>1440519
>>1440513
Потому что ты пидор Потому что в питоне нумирация массивов начинается с нуля, потому что в большом массиве элемент под индексом 2, то есть третий элемент, это другой массив, третьим элементом которого является тройка. Запись things[2][2] означает "взять третий элемент третьего элемента списка things". Серьезно, чего ты ожидал другого? Это же самые азы
Аноним 22/07/19 Пнд 18:49:07 1440547283
Спасиб понял
Аноним 22/07/19 Пнд 19:04:46 1440556284
>>1440274
>Я всё равно не понимаю. Что такое индекс?
Индекс - это порядковый номер элемента в той группе. Если элемент - седьмой, то индекс - 7.

>Ты можешь породить какую-то группу по умножению, её порядок будет = 12 (p-1 для простого p).
>Но эту группу ты чем-то порождаешь, каким-то элементом.
>Можно двойкой:
>1, 2, 4, 8, 3, 6, 12, 11, 9, 5, 10, 7, 1
>можно ещё чем-нибудь.
А это для чего?
Вообще, было бы годным - как-то породить полугруппу, например Z6,
и каким-то образом проверить принадлежность элемента к этой полугруппе,
то есть узнать содержится ли элемент в полугруппе или же нет.
Это дало бы возможность сравнивать индексы двух элементов,
отвечая на вопрос: "Больше ли индекс первого элемента - чем индекс второго или меньше?".
Так, для группы Z13:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
полугруппой являлась бы некая группа Z6:
0, 1, 2, 3, 4, 5, 6, содержащая ровно половину элементов изначальной группы.
Или, если с другой стороны, то :
7, 8, 9, 10, 11, 12, 0 - вторая половина

Тогда, разница двух элементов, скажем 3 и 7,
может быть как положительной: 7-3 = 4;
так и отрицательной: 3-7 = -4 = (-4) mod 13 = (-4+13) mod 13 = 9 mod 13 = 9;
А определяя в какой полугруппе результат вычитания - можно было бы определить,
больше ли индекс 7 у уменьшаемого элемента, нежели индекс 3 у вычитаемого, или же он меньше.

А ещё, некая полугруппа Z6, порождённая двойкой:
0, 2, 4, 6, 8, 10, 12 - она содержала бы все элементы с чётными индексами.
Однако (12 + 2) mod 13 = 1; (1+2) mod 13 = 3; и т. д.
То есть, если продолжить предыдущую Z6, продолжая прибавлять двойку,
то она просто совпадёт с изначальной группой:
0, 2, 4, 6, 8, 10, 12, 1, 3, 5, 7, 9, 11 - будучи при этом той же,
изначальной Z13, а не её полугруппой.
Если удалось бы сгенерировать именно полугруппу, и проверить принадлежность элемента ей,
то можно было бы сказать чётный ли индекс элемента, или же нечётный,
а дальше уже, чётко зная чётность - либо разделить этот индекс на два, либо отнять единицу а потом разделить на два.
И так, последовательно - прийти к нулю, извлекая биты числа x.

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

>Найти логарифм, то есть степень, в которую нужно возвести 2, чтобы получить 7, сложно.
>На этой сложности базируется система обмена ключей DH.
Вообще-то, у меня, задача состояла в том,
чтобы найти индекс элемента в пиздатом кольце, а не показатель степени.
Но судя по этой таблице https://ru.wikipedia.org/wiki/Дискретное_логарифмирование#Пример
видно, что показатели степени, по порядку - тоже формируют кольцо, и результаты - замыкаются в кольцо.

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

А так-то я в общем вопрос ускрения перебора тут рассматриваю...
Может кто и найдёт какие-либо скрытые закономерности и взаимосвяжет их в алго или систему уравнений.

>>1440304
>010101
>в данном случае это 6?
Да.

>>1440274
>Там есть более продвинутые алгоритмы, чем просто перебор,
>то есть для p порядка 2^64 ты можешь быстро найти, но они умеренно быстрые.
>Для 1000 бит ты уже не сможешь найти. Но это уже серьёзная наука по теории чисел и криптографии.
Я видел тот же pollard rho алгоритм, который работает до корня от числа.

>Но это уже серьёзная наука по теории чисел и криптографии.
>Ты, конечно, можешь пытаться сам что-нибудь придумать, но поверь,
>ты не первый и даже не тысячный.
>Очень много думали и очень серьёзные люди.
Вот я и думаю... И глядя на ту таблицу, то есть на результат работы скрипта https://rextester.com/TVNM46327
решил поставить задачу вот так:
Оптмальнейшим образом - попытаться прийти от нулей к числу, используя различные делители
- сделать это за ограниченное количество шагов, и возможно даже - синхронно.
Согласись, перебрать остатки - намного проще, нежели перебрать всё число.
Особенно если их перебирать не надо, и если они как-то закономерно между собой - коррелируют.
Ведь я вижу, что данные каким-то образом всё-же взаимосвязаны в той таблице:
1. Все множители различных делителей - содержатся в множителях, при делении числа, с остатком - на 2.
2. Первый множитель - сдвигается на показатель степени двойки у делителя.
3. ВСЕ множители - плавно убывают до нуля, за ограниченное битовой длиной числа - количество операций.
4. Остатки всегда меньше делителя, они содержат сдвинутые биты изначального числа, и несут всю информацию о числе.
5. Иногда, остатки повторяются, а иногда - нет. Если повторяются, то остаток меньше делителя, иначе - больше, и остаток - разница между предыдущим остатком и делителем.
6. Вижу связь между множителями различных делителей - множитель текущего делителя,
это либо (предыдущий множитель / 2), либо (предыдущий множитель - 1)/2

Может ещё есть какие-то закономерности, но я их не вижу?
Аноним 22/07/19 Пнд 19:59:28 1440595285
dataquest.io стоит того?
Аноним 22/07/19 Пнд 20:06:45 1440602286
>>1440556
>0, 1, 2, 3, 4, 5, 6, содержащая ровно половину элементов изначальной группы.
Здесь у тебя 7 элементов.

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

Мне приходится лезть в литературу, чтобы вспомнить определения. Процитированная "полугруппа" из 7 элементов не будет полугруппой, она не замкнута относительно операции. 5+6 = 11 mod 13, это не элемент этой полугруппы.

А ещё, некая полугруппа Z6, порождённая двойкой:
0, 2, 4, 6, 8, 10, 12 - она содержала бы все элементы с чётными индексами.
Однако (12 + 2) mod 13 = 1; (1+2) mod 13 = 3; и т. д.
Вот ты и сам ответил, что это не полугруппа.

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

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

Если ты смотришь мультипликативную группу по умножению, то её порядок 12, соответственно там уже будут полугруппы меньшего порядка, как то 2, 3, 4, 6.

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

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

Зачем нужно то, что ты спрашиваешь, не очень понимаю. Смотрится так, как будто ты пытаешься придумать какие-нибудь способы решения криптографических задач вроде RSA и DH. Поверь, ты не первый, тут всё очень хорошо изучено.
Аноним 22/07/19 Пнд 20:42:38 1440638287
Анон, подскажи, пожалуйста.
Есть таблица вида:
№ |Cat
1 | A
1 | B
1 | C
1 | D
2 | A
2 | D
2 | B
3 | C

Как привести её к виду одномерного массива:
№ A B C D
1 1 1 1 1
2 1 1 0 1
...
Т.е элементы второго столбца оригинальной таблицы должны стать названиями столбцов новой матрицы, а наполнения ячеек этих столбцов - булевое 1 или 0 - т.е были они в оригинальной таблице или нет?
Аноним 22/07/19 Пнд 21:02:32 1440654288
>>1440638
Так а в чем проблема? Просто в лоб пройдись циклом и добавь
Аноним 22/07/19 Пнд 21:05:54 1440657289
>>1440654
В этом и затык. Можешь примерно накидать функцию? Или может в pandas есть?
Аноним 22/07/19 Пнд 21:16:55 1440663290
>>1440657
nombers = dict(enumerate(set(yoba[:, 0]))))
names = dict(enumerate(set(yoba[:, 1]))))
vtoraya_tablica = np.zeros(len(nombers), len(names))
for i in yoba.shape[0]:
vtoraya_tablica[ nombers(yoba[i, 0]), names(yoba[i,1]) ] = 1
примерно так
Аноним 22/07/19 Пнд 21:35:46 1440672291
Аноним 22/07/19 Пнд 21:52:06 1440679292
Есть встроенная функция open()
Про нее могу почитать в документации в Built-in Functions
https://docs.python.org/3/library/functions.html#open

А в каком разделе можно почитать про файловые аргументы типо .write() или .close() ?

Аноним 22/07/19 Пнд 21:52:49 1440680293
Добрый день всем.

Аноны, на работе проводят курсы для желаюших вкатиться в big data, аналитику и прочее с использованием питона (нет, фирма не уровня говно параша). Сам работаю в около айти сфере. Насколько это перспективно по вашему? С математикой и погромированием ранее проблем не испытывал.

Давненько думаю про backend и беспокоит, что всякие js, java и php дышат в спину, а то и вовсе востребованее. Спасибо
Аноним 22/07/19 Пнд 21:59:57 1440685294
>>1440602
>Здесь у тебя 7 элементов.
Да, включая нейтральный, нулевой элемент. Вот тут чёрную точку из картинки поста >>1440270
>Процитированная "полугруппа" из 7 элементов
Ну, я просто взял то кольцо с картинки, мысленно провёл прямую от чёрной точки к верху кольца,
потом взял шестой элемент и все элементы до этого, шестого - просто загнул в такое же кольцо.
Да, это Z7, не Z6. Не знаю, что это получилось - полугруппа ли, просто группа, или подгруппа...
Но там, без нейтрального элемента - ровно половина элементов этих...

>Процитированная "полугруппа" из 7 элементов не будет полугруппой, она не замкнута относительно операции.
>5+6 = 11 mod 13, это не элемент этой полугруппы.
Действительно, 5+6 = 11 mod 13 = 11 - не является элементом {0, 1, 2, 3, 4, 5, 6},
но является элементом {7, 8, 9, 10, 11, 12, 0}.
А если 5+6 = 11 mod 7 = 4, то хотя 11 !==4, но 11 - это четвёртый элемент в {7, 8, 9, 10, 11, 12, 0}.
Если сравнить их вот так:
{00, 01, 02, 03, 04, 05, 06} - тут 04 на определённой позиции
{07, 08, 09, 10, 11, 12, 00} - а тут 11 на той же позиции

>А ещё, некая полугруппа Z6, порождённая двойкой:
>0, 2, 4, 6, 8, 10, 12 - она содержала бы все элементы с чётными индексами.
>Однако (12 + 2) mod 13 = 1; (1+2) mod 13 = 3; и т. д.
>Вот ты и сам ответил, что это не полугруппа.
Ну понятно, если её полностью догенерировать, то получится та же группа.
А я - половинку хотел бы сгенерировать, не полную.
То есть не по mod 13, а по mod (13+1)/2 = mod 14/2 = mod 7.
Но не всю, конечно же, нахрена генерировать всю, особенно если там дофига элементов?

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

>Но она замкнута относительно своей операции.
Понятно.

>Если полугруппа порождена одним элементом, то такие полугруппы будут, порядок самой группы не является простым числом.
>13 простое число, поэтому все элементы, кроме нуля, будут по сложению порождать полную группу.
Вот тут - понятно.
А вот, выше, к простому числу прибавил единицу, сделал из него не простое,
а потом уже, разделив на два - получил его половину.
А дальше уже, по модулю этого числа - сгенерировал две разные, то ли группы, то ли полугруппы, то ли подгруппы.
Так вот, число это, 7 - оно простое же! А группы - разные. И по модулю этого простого числа 7, они и взаимосвязаны, индексами.
4 - является индексом элемента 11 во второй полугруппе, так как (5+6) mod 13 = 11; но в то же время: (5+6) mod 7 = 4;

>Если ты смотришь мультипликативную группу по умножению, то её порядок 12,
>соответственно там уже будут полугруппы меньшего порядка, как то 2, 3, 4, 6.
Вот тут я не совсем понимаю, откуда ты получил число 12,
и как группа по умножению, и её разложение может помочь подобрать индекс x...
Но я вижу, что указанная тобой группа по умножению, порождённая двойкой:
>1, 2, 4, 8, 3, 6, 12, 11, 9, 5, 10, 7, 1
действительно содержит 12 уникальных элементов, а единичка - повторяется.
При этом 2,3,4,6 - делители числа 12.
А как её разложить на полугруппы, не очень понимаю.

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

>Не очень понимаю, как ты будешь принадлежность элемента какой-то подгруппе или полугруппе определять.
Это пока - просто абстракция. Ну, то есть - критерий какой-нибудь. Либо элемент есть в полугруппе/подгруппе, либо его там нет.
Или если, вот, можно было бы условие какое-то сделать, например подобное условию принадлежности точки к эллиптической кривой,
то можно было бы и не генерировать всю полугруппу/подгруппу полностью, и не перебирать индексы в ней,
а просто подставить координаты точки - в уравнение, и проверить - лежит ли точка,
В ПОДГРУППЕ группы точек эллиптической кривой в конечном поле, или же - не лежит.

>Здесь простые случаи. Если ты будешь работать со сложными группами,
>которые представляются в виде матриц,
>то там, даже имея порождающие, не такая простая задача найти подгруппы.
Ну если они ведут себя как кольца, или поля (если порядок - простое число, а значит пределена операция деления),
то какими бы сложными не были все эти матрицы, для элементов такой группы,
определены же всё те же операции сложения/умножения/вычитания/деления...
Да, они сложнее будут, по структуре своей, но вцелом это те же операции...

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

>Зачем нужно то, что ты спрашиваешь, не очень понимаю.
Я уже писал выше, что у меня - эллиптическая кривая в конечном поле.
Если более точно, то задача - дискретного логарифмирования на эллиптической кривой:
https://ru.wikipedia.org/wiki/Дискретное_логарифмирование#В_группе_точек_на_эллиптической_кривой

Я вижу кольцо это, в группе точек на эллиптической кривой, то есть индексы точек - замыкаются в кольцо...
Поэтому задача эта, немного переквалифицировалась на дискретное логарифмирование
в кольце вычетов по простому модулю (то есть - в поле Галуа):
https://ru.wikipedia.org/wiki/Дискретное_логарифмирование#В_кольце_вычетов_по_простому_модулю

Но после всего этого, особенно после того, как оно всё заебало нахуй,
я решил просто оптимизровать подбор самого x,
используя разные пути прихода к нему от нуля, и разные делители.
Поэтому, я написал тот скриптец, вкинул его сюда, и ржу.
И мне чё-то кажется, что можно сделать систему уравнений, или написать на базе этого -
какой-то пиздатый матричный самосинхронизирующийся мега-супер-пупер-гипер-ультра-алгоритм.
Аноним 22/07/19 Пнд 22:01:10 1440686295
>>1440680
Ну раз на работе проводят, то почему бы не попробовать? Оно вполне может быть интересным.
Аноним 22/07/19 Пнд 22:04:10 1440689296
153099803388.jpg (108Кб, 720x960)
720x960
Блять, а ">=" к строкам применяется?
Мне в последовательности надо кусок вырезать, начиная с определённой строки, вот только кусок повторяется, состоит из разного содержимого и расположен в разных местах.
Аноним 22/07/19 Пнд 22:04:37 1440690297
Аноним 22/07/19 Пнд 22:05:23 1440691298
Аноним 22/07/19 Пнд 22:20:16 1440695299
Скоро аноны скажут "пиздуйте в math" и будут правы

>>1440685
>Вот тут я не совсем понимаю, откуда ты получил число 12,
Порядок будет равен p-1. А если модуль pq, то порядок будет (p-1)(q-1), это так называемая функция Эйлера. На этом основаны алгоритмы DH и RSA.

Можно придумать аналогичные алгоритмы на этом принципе.
Но я вижу, что указанная тобой группа по умножению, порождённая двойкой:
>1, 2, 4, 8, 3, 6, 12, 11, 9, 5, 10, 7, 1
действительно содержит 12 уникальных элементов, а единичка - повторяется. При этом 2,3,4,6 - делители числа 12.
2 - порождающий элемент мультипликативной группы.
Он имеет порядок 12. Если ты возьмёшь 22 = 4, то его порядок будет = 6. Если вы возьмёшь 222 = 8, то его порядок будет 4. Если ты возьмёшь 2222 = 16 => 3, то его порядок будет 3, а вот 2^5 = 32 => 6, поскольку 5 взаимопросто к 12, то порядок будет 12.

Тут всё просто.

>>1440685
>Я вижу кольцо это, в группе точек на эллиптической кривой, то есть индексы точек - замыкаются в кольцо...
>Поэтому задача эта, немного переквалифицировалась на дискретное логарифмирование
Я так и подумал. Ты пытаешься как-то просто решить серьёзные криптографические задачи, на которых сейчас всё строится. Поверь, тут очень серьёзная наука. Поверь, над этими вопросами думали многие десятки тысяч очень серьёзных математиков. Ну флаг в руки.
Аноним 22/07/19 Пнд 22:22:19 1440697300
>>1440695
Если ты возьмёшь 22 = 4, то его порядок будет = 6. Если вы возьмёшь 222 = 8,
Тут знаки умножения пропали, которые стояли между двойками.

Продолжать не буду, вряд ли кому интересно. Думаю, тебе стоит пойти в math. К питону это никакого отношения не имеет, к программирования почти никакого.
Аноним 22/07/19 Пнд 22:23:44 1440698301
>>1440689
Нет, но стандартная библиотека содержит много полезных функций, ещё и регулярки есть.
Аноним 22/07/19 Пнд 22:25:10 1440699302
>>1440698
Я тормоз, применяется. Но с этим надо аккуратнее. Если тебе надо резать, то смотри доки.
Аноним 22/07/19 Пнд 22:28:47 1440702303
Аноним 22/07/19 Пнд 22:41:18 1440712304
Аноним 22/07/19 Пнд 23:10:44 1440737305
Аноним 22/07/19 Пнд 23:18:11 1440743306
>>1440737
Скинь код полностью
Аноним 22/07/19 Пнд 23:20:52 1440746307
>>1440737
пиздец. какие же вы блять ну просто... трассировку программы делай если что-то не работает, а не спрашивай об этом. бери и разбирай почастям всё тобою написанное.
Аноним 22/07/19 Пнд 23:24:24 1440749308
>>1440746
Мань, извини, но мне надо разобраться и сделать, и чем быстрее, тем лучше.
Наставников и коллег у меня нет, а сраный стаковерфлоу и учебники не на всё дают ответы.
Аноним 22/07/19 Пнд 23:28:11 1440753309
>>1440749
если ты учишься то это
>быстрее сделать
не канает. делай трассировку программы, отслеживай каждое действие в ручную и на одном из этапов ты поймёшь на какой ступени твои ожидания расходятся с результатом программы. это полезный навык.
Аноним 22/07/19 Пнд 23:31:29 1440754310
Аноним 22/07/19 Пнд 23:31:32 1440755311
>>1440753
Биться над задачей можно очень долго. И есть возможность можно и срезать пусть обучения. Это не наука, где без усилий неизведанное не станет открытым, и надо непременно страдать и рвать жопу.
Аноним 22/07/19 Пнд 23:52:41 1440760312
>>1440755
Сделать трассировку будет гораздо быстрее, чем дождаться ответа здесь. Или ты совсем обленился?
Аноним 22/07/19 Пнд 23:54:35 1440764313
Аноним 22/07/19 Пнд 23:56:38 1440766314
>>1440755
>и надо непременно страдать и рвать жопу.
Почти в любой деятельности нужно пройти через цикл порванная жопа - оргазм от успеха. Эти американские горки эмоций и делают программирование таким притягательным. А ты вместо этого прокачиваешь навык попрошайничества на бордах
Аноним 22/07/19 Пнд 23:57:57 1440767315
>>1440764
А смысл? Код-то твой.
От меня там лишь датафрейм с данными.
Аноним 22/07/19 Пнд 23:59:17 1440768316
>>1440760
>Или ты совсем обленился?
Отчасти.
Отчасти там столько проблем, что не знаешь что и ка решать.
Есть ту Ыксперты панды? Или нампая хотя бы?
Аноним 23/07/19 Втр 00:01:44 1440769317
>>1440767
Во1) код не мой во2) ты мог неправильно датасет даже задать
Аноним 23/07/19 Втр 00:06:47 1440772318
>ты мог неправильно датасет даже задать
В jupyter показывается хотя бы
data = pd.read_csv("X://123123123.csv")
set = data['Колонка 1', Колонка 2', Колонка 3', Колонка 4']
Как-то так + ещё 0,5 обработки.
Аноним 23/07/19 Втр 01:35:49 1440788319
>>1440772
Но ты же выше пишешь две колонки.
Аноним 23/07/19 Втр 09:04:44 1440840320
>>1440788
Пишу, но лишние колонки можно убрать.
Аноним 23/07/19 Втр 10:57:29 1440874321
Govno.png (37Кб, 718x457)
718x457
Почему оно переносит строку без символа переноса строки \n?
Как пофиксить? Так и должно быть? Неприемлимо бляд.
я новенький, лучше обоссыте
Аноним 23/07/19 Втр 11:05:38 1440878322
>>1440874
И почему нельзя писать title(рандомная_переменная), а в функции str(рандомная_переменная) можно?
Аноним 23/07/19 Втр 12:05:22 1440899323
>>1440874
Потому что у функции print есть аргументы по умолчанию, а среди них есть аргумент по имени end, который по умолчаниж равен "\n", значение этого аргумента автоматически добавляется в конец строки, можешь его изменять, например print("qwerty", end="") напечатает qwerty без перехода на новую строку. А еще ты можешь задавать функции print сразу несколько аргументов, и они будут напечатаны в одной строке, разделенные пробелами, какой именно символ для разделения использовать определяет значение аргумента sep, сокращение от "separator", то есть "разделитель", по умолчанию sep равен пробелу. Так print("dog", "cat", "frog") напечатает строку "dog cat frog", а print("dog", "cat", "frog", sep="@@") напечатает строку "dog@@cat@@frog"
Начинай поиски с встроенной функйии help, например, help(print), и документации
https://docs.python.org/3/library/functions.html#print
Аноним 23/07/19 Втр 12:08:38 1440900324
>>1440899
>Так print("dog", "cat", "frog") напечатает строку "dog cat frog"
Вывело ('dog', 'cat', 'frog')
Аноним 23/07/19 Втр 12:11:47 1440902325
>>1440874
print() почти? всегда переносит строку. Ты бы хоть уточнил, что вообще хочешь получить в результате.
Если "Govno Govno Govno", то используй, к примеру, print((example2 + ' ') * 2 + example2).

мимонуб
Аноним 23/07/19 Втр 12:13:36 1440903326
>>1440902
Я просто не хотел чтоб оно само переносилось, АТО в дальньейшем возникли бы некоторые проблемы
Аноним 23/07/19 Втр 12:14:28 1440904327
>>1440899
>>1440900
Так пажжи, я билдил вторым питоном, кек
Аноним 23/07/19 Втр 12:18:29 1440905328
>>1440899
А можно как-то отключить автоматический перенос?
Аноним 23/07/19 Втр 12:25:58 1440909329
>>1440905
Я же тебе написал, с помощью аргумента end
Аноним 23/07/19 Втр 12:27:08 1440910330
Аноним 23/07/19 Втр 12:30:43 1440913331
>>1440910
А чем тебе end не подходит?
Аноним 23/07/19 Втр 12:31:23 1440915332
>>1440910
А чем тебе end не подходит?
Аноним 23/07/19 Втр 12:31:50 1440916333
>>1440913
Не ну а че он? У меня в книжке все примеры с применением \n, что как бы намекает
Аноним 23/07/19 Втр 12:40:28 1440918334
>>1440916
На практмке почти всегда надо, чтобы принт печатал с новой строки. Это удобное поведение по умолчанию. Наверно, у тебя книга про второй питон. Раздобудь версию про третий питон, это настоящее и будущее питона.
Аноним 23/07/19 Втр 12:42:02 1440919335
>>1440918
Эрик Мэттиз, год издания 2017.
>На практмке почти всегда надо, чтобы принт печатал с новой строки
Понял, принял
Наверное, Эрик просто старый пердун
Аноним 23/07/19 Втр 13:22:41 1440934336
>>1440695
>Скоро аноны скажут "пиздуйте в math" и будут правы
он уже попиздовал, но там нихуя не сказали, нахуй он там нужен со своим програмином да ещё и на питоне
Аноним 23/07/19 Втр 13:53:33 1440944337
Сап, анончики. Как временно можно перестать испытывать отвращение к текущему месту работы? Все было заебись, пока я не начал все глубже погружаться в код и осозновать, какое же ебаное говно было написано моими коллегами, из-за чего простые задачи растягиваются на несколько дней, потому что приходится все переписывать и заставлять это работать... Тим лид вообще уебан, если честно, нихуя не делает, но вечно говорит, что занят, лицемерный пидарас короче.
Аноним 23/07/19 Втр 14:02:48 1440950338
>>1440944
Ну ты хотя бы в пятерочке экспедитором не работаешь
Аноним 23/07/19 Втр 14:14:15 1440955339
>>1440944
Ну тут два стула:
1. Отпуск
2. Смена работы и поиск проекта посвежее.
Если отработал более 6 месяцев - можешь спокойно менять работу, в резюме это выглядит ок.
Аноним 23/07/19 Втр 15:08:22 1440974340
>>1440955
Да вот хочу сменить проект, но пока чет нет откликов на вакансии, летом чет мало как-то
Аноним 23/07/19 Втр 17:09:35 1441050341
Screenshot2019-[...].png (37Кб, 1080x316)
1080x316
Поясните кто нить почему выдаёт два одинаковых списка?
Аноним 23/07/19 Втр 17:11:51 1441054342
>>1441050
Потому что реверс перезаписывает все твои переменные - оно у тебя в самом конце.
Попробуй засунуть реверс в переменную
мимо нуб
Аноним 23/07/19 Втр 17:12:39 1441055343
>>1441054
>Попробуй засунуть реверс в переменную
В отдельную переменную*
Аноним 23/07/19 Втр 17:15:34 1441056344
>>1441055
Как это сделать,я ещё больший нуб. Впрочем это и так понятно по вопросу
Аноним 23/07/19 Втр 17:18:44 1441059345
>>1441056
А в чем тогда смысл если я за тебя задачку решу?
Спойлер!
l3 = l2.reverse()
Аноним 23/07/19 Втр 17:31:01 1441067346
>>1441059
Так я тоже делал, этом случае выдаёт пустой список. Наверное это особенность этого реверса, с ним не получается сделать два разных списка, если конечно изначально не создать два разных списка.
Задачу та я эту решил, хотел код короче сделать и нагуглил этот реверс
Аноним 23/07/19 Втр 17:38:13 1441071347
>>1441067
print (l)
print (l.reverse())
А так оно ноне выводит.
Как задачку решил?
Аноним 23/07/19 Втр 17:42:35 1441075348
>>1441050
Потому что у тебя l и l2 - два имени для реально одного объекта. Это не два разных списка, а один список.
Сделай, например
l[0] = 10000000
print(l2)

Это mutable типы. Аналогичная история со словарями, объектами и т.п.

Сделай копию списка. Как l.copy() или как
l2 = l[:]
Аноним 23/07/19 Втр 17:44:27 1441076349
>>1441075
>>1441050
и классичский реверс списка на питоне выглядит так:
l2 = l1[::-1]

Что это такое и как работает? Ботай про срезы ака слайсы
Аноним 23/07/19 Втр 17:45:59 1441077350
>>1441075
i = ["1", "2", "3", "4", "5"]
i2 = i.reverse()
print (i, i2)

А почему во втором списке выдает ноне?
другой нуб
Аноним 23/07/19 Втр 17:46:18 1441078351
>>1441077
Яж преобразовал его, не?
Аноним 23/07/19 Втр 17:48:21 1441081352
>>1441067
>Так я тоже делал, этом случае выдаёт пустой список. Наверное это особенность этого реверса
Это немного особенность питона.
lst.reverse()
ничего не возвращает. Это метод, который применяется к самому списку.
lst = [*range(10)] # сделать список из 10 элементов от 0 до 9
print(lst) # [0, 1, .. , 9]
lst.reverse()
print(lst) # [9, 8, ..., 0]
Аноним 23/07/19 Втр 17:48:42 1441082353
>>1441071
Если ты про 4 задачу эйлера:
for i in l:
spisok1.append(i)
spisok2.insert(0, i)
Таким образом создал два разных списка и сравнил их

>>1441075
Спасибо, твой вариант тоже помог
Аноним 23/07/19 Втр 17:48:45 1441083354
Аноним 23/07/19 Втр 17:49:15 1441084355
>>1441077
>>1441078
i = ["1", "2", "3", "4", "5"]
print (i)
i.reverse()
print (i)
Вот так получилося, но как сделать чтоб из одного массива можно было достать джва разных результата?
Аноним 23/07/19 Втр 17:50:16 1441085356
Аноним 23/07/19 Втр 17:51:17 1441086357
>>1441084
Этот >>1441076 анон написал как делать классик реверсы, я лично так и буду делать
Аноним 23/07/19 Втр 17:52:25 1441088358
Аноним 23/07/19 Втр 17:56:41 1441093359
>>1441088
Если есть другой простой способ сделать перевернутую копию списка, то я с радостью выслушаю
Аноним 23/07/19 Втр 18:19:58 1441102360
Есть задача: отправлять гет запросы с ардуинки и выводить их в веб. Под ардуинку наговнячил, осталось веб. Выбор пал на питон потому что его мало-мальски знаю. Нужен какой нибудь фреймворк который работает с реквестами и рендерит хтмл. Джанго и фласк я так понимаю слишком функциональные, и мне потребуется какое то время чтобы в них разобраться. Нет ничего попроще?
Аноним 23/07/19 Втр 18:52:22 1441115361
>>1441102
Джанго тебе не нужен, а фласк подойдет
Аноним 23/07/19 Втр 19:53:21 1441139362
>>1441102
Есть такой мини-фрэймворк bottle, его исходный кодтвообще помещается в один файл. Вроде, не сложный. Может, подойлет тебе
Аноним 23/07/19 Втр 20:11:36 1441147363
>>1441102

Зависит от целей и требуемого функционала.

Если не нужна работа с базой, Джанго заведомо не нужен. Там на базу всё завязано, и вся суть фреймворка в этом.

Тебе нужно быстрее разобраться, либо легковесное что-нибудь? Многие легковесные фреймворки требуют понимания продвинутых технологий питона, вроде asyncio. Боюсь, тебе или надо обвязку всякий uwsgi осваивать, как это работает, либо asyncio и аналоги.

Может быть тебе проще будет сделать на node.js, что ты хочешь. Для несложных сетевых вещей самое то.



Аноним 23/07/19 Втр 20:35:52 1441160364
как сейчас фиксится поломка пипы, когда она не находит пакеты? В гугле советы, как всегда с этим языком, на уровне переустанови виндовс
Django Аноним 23/07/19 Втр 21:08:00 1441185365
Сап, кто может подсказать уроки по Django, а то я нахожу только первую версию, а хотелось бы вторую
Аноним 23/07/19 Втр 21:59:53 1441218366
>>1441185
Разница не столь велика. Для начала лучше изучи, 1.9 какой, а разницу со второй проще по докам нагнать.
Советую Antonio Mele(вроде так) с Яндекса брать и читать.
Аноним 23/07/19 Втр 22:02:59 1441222367
Аноны, какими средствами на pyqt5 лучше сделать pop-up (маленькое окно такое, типа оповещения, с текстом и изображением, которое должно вылазить у юзера в углу открытой программы)?
Обычное окно не подойдёт, я так понимаю.
Аноним 23/07/19 Втр 22:10:44 1441225368
>>1441218
Окей, спасиб. Просто везде, где искал вакансии, хотят знание джанго(
Аноним 23/07/19 Втр 22:15:41 1441228369
>>1441185
У джанго очень хорошие доки. Там и пример учебного приложения хороший, шаг за шагом, и отдельно первичный разбор функционала джанго, и детальная информация.

Всё есть. Если тебе хочется именно русскую документацию, то может там и старая версия. Но там совсем не такая большая разница. Из заметного работа с url, смотри лучше английский вариант.
Аноним 23/07/19 Втр 22:16:50 1441230370
>>1441225
Вовсе не только, очень много вакансий без джанго. Но правда там торнадо какой-нибудь или asyncio, это более серьёзные вещи и более сложные.
Аноним 23/07/19 Втр 22:26:57 1441235371
>>1441230
Именно поэтому хочется сначала освоить Джанго, чтобы позже перейти на asyncio
Аноним 23/07/19 Втр 22:27:45 1441236372
>>1441228
Окей, тогда попробую и старые туториалы тоже охватить
Аноним 23/07/19 Втр 22:32:06 1441243373
>>1441235
Вот это не поможет совсем, это просто перпендикулярные вещи.

Но джанго в любом случае очень полезная вещь.
Аноним 23/07/19 Втр 22:33:31 1441244374
>>1441243
Не в качестве помощи, а именно в качестве полезной штуки, изучая которую, можно будет прокачаться
Аноним 23/07/19 Втр 23:32:14 1441272375
>>1441185
На русском книга недавно вышла "Django 2 в примерах". Хуй знает можно ли скачать, я не нашел пару месяцев назад и купил. Там тебе и про асинхронность расскажут, и про редис, и про рестфул апи. Годнота короче. Советую не пожалеть 1200 рублей и купить.
Аноним 24/07/19 Срд 00:41:01 1441303376
А вот в этих ваших списках значению присваивается индекс?
Аноним 24/07/19 Срд 03:09:50 1441342377
Аноним 24/07/19 Срд 04:05:04 1441349378
Test
Аноним 24/07/19 Срд 05:52:41 1441367379
>>1441272
Два чаю этому господину, книгу не покупал, так как в моих пердях ее точно нет, но вот скачать я ее скачал, подтверждаю книга огонь, сейчас пилю по ней магазин, в целом все разжежывают и рассказывают, думаю после любой сможет вкатится сильным таким джуном как минимум.
Аноним 24/07/19 Срд 09:45:55 1441413380
>>1441342
Имел ввиду ключи, но похуй уже - не актуально
Аноним 24/07/19 Срд 10:08:37 1441422381
Ну привет змеетред. Подскажите что сейчас ожидается и что требуется на собеседовании от джуна питониста?
>>>>>>>>>>>Платиновый вопрос
Аноним 24/07/19 Срд 11:17:22 1441456382
>>1441422
Смотря куда идёшь, я вкатывался через Django, смострячил магазин за пару вечеров и показал на собесе. Вообще требуют знания ООП, если там какой то скрапинг сайтов то естественно знать регулярные выражения, плюс аддоны типа beautiful soup и т.д.
Аноним 24/07/19 Срд 12:02:43 1441476383
>>1441456
Пардон за тупой вопрос, но "сделать магазин"-речь и про django и про разработку frontenda?
Аноним 24/07/19 Срд 12:07:56 1441481384
1.png (20Кб, 525x408)
525x408
2.png (21Кб, 536x406)
536x406
Почему выдает разные результаты? Че за магия, блядь?
Задача создать и суммировать список чисел с помощью функции sum()
Аноним 24/07/19 Срд 12:17:39 1441485385
>>1441481
Ты во втором примере принтуешь исходный список, а не сумму чисел в нём. Напишешь print(sum(numbers)) - всё будет нормально.
Аноним 24/07/19 Срд 12:19:52 1441488386
>>1441485
Пиздец я дебил, это получается такие вот функции не конвертируют переменные если я без переменной их использую?
Аноним 24/07/19 Срд 12:22:24 1441489387
>>1441488
Если ты не присваиваешь какой-либо переменной значение этой функции, то грубо говоря да.
Аноним 24/07/19 Срд 12:23:58 1441490388
>>1441489
А вот если я возьму за привычку мне так проще для каждой подобной ситуации создавать переменную заместо того чтоб сразу выводить нужный результат, это будет говнокодом?
Аноним 24/07/19 Срд 12:33:01 1441502389
>>1441490
Мои нубские соображения: если тебе нужно вывести результат без того, чтобы его в дальнейшем каким-либо образом использовать, то лучше лишние переменные не создавать.
Аноним 24/07/19 Срд 12:36:43 1441508390
>>1441481
АХАХАХХАХАХАХАХАХАХАХАХАХАХАХАХАХХА
Аноним 24/07/19 Срд 12:38:31 1441511391
146428745013663[...].jpg (33Кб, 317x372)
317x372
>>1441508
Я тя выцеплю блядь, сука
Аноним 24/07/19 Срд 12:40:46 1441513392
>>1441481
По правде говоря, твоя исходная задача может быть решена вообще в одну строчку:
print(sum([i for i in range(1, 10)]))
Аноним 24/07/19 Срд 12:42:51 1441517393
>>1441513
Там продолжение задачки есть, так что не подходит.
Аноним 24/07/19 Срд 12:54:41 1441524394
Аноним 24/07/19 Срд 13:01:10 1441531395
>>1441513
>>1441524
Кек. Сука, яж так нихуя не пойму. Ну выучу я этот ваш синтаксис хуинтаксис, функции хуюнкции, но понимания того как всё это работает не придет жеж. Или дроча питон можно таки добраться до самой сути камплюктера?
Не хочу быть таким, советуйте что почитать после того как я освою основы питончика!
Аноним 24/07/19 Срд 13:07:58 1441535396
>>1441531
А что непонятного? Там же прямо так и написано, что делается. Вывести сумму чисел из диапазона от 1 до 10
Аноним 24/07/19 Срд 13:10:26 1441538397
>>1441535
Пока правописание непонятно, например. Вот принт эт функция, например, в этой функции может быть аргументом функия в которой аргументом будет еще одна функция.
Так можно?
Аноним 24/07/19 Срд 13:11:12 1441540398
>>1441531
Дрочи задачи на сайтах всяких, потом со временем поймешь, почитаешь объяснения, запомнишь примеры хорошего кода и будешь фибоначи с закрытыми глазами считать.
Аноним 24/07/19 Срд 13:12:32 1441541399
>>1441538
Еще одна функция в которой будет цикл с кучей других функция которые я напишу сам!
Аноним 24/07/19 Срд 13:18:11 1441546400
Скорей бы игору какуюнит наговнячкать, чтоб все охуели как я могу
Аноним 24/07/19 Срд 13:18:51 1441547401
>>1441524
У него всё же задача создать список и суммировать его элементы, так что не очень подходит.
Аноним 24/07/19 Срд 13:22:25 1441549402
>>1441538
> Вот принт эт функция
да
> в этой функции может быть аргументом функия
Принт берет результат работы функции sum и делает свое дело.
> которой аргументом будет еще одна функция.
пока ты передаешь функции то, что она принимает проблем не будет, можешь городить хоть 100 функций подряд
Аноним 24/07/19 Срд 13:24:16 1441551403
>>1441547
В 2.7 range создает список, так что ты проебался.
Аноним 24/07/19 Срд 13:27:04 1441552404
>>1441551
Ну а он-то явно пользуется троечкой.
Аноним 24/07/19 Срд 13:42:07 1441564405
>>1441513
>[i for i in range(1, 10)]
Вот эту конструкцию можно записать как
[*range(1, 10)]
и любую аналогичную с генератором
Аноним 24/07/19 Срд 13:43:51 1441566406
>>1441456
Магазин был согласно пепу оформлен? На гите показывал все это? Можешь показать что показывал на собесе soc13140@ya.ru очень большой страх просить деньги за услуги в которых я плаваю... Но в которых мне хочется развиваться
Аноним 24/07/19 Срд 13:44:07 1441567407
>>1441564
>с генератором
с итератором
Аноним 24/07/19 Срд 13:47:27 1441570408
>>1441566
Мне кажется анон подпизживает.

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

Аноним 24/07/19 Срд 13:48:54 1441571409
>>1441552
Да поебать мне какие он там кнопки наугад нажал и получил верный результат. Нахуя с такими вопросами вообще идти сюда ебаный в рот.
Аноним 24/07/19 Срд 13:49:52 1441572410
>>1441566
>Магазин был согласно пепу оформлен?
А на оформление по ПЕП похуй, это вообще ни о чём. Система в первую очередь должна работать и спроектирована хорошо по use case, по моделям внутри и пр.

Это не так просто, если ты делаешь реальное приложение, а не примитивный набросок-демонстрацию.
Аноним 24/07/19 Срд 13:58:37 1441578411
>>1441570
Мне кажется, анон говорил про бек только, или какую-то говеную морду, учитывая джунность позиции, о чем указано в моем посте, делать полностью работающий магазин, с прикрученными платёжками за вечер, он мог бы претендовать на что-то гораздо выше чем джуниор. Я думаю просто логика записывания в базу покупок, корзины и прочего.
Аноним 24/07/19 Срд 14:06:00 1441580412
>>1441571
Ты чего такой неочень? Велосипеда нет?
Аноним 24/07/19 Срд 14:25:01 1441591413
>>1441481
Кекнул с тебя. Просуммировал, а куда присвоил? А никуда.
Аноним 24/07/19 Срд 14:26:05 1441592414
Programminginth[...].png (102Кб, 789x918)
789x918
Programminginth[...].png (101Кб, 795x910)
795x910
Разница между Москвой и Мухосранью
Аноним 24/07/19 Срд 14:31:31 1441597415
>>1441564
Спасибо, без иронии. Сам почему-то не допёр до этого.
Аноним 24/07/19 Срд 14:32:23 1441599416
>>1441591
Но ведь в первом трае присвоил жеж!
Аноним 24/07/19 Срд 15:26:07 1441635417
>>1441592
Только питон, базы и ооп? Тоесть даже фуллстек не нужен?
Аноним 24/07/19 Срд 15:55:57 1441665418
>>1441635
>Только питон, базы и ооп? Тоесть даже фуллстек не нужен?
А зачем? Сеньёру отличается не размером списка, а опытом работы и глубиной понимания технологий.

Вот первое обязательное требование:
1) Опыт разработки системы, которая работает под высокой нагрузкой и с большими объёмами данных.

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

3) Работа с разными видами баз данных, оптимизация запросов, настройка самих баз. Это требует опыта и квалификации.

С п.2, многопоточностью, проще, но это не про джунов всё-таки.

В желательно тоже много чего серьёзного. Подразумевается обычно, что чего-то из этого есть.
Аноним 24/07/19 Срд 15:57:00 1441667419
>>1441665
>>1441635
Более того, старших вакансий на питоне без фронта очень много. Но все подразумевают серьёзные бэк-скиллы.
Аноним 24/07/19 Срд 16:03:51 1441676420
>>1441665
Ну когда в пхп пытался вкатитьсяпонятно, программирование хтмл и верстка на ксс кокок еще, этим я лет в 15 увлекался, так там везде фуллстек только.
Правда, в пхп далеко я не продвинулся - ни одного фреймворка не выучил, ООП не освоил толком, зато задачки на процедурном коде у того самого ОПа вполне себе решал, кек, держу в курсе.

А чем вообще питон от пыхи в вебе отличается? За исключением того что в питоне одну задачку можно решить двумя строчками, в отличии от и анальным ограждением разметки кода пгобеламикокок угнетение гулаг швабодка
Аноним 24/07/19 Срд 16:11:03 1441678421
>>1441676
>Правда, в пхп далеко я не продвинулся - ни одного фреймворка не выучил

>>1441676
>А чем вообще питон от пыхи в вебе отличается?
В твоём случае всем. Если ты работал без фреймворков, то ты или создал свой фреймворк но это точно не так, или у тебя была типичная php-лапша, где скрипт получает запрос, сразу обращается к БД и генерит код в промежутках.

На питоне такой xCGI подход не работает. Там другой принцип построения сайтов. Тебе надо изучать и сам питон, и технологии построения сайтов через фреймворки. Это уже другой уровень.
Аноним 24/07/19 Срд 16:14:20 1441680422
>>1441678
>типичная php-лапша, где скрипт получает запрос, сразу обращается к БД и генерит код в промежутках.
Это. Даже доставляо удовольствие, до тех пор пока не понял что я ограничен ссаным браузером.

>На питоне такой xCGI подход не работает. Там другой принцип построения сайтов. Тебе надо изучать и сам питон, и технологии построения сайтов через фреймворки. Это уже другой уровень.
Заебись, прямо мотивировал
Аноним 24/07/19 Срд 16:16:09 1441681423
>>1441678
Ты очень сведущ, скажи пожалуйста, основной пласт работы для питониста это веб или что то другое?
Аноним 24/07/19 Срд 16:19:14 1441683424
>>1441680
Работаю щас на лесопилке 2 через два в мухосрани, игры заебли в свое время, сериалов нормальных не завозят, жены нет, накатывать под ютьюб каждый вечер здоровье уже не позволяет.
Вот сижу, хунёй всякой страдаю тут, на должность в уютненьком коллективе зуммерков-разработчиков даже и не рассчитываю - дрочу просто для того чтоб все охуели как я могу.
Ага, сегодня первый день выходных, накатываю охоту крепкую и мрию о том что рано или позно освою основы погромирования и начну пилить пет проекты фор фан, такссать.
продолжаю держать в курсе
Аноним 24/07/19 Срд 16:21:12 1441687425
>>1441681
Еще сисадминам пригождается, вроде. Не зря жеж в большинстве дистрибутивах линукса питон дефолтно изкаробки поставляется
Аноним 24/07/19 Срд 16:22:39 1441688426
>>1441476
Да там даже не полноценный магазин, верстка минимальная, корзина, вывод товаров и т.д. Сделал чтобы просто было что показать на собесе.
Аноним 24/07/19 Срд 16:25:10 1441690427
>>1441578
Именно так, накидал бэк магазина, из функционала каталог товаров, персональная страница товара и корзина все. Просто чтобы показать что я умею в в Джанго. Верстка минимальная была, JS не было вообще.
Аноним 24/07/19 Срд 16:29:48 1441697428
>>1441570
А мне кажется ты долбаёб, я сделал просто бек простенького магазина, с примитивной вёрсткой, основная задача была показать, что я умею работать с Джанго, знаю структуру проекта, и т.д. этого были вполне достаточно чтобы вкатится.
Аноним 24/07/19 Срд 16:33:02 1441698429
>>1441566
Не ссы никто не ждёт от джуна проект уровня Инстаграм или Авито. Достаточно показать что ты умеешь хоть что-то . Выше были посты про книгу Django 2 в примерах, там есть пример навороченного магазина в сто раз круче чем у меня, так что качай книгу и делай все по ней и в конце будешь готов к работе джуна если не больше.
Аноним 24/07/19 Срд 16:35:08 1441700430
>>1441698
Тоесть задача говнякакть код максимально быстро, хоть на джумле - главное чтоб заказы фирме были?
Рыночек решает, однако
Аноним 24/07/19 Срд 16:39:30 1441702431
Аноним 24/07/19 Срд 16:43:42 1441706432
>>1441702
Нарисуй примерно то, что хочешь видеть. Я так понял, здесь сидят ребятки которые не хотят обосраться по простому поводу, и похуй что доска анонимная.

Бамп
>>1440878
Аноним 24/07/19 Срд 17:03:32 1441714433
>>1440878
Потому что title() - это метод класса str, а str() - конструктор объекта соответствующего класса. str.title() не принимает никаких аргументов, кроме объекта своего класса (поэтому и в скобки записывать нечего), а применение метода в Python оформляется через точку, а не с помощью записи в скобки.

мимонуб
Аноним 24/07/19 Срд 17:15:41 1441720434
>>1441714
>мимонуб
Отку да мне, настоящему нубу знать про объекты и классы?
Аноним 24/07/19 Срд 17:21:48 1441723435
>>1441720
Что-то мне подсказывает, что различия и соотношения между терминами "функция", "метод", "класс", "объект класса", "конструктор класса" etc стоит прояснить для себя чуть ли не в первую очередь, если желаешь вкатиться в Питон.
Аноним 24/07/19 Срд 17:25:36 1441728436
>>1441564
Мне list(range(1, 10)) кажется читаемее
Аноним 24/07/19 Срд 17:25:58 1441730437
>>1441723
Был один тип что видеоуроки для пыхи преподавал, так он гордился тем что преподает основы языка сразу начиная с ООП, и похуй что в первом же уроке он говорил, мол пока не думайте что значит for в конкретном примере, просто делайте что я говорю - главное понять суть того что я вам сейчас скажу
Меня такой подход вообще не устраивает, например, особенно если я бомж в погромировании и вообще впервые пытаюсь вкатиться.
Аноним 24/07/19 Срд 17:38:16 1441732438
photo2019-03-18[...].jpg (79Кб, 1280x897)
1280x897
Питонисты, помогите тугодуму. Вообще не могу в алгоритмы, все пыжусь и пыжусь над сортировками. Это какой то пиздос, как вообще этот Radix sort сделать ? Короче, есть годные книги по сортировкам на питоне ? знаю звучит хуйово
Аноним 24/07/19 Срд 17:53:46 1441737439
>>1441481
Во втором случае сделай numbers = sum(numbers)
Тем самым переопределишь старую переменную массива на сумму его значений
Аноним 24/07/19 Срд 17:55:02 1441739440
>>1441732
> Короче, есть годные книги по сортировкам на питоне

В этом твоя проблема

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

Возьми язык Shema, он прост как два пальца, за 1.5 часа освоишь. На нём реализовывай алгоритмы в отрыве от языка.
Глянь еще Грокаем Алгоритмы, там на пальцах и картинках поясняется. Годная книжка

в обще если тебе нужно понимание алгоритмов, а не просто реализации алгоритмов, то без матана никуда. Тебе в /math
Аноним 24/07/19 Срд 18:17:29 1441757441
>>1441732
Алгоритмы сами по себе, питон сам по себе.

Тебе надо разобраться с алгоритмом, почему и как он работает. Это первая задача. А вторая задача в том, как грамотно реализовать алгоритм на нужном языке программирования. Два разных скилла, оба нужные для развития. Хотя в жизни ты будешь пользоваться библиотечными реализациями, конечно же.

Конкретно про radix, она же "числовая сортировка", попробуй на бумажке просто с конкретными примерами её осмыслить. Она простая в плане алгоритмов. Вот как грамотно реализовать? Это думать уже надо.
Аноним 24/07/19 Срд 18:19:21 1441758442
>>1441757
Но ведь любой язык высокого уровня не подразумевает креатива в алгоритмах жеж, нет?
Аноним 24/07/19 Срд 18:36:40 1441766443
>>1441531
Самое удобное и понятное - читать в процессе. Заходишь на chekio или codingame и начинаешь решать все подряд. Будешь сталкиваться с проблемой или слишком сложным исполнением задумки - ищи на Стаке и в документации.
Чтобы научиться программировать, надо программировать
Аноним 24/07/19 Срд 18:37:25 1441767444
>>1441758
Подразумевает, и много. Не не в сортировках, которые просто вынесены в отдельные функции. Вот работу с деревьями ты уже так просто в отдельные функции не вынесешь. И много чего ещё не вынесешь.
Аноним 24/07/19 Срд 18:46:02 1441773445
>>1441739
>>1441757
Спасибо аноны, сами эти сортировки я уже давно на бумажке расписал по нескольку раз, но проблемы с реализацией. Бывало загуглю реализацию и ахуеваю от того, как люди додумали написать для сортировки код, причем так кратко и лаконично.

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

Ну а с МатАном у меня вроде норм. Диффуры там, интегралы. Об этом речь идёт ?
Аноним 24/07/19 Срд 19:51:45 1441793446
>>1441700
Многое зависит от компании, где то да похуй как ты это делаешь, главное чтобы сделал, меня например просят вёрстку на работе подправить или кнопочку там добавить или убрать и похуй что я бекенд, главное есть возможность получать опыт. Я сейчас уже работаю третью неделю за все время на питоне написал строчек 5-6, основная работа это писать запросы в БД и из БД в soap сервисы других компаний (платежные системы) да первые дни хотелось все бросить и съебать, даже было предложение о знакомого на другое место где больше по деньгам но туманные перспективы, в итоге пересилил себя и остался, вроде втягиваюсь потихоньку, скоро обещал дать допилить пару модулей уже на питоне. В целом жить можно, основная цель стать мидлом и съебать на большую ЗП и лучшие условия
Аноним 24/07/19 Срд 20:28:14 1441816447
>>1441700
Далеко не всегда.
Если фирма крупная, то с кодом можешь работать не ты один и важна читаемость и тд.
Аноним 24/07/19 Срд 22:48:41 1441884448
Поясните, пожалуйста.
class Demo(Frame):
def __init__(self, parent=None, options):
Frame.__init__(self, parent,
options)
Что такое "options" и логика parent и вообще вот эти две строчки.
Зачем нужна 3-ья строчка? Сорян за тупость.
Аноним 24/07/19 Срд 23:01:35 1441894449
>>1441884
Ты делаешь класс Demo, который наследуется от Frame

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

Для этого ты и вызываешь явно конструктор класса-родителя.

options, с двумя звёздами - это такой способ для получения словаря со всеми элементами "ключ-значение". Аналогично, когда ты передаёшь словарь с двумя звёздыми в функцию, происходит его раскрытие.
Если она звезда, то это уже список позиционных аргументов.
Аноним 24/07/19 Срд 23:07:48 1441896450
Аноним 24/07/19 Срд 23:50:56 1441919451
>>1441894
>>1441896
Про звезды всё понял.
Не совсем понял про переопределение конструктора.
Это пример из Лутца.
Есть фрэйм. Он делает подкласс Демо с кнопками. Нахуя он переопределяет конструтктор фрейма, чем он его не устраивает в этом конкретном примере?
И не понимаю, зачем вызывать конструктор родителя явно? И это касается любых методов?
Аноним 25/07/19 Чтв 01:48:29 1441977452
>>1441599
На первом пике - да. И ответ тебе - 45. На втором ты суммируешь и все, список остается списком, его ты на печать и выводишь.
Аноним 25/07/19 Чтв 01:49:54 1441978453
>>1441728
А мне функциональщина нравится в хаскеле, а не питоне. Но ведь это не важно.
Аноним 25/07/19 Чтв 01:52:38 1441979454
>>1441919
Если ты чётко знаешь, что конструктор родителя тебе не нужен, то не надо его вызывать. Но в реальности часто конструктор делает какую-то полезную работу, проводит инициализацию внутренних переменных, может подгружает что, и т.п. Ты ведь наследуешь ради того, чтобы получить какой-то функционал родительского класса. А без вызова конструктора этого функционала может не быть.
Аноним 25/07/19 Чтв 03:39:54 1442000455
А тут ест аноны, которые работают над серьёзными вещами типа дата сайнс или машиным обучением, а не магазины делают?
Аноним 25/07/19 Чтв 05:58:03 1442009456
>>1442000
Может и есть, только чем тебе магазины не угодили, лучше пилить какой нибудь магазин, чем сидеть без работы или работать дворником
Аноним 25/07/19 Чтв 07:59:15 1442038457
Ньюфаг докатился до этих ваших фреймворков для веба.

В вакансиях онли Джанго. А когда и для чего используется Фласк? Ну и что лучше учить для каких целей? Вообще немного не понимаю, что для чего и зачем.

Объясни пожалуйста, анон.
Аноним 25/07/19 Чтв 08:43:42 1442056458
>>1442009
Я про заработок не спрашивал, но если на то пошло, то я лучше на завод пойду, или мебель собирать, чем буду магазины дрочить. для меня парень который собирает магазины это профессия уровня переустановщика винды, но никак программиста
Аноним 25/07/19 Чтв 09:43:24 1442074459
>>1441793
Хорош, если не читер.
Аноним 25/07/19 Чтв 09:44:42 1442075460
>>1441977
Да я после превого же ответа понял как сильно я обсрался стыдно!, спасибо
Аноним 25/07/19 Чтв 09:49:21 1442076461
>>1442056
>или мебель собирать
Не советую.
Аноним 25/07/19 Чтв 11:17:41 1442105462
На питоне можно делать денежку по найму из дома, вроде как фласк какой был? сейчас смотрю питон 3.0, 16 часов курс на инглише, что бы написать специальную прогу для стиралки, что бы её на гвс подключить и она отбирала гвс только когда нужна гвс.

мимо заебал завод, спина болит, фильтры воздуха проебали и теперь меня ещё там и травят
Аноним 25/07/19 Чтв 11:41:49 1442109463
Аноним 25/07/19 Чтв 11:50:35 1442113464
>>1442105
Чувак, я сам работяга с лесопилки, и считаю что кодинг должен доставлять в первую очередь, а заработок с этого он рано или поздно придет. По сему, просто дрочи ЯП как хобби заместо игор/сериалов в свободное время и смотри как оно тебе заходит - АТО можешь вложить во вкат огромные ресурсы и обосраться на пол пути.
Аноним 25/07/19 Чтв 13:32:25 1442174465
>>1442113
Лишь 5 процентов людей имеют страсть с которой можно навариться, у больнишства же страсть это привычные игры, секс, путешествия и т.п.
Аноним 25/07/19 Чтв 14:03:20 1442226466
>>1442174
Ну бля, здесь все уприается в процесс обучения - главное максимально легко и интересно его преодолеть, после чего писать говнокод и наслаждаться результатом.
Именно наслаждаться, томущо когда напишешь кнопки регистрации и авторизации которые будут работать, пусть даже на адском говнокоде - ты получишь такое моральное удовлетворение, такое, что ни одна катка в доте тебе не даст.
Аноним 25/07/19 Чтв 17:25:45 1442389467
Есть один кусочек кода: https://pastebin.com/UE7DC4sm
Что-то типа анимации загрузки для моего скрипта.
На каждой итерации звёздочка "*" проходит по ячейкам в виде квадратных скобок "[]", в конце цикла возвращается на исходную позицию и начинается двигаться по-новому кругу.
Проще запустить и посмотреть как оно работает, чем объяснять на словах.
Так вот, как сделать так, чтобы в конце цикла звёздочка не возвращалась на исходную позицию, а шла в обратном направлении?
Аноним 25/07/19 Чтв 17:37:43 1442393468
Аноним 25/07/19 Чтв 18:03:08 1442408469
>>1442389
Вот ещё такой вариант. Он чуть более большой, тут просто другая идея архитектурная
https://pastebin.com/shmrgiTY

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

Можно сделать компактнее и использованием itertools, создать список
l = [1, 3, 5, ..., 17, 19, 17, 15, ..., 3] и дальше идти циклом по нему.
for i in itertools.cycle(l):
print(...)

https://docs.python.org/3/library/itertools.html#itertools.cycle
Аноним 25/07/19 Чтв 18:08:39 1442410470
>>1442389
Конструкцию
index=[x for x in range(len(s)) if x%2] # 1,3,5...19
можно записать как
index = list(range(1, len(s), 2))

Аноним 25/07/19 Чтв 18:27:25 1442423471
Аноним 25/07/19 Чтв 18:51:28 1442434472
В Питоне же можно управлять памятью если необходимо,да?
Аноним 25/07/19 Чтв 19:26:28 1442454473
>>1442423
>>1442389
Если ты этот список дальше сам по себе не нужен, лучше его и не создавать, сразу писать for i in range(1, len(s), 2): <что-то делаем с i>
Аноним 25/07/19 Чтв 19:32:24 1442458474
>>1442434
Что тебе конкретно нужно?
Аноним 25/07/19 Чтв 20:54:37 1442500475
Аноны, как можно более удобнее рыться по словарям?

К примеру есть такой словарь:
https://pastebin.com/VU4CwsfB

Как можно достать значение 1, не используя этот дебильный метод?:

json.get("fun").get("j").get("f").get("1")
Аноним 25/07/19 Чтв 21:02:07 1442505476
>>1442500
Можно так записать:
try:
json['fun']['j']['f'][1']
except:
...

Что более читаемо. Штатных инструментов вроде нет, но можно слепить что-нибудь колхозное в стиле xpath, чтобы была функция вроде
xget(json, 'fun/j/f/1', default = 555)
это иногда довольно удобно. Реализация строчек 10 максимум.
Аноним 25/07/19 Чтв 21:25:09 1442521477
Аноним 25/07/19 Чтв 21:26:35 1442524478
>>1442458
Я только начал его изучать и решил задать вопрос,раз уж в книжке пишется что не надо заботиться об памяти используемой программой
Аноним 25/07/19 Чтв 21:35:58 1442527479
>>1442524
Надо будет но не сейчас, пока не забивай голову такими вещами, изучай основы и дальше по своему усмотрению Django/Flask/Data science и т.д . Оптимизацией приложения обычно занимаются дяди сеньоры помидоры, вот они и думают о памяти, скорости и т.д.
Аноним 25/07/19 Чтв 21:39:38 1442531480
Аноним 25/07/19 Чтв 21:42:48 1442533481
>>1442527
ты не указывай, что мне делать, хуйло. я сам без тебя разберусь, лучше на первый вопрос ответь
Аноним 25/07/19 Чтв 21:47:44 1442534482
>>1442533 ->Очевидно,тролль-долбоеб

Я->>>1442531
Аноним 25/07/19 Чтв 21:51:13 1442536483
>>1442500
Можешь специальный класс создать, чтобы было удобно серелиозтвать/десерилизоать его в json, и было удобно работать в своем коде. Есть библиотеки для этого, например, marshmallow
https://marshmallow.readthedocs.io/en/3.0/
Аноним 25/07/19 Чтв 21:52:15 1442540484
>>1442534
Чувак, я не долбоеб, спасибо за разъяснения
Аноним 25/07/19 Чтв 21:58:42 1442546485
>>1442533
О памяти заботиться не надо, нет в питоне с этим проблем. Там есть сборка мусора, точнее контроль через подсчёт числа ссылок.

Про профилирование много в официальных доках
https://docs.python.org/3/library/debug.html
есть модуль tracemalloc, по идее для таких задач, но лично я его никогда не использовал. Актуально более-менее думать о производительности, соответствующие инструменты полезно представлять. В память почти без шансов упереться, а в производительность легко.

Я бы тоже советовал на другие вещи посмотреть, разобраться с базой языка, со всякими генераторами, метаклассами, с мультипоточностью и мультипроцессностью, с асинхронностью и всякого разного ещё. Это вот полезно и сложно.
Аноним 25/07/19 Чтв 22:09:11 1442552486
>>1442540
Ебать ты тут 4д шахматы пытаешься играть,троллецкий
Аноним 25/07/19 Чтв 22:49:25 1442565487
>>1442552
Да какие тут шахматы, просто было бы интересно послушать про оптимизацию приложения

>>1442546
Спасибо за ответ, но я думал ты что-нибудь конкретное расскажешь. Например инстагрум (а он написан на джанге, ну или как минимум его часть) вообще отключили сборщик мусора и получили прирост в производительности. Пишут ли вообще C-экстеншины в продакшене? Как обстаят дела с Cython, PyPy, Numba? Есть ли среди этих инструментов что-то готовое к использованию или действительно легче написать c-extension или вообще вынести в отдельный сервис на каком-нибудь более производительном языке (Go, например).
Какой план у разработчиков питона, планируют ли они улучшать производительность языка, ведь уже всем понятно, что это главный недостаток языка. Вроде слышал, что в версии 3.8 внесли изменение в multiprocessing, и теперь по идее, процессы должны стать более легковесными.
И как обстаят дела с асинхронностью в Python, про asyncio знаю, но слишком мало стандартных либ, поддерживающих асинхронность. Да и что использовать в продакшене: aiohttp, sanic или что-то вообще другое? Слышал, что джанга 3 пилиться с заделом под асинхронность.

P.S. извини, что назвал хуйлом
Аноним 25/07/19 Чтв 22:54:28 1442566488
>>1442565
* обстоят

>>1442546
Ну и по поводу твоего поста: разве метаклассы вообще применяются в продакшене, это же довольно сильно бьет по читаемости кода? На мой взгляд эти штуки могут быть полезны только при разработке собственной либы/фреймворка. Вообще, заметил такой интересный факт, что в 90% случаев, там где люди используют метаклассы, можно было бы обойтись обычным декоратором для класса
Аноним 25/07/19 Чтв 23:02:34 1442572489
>>1442546
Вообще задам более абстрактный вопрос: Какова в принципе область примения Python в вебе? Есть ли ему место в хайлоаде?

Есть тут такие разработчики, которые использует Python в высоконагруженных приложениях, и при этом не пожалели об этом после нескольких лет эксплуатации? Было бы очень интересно послушать ваши стори.

Ну помимо этого, хочу поднять такую тему как архитектура веб-приложений в Python. Даже в таком популярном фреймворке, как Django до сих пор не сложилось строгой архитектуры проекта. Понятно, конечно, что есть апликайшины и базовая структура, но это всё равно не то. Фрейморку уже 10 лет и по сути до сих пор нет конвенционального мнения где хранить бизнес-логику (бля, некоторые вообще во вьюхах до сих пор всё хуячат). Опытные разработчики, какой подход используете вы при организации структуры проекта? Можно не только про джангу, но и про другие веб-фреймворки/либы. Буду рад если накидаете годных источников по этой теме.
Аноним 25/07/19 Чтв 23:15:24 1442584490
Кстати, какой пакетный менеджер всё-таки выбрать pipenv или poetry? Какие у каждого достинства и недостатки?
Аноним 26/07/19 Птн 01:20:44 1442662491
>>1442572
Ты спрашиваешь слишком специализированные вопросы.

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

>>1442572
>не пожалели об этом после нескольких лет эксплуатации
Правда жизни в том, что до хайлоада проект надо довести и не сдохнуть на полпути. Фейсбук писали на PHP, потом придумывали техники, чтобы его радикально ускорить, компилятор PHP сделали и ещё что-то. Если бы сразу писали на C++, может такой проблемы не было бы. Но скорее всего потому, что они просто не написали бы логику за разумное время и с разумными ресурсами, и вместо фейса взлетел бы другой проект. На таком же PHP или чём-нибудь подобном.

На питоне хорошо логику реализовывать. Сейчас платформа активно развивается, перспективы есть. С тредами печаль, но нынче главный упор на асинхронность, её недавно поддержали, но прилично.
Аноним 26/07/19 Птн 01:26:43 1442666492
>>1442565
>Слышал, что джанга 3 пилиться с заделом под асинхронность
Вот что они сами пишут:

> Django 3.0 begins our journey to making Django fully async-capable by providing support for running as an ASGI application.
> Note that as a side-effect of this change, Django is now aware of asynchronous event loops and will block you calling code marked as “async unsafe” - such as ORM operations - from an asynchronous context
То есть ORM пока поддерживаться не будет.
Но Джанго это в первую очередь ORM, там реально очень крутая система моделей, прямо энтерпрайз. В Джанго на моделях надо логику делать, а не на вьюхах. Надо как-то извращённо скрещивать. Может быть проще просто систему моделей из Джанго подключить к асинхронным фреймворкам, пусть они там в каких-нибудь процессах отдельных крутятся. Не пробовал пока, но может скоро придётся.
Аноним 26/07/19 Птн 01:48:35 1442677493
Аноним 26/07/19 Птн 02:59:20 1442692494
>>1442584
>pipenv
Если любишь чай попить и пасьянс-другой разложить
>Poetry
Нинужно
Аноним 26/07/19 Птн 08:43:15 1442718495
>>1442536
Спасибо, буду разбираться
Аноним 26/07/19 Птн 12:41:25 1442796496
Суп питонач. Вкатываюсь в Django Channels и Celery. Сколько времени понадобится на освоение этих вещей?

Влез в Channels, и блядь статьи даже на русском хуй понятны. Новая терминология. Я до этого ни с асинхронщиной, ни с сокетами не работал. Ну хуй с ним накатил на проект, сделал уведомления через сокеты, но то что я использовал это 2% от всех возможностей Channels'ов.

Полез дальше в Celery, пока только накатил на проект ещё не разбирался, но ебать их страничка настроек в доках занимает наверное листов 20 А4 формата.

В общем посоветуйте статей\книжек на русском и английском языках чтобы прям по пальцам и терминология и основные концепции. Буду премного благодарен.
Аноним 26/07/19 Птн 13:49:52 1442840497
Анон, кто на платной основе может питоном позаниматься со мной по скайпу?
Аноним 26/07/19 Птн 13:51:10 1442841498
Ананасы, как пропарсить всю страницу, если для полного отображения нужны подзагрузки???
Аноним 26/07/19 Птн 14:00:02 1442848499
Анон, подскажи, пожалуйста. Сам не программирую, но сейчас по фану изучаю курс Automate the boring stuff. Хочу сделать вот что:
1) на входе у меня есть csv табличка
2) с табличкой нужно провести кое-какие манипуляции, поменять местами столбцы
3) измененную таблицу нужно залить в гугл документы, которые располагаются в корпоративном пространстве и провести там еще манипуляции - удалить повторы, вот все такое
4) измененную таблицу нужно скачать обратно на комп в cvs

Вопрос - насколько сложно реализовать заливку данных в гугл доки? Оно же там требует авторизации, вот этого вот всего. С самим парсингом и изменениями файла у меня проблем нет - в курсе это все расписано, а вот как получить доступ к гуглодокам = тут, боюсь, не знаю.
Аноним 26/07/19 Птн 14:25:07 1442856500
>>1442848
Я тоже для себя подобную муть делаю. Гугли апи гугла.
Аноним 26/07/19 Птн 14:31:17 1442862501
изображение.png (4Кб, 788x76)
788x76
изображение.png (1Кб, 119x83)
119x83
Я согрел от своей тупости. Аноны, объясните как это работает ?
Первый скрин - функция.
Второй, то что она возвращает.
Принимает она матрицу.
Аноним 26/07/19 Птн 14:46:16 1442871502
>>1442862
Смотри, у тебя есть список списков вида
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Выражение можно переписать условно так, чтобы понятнее было
def genTextLine(l):
return '\t'.join(map(str, l))

def xui(arr):
return '\n'.join([genTextLine(l) for l in arr])

genTextLine принимает список с данными строки таблицы, например [4, 5, 6]
функция map(str, l) делает из этого списка список вида ['4', '5', '6']? со стоками, а не числами
'\t'.join(['4', ''5', '6'] сшивает список в строку, получается "4 \t 5 \t 6 " (пробелы я добавил тут для наглядности, без пробелов будет, конечно)

И аналогично со внешней функцией, ты сшиваешь в одну строку полученные в genTextLine текстовые строки, это уже совсем просто.

Аноним 26/07/19 Птн 14:48:05 1442874503
Снимок экрана20[...].png (21Кб, 478x197)
478x197
Аноним 26/07/19 Птн 15:34:40 1442918504
>>1442871
>[genTextLine(l) for l in arr]
Как раз то что и надо было. Что то постоянно сбивало и не мог понять, что '\t'.join(map(str, l)) просто функция в генераторе. Спасибо!
Аноним 26/07/19 Птн 20:26:28 1443092505
Реально ли нубу скомпилировать киви в апк, имея в арсенале только винду?
Уже всерьёз задумаваюсь уйти в жабу
Аноним 26/07/19 Птн 21:25:53 1443125506
>>1442666
Логика в моделях - тоже не лучший вариант
Аноним 27/07/19 Суб 03:27:11 1443248507
Аноним 27/07/19 Суб 14:47:30 1443406508
Screenshot 2019[...].png (36Кб, 1362x98)
1362x98
При запуске jupyter notebook есть эта ошибка.
Все работает. Но меня смущает эта ошибка. Нагуглить что-то внятное не могу.
Кто знает, что это такое?
Аноним 27/07/19 Суб 16:16:50 1443440509
image.png (57Кб, 962x495)
962x495
Посоны, а как понимать алгоритмы?
Сижу над задачей час, посмотрел решение, оно там в одну строчку.
Как? Можно ли как то повысить уровень знания построения алгоритмов?
Аноним 29/07/19 Пнд 21:58:46 1444637510
g
Аноним 01/08/19 Чтв 00:52:36 1445753511
Аноним 01/08/19 Чтв 13:44:28 1445919512
>>1445753
как я понял, вкатывание в олимпиадное программирование
Аноним 01/08/19 Чтв 14:53:15 1445970513
Аноним 02/08/19 Птн 07:29:37 1446375514
>>1443440
По поводу данной задачи. Давай пройдем длину шнурка от левого конца к правому. Сначала у нас идет свободный конце длиной l, потом поворот направо длиной а, спуск вниз длиной b. Последние два действия должны повториться три раза (осталось еще два), после чего мы делаем один поворот влево длиной a и начинаем подъем, который аналогичен нашим повторяемым действиям, а значит и выполниться должен тоже 3 раза, после чего мы окажемся с правой стороны и останется лишь пройти свободный конец l.
Теперь запишем эти расстояния уравнением: l + (a + b) \ 3 + a + (a + b) \ 3. Приведя подобные получим: 2 \ l + 6 \ (a + b) + a.
имо такая запись проще, чем на том сайте. Насчет понимания алгоритмов не могу ничего посоветовать, кроме прочтения книг по алгоритмам, в факе доски есть рекомендации. К слову -- я ни одну не читал
Аноним 02/08/19 Птн 07:30:42 1446376515
>>1446375
\ это умножение если что. Думал звездочка эскепнется.
Аноним 23/08/19 Птн 02:44:26 1458924516
>>1436697

На Code Academy курс Python 3 хороший, если можешь в английский. (Если ещё актуально)
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов