М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 20 августа 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

python /python/ python 9 июля, 13:18 1430914 В конец треда | Веб

1,5 Мб, 1350x10801 Мб, 1200x79871 Кб, 2048x1024

ЧАВО: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat - с этого начинать, перед тем как задавать вопросы. Кажется, устарел, требуется обновление или замена на что-то другое

Книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Ещё книжек? https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек Богу книжек! https://yadi.sk/d/H-00n-UG3RSQem

Предыдущий
>>1421793 (OP)

Ответы317113200635350368283723338399402304025840754

2 9 июля, 15:45 2 1431037

Как работает инкапсуляция в питоне?

Ответы3104731231

250 Кб, 402x482
3 9 июля, 16:11 3 1431047

>>1431037
Через соглашение между джентельменами

Ответы31215313613151437234

4 9 июля, 20:46 4 1431177

Доброго вечера, достопочтенные.
Пытаюсь в Трединг....
В общем задача задать аргументы для 4 потоков, они изменяемые и зависят от входящих данных, и чтобы каждый поток выполнялся строго друг за другом, 1(2 или 3 или 4) закончился начался снова 1 (2 или 3 или 4) соответственно, но с другими данными. Как это делается?
мы задаем в функции аргумент в который будем передавать threading.Event()
и в самой функции ставим вот ето вот
арг = агрумент уникальный для каждого из тредов
арг.wait()
арг.clear()
тело функции
арг.set()
?

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

Ответы3152631608

5 9 июля, 21:41 5 1431215

>>1431047
неистово проиграл

6 9 июля, 21:48 6 1431231

>>1431037
value - public
_value - protected
__value - private
Так и работает

113 Кб, 700x836
7 10 июля, 00:37 7 1431361

>>1431047
Мое увожение

8 10 июля, 08:07 8 1431443

Пацаны,що с этим делать

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).

Никакие комманды не работают,хелп

Ответы31505

9 10 июля, 11:58 9 1431505

>>1431443
Быстро фикс,позор мне, последняя сточка помогла

Сорри за даунизм

10 10 июля, 12:21 10 1431512

Если мне нужно сохранить лист numpy-массивов в файл, смогу ли я просто использовать read и write методы?

11 10 июля, 12:35 11 1431514

>>1431047
Почему же тогда чтоб получит значение __value класса A, то мне надо написать var._A__value?

Ответы31517

12 10 июля, 12:42 12 1431517

>>1431514
https://docs.python.org/3/tutorial/classes.html#private-variables

Ответы31521

13 10 июля, 12:52 13 1431521

>>1431517
Тогда это уже не соглашение, не находишь?

Ответы31537

3,9 Мб, webm,
1280x720, 0:26
14 10 июля, 12:59 14 1431522

Как в питоне можно уместить в одну строкчу конструкцию из
if чота:не-pass else: if (чота2):не-pass else: не-пасс
?

знакомому с очень широким монитором очень нада!

Ответы31524

15 10 июля, 13:03 15 1431524

>>1431522
'a' if 0 else 'b' if 0 else 'c'

16 10 июля, 13:04 16 1431526

>>1431177
Поправьте что-то или просто обоссыте.
https://pastebin.com/zTFzbuXe
вроде все идет нормально. размыми "тредами" чи не? как узнать то.... хер его знает

Ответы32008

17 10 июля, 13:26 17 1431537

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

18 10 июля, 15:26 18 1431608

>>1431177
Скажи че тебе надо сначала

Ответы31647

19 10 июля, 15:53 19 1431625

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

Ответы31826

20 10 июля, 16:20 20 1431647

>>1431608
Есть массив пользователей, поскольку обращаться к базе по средствам одного аккаунт нельзя очень часто и много, я хочу разделить массив между техническими аккаунтами.
Я не погромировал и не учился этому, все что делаю делаю на ощупь по
Собственно каждый раз запуская тред мне надо передать в него нужные параметры имя пароль и массив который он будет обрабатывать.
Понял что можно запустить тред и отдать ему только маасив // количество тех акаунтов. А разделение на количество запросов можно организовать в самой функции.
Собственно вопрос в том как организовать многопоточность с динамическим данными юсер:пас . у меня не правильно, надо задать жёсткий контроль в количестве и первым ждать исполнение последнего. Чтобы не на плодить этого говна кучу кучную.

Ответы3169631701

21 10 июля, 17:14 21 1431696

>>1431647
>обращаться к базе по средствам одного аккаунт нельзя
>по средствам
На питоне все такие безграмотные мудаки, или ты один такой феномен?

Ответы3170031738

22 10 июля, 17:17 22 1431700

>>1431696
Да.

23 10 июля, 17:19 23 1431701

>>1431647
Почему тебе простой zip данных и cycle аккаунтов в цикле не подходит?

Ответы31738

24 10 июля, 17:27 24 1431706

Антош, поясни мне за проектирование программ.

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

Правильно/не правильно я работаю? Как вы проектируете и воплощаете в жизнь свой код? Можете ли кинуть примеры хорошего кода? Ведь, если смотреть первый попавшийся на гитхабе, то нет гарантии что код писал не говнокодер.

24 10 июля, 17:27 24 1431706

Антош, поясни мне за проектирование программ.

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

Правильно/не правильно я работаю? Как вы проектируете и воплощаете в жизнь свой код? Можете ли кинуть примеры хорошего кода? Ведь, если смотреть первый попавшийся на гитхабе, то нет гарантии что код писал не говнокодер.

Показать весь текст
Ответы31709318093333833358333783338538137

25 10 июля, 17:30 25 1431709

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

>>1431706 - кун.

Ответы31710

26 10 июля, 17:30 26 1431710

>>1431709
> "слегка" уставший

Самофикс.

27 10 июля, 17:33 27 1431711

>>1430914 (OP)
Зачем коммуну выкинули из шапки, ироды?

https://sites.google.com/view/pypry/

Ответы31714

28 10 июля, 17:39 28 1431714

>>1431711
Потому что это непонятная хуйня, где есть 2.5 книги и ролика по питону, но зато куча хуйни по жс и css редактор

Ответы31724

29 10 июля, 17:51 29 1431724

>>1431714
Что лучше: profit == 0, или profit > 0?

Ответы31726

30 10 июля, 17:54 30 1431726

>>1431724
Что лучше: захламлённое помещение или чистое?

Ответы31730

31 10 июля, 18:01 31 1431730

>>1431726
Если в захламленном помещении легко найти то что нужно, то лучше оно. Ведь в чистом вообще ничего нет.

Ответы31733

32 10 июля, 18:03 32 1431733

>>1431730
>Ведь в чистом вообще ничего нет.
Такой предпосылки не давалось.

Ответы31741

20 Кб, 441x183
33 10 июля, 18:04 33 1431735

я написал функцию приведения опыта в уровень, но она очень не практична, чем больше опыта - тем больше времени выполняется подсчет.
как фиксить?
https://pastebin.com/dMB448ta

Ответы317753178231885

34 10 июля, 18:07 34 1431738

>>1431696
Все педанты орфографии и грамоты такие желчные людишки, или только ты?
>>1431701
>zip данных
>cycle аккаунтов
Не понимаю как мне это поможет.
У меня есть список ID, по каждому ID надо сделать запрос. Количество запросов ограничено во времени, чтобы сократить время обработки всех ID нужно запустить еще 3.
Или ты по оформлению кода и его заграждению примитивными циклами?

35 10 июля, 18:08 35 1431741

>>1431733
>ValueError: Такой предпосылки не давалось.

36 10 июля, 18:27 36 1431775

>>1431735
math.log

37 10 июля, 18:32 37 1431782

>>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), но я забыл как там эти ряды считаются

Ответы31792

38 10 июля, 18:40 38 1431792

>>1431782
>texp_per_level (star)= 1.2
чет я не вдупляю, что это?

Ответы31795

39 10 июля, 18:42 39 1431795

>>1431792
домножение на 1.2

Ответы31813

40 10 июля, 19:14 40 1431809

>>1431706
bump

41 10 июля, 19:17 41 1431813

>>1431795
как мне понять, сколько осталось опыта, который не потратился на уровень?

42 10 июля, 19:38 42 1431826

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

43 10 июля, 21:00 43 1431885

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

Ответы31893

44 10 июля, 21:25 44 1431893

>>1431885
http://ideone.com/QoKR8c

45 10 июля, 21:48 45 1431900

Кто-нибудь из вас конспектирует знания/мысли. Если да, то как выбираете самое нужное, что предпочитаете, бумагу или электронную версию?

Ответы3191432009

46 10 июля, 22:14 46 1431914

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

Ответы31919

47 10 июля, 22:23 47 1431919

>>1431914
Там ведь вроде поиск не очень удобный

48 11 июля, 01:08 48 1432006

>>1430914 (OP)
> Кажется, устарел, требуется обновление или замена на что-то другое
Да вроде не особо.
Другое дело, что гайд не окончен, но вряд-ли кто-то возьмётся доделать.

49 11 июля, 01:08 49 1432008

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

50 11 июля, 01:10 50 1432009

>>1431900
Коллега на работе завёл себе несколько тетрадок и от руки записывает туда какие-то вещи(вплоть до новых слов на инглише) + распечатывает себе whitepaper'ы. Но он датасаентист с приветом небольшим.

5 Кб, 564x528
51 11 июля, 10:26 51 1432247

мб не совсем по теме, но как при помощи opencv убрать вмятину? На рис. 1 оригинальное изображение, на рис. 2 - то, что хотелось бы. cv2.convexHull не совсем подходит, так как деформирует другие края (рис. 3).

Ответы32277

52 11 июля, 11:13 52 1432277

>>1432247
Найти разницу между convexHull'ом и оригинальным изображением. Ты получишь бублик с разной толщиной краев. Там, где бублик тонкий, удали все совсем. Где толстый, оставь.

Ответы32285

21 Кб, 326x253
53 11 июля, 11:24 53 1432285

>>1432277
а как толщину бублика измерить?

Ответы32288

54 11 июля, 11:34 54 1432288

>>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, если ты его делал), и копируешь на свою картинку. Если маленькая, нихуя не делаешь

Ответы32289

55 11 июля, 11:39 55 1432289

>>1432288
спасибо

56 11 июля, 18:26 56 1432571

Подскажите плиз, как в пандасе сохранить структуру датафрейма после 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”, по которым разлелялись группы.

Ответы32579

57 11 июля, 18:42 57 1432579

>>1432571
Все, разобрался

58 12 июля, 06:20 58 1432893

Где можно посмотреть список команд для api dvach?

Ответы33193

sage 59 12 июля, 13:43 59 1433193

>>1432975

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

в разделе api джвача?

Ответы33217

60 12 июля, 14:19 60 1433217

>>1433193
>разделе api
https://github.com/anonim-legivon/dvach.api
Я про этот, там вроде другой

Ответы33218

61 12 июля, 14:20 61 1433218

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

62 12 июля, 15:23 62 1433245

Анооон, как из функции а нескольких потоках получить ответ?

Ответы33473

63 12 июля, 17:19 63 1433338

>>1431706
Возможно, ты просто слишком сильно угорел по ООП и абстрагированию. Будь проще и код потянется.

64 12 июля, 17:41 64 1433358

>>1431706

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

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

Видение того, "как надо делать" не возникает ниоткуда. Опыт, сын ошибок трудных, как говорится, решает.

129 Кб, 881x404
65 12 июля, 18:08 65 1433378

>>1431706
Ебаный двощ обезумел. Слово из спам листа в посте.

66 12 июля, 18:13 66 1433385

>>1431706
>Я, кажется, что-то делаю не так.
>Начиркал, как Грэди Буч завещал,
Я еще лет в 13 открыл в библио-глобусе его книгу и понял, что этот словоблуд вообще не стоит внимания.
>И в конечном счете, вместо красивого ООП стиля все вылилось в хз что за стиль, яля говнокод.
В ООП всегда так.
>Правильно/не правильно я работаю?
Нет. Набери в гугле "критика ООП" и читай, читай, читай.

Ответы33433

67 12 июля, 18:52 67 1433433

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

23 Кб, 605x238
68 12 июля, 19:45 68 1433453

Разве вот так вложено нельзя идти по всему листу?

Ответы334683347433540

69 12 июля, 20:13 69 1433468

>>1433453
Ты нигде не присваиваешь ничего списку a.

70 12 июля, 20:22 70 1433473

>>1433245
Ну как переменную получить ну анон? Или классами все делоть

Ответы33695

150 Кб, 475x476
71 12 июля, 20:23 71 1433474

>>1433453

Ответы335403355833665

72 12 июля, 21:57 72 1433540

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

Ответы33558

73 12 июля, 22:25 73 1433558

>>1433474
>>1433540
Спасибо, почему-то думал что по итератору можно получить доступ к самому элементу. Вообще randint тут чисто филер для проверки, вообще у меня должен быть лист из массивов NumPy разной длины, где каждый элемент массива — случайное значение из словаря или совершенно новое созданное по образцу из одной из категорий, но это уже проблема другого порядка.

Ответы3360633665

74 12 июля, 22:46 74 1433579

Чем urllib.request отличается от библиотеки requests?

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

вкатывальщик

Ответы33617

75 12 июля, 23:23 75 1433606

>>1433558
>по итератору можно получить доступ к самому элементу
Можно, но это работает иначе.

76 12 июля, 23:35 76 1433617

>>1433579
requests - обёртка над urllib3. В остальном они немного по разному парсят урлы.

77 13 июля, 01:18 77 1433665

>>1433558
Конечно можно. Только итерируемую последовательность во время итерации менять нельзя.
for x in xs:
<делаем что-то с элементом x>
Здесь можно что-то делать с переменной x, но от присвоения переменной x какого-либо значения последовательность xs не поменяется.
Видишь, здесь >>1433474 в первом примере итерируемая последовательность это range, а не список a, элементы этой последовательности используются как индексы для доступа к списку a и изменению его элементов

78 13 июля, 04:31 78 1433695

>>1433473
Открыл для себя global

79 13 июля, 08:41 79 1433728

отцы нубский вопрос:
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, то он его пропускает и идет дальше. при подобном раскладе почему то не выходить(

80 13 июля, 14:48 80 1433923

Как питонисты смотрят на котлин?

16 Кб, 1352x77
81 13 июля, 17:04 81 1434032

В питоне есть какой нибудь синтаксический сахарок, чтобы передать в параметры функции N элементов массива, но не одним объектом, а поэлементно? Например, вот есть у меня пикрил, мне лень писать na_data[0]...na_data[7], но и в конструкторе я не хочу делать параметр массивом данных. можно ли как то зделоть зоебись сделать типа NetworkActivity(na_data[0]..na_data[7])?

Ответы34034340403404334047

16 Кб, 1244x79
82 13 июля, 17:05 82 1434034

>>1434032
бля, не туда аппендил
self.fix()

83 13 июля, 17:13 83 1434040

>>1434032
можно. Если тебе надо передать ровно 8 элементов, а в na_data может быть больше, то код будет
foo(na_data[:8])

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

Ответы340413404234047

84 13 июля, 17:14 84 1434041

>>1434040
звезда проглатывается перед na_data

Ответы34045

85 13 июля, 17:14 85 1434042

>>1434040
Заебись, спасибо.

86 13 июля, 17:14 86 1434043

>>1434032
https://stackoverflow.com/a/12786141

23 Кб, 1258x94
87 13 июля, 17:15 87 1434045

>>1434041
От так, да?

Ответы34046

88 13 июля, 17:15 88 1434046

>>1434045
тьфу, без [0]

8 Кб, 273x139
89 13 июля, 17:16 89 1434047

>>1434040
>>1434032

90 13 июля, 22:32 90 1434377

Как разместить элементы в окне по своему желанию в tkinter? pack() хуйню творит, конечно.

Ответы34417

91 13 июля, 23:02 91 1434417

>>1434377
Там еще есть grid, который, как можно догадаться, размещает элементы в ячейках таблицы, и place, который размещает элементы по очно заданным координатам.

Ответы34767

92 14 июля, 12:55 92 1434727

посоны, кто-нибудь занимался запуском питоновских скриптов из-под JVM? Что лучше для этого использовать? Py4J / Jython / JPype?

93 14 июля, 13:32 93 1434767

>>1434417
Спасибо.
А есть какая-либо возможность "запретить" изменение габаритов окна?

Ответы35378

94 14 июля, 20:45 94 1435231

Кто-нибудь в 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'

Что я делаю не так? Как мне повесить событие на закрытие окна??

Ответы35261

175 Кб, 2256x800
95 14 июля, 21:10 95 1435261

>>1435231
Зацени.

Ответы35281

96 14 июля, 21:22 96 1435281

>>1435261
Не понимаю. Я использую окошко из QT-редактора, вот код:
https://pastebin.com/N33z2Ttc
Что я делаю не так? Подскажи плиз

Ответы35296

97 14 июля, 21:23 97 1435284

можно ли удалить файл со скриптом после того, как python script.py запущен, но еще не отработал? если да, то как нибудь, имея только pid запущенного процесса, можно ли получить запущенный скрипт?

Ответы3529535299

98 14 июля, 21:37 98 1435295

>>1435284
Имя скрипта находится в переменной __file__

Ответы35300

99 14 июля, 21:38 99 1435296

>>1435281
Ты создаешь класс, наследуясь от object, а я от QMainWindow. object - базовый класс для всех.

Ответы35313

100 14 июля, 21:40 100 1435299

>>1435284
я возможно недостаточно точно выразился. есть произвольная линуксовая система, на которой запущен скрипт командой python3 scriptname.py от имени рута, но запускал не я, хоть и есть доступ к руту. ни в / ни в ~ рута скрипта scriptname.py нет, да и через find/locate по всей системе он тоже не находится. мне нужно узнать, что именно делает скрипт, в иделае вообще получить его сорсы. как это можно сделать?

Ответы35308

101 14 июля, 21:40 101 1435300

>>1435295
Но файл уже как бы удален же. Ему нужно как-то найти ссылку на файл, которую держит процесс скрипта.

Ответы35305

102 14 июля, 21:41 102 1435305

>>1435300
как вообще интерпретатор питона реагирует на удаление файла, указанного при запуске?

Ответы35315

48 Кб, 475x640
103 14 июля, 21:44 103 1435308

>>1435299
Серьезно? Лезь в оперативу и сиди выдергивай по кусочкам результат работы.

Ответы35314

104 14 июля, 21:46 104 1435313

>>1435296
Это я вижу. Тоесть QT-редактором вабще пользоваться нельзя, т.к. после него всё перепиливать надо?

Ответы35322

105 14 июля, 21:46 105 1435314

>>1435308
ну т.е. питон при запуске считывает весь файл в какой нибудь постоянный буфер, который остаётся в процессе до выхода?

Ответы3532235325

106 14 июля, 21:46 106 1435315

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

Ответы35345

107 14 июля, 21:49 107 1435322

>>1435313
Да почему нет то? Можно. Там просто при мастере проекта нужно выбирать нужные вещи. Базовый класс, систему, целевую версию и т.д. От него и зависит, что тебе он даст в начале.
>>1435314
Ну да. Никогда не видел результат работы sudo rm -rf /* в системе? Все, что осталось в оперативке - то и работает, пока не завершится. Так и работает в целом. Скрипт в оперативке.

Ответы3532735345

108 14 июля, 21:50 108 1435325

>>1435314
https://unix.stackexchange.com/questions/6301/how-do-i-read-from-proc-pid-mem-under-linux

109 14 июля, 21:51 109 1435327

>>1435322
>Да почему нет то? Можно. Там просто при мастере проекта нужно выбирать нужные вещи. Базовый класс, систему, целевую версию и т.д. От него и зависит, что тебе он даст в начале.
Есть на примете материал, который рассказывает как правильно сделать? Где там это всё выбирать.
Спасибо

Ответы35330

110 14 июля, 21:55 110 1435330

>>1435327
Если честно, то не знаю. Я просто доки читаю и в vim пишу. qt creator только для c++ использовал. Вот тут вроде просто описывается, быстро глянул https://python-scripts.com/pyqt5
Вот тут уже подробнее, но касательно самой qt
https://www.riverbankcomputing.com/static/Docs/PyQt5/

Ответы35363

111 14 июля, 22:19 111 1435345

>>1435322
>>1435315
нашёл вот такой вот гайд https://gist.github.com/simonw/8aa492e59265c1a021f5c5618f9e6b12. пайтон шелл раскочегарил, а вот что дальше делать - пока не знаю. какими инструментами из шелла можно посмотреть какие функции/классы/модули имеются?

Ответы35355

112 14 июля, 22:20 112 1435350

>>1430914 (OP)
Наверное, постоянный вопрос в этих тредах, но сколько пройдёт времени Нормального обучения языку, прежде чем я смогу получать с этого какие-то деньги?

113 14 июля, 22:21 113 1435355

>>1435345
Ты можешь поместить скрипт в переменную а потом построчно его оттуда вытаскивать при помощи exec

Ответы35364

114 14 июля, 22:30 114 1435363

>>1435330
>быстро глянул https://python-scripts.com/pyqt5
Ну вот тут он у них автоматом создаётся класс наследующий QMainWindow, а у меня при тех же действиях - от object.

Ответы35365

115 14 июля, 22:32 115 1435364

>>1435355
каким образом, если я как раз и запустил этот pyrasite-shell для того, чтобы проанализировать скрипт? какие вообще у питоновского промта (который как >>> три > если вдруг разметка сожрёт выглядит) возможности к интроспекции? в том же гайде пишут, что можно если бы я знал модуль запущенного скрипта, то мог бы узнать какие там есть функции и классы через dir(my_module). а как узнать, какие в рантайме есть модули? понятно, что там будет еще куча всяких системных, но ведь наверняка должен быть и мой, нет?

Ответы35369

116 14 июля, 22:32 116 1435365

>>1435363
Поэтому и говорят, что не надо слепо верить ide, нужно уметь делать все руками, а только потом - ide.

Ответы35371

117 14 июля, 22:36 117 1435369

>>1435364
ладно, нашёл вроде

118 14 июля, 22:39 118 1435371

>>1435365
Да вот я ньюфаг, и не хотел особо разбираться в ide, хотел залететь на скорую руку, но что-то зациклился на этом.

119 14 июля, 23:04 119 1435378

>>1434767
Конечно. Метод resizable, пусть есть корневой виджет по имени root, тогда root.resizable(False, False) запретит изменение окна приложения по горизонтали и вертикали.
Ты такие штуки спрашиваешь, быстрее самому нагуглить, чем ждать, пока ответят на двоще, совсем простые вещи

120 14 июля, 23:17 120 1435385

Чё у вас там, пипенв среду уже создал?

121 15 июля, 09:35 121 1435478

Анон, пишу говнокод короче, нужно подключится к ftp и скачать оттуда актуальные данные, но подключение не идет, я знаю в чем проблема, на работе у нас стоит прокси сервер, так вот как заставить через него работать мой говнокод? Когда подключаю свой мобильный как роутер, то без проблем конектится.

Ответы354893552135536

122 15 июля, 09:45 122 1435489

>>1435478
Через обычного клиента получается зайти на ftp?

Ответы35524

123 15 июля, 10:24 123 1435521

>>1435478
Прокси должен прокидывать фтп порт наружу, или туннель давать.

Ответы35524

124 15 июля, 10:31 124 1435524

>>1435489
Дает без каких либо проблем.
>>1435521
Ну ведь он дает, если использовать какой нибудь браузер, но с говнокодом моим не дает.

Ответы35529

125 15 июля, 10:41 125 1435529

>>1435524
Посмотри про пассивный режим ftp и попробуй это использовать.

Ответы3553135540

126 15 июля, 10:42 126 1435531

>>1435529
хотя в доках написано, что он по-умолчанию работает

127 15 июля, 10:45 127 1435536

>>1435478
На каком этапе проблема? Получается ли установить коннект с портом?

Ответы35540

128 15 июля, 10:47 128 1435540

>>1435529
Почитаю посмотрю
>>1435536
Как мне глянуть? через какой нибудь wireshark?

Ответы3554635548

129 15 июля, 10:50 129 1435546

>>1435540
Попробуй просто на сокет подключиться для начала.

Потом можно сделать tcpdump и посмотреть, какой там диалог.

Попробуй через телнет подключиться, проверить соединение:
https://www.webdigi.co.uk/blog/2009/ftp-using-raw-commands-and-telnet/

Ответы35558

130 15 июля, 10:53 130 1435548

>>1435540
Ты как пытаешься подключаться, через ftplib?

Ответы35558

131 15 июля, 11:10 131 1435558

>>1435546
хорошо, попробую
>>1435548
Да, через него

Ответы35572

132 15 июля, 11:20 132 1435572

>>1435558
Короче просто видимо порт 21 не открыт, я ебал, всем спасибо.

133 15 июля, 11:27 133 1435580

Питонистусы, как сделать так чтобы при ошибке скрипт ждал моего подтверждения y/n и по результатам продолжал работу цикла или шёл дальше по скрипту?

Ответы3559837665

134 15 июля, 11:56 134 1435598

>>1435580
Внутрь try-блока ты уже не сможешь вернуться.

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

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

24 Кб, 616x266
135 15 июля, 20:42 135 1436236

Кто может пояснить, зачем вот так пишут? Это не джуны, а матёрые сеньёры.

Ответы3637436388

136 15 июля, 22:31 136 1436374

>>1436236
А что не так, не достаточно информативная строка, или надо все в одну строчку писать, типа f-string надо использовать вместо format?
А, вижу, в info может быть либо ничего, либо только одно слово, тогда не нужен ни массив не join. Ну, проебались чуть, можно же исправить

137 15 июля, 22:38 137 1436388

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

138 16 июля, 00:48 138 1436489

Аноны, доебал препод с тем, чтобы я на питоне накидал ему прогу с парсингом экселя и формочкой для собсна выбора файла, выбора диапазона ячеек и графиком.
Я с этим языком знаком лишь по синтаксису. Ткинтер вообще не ебу, а при попытках раскидать эксель в матрицу знатно заебался с пандой и хлрд, так и ничего не сделав.
Похуй с ним с ткинтером, сам нагуглю надеюсь как сделать форму со всеми этими свистоперделками. Поделитесь кодом, чтобы прочитать эксель файл как
[
[row1 column1, row1 column2...],
[row2 column1, row2 column2...],
...
]
С меня тонны благодарностей от препода и моя сердечная любовь до гроба no homo

Ответы3651336514366013661140214

139 16 июля, 02:44 139 1436513

>>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])

Ответы3651436601

140 16 июля, 02:46 140 1436514

>>1436489
>>1436513
>знатно заебался с пандой и хлрд
А, ты и сам это уже нашёл. Тогда не знаю.

141 16 июля, 10:10 141 1436601

>>1436489
>>1436513
Аноны, а может с json`ом сделать ?
Мимо другой анон

142 16 июля, 10:29 142 1436611

>>1436489
а что сложного с пандасом? вот например за 3 строчки в csv можешь сначала сконвертировать, потом с csv работать как обычно. мне лень питон запускать и либреофис
https://stackoverflow.com/questions/10802417/how-to-save-an-excel-worksheet-as-csv/45297469

143 16 июля, 14:02 143 1436697

Добрый день

Аноны, к сожалению, я очередной хуй, который хочет вкатиться в python. Проблема в том, что у меня очень мало времени из=за работы, но есть деньги на то, чтобы купить курс (не надо только ссать на меня). Что скажеет про яндекс практикум? Их программа для backend

144 16 июля, 15:53 144 1436815

Аноны, я практикующийся ньюфаг, накидал знакомому софтинку для учёта вип-аккаунтов от серванта БФ4. Если кому не сложно, зацените код:
https://www.codepile.net/pile/2xO3Z9x6
В даннном случае, вся база хранится в списке. Список хранится в pickle-объекте. При загрузке программы pickle-файл считывается и содержимое помещается в базу, следом обновляется Qt таблица. При любом редактированнии базы (добавленние, удаление, редактирование), происходит сохраненние базы, загрузка, таблица отрисовывается с нуля.
В общем если кому не сложо глянуть - есть в этой программе что-то, что конкретнно не так, за что меня можо пнуть?

Ответы36835

145 16 июля, 16:04 145 1436828

>>1430914 (OP)
Кто-нибудь знаком с pygame? Пытаюсь решить задачу - есть группа спрайтов-деревьев и спрайт огня. Деревья спавнятся в случайном месте по нажатию кнопки. Огонь доходит до дерева, активируется функция, которая определяет скорость, с которой оно сгорает. Но так как деревья спавнятся, нет конкретной переменной, которую можно вписать в функцию. Как можно применить функцию к экземпляру дерева?

Ответы36863

146 16 июля, 16:15 146 1436835

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

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

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

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

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

Это идейно.

Ответы36839

147 16 июля, 16:19 147 1436839

>>1436835
Хорошо, попробую осмыслить и учесть, хотя мне сейчас многое непонятно.

QT-код целиком из QT-редактора, я его не сам писал, потом он такой.

Ответы36846

148 16 июля, 16:30 148 1436846

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

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

Все эти теории проектирования из жизни пришли.

Ответы36851

149 16 июля, 16:39 149 1436851

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

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

>И с выбором данных, попробуй подумать, как ты будешь в другом формате их хранить
Тоже не совсем понимаю, ты про сохранение данных в pickle? Чуть позже собирался изучить SQL и применить базу данных для сохранения

150 16 июля, 16:50 150 1436863

>>1436828
Пайгейм не трогал. Ты не можешь получить экземпляр дерева рядом с огнем? Ты ссылки на деревья куда-то записываешь? У тебя задача на коллизию огня и дерева?

Ответы36874

151 16 июля, 17:06 151 1436874

>>1436863
Там походу только пересечением координат объектов можно что-то сделать подобное.
Как-то пытался курсач на пайгейме сделать. Больше обсёра у меня не было. Пока не начал рабоать, офк.

Ответы36890

158 Кб, 1280x720
152 16 июля, 17:22 152 1436890

>>1436874
> Там походу только пересечением координат объектов можно что-то сделать подобное.
Коллизии так и делаются, в общем-то.

Ответы3692737131

153 16 июля, 18:00 153 1436927

>>1436890
Ну вот и хорошо. Я не знал.

154 16 июля, 21:47 154 1437131

>>1436890
Лол, а там нет функции которая определяет коллизии объектов ? По моему вот так:

def is_collided_with(self, sprite):
return self.rect.colliderect(sprite.rect)

Ответы37137

155 16 июля, 21:55 155 1437137

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

156 16 июля, 23:20 156 1437218

Почему по сабжу нет нормальной актуальной книги? Либо какие-то справочники, либо фигня для детей, либо старая книга Лутца с ненужной легаси 2.6, кроме 3.

Ответы3722737246

157 16 июля, 23:33 157 1437227

>>1437218
Ты уверен что всё посмотрел?

Ответы37239

158 16 июля, 23:55 158 1437233

>>1430914 (OP)
Жаба-джун заехал в тред
Поштудировал ваш Питонух и малость приохуел:
1) С хрена ли доступ к любому атрибуту и методу можно осуществлять как извне класса, так и просто из самого модуля точечной нотацией?.. Почему кладется хуй на систему геттеров-сеттеров?
2) Где вообще инкапсуляция как таковая? С хуя ли не могу адекватно задать приватные атрибуты в классе? Какие-то блять _ вместо private/public/protected . И есть ли тут вообще бля возможность сделать класс доступным ТОЛЬКО на уровне модуля, а? Че-то пока хуйня получается

Ответы3723437243

159 16 июля, 23:56 159 1437234

>>1437233
>Где вообще инкапсуляция как таковая?

>>1431047

160 17 июля, 00:02 160 1437239

>>1437227
Я не могу быть в этом 100% уверен. Но просмотрел несколько источников. Если у тебя есть годная книга, буду благодарен.

Ответы37667

161 17 июля, 00:18 161 1437243

>>1437233
>геттеров-сеттеров
Нахуй ты со своей парашей лезешь и пытаешься устраивать правила?
>private/public/protected
Есть соглашение о использовании. Если додик или джун, например, то тебе ниего не мешает говнокодить и в джаве, используя везде public. Просто дандеры используй и методы соответствующие.

Ответы37273

162 17 июля, 00:20 162 1437246

>>1437218
Тебе уроки нужны? Или документация? Если первое - иди на ютуб или https://wiki.python.org/moin/BeginnersGuide. Если второе - https://docs.python.org/3/

Ответы37270

163 17 июля, 00:36 163 1437270

>>1437246
Ни то, ни другое. Мне нужна книга, но не сухой справочник.

164 17 июля, 00:38 164 1437273

>>1437243
>Нахуй ты со своей парашей лезешь и пытаешься устраивать правила?
Это унылая регулярная паста, не бугурти.

Система геттеров и сеттеров есть.
При желании, можно запретить и приватные методы снаружи вызывать, но это лишний код и оверхед, не нужно этого делать.

165 17 июля, 16:36 165 1437654

>При желании, можно запретить и приватные методы снаружи вызывать, но это лишний код и оверхед, не нужно этого делать.
Как это сделать, кстати?
В общих словах.

Если через __getattribute__(), то он и внутри класса посмотреть свойство/вызвать метод мешает.

Ответы37747

166 17 июля, 16:56 166 1437665

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

167 17 июля, 17:03 167 1437667

29 Кб, 597x10638 Кб, 602x207

>>1437239
Ссылка с пика №2 - т.ме / python_textbooks
Да как вы блять заебали со своим спам-листом.

49 Кб, 1259x574
168 17 июля, 19:07 168 1437747

>>1437654
Вот пример с приватными методами, в виде скрина, идейно

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

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

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

Есть другие способы, но тоже извращённые.

Ответы37753

22 Кб, 361x265
169 17 июля, 19:17 169 1437753

>>1437747
Как-нибудь можно достать такую приватную функцию?

12 Кб, 371x175
170 17 июля, 19:17 170 1437754

Анон, почему это не работает?
Я ввожу с клавиатуры что угодно (это может быть str опвалопвао, int 43242, либо что-то смешанное типа 9t49ting_))!n3).
Мне нужно три развилки - если введено число, то а, если введена строка - то б, все остальное, в том числе смешанное - в.
В этом куске всегда срабатывает только string.

Ответы377583776338605

171 17 июля, 19:21 171 1437758

>>1437754
Потому что input всегда возвращает строку. Ты сам должен конвертировать в нужный тебе тип.
> The function then reads a line from input, converts it to a string (stripping a trailing newline), and returns that.

Ответы37770

172 17 июля, 19:25 172 1437763

>>1437754
Во втором питоне input работает так, как тебе нужно.

173 17 июля, 19:33 173 1437770

>>1437758
А каким образом я могу сам конвертировать?
Допустим, у меня есть некий результат input - я ввел "312312". Как мне дальше на основе такого инпута ковертировать эту же самую информацию в другой тип?

Ответы37785

174 17 июля, 19:48 174 1437785

>>1437770
Если у тебя там только строки и int'ы, то самое простое это
value = input()
try:
. . value = int(value)
. . # число
except ValueError:
. . # не int

175 17 июля, 19:55 175 1437790

38 Кб, 136x23380 Кб, 376x188

Есть инвентарь в игре, задача идентифицировать объект в ячейке и посчитать количество (цифра в левом правом уголке).

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

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

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

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

Например, почему
pyautogui.moveTo(x, y)
такой тормозной? Всего 10 позиций в секунду, а если еще нужно периодически ctrl зажимать, отжимать, то получается совсем уж смешная скорость. Есть способы двигать курсор и жать кнопки побыстрее?

Ответы3780438012

176 17 июля, 20:11 176 1437804

>>1437790
О, PoE, клёво, давненько в него не заныривал. Много в него народу шпилит?
> пишет на скриптовом интерпретируемом пистоне с тормозной виртуальной машиной
> удивляется, что тормозит
Не еби мозги и бери C++ с OpenCV

Ответы37814

177 17 июля, 20:13 177 1437806

Антошь будь няшей, поясни за aiohttp.
Мне нужно отвечать на GET запрос, причем так что ответ никак не зависит от запроса, а получается в результате работы заранее запущенных асинхронных задач. (это докер контейнер который начинает тестирование удаленных сервисов сразу после запуска, отдающий результат тестирования по http и тут же умирающий)
Набросал упрощенный примерчик https://pastebin.com/CRJPrqN5, он работает. Но вот что он говорит:
>DeprecationWarning: Changing state of started or joined application is deprecated
> app['json'] = json_
Что же делать?
Глобальные переменные? 2к19?

Ответы378073782637834

178 17 июля, 20:15 178 1437807

>>1437806
https://pastebin.com/CRJPrqN5
Обосрался с запятой.

Ответы37826

179 17 июля, 20:20 179 1437814

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

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

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

Ответы37889

180 17 июля, 20:39 180 1437826

>>1437807
>>1437806
>Что же делать?
>Глобальные переменные? 2к19?
Глобальные не нужно. Ты просто делаешь класс, который за коммутацию отвечает, хранит, в том числе, json_

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

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

Ответы37863

181 17 июля, 20:49 181 1437834

>>1437806
Делаешь класс, который делает все. И будет достаточно его свойств, принципы ООП соблюдены - глобальные переменные не нужны.

Ответы37863

182 17 июля, 21:19 182 1437863

>>1437826
Спасибо анон!
Сделал упрощенный пример и он работает без warnings.
https://pastebin.com/WTin2nVm
>>1437834
>Делаешь класс, который делает все.
ИМХО этот подход примерно эквивалентен глобальным переменным.
>принципы ООП соблюдены
И разумеется не соответствует ООП и более того является известным антипатерном - "объект бога".
Я признаться честно не большой специалист в программировании, но кажется asyncio более тяготеет к процедурщине. А уж тем более в моем случае, когда выполняется много мелких задачек, слабо связанных между собой, городить для этого единый класс, чтобы потом запускать методы по отдельности, только ради namespace, такое себе.
Лучше как >>1437826 анон предложил.
Но в любом случае спасибо.

Ответы37924

183 17 июля, 21:39 183 1437889

>>1437814
>OpenCV изучаю, с питоном же он тоже хорошо интегрируется.
Тут ключ к успешному решению твоих задач.

> трейдбота пишу
Мм, прибыльно, наверное?

184 17 июля, 22:34 184 1437924

>>1437863
Сам только перекатываюсь на asyncio и aiohttp. Правда до этого и на питоне много писал, и на других платформах сетевые вещи писал.

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

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

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

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

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

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

Ответы37927

185 17 июля, 22:36 185 1437927

>>1437924
>web-app уже даёт интерфейс для app
опечатка, my_service даёт интерфейс для app, веб интерфейса

152 Кб, 958x905
186 17 июля, 22:58 186 1437943

Вечер в хату, котаны! Спасайте!
Задача: есть список сайтов, код которых надо пропарсить на наличие определенной сигнатуры html/js. То есть в идеале скрипт принимает на вход файл со списком и выдает другой файл где собраны сайты, на страницах которых есть нужный код. Проблема в том, что мои познания в питоне ограничиваются тем, что он простой и для большинства задач уже собран готовый велосипед. Мой максимум - разобраться за часик другой в чьем-то коде и попробовать докрутить под себя. Ну или за большее количество времени написать что-то криво-косо с нуля, если мне объяснят, какие основные библиотеки и фичи нужны для решения этой задачи. Помогите, антоны, с меня как всегда лучи добра.

187 18 июля, 00:16 187 1438012

>>1437790
Определять тип объекта можно попробовать при помощи построения вектора кождого из товаров(вектор основывается на гистограмме цветов). Для этого надо для начала подобрать базу скринов и по ним вычислить вектора. Дальше делаешь скрин ячейки, вычисляешь вектор и делаешь быстрое перемножение: твой вектор ячейки на кучу векторов уже в БД (матричное перемножение итт), дальше сортируешь по степени схожести(от 0 до 0.9) и берешь самый лучший вариант.
Делал подобное, но на больших фотках, анализ одной, на процессоре, занимал примерно 0.002с, у тебя же фотки меньше, можешь сделать это все ещё и мультипроцессингом - вообще огонь будет.
Эх

188 18 июля, 04:56 188 1438059

Какой попенсоурс джанго проджект можно посмотреть чтобы аж покайфовать как ахуенно сделоли?

Ответы38127

189 18 июля, 10:33 189 1438109

Котаны, подскажите, если вэб в питоне?
Куда перекатываться после пхп? И есть ли смысл перекатываться?
Я по мухосранску Краснодар hh смотрел - именно вэб вакансий чет совсем мало. Синтаксис питона знаю.
Ща ковыряюсь в Node.js. И думаю о питоне.
Короче мучаюсь выбором второй платформы для изучения.
Вообще в принципе преимущества питона в вэб-бекенде относительно пхп каковы? ( я не троллинга ради, хочу вектор для себя набить)
С node.js все понятно - там асинхронность из коробки, событийный цикл, все это интересно, но такое ощущение что noda нахрен никому не нужна в РФ.
А питон?

Ответы3811738121

190 18 июля, 11:05 190 1438117

>>1438109
>Котаны, подскажите, если вэб в питоне?
Учить пользоваться поиском, по технологиями и по вакансиям.

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

>>1438109
>Вообще в принципе преимущества питона в вэб-бекенде относительно пхп каковы?
Просто более внятный и стройный код, сам язык поддерживает многие конструкции элегантно и удобно. После питона писать на пхп противно. Фреймворки тоже иначе сделаны, но это уже от фреймворка зависит.

Ответы38157

191 18 июля, 11:30 191 1438121

>>1438109
> ковыряюсь в Node.js.
>И думаю о питоне.

пидор

192 18 июля, 11:49 192 1438127

>>1438059

https://github.com/wsvincent/awesome-django

193 18 июля, 12:23 193 1438137

>>1431706
>на каком моменте можно прекращать придумывать абстрактные классы и писать уже код
С самого начала. Зачем тебе вообще классы в питоне? Напиши логику, а потом уже абстрагируй, если необходимость появится.

194 18 июля, 13:14 194 1438147

Анон подскажи нубу плз. Пилю для себя скрипт. Хочу чтобы после обработки данных скрипт создавал файлик в гугл докс. Что вообще курить, в какую сторону двигаться?

Ответы38150

195 18 июля, 13:16 195 1438150

>>1438147
https://developers.google.com/docs/api/quickstart/python

Ответы38155

196 18 июля, 13:30 196 1438155

>>1438150
Ну досюда то я догуглил. Просто чёто как-то страшновато туда лезть. Там вообще сильно сложно для самовкатывальщика?

Ответы38288

197 18 июля, 13:36 197 1438157

>>1438117
>>Я думаю там по всем направлениям IT мало вакансий.
ПХП > 100 вакансий. Питон + Джанго = 6.

Ответы3839538903

198 18 июля, 16:15 198 1438288

>>1438155
Программирование - это сложно [дот]

104 Кб, 1920x1080
199 18 июля, 18:55 199 1438390

какого хуя?

Ответы3841838421

200 18 июля, 19:11 200 1438395

>>1438157
Почему так? Почему элита не ценится?

201 18 июля, 19:14 201 1438399

>>1430914 (OP)
нигеролюб идёт на хуй вместе со своим уёбищным тормозным питоном и всеми говнопроектами на нём.

202 18 июля, 19:43 202 1438418

>>1438390
Если тебе непонятны такие пустяки, то ты выбрал неправильное занятие.
Это условие у тебя покрывается уже отработанным условием сверху.

203 18 июля, 19:44 203 1438421

>>1438390
иф выполнится при любом t

то что над ним есть другой иф - иррелевантно, чтобы стало релевантно используй elif

Ответы38425

204 18 июля, 19:47 204 1438425

>>1438421
yatoopanool, у тебя же там И, а не ИЛИ
тогда хуй знает, не должно быть никаких варнингов. я не ебу что за иде и дефолтные условия, но дело в них

Ответы3849538499

205 18 июля, 20:44 205 1438463

Что там по асинхронным ORM сейчас годного есть, да чтоб с миграциями?

Ответы38518

206 18 июля, 21:43 206 1438495

>>1438425
Пиздец, все питонисты такие тупые, что больше одной строчки кода прочесть не могут?

Ответы38507

207 18 июля, 21:55 207 1438499

>>1438425
Тебе варнинг показывается не на if целиком, а только на первую его часть. Просто выделено слабо и сформулировано неочевидно, я сам долго понять не мог, пока не пригляделся, что там выделение есть.

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

Ответы385023850838591

208 18 июля, 21:58 208 1438502

>>1438499
А в плане читаемости лучше было бы использовать конструкцию

if t < 60:
....
elif t < 3600:
....

209 18 июля, 22:08 209 1438507

>>1438495
соси хуй, быдло. к семантике языка это не имеет никакого отношения и в дефолтном питоне никаких варнингов не будет

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

Ответы38508

210 18 июля, 22:09 210 1438508

>>1438499
>>1438507

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

211 18 июля, 22:24 211 1438518

>>1438463
Нихуя.
Пулл коннектов делаешь и всё хорошо.

212 18 июля, 23:38 212 1438559

В Python есть инструменты для взаимодействия с элементами приложений Windows? Хочу дать проге доступ к клавиатуре.

213 19 июля, 01:29 213 1438591

>>1438499
Спасибо.

214 19 июля, 03:08 214 1438605

>>1437754
> if type(a) is b

Почему не instanceof?

215 19 июля, 14:59 215 1438796

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

Ответы3879838802

216 19 июля, 15:06 216 1438798

>>1438796
>написал программу с бесконечным циклом которая постоянно принтует
>первый раз за всё время обучения
Надеюсь сегодня твой первый день обучения. Иначе тебе стоит поискать другую специальность.

Ответы3880238843

217 19 июля, 15:08 217 1438802

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

>>1438798
у меня итак другая специальность. просто мне досталась ангельская книжка по питхоне ну и вооружившись гугле переводчиком решил "чего добру то пропадать" вот сижу с июня потихоньку читаю её.

Ответы38803

218 19 июля, 15:10 218 1438803

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

Ответы38806388133881738843

219 19 июля, 15:11 219 1438806

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

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

220 19 июля, 15:15 220 1438813

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

Ответы38881

221 19 июля, 15:20 221 1438817

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

84 Кб, 902x1010
222 19 июля, 15:26 222 1438823

Как вкатится в математику? Я может когда-то это все понимал, но сейчас что называется вижу фигу.

Ответы38885

35 Кб, 450x240
223 19 июля, 15:43 223 1438841

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 есть какие-то координаты но они не совпадают с объектами, совсем, и много повторяющихся значений.

224 19 июля, 15:44 224 1438843

>>1438803
>>1438798
ЭЭЭЭЙ, задрот. АУУУУУ, где твоя программа без перменных? Что ты там говорил, бля? Что это не моё? Може это не ТВОЁ? МАНЯ ЗАЛЁТНАЯ, ПОССАЛ ТЕБЕ НА ЕБАЛО С РАЗБЕГУ. пиздеть горазд, а как обосрался в игнор. чсвшное задротище, наверное такие ублюдки как ты пишут статьи на лурочке. вид важный будто хуй бумажный, а на деле нихуя не знает и не умеет, всё поверхностно. только на двоще передеть может. ТЫ ОБОССАН

225 19 июля, 16:14 225 1438881

>>1438813
while True: print("you're a faggot...")

Ответы3890538933

226 19 июля, 16:16 226 1438885

>>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, несколько научных статей, и это проблем представлять не будет.

226 19 июля, 16:16 226 1438885

>>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, несколько научных статей, и это проблем представлять не будет.

Показать весь текст
Ответы38891

227 19 июля, 16:21 227 1438891

>>1438885
Спасибо за такой развернутый ответ!

Ответы38894

228 19 июля, 16:23 228 1438894

>>1438891
Не за что.

Ответы39133

229 19 июля, 16:27 229 1438903

>>1438157
И зачем нужен питон, если есть божественный пхп?

230 19 июля, 16:28 230 1438905

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

Ответы38907

231 19 июля, 16:30 231 1438907

>>1438905
Я не он. Не надо приносить извинения тому мудаку.

Ответы38909

232 19 июля, 16:31 232 1438909

>>1438907
ладно, тот пидор остался безпруфным кукаретиком.

спасибо тебе, ещё раз.

25 Кб, 542x223
233 19 июля, 16:47 233 1438933

>>1438881
while не нужен
пример на 3.7, на 3.6 не заработает

Ответы38934

234 19 июля, 16:49 234 1438934

>>1438933
>2к19
>python 3.6

Ответы3894139017

235 19 июля, 17:00 235 1438941

>>1438934
3.6 и даже 3.5 ещё активно используются. Например под 3.7 ещё нет PyPy.

236 19 июля, 18:42 236 1439017

>>1438934
Я вообще 3.4.2 пользуюсь. И ничего, живу как-то.

Ответы39026

237 19 июля, 18:51 237 1439026

>>1439017
Если асинхронщину не клепать, то может быть и всё равно.

238 19 июля, 21:31 238 1439133

>>1438894
он нихуя не понял всё равно, зря писал

Ответы39134

239 19 июля, 21:32 239 1439134

>>1439133
Ты что ли понял болезный?

Ответы39139

240 19 июля, 21:38 240 1439139

>>1439134
так я проецирую

21 Кб, 432x288
241 19 июля, 22:14 241 1439150

Анон, помоги нюфажине. Тут падас или нампай.
Есть датафрейм вида
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го.

Ответы39622

242 20 июля, 10:07 242 1439297

Сколько надо дрочить питон чтобы выйти хотя бы на 60к? Скажем, если я на обучение выделяю каждый день часа 4 после работы и один выходной с утра до вечера.
Наверняка таких вопросов дохуя было, можно в факе закрепить.

Ответы393013931139337

243 20 июля, 10:15 243 1439301

>>1439297
Ну мне кажется как повезет. Можешь пойти вообще как стажер за 90к.

Ответы39419

244 20 июля, 11:12 244 1439311

>>1439297
Тут качество дрочения важнее количества

Ответы39419

245 20 июля, 12:39 245 1439337

>>1439297
Такие вопросы обычно задают в "мы вам перезвоним".

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

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

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

Чистый питон никому не нужен. Нужны сопутствующие технологии, они требуют много времени на освоение, смотри вакансии по ключевому слову python.

Ответы39419

246 20 июля, 14:07 246 1439372

21 Кб, 753x24716 Кб, 740x142

Есть цифры такого вида (1 скрин), поигравшись немного с ресайзом и инверсией привел их в более менее стабильный для распознания tesseract'ом вид (2 скрин), но хоть и редко,все равно бывает плохо распознает.

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

Ответы39380

247 20 июля, 14:18 247 1439380

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

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

Ответы39390

248 20 июля, 14:35 248 1439390

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

Думал примерно о том, что ты говоришь, но только как о концепции, как это реализовывать не представляю. Мне нужно будет подготовить 10 контрольных (0123456789) и каждый раз их по кругу прогонять на тесовой картинке в поисках совпадений?

Ответы39432

249 20 июля, 15:15 249 1439419

>>1439301
>>1439311
>>1439337
Ок, упрощу вопрос без гаданий об индивидуальности вопрошающего. Сколько у вас ушло времени, чтобы выйти по зп на 60к+?

Ответы39421

250 20 июля, 15:20 250 1439421

>>1439419
Съеби нахуй дебил. Смотря в каком городе, че за контора, СУПЕР СИЛЬНО зависит от софт скилов на собесах, а не от умения кодить.

Ответы39424

251 20 июля, 15:23 251 1439424

>>1439421
В первую очередь надо уметь программировать. Но этому и за годы можно не научиться, а сваливать всё на софт скиллы, которые да, тоже важны.

Ответы39428

252 20 июля, 15:27 252 1439428

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

Ответы3943739440

253 20 июля, 15:35 253 1439432

>>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, то ещё на порядок можно ускорить. Разные оптимизации можно придумать дополнительные.

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

Смотришь, у какого образца будет минимальное отклонение.

254 20 июля, 15:39 254 1439437

>>1439428
Если ты неуверенно держишься и приходишь как на экзамен, это в минус.

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

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

255 20 июля, 15:42 255 1439440

>>1439428
>был конкретный вопрос от зеленого нуфага
Не нужны.
Зелёный нюфаг спросил про "60 т.р.", а не про то, "что надо уметь, чтобы взяли на работу". Это приговор. Нюфаг просто не понимает, что это лютый пиздец.

Ответы39448

256 20 июля, 15:55 256 1439448

>>1439440
Да,он обречен, именно поэтому я начал свой пост с
>Съеби нахуй дебил.

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

257 20 июля, 19:59 257 1439622

>>1439150
Бамп вопросу.

50 Кб, 451x604
258 20 июля, 20:22 258 1439629

Куда делась ссылка на конфигуратор кода?

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

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

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

помогите

Ответы40006

259 20 июля, 20:49 259 1439638

разобрался, странно, вроде не мешал

260 21 июля, 15:26 260 1439994

Есть встроенная функция open()
Про нее могу почитать в документации в Built-in Functions

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

Ответы40219

261 21 июля, 15:53 261 1440006

>>1439629
В 9-ой строке 3 таба, в 10-ой — 12 пробелов.

84 Кб, 400x480
262 21 июля, 16:57 262 1440049

Что лучше использовать для хранения списка структур: ванильный питоновский list([dict(), dict()...]) или pd.Dataframe
В какой структуре нода ищется быстрее?

263 21 июля, 19:19 263 1440119

Стоит ли читать Лутца? А то книга очень длинная. Не то, чтобы я не могу прочитать тысячу страниц, просто много никому ненужной информации. Есть годная альтернатива без воды "от и до"?

Ответы40122

264 21 июля, 19:22 264 1440122

>>1440119
Может вообще в другой язык вкатиться? Python пользуется каким-то спросом?

Ответы40150

265 21 июля, 20:25 265 1440150

>>1440122
Вкатывайся в Паскаль. Честно, плохого тебе тут не посоветуют.

266 21 июля, 21:57 266 1440192

Читаю Лутца, самую первую книгу для нобов, "Python learning" или что-то такое.

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

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

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

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

Ответы40217

267 21 июля, 23:39 267 1440214

>>1436489
Короче разобрался с вопросом. Как я и думал -- решение есть, надо лишь его правильно нагуглить.
метод as_matrix переводит почти в нужную мне матрицу (массив массивов-строк). Транспонировав (метод transpose, вроде из либы numpy) матрицу я получил то, что и реквестил.

268 21 июля, 23:51 268 1440217

>>1440192
Я для себя решил сначала решить задачки на питонтуторе чтобы иметь хоть какое-то представление о предмете, потом вернусь к Лутцу.

269 22 июля, 00:04 269 1440219

>>1439994
Подскажите нубу

140 Кб, 604x403
270 22 июля, 00:22 270 1440230

>>1430914 (OP)
ВВОДНАЯ
Несостоявшаяся пхп макака которая только и смогла осилить процедурный код, поверхностно коснуться баз данных и ооп стало скушно, не интересно, можно применять только в вебе хочет вкатиться в питон.
ЗАДАЧА
Помочь макаке с поиском книжки на русском, чтоб как у О'райли Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript - свежее издание, годная подача материала, чтоб совсем для бомжей типа меня, и чтоб майнкрафт змейку писать научил!

Ответы40236

271 22 июля, 00:34 271 1440236

>>1440230
Поясните за Эрика Маттиса

272 22 июля, 01:55 272 1440258

>>1430914 (OP)
Приветствую, питононы! Вопрос скорее - математический.

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

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

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

Ответы4026140286

273 22 июля, 02:19 273 1440261

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

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

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

Или я не понимаю. То есть я точно не понимаю, что ты спрашиваешь.

Ответы40270

41 Кб, 800x800
274 22 июля, 03:07 274 1440270

>>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 (или до дохулиарда-семь).

Но чё-т сдаётся мне, что можно взять и поделить, а потом ещё раз, и ещё раз и ещё раз.

41 Кб, 800x800
274 22 июля, 03:07 274 1440270

>>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 (или до дохулиарда-семь).

Но чё-т сдаётся мне, что можно взять и поделить, а потом ещё раз, и ещё раз и ещё раз.

Показать весь текст
Ответы4027440685

275 22 июля, 05:23 275 1440274

>>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 бит ты уже не сможешь найти. Но это уже серьёзная наука по теории чисел и криптографии. Ты, конечно, можешь пытаться сам что-нибудь придумать, но поверь, ты не первый и даже не тысячный. Очень много думали и очень серьёзные люди.

Ответы40556

276 22 июля, 07:55 276 1440286

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

Ответы4030440556

277 22 июля, 08:59 277 1440304

>>1440286
>кроме длины его представления в двоичной системе
010101
в данном случае это 6?

Ответы40556

156 Кб, 750x798
278 22 июля, 18:22 278 1440513

Почему 3?

Ответы4051840545

279 22 июля, 18:27 279 1440518

>>1440513
а что ты ожидал?

280 22 июля, 18:28 280 1440519

Почему 3 можно объяснить ?

Ответы4054140545

281 22 июля, 18:43 281 1440541

>>1440519
things[2] = [1, 2, number]
[1, 2, number][2] = number
number = 3

282 22 июля, 18:46 282 1440545

>>1440519
>>1440513
Потому что ты пидор Потому что в питоне нумирация массивов начинается с нуля, потому что в большом массиве элемент под индексом 2, то есть третий элемент, это другой массив, третьим элементом которого является тройка. Запись things[2][2] означает "взять третий элемент третьего элемента списка things". Серьезно, чего ты ожидал другого? Это же самые азы

283 22 июля, 18:49 283 1440547

Спасиб понял

284 22 июля, 19:04 284 1440556

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

Может ещё есть какие-то закономерности, но я их не вижу?

284 22 июля, 19:04 284 1440556

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

Может ещё есть какие-то закономерности, но я их не вижу?

Показать весь текст
Ответы40602

285 22 июля, 19:59 285 1440595

dataquest.io стоит того?

Ответы40691

286 22 июля, 20:06 286 1440602

>>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. Поверь, ты не первый, тут всё очень хорошо изучено.

Ответы40685

287 22 июля, 20:42 287 1440638

Анон, подскажи, пожалуйста.
Есть таблица вида:
№ |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 - т.е были они в оригинальной таблице или нет?

Ответы40654

288 22 июля, 21:02 288 1440654

>>1440638
Так а в чем проблема? Просто в лоб пройдись циклом и добавь

Ответы40657

289 22 июля, 21:05 289 1440657

>>1440654
В этом и затык. Можешь примерно накидать функцию? Или может в pandas есть?

Ответы40663

290 22 июля, 21:16 290 1440663

>>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
примерно так

Ответы4067240737

291 22 июля, 21:35 291 1440672

>>1440663
Спасибо, попробую.

Ответы40737

292 22 июля, 21:52 292 1440679

Есть встроенная функция open()
Про нее могу почитать в документации в Built-in Functions
https://docs.python.org/3/library/functions.html#open

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

Ответы40690

293 22 июля, 21:52 293 1440680

Добрый день всем.

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

Давненько думаю про backend и беспокоит, что всякие js, java и php дышат в спину, а то и вовсе востребованее. Спасибо

Ответы40686

294 22 июля, 21:59 294 1440685

>>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,
используя разные пути прихода к нему от нуля, и разные делители.
Поэтому, я написал тот скриптец, вкинул его сюда, и ржу.
И мне чё-то кажется, что можно сделать систему уравнений, или написать на базе этого -
какой-то пиздатый матричный самосинхронизирующийся мега-супер-пупер-гипер-ультра-алгоритм.

294 22 июля, 21:59 294 1440685

>>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,
используя разные пути прихода к нему от нуля, и разные делители.
Поэтому, я написал тот скриптец, вкинул его сюда, и ржу.
И мне чё-то кажется, что можно сделать систему уравнений, или написать на базе этого -
какой-то пиздатый матричный самосинхронизирующийся мега-супер-пупер-гипер-ультра-алгоритм.

Показать весь текст
Ответы40695

295 22 июля, 22:01 295 1440686

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

108 Кб, 720x960
296 22 июля, 22:04 296 1440689

Блять, а ">=" к строкам применяется?
Мне в последовательности надо кусок вырезать, начиная с определённой строки, вот только кусок повторяется, состоит из разного содержимого и расположен в разных местах.

Ответы40698

297 22 июля, 22:04 297 1440690

>>1440679
https://docs.python.org/3/tutorial/inputoutput.html

Ответы40712

298 22 июля, 22:05 298 1440691

>>1440595
Никто не юзал?

299 22 июля, 22:20 299 1440695

Скоро аноны скажут "пиздуйте в 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
>Я вижу кольцо это, в группе точек на эллиптической кривой, то есть индексы точек - замыкаются в кольцо...
>Поэтому задача эта, немного переквалифицировалась на дискретное логарифмирование
Я так и подумал. Ты пытаешься как-то просто решить серьёзные криптографические задачи, на которых сейчас всё строится. Поверь, тут очень серьёзная наука. Поверь, над этими вопросами думали многие десятки тысяч очень серьёзных математиков. Ну флаг в руки.

Ответы4069740934

300 22 июля, 22:22 300 1440697

>>1440695
Если ты возьмёшь 22 = 4, то его порядок будет = 6. Если вы возьмёшь 222 = 8,
Тут знаки умножения пропали, которые стояли между двойками.

Продолжать не буду, вряд ли кому интересно. Думаю, тебе стоит пойти в math. К питону это никакого отношения не имеет, к программирования почти никакого.

301 22 июля, 22:23 301 1440698

>>1440689
Нет, но стандартная библиотека содержит много полезных функций, ещё и регулярки есть.

Ответы40699

302 22 июля, 22:25 302 1440699

>>1440698
Я тормоз, применяется. Но с этим надо аккуратнее. Если тебе надо резать, то смотри доки.

Ответы40702

303 22 июля, 22:28 303 1440702

>>1440699
Например?

304 22 июля, 22:41 304 1440712

>>1440690
Спасибо!

305 22 июля, 23:10 305 1440737

>>1440663
>>1440672
Что-то не работает.
Печалька.

Ответы4074340746

306 22 июля, 23:18 306 1440743

>>1440737
Скинь код полностью

307 22 июля, 23:20 307 1440746

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

Ответы40749

308 22 июля, 23:24 308 1440749

>>1440746
Мань, извини, но мне надо разобраться и сделать, и чем быстрее, тем лучше.
Наставников и коллег у меня нет, а сраный стаковерфлоу и учебники не на всё дают ответы.

Ответы40753

309 22 июля, 23:28 309 1440753

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

Ответы40755

310 22 июля, 23:31 310 1440754

>>1430914 (OP)
Ссылки не открываются.

311 22 июля, 23:31 311 1440755

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

Ответы407604076440766

312 22 июля, 23:52 312 1440760

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

Ответы40768

313 22 июля, 23:54 313 1440764

>>1440755
Код скинь свой

Ответы40767

314 22 июля, 23:56 314 1440766

>>1440755
>и надо непременно страдать и рвать жопу.
Почти в любой деятельности нужно пройти через цикл порванная жопа - оргазм от успеха. Эти американские горки эмоций и делают программирование таким притягательным. А ты вместо этого прокачиваешь навык попрошайничества на бордах

315 22 июля, 23:57 315 1440767

>>1440764
А смысл? Код-то твой.
От меня там лишь датафрейм с данными.

Ответы40769

316 22 июля, 23:59 316 1440768

>>1440760
>Или ты совсем обленился?
Отчасти.
Отчасти там столько проблем, что не знаешь что и ка решать.
Есть ту Ыксперты панды? Или нампая хотя бы?

317 23 июля, 00:01 317 1440769

>>1440767
Во1) код не мой во2) ты мог неправильно датасет даже задать

318 23 июля, 00:06 318 1440772

>ты мог неправильно датасет даже задать
В jupyter показывается хотя бы
data = pd.read_csv("X://123123123.csv")
set = data['Колонка 1', Колонка 2', Колонка 3', Колонка 4']
Как-то так + ещё 0,5 обработки.

Ответы40788

319 23 июля, 01:35 319 1440788

>>1440772
Но ты же выше пишешь две колонки.

Ответы40840

320 23 июля, 09:04 320 1440840

>>1440788
Пишу, но лишние колонки можно убрать.

37 Кб, 718x457
321 23 июля, 10:57 321 1440874

Почему оно переносит строку без символа переноса строки \n?
Как пофиксить? Так и должно быть? Неприемлимо бляд.
я новенький, лучше обоссыте

Ответы408784089940902

322 23 июля, 11:05 322 1440878

>>1440874
И почему нельзя писать title(рандомная_переменная), а в функции str(рандомная_переменная) можно?

Ответы4170641714

323 23 июля, 12:05 323 1440899

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

Ответы409004090440905

324 23 июля, 12:08 324 1440900

>>1440899
>Так print("dog", "cat", "frog") напечатает строку "dog cat frog"
Вывело ('dog', 'cat', 'frog')

Ответы40904

325 23 июля, 12:11 325 1440902

>>1440874
print() почти? всегда переносит строку. Ты бы хоть уточнил, что вообще хочешь получить в результате.
Если "Govno Govno Govno", то используй, к примеру, print((example2 + ' ') * 2 + example2).

мимонуб

Ответы40903

326 23 июля, 12:13 326 1440903

>>1440902
Я просто не хотел чтоб оно само переносилось, АТО в дальньейшем возникли бы некоторые проблемы

327 23 июля, 12:14 327 1440904

>>1440899
>>1440900
Так пажжи, я билдил вторым питоном, кек

328 23 июля, 12:18 328 1440905

>>1440899
А можно как-то отключить автоматический перенос?

Ответы40909

329 23 июля, 12:25 329 1440909

>>1440905
Я же тебе написал, с помощью аргумента end

Ответы40910

330 23 июля, 12:27 330 1440910

>>1440909
В конфиге жеж

Ответы4091340915

331 23 июля, 12:30 331 1440913

>>1440910
А чем тебе end не подходит?

Ответы40916

332 23 июля, 12:31 332 1440915

>>1440910
А чем тебе end не подходит?

333 23 июля, 12:31 333 1440916

>>1440913
Не ну а че он? У меня в книжке все примеры с применением \n, что как бы намекает

Ответы40918

334 23 июля, 12:40 334 1440918

>>1440916
На практмке почти всегда надо, чтобы принт печатал с новой строки. Это удобное поведение по умолчанию. Наверно, у тебя книга про второй питон. Раздобудь версию про третий питон, это настоящее и будущее питона.

Ответы40919

335 23 июля, 12:42 335 1440919

>>1440918
Эрик Мэттиз, год издания 2017.
>На практмке почти всегда надо, чтобы принт печатал с новой строки
Понял, принял
Наверное, Эрик просто старый пердун

336 23 июля, 13:22 336 1440934

>>1440695
>Скоро аноны скажут "пиздуйте в math" и будут правы
он уже попиздовал, но там нихуя не сказали, нахуй он там нужен со своим програмином да ещё и на питоне

337 23 июля, 13:53 337 1440944

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

Ответы4095040955

338 23 июля, 14:02 338 1440950

>>1440944
Ну ты хотя бы в пятерочке экспедитором не работаешь

339 23 июля, 14:14 339 1440955

>>1440944
Ну тут два стула:
1. Отпуск
2. Смена работы и поиск проекта посвежее.
Если отработал более 6 месяцев - можешь спокойно менять работу, в резюме это выглядит ок.

Ответы40974

340 23 июля, 15:08 340 1440974

>>1440955
Да вот хочу сменить проект, но пока чет нет откликов на вакансии, летом чет мало как-то

37 Кб, 1080x316
341 23 июля, 17:09 341 1441050

Поясните кто нить почему выдаёт два одинаковых списка?

Ответы410544107541076

342 23 июля, 17:11 342 1441054

>>1441050
Потому что реверс перезаписывает все твои переменные - оно у тебя в самом конце.
Попробуй засунуть реверс в переменную
мимо нуб

Ответы41055

343 23 июля, 17:12 343 1441055

>>1441054
>Попробуй засунуть реверс в переменную
В отдельную переменную*

Ответы41056

344 23 июля, 17:15 344 1441056

>>1441055
Как это сделать,я ещё больший нуб. Впрочем это и так понятно по вопросу

Ответы41059

345 23 июля, 17:18 345 1441059

>>1441056
А в чем тогда смысл если я за тебя задачку решу?
Спойлер!
l3 = l2.reverse()

Ответы41067

346 23 июля, 17:31 346 1441067

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

Ответы4107141081

347 23 июля, 17:38 347 1441071

>>1441067
print (l)
print (l.reverse())
А так оно ноне выводит.
Как задачку решил?

Ответы41082

348 23 июля, 17:42 348 1441075

>>1441050
Потому что у тебя l и l2 - два имени для реально одного объекта. Это не два разных списка, а один список.
Сделай, например
l[0] = 10000000
print(l2)

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

Сделай копию списка. Как l.copy() или как
l2 = l[:]

Ответы410764107741082

349 23 июля, 17:44 349 1441076

>>1441075
>>1441050
и классичский реверс списка на питоне выглядит так:
l2 = l1[::-1]

Что это такое и как работает? Ботай про срезы ака слайсы

Ответы41086

350 23 июля, 17:45 350 1441077

>>1441075
i = ["1", "2", "3", "4", "5"]
i2 = i.reverse()
print (i, i2)

А почему во втором списке выдает ноне?
другой нуб

Ответы4107841084

351 23 июля, 17:46 351 1441078

>>1441077
Яж преобразовал его, не?

Ответы4108341084

352 23 июля, 17:48 352 1441081

>>1441067
>Так я тоже делал, этом случае выдаёт пустой список. Наверное это особенность этого реверса
Это немного особенность питона.
lst.reverse()
ничего не возвращает. Это метод, который применяется к самому списку.
lst = [*range(10)] # сделать список из 10 элементов от 0 до 9
print(lst) # [0, 1, .. , 9]
lst.reverse()
print(lst) # [9, 8, ..., 0]

Ответы41083

353 23 июля, 17:48 353 1441082

>>1441071
Если ты про 4 задачу эйлера:
for i in l:
spisok1.append(i)
spisok2.insert(0, i)
Таким образом создал два разных списка и сравнил их

>>1441075
Спасибо, твой вариант тоже помог

Ответы41085

354 23 июля, 17:48 354 1441083

>>1441078
>>1441081

Ответы41085

355 23 июля, 17:49 355 1441084

>>1441077
>>1441078
i = ["1", "2", "3", "4", "5"]
print (i)
i.reverse()
print (i)
Вот так получилося, но как сделать чтоб из одного массива можно было достать джва разных результата?

Ответы41086

356 23 июля, 17:50 356 1441085

>>1441082
>>1441083
отоноче

357 23 июля, 17:51 357 1441086

>>1441084
Этот >>1441076 анон написал как делать классик реверсы, я лично так и буду делать

Ответы41088

358 23 июля, 17:52 358 1441088

>>1441086
>[::-1]
Никрасива!

Ответы41093

359 23 июля, 17:56 359 1441093

>>1441088
Если есть другой простой способ сделать перевернутую копию списка, то я с радостью выслушаю

360 23 июля, 18:19 360 1441102

Есть задача: отправлять гет запросы с ардуинки и выводить их в веб. Под ардуинку наговнячил, осталось веб. Выбор пал на питон потому что его мало-мальски знаю. Нужен какой нибудь фреймворк который работает с реквестами и рендерит хтмл. Джанго и фласк я так понимаю слишком функциональные, и мне потребуется какое то время чтобы в них разобраться. Нет ничего попроще?

Ответы411154113941147

361 23 июля, 18:52 361 1441115

>>1441102
Джанго тебе не нужен, а фласк подойдет

362 23 июля, 19:53 362 1441139

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

363 23 июля, 20:11 363 1441147

>>1441102

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

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

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

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

364 23 июля, 20:35 364 1441160

как сейчас фиксится поломка пипы, когда она не находит пакеты? В гугле советы, как всегда с этим языком, на уровне переустанови виндовс

Django 365 23 июля, 21:08 365 1441185

Сап, кто может подсказать уроки по Django, а то я нахожу только первую версию, а хотелось бы вторую

Ответы412184122841272

366 23 июля, 21:59 366 1441218

>>1441185
Разница не столь велика. Для начала лучше изучи, 1.9 какой, а разницу со второй проще по докам нагнать.
Советую Antonio Mele(вроде так) с Яндекса брать и читать.

Ответы41225

367 23 июля, 22:02 367 1441222

Аноны, какими средствами на pyqt5 лучше сделать pop-up (маленькое окно такое, типа оповещения, с текстом и изображением, которое должно вылазить у юзера в углу открытой программы)?
Обычное окно не подойдёт, я так понимаю.

Ответы41702

368 23 июля, 22:10 368 1441225

>>1441218
Окей, спасиб. Просто везде, где искал вакансии, хотят знание джанго(

Ответы41230

369 23 июля, 22:15 369 1441228

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

Всё есть. Если тебе хочется именно русскую документацию, то может там и старая версия. Но там совсем не такая большая разница. Из заметного работа с url, смотри лучше английский вариант.

Ответы41236

370 23 июля, 22:16 370 1441230

>>1441225
Вовсе не только, очень много вакансий без джанго. Но правда там торнадо какой-нибудь или asyncio, это более серьёзные вещи и более сложные.

Ответы41235

371 23 июля, 22:26 371 1441235

>>1441230
Именно поэтому хочется сначала освоить Джанго, чтобы позже перейти на asyncio

Ответы41243

372 23 июля, 22:27 372 1441236

>>1441228
Окей, тогда попробую и старые туториалы тоже охватить

373 23 июля, 22:32 373 1441243

>>1441235
Вот это не поможет совсем, это просто перпендикулярные вещи.

Но джанго в любом случае очень полезная вещь.

Ответы41244

374 23 июля, 22:33 374 1441244

>>1441243
Не в качестве помощи, а именно в качестве полезной штуки, изучая которую, можно будет прокачаться

375 23 июля, 23:32 375 1441272

>>1441185
На русском книга недавно вышла "Django 2 в примерах". Хуй знает можно ли скачать, я не нашел пару месяцев назад и купил. Там тебе и про асинхронность расскажут, и про редис, и про рестфул апи. Годнота короче. Советую не пожалеть 1200 рублей и купить.

Ответы41367

376 24 июля, 00:41 376 1441303

А вот в этих ваших списках значению присваивается индекс?

Ответы41342

377 24 июля, 03:09 377 1441342

>>1441303
???

Ответы41413

378 24 июля, 04:05 378 1441349

Test

379 24 июля, 05:52 379 1441367

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

380 24 июля, 09:45 380 1441413

>>1441342
Имел ввиду ключи, но похуй уже - не актуально

381 24 июля, 10:08 381 1441422

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

Ответы41456

382 24 июля, 11:17 382 1441456

>>1441422
Смотря куда идёшь, я вкатывался через Django, смострячил магазин за пару вечеров и показал на собесе. Вообще требуют знания ООП, если там какой то скрапинг сайтов то естественно знать регулярные выражения, плюс аддоны типа beautiful soup и т.д.

Ответы4147641566

383 24 июля, 12:02 383 1441476

>>1441456
Пардон за тупой вопрос, но "сделать магазин"-речь и про django и про разработку frontenda?

Ответы41688

384 24 июля, 12:07 384 1441481

20 Кб, 525x40821 Кб, 536x406

Почему выдает разные результаты? Че за магия, блядь?
Задача создать и суммировать список чисел с помощью функции sum()

Ответы4148541508415134159141737

385 24 июля, 12:17 385 1441485

>>1441481
Ты во втором примере принтуешь исходный список, а не сумму чисел в нём. Напишешь print(sum(numbers)) - всё будет нормально.

Ответы41488

386 24 июля, 12:19 386 1441488

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

Ответы41489

387 24 июля, 12:22 387 1441489

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

Ответы41490

388 24 июля, 12:23 388 1441490

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

Ответы41502

389 24 июля, 12:33 389 1441502

>>1441490
Мои нубские соображения: если тебе нужно вывести результат без того, чтобы его в дальнейшем каким-либо образом использовать, то лучше лишние переменные не создавать.

390 24 июля, 12:36 390 1441508

>>1441481
АХАХАХХАХАХАХАХАХАХАХАХАХАХАХАХАХХА

Ответы41511

33 Кб, 317x372
391 24 июля, 12:38 391 1441511

>>1441508
Я тя выцеплю блядь, сука

392 24 июля, 12:40 392 1441513

>>1441481
По правде говоря, твоя исходная задача может быть решена вообще в одну строчку:
print(sum([i for i in range(1, 10)]))

Ответы41517415244153141564

393 24 июля, 12:42 393 1441517

>>1441513
Там продолжение задачки есть, так что не подходит.

394 24 июля, 12:54 394 1441524

>>1441513
print(sum(range(1, 10)))

Ответы4153141547

395 24 июля, 13:01 395 1441531

>>1441513
>>1441524
Кек. Сука, яж так нихуя не пойму. Ну выучу я этот ваш синтаксис хуинтаксис, функции хуюнкции, но понимания того как всё это работает не придет жеж. Или дроча питон можно таки добраться до самой сути камплюктера?
Не хочу быть таким, советуйте что почитать после того как я освою основы питончика!

Ответы415354154041766

396 24 июля, 13:07 396 1441535

>>1441531
А что непонятного? Там же прямо так и написано, что делается. Вывести сумму чисел из диапазона от 1 до 10

Ответы41538

397 24 июля, 13:10 397 1441538

>>1441535
Пока правописание непонятно, например. Вот принт эт функция, например, в этой функции может быть аргументом функия в которой аргументом будет еще одна функция.
Так можно?

Ответы4154141549

398 24 июля, 13:11 398 1441540

>>1441531
Дрочи задачи на сайтах всяких, потом со временем поймешь, почитаешь объяснения, запомнишь примеры хорошего кода и будешь фибоначи с закрытыми глазами считать.

399 24 июля, 13:12 399 1441541

>>1441538
Еще одна функция в которой будет цикл с кучей других функция которые я напишу сам!

400 24 июля, 13:18 400 1441546

Скорей бы игору какуюнит наговнячкать, чтоб все охуели как я могу

401 24 июля, 13:18 401 1441547

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

Ответы41551

402 24 июля, 13:22 402 1441549

>>1441538
> Вот принт эт функция
да
> в этой функции может быть аргументом функия
Принт берет результат работы функции sum и делает свое дело.
> которой аргументом будет еще одна функция.
пока ты передаешь функции то, что она принимает проблем не будет, можешь городить хоть 100 функций подряд

403 24 июля, 13:24 403 1441551

>>1441547
В 2.7 range создает список, так что ты проебался.

Ответы41552

404 24 июля, 13:27 404 1441552

>>1441551
Ну а он-то явно пользуется троечкой.

Ответы41571

405 24 июля, 13:42 405 1441564

>>1441513
>[i for i in range(1, 10)]
Вот эту конструкцию можно записать как
[*range(1, 10)]
и любую аналогичную с генератором

Ответы415674159741728

406 24 июля, 13:43 406 1441566

>>1441456
Магазин был согласно пепу оформлен? На гите показывал все это? Можешь показать что показывал на собесе soc1314h.a0ANUSya6MOPUNCTUMrh^1u очень большой страх просить деньги за услуги в которых я плаваю... Но в которых мне хочется развиваться

Ответы415704157241698

407 24 июля, 13:44 407 1441567

>>1441564
>с генератором
с итератором

408 24 июля, 13:47 408 1441570

>>1441566
Мне кажется анон подпизживает.

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

Ответы4157841697

409 24 июля, 13:48 409 1441571

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

Ответы41580

410 24 июля, 13:49 410 1441572

>>1441566
>Магазин был согласно пепу оформлен?
А на оформление по ПЕП похуй, это вообще ни о чём. Система в первую очередь должна работать и спроектирована хорошо по use case, по моделям внутри и пр.

Это не так просто, если ты делаешь реальное приложение, а не примитивный набросок-демонстрацию.

411 24 июля, 13:58 411 1441578

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

Ответы41690

412 24 июля, 14:06 412 1441580

>>1441571
Ты чего такой неочень? Велосипеда нет?

413 24 июля, 14:25 413 1441591

>>1441481
Кекнул с тебя. Просуммировал, а куда присвоил? А никуда.

Ответы41599

414 24 июля, 14:26 414 1441592

102 Кб, 789x918101 Кб, 795x910

Разница между Москвой и Мухосранью

Ответы41635

415 24 июля, 14:31 415 1441597

>>1441564
Спасибо, без иронии. Сам почему-то не допёр до этого.

416 24 июля, 14:32 416 1441599

>>1441591
Но ведь в первом трае присвоил жеж!

Ответы41977

417 24 июля, 15:26 417 1441635

>>1441592
Только питон, базы и ооп? Тоесть даже фуллстек не нужен?

Ответы4166541667

418 24 июля, 15:55 418 1441665

>>1441635
>Только питон, базы и ооп? Тоесть даже фуллстек не нужен?
А зачем? Сеньёру отличается не размером списка, а опытом работы и глубиной понимания технологий.

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

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

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

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

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

Ответы4166741676

419 24 июля, 15:57 419 1441667

>>1441665
>>1441635
Более того, старших вакансий на питоне без фронта очень много. Но все подразумевают серьёзные бэк-скиллы.

420 24 июля, 16:03 420 1441676

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

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

Ответы41678

421 24 июля, 16:11 421 1441678

>>1441676
>Правда, в пхп далеко я не продвинулся - ни одного фреймворка не выучил

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

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

Ответы4168041681

422 24 июля, 16:14 422 1441680

>>1441678
>типичная php-лапша, где скрипт получает запрос, сразу обращается к БД и генерит код в промежутках.
Это. Даже доставляо удовольствие, до тех пор пока не понял что я ограничен ссаным браузером.

>На питоне такой xCGI подход не работает. Там другой принцип построения сайтов. Тебе надо изучать и сам питон, и технологии построения сайтов через фреймворки. Это уже другой уровень.
Заебись, прямо мотивировал

Ответы41683

423 24 июля, 16:16 423 1441681

>>1441678
Ты очень сведущ, скажи пожалуйста, основной пласт работы для питониста это веб или что то другое?

Ответы41687

424 24 июля, 16:19 424 1441683

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

425 24 июля, 16:21 425 1441687

>>1441681
Еще сисадминам пригождается, вроде. Не зря жеж в большинстве дистрибутивах линукса питон дефолтно изкаробки поставляется

426 24 июля, 16:22 426 1441688

>>1441476
Да там даже не полноценный магазин, верстка минимальная, корзина, вывод товаров и т.д. Сделал чтобы просто было что показать на собесе.

427 24 июля, 16:25 427 1441690

>>1441578
Именно так, накидал бэк магазина, из функционала каталог товаров, персональная страница товара и корзина все. Просто чтобы показать что я умею в в Джанго. Верстка минимальная была, JS не было вообще.

428 24 июля, 16:29 428 1441697

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

429 24 июля, 16:33 429 1441698

>>1441566
Не ссы никто не ждёт от джуна проект уровня Инстаграм или Авито. Достаточно показать что ты умеешь хоть что-то . Выше были посты про книгу Django 2 в примерах, там есть пример навороченного магазина в сто раз круче чем у меня, так что качай книгу и делай все по ней и в конце будешь готов к работе джуна если не больше.

Ответы41700

430 24 июля, 16:35 430 1441700

>>1441698
Тоесть задача говнякакть код максимально быстро, хоть на джумле - главное чтоб заказы фирме были?
Рыночек решает, однако

Ответы4179341816

431 24 июля, 16:39 431 1441702

>>1441222
bump

Ответы41706

432 24 июля, 16:43 432 1441706

>>1441702
Нарисуй примерно то, что хочешь видеть. Я так понял, здесь сидят ребятки которые не хотят обосраться по простому поводу, и похуй что доска анонимная.

Бамп
>>1440878

433 24 июля, 17:03 433 1441714

>>1440878
Потому что title() - это метод класса str, а str() - конструктор объекта соответствующего класса. str.title() не принимает никаких аргументов, кроме объекта своего класса (поэтому и в скобки записывать нечего), а применение метода в Python оформляется через точку, а не с помощью записи в скобки.

мимонуб

Ответы41720

434 24 июля, 17:15 434 1441720

>>1441714
>мимонуб
Отку да мне, настоящему нубу знать про объекты и классы?

Ответы41723

435 24 июля, 17:21 435 1441723

>>1441720
Что-то мне подсказывает, что различия и соотношения между терминами "функция", "метод", "класс", "объект класса", "конструктор класса" etc стоит прояснить для себя чуть ли не в первую очередь, если желаешь вкатиться в Питон.

Ответы41730

436 24 июля, 17:25 436 1441728

>>1441564
Мне list(range(1, 10)) кажется читаемее

Ответы41978

437 24 июля, 17:25 437 1441730

>>1441723
Был один тип что видеоуроки для пыхи преподавал, так он гордился тем что преподает основы языка сразу начиная с ООП, и похуй что в первом же уроке он говорил, мол пока не думайте что значит for в конкретном примере, просто делайте что я говорю - главное понять суть того что я вам сейчас скажу
Меня такой подход вообще не устраивает, например, особенно если я бомж в погромировании и вообще впервые пытаюсь вкатиться.

79 Кб, 1280x897
438 24 июля, 17:38 438 1441732

Питонисты, помогите тугодуму. Вообще не могу в алгоритмы, все пыжусь и пыжусь над сортировками. Это какой то пиздос, как вообще этот Radix sort сделать ? Короче, есть годные книги по сортировкам на питоне ? знаю звучит хуйово

Ответы4173941757

439 24 июля, 17:53 439 1441737

>>1441481
Во втором случае сделай numbers = sum(numbers)
Тем самым переопределишь старую переменную массива на сумму его значений

440 24 июля, 17:55 440 1441739

>>1441732
> Короче, есть годные книги по сортировкам на питоне

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

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

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

в обще если тебе нужно понимание алгоритмов, а не просто реализации алгоритмов, то без матана никуда. Тебе в /math

Ответы41773

441 24 июля, 18:17 441 1441757

>>1441732
Алгоритмы сами по себе, питон сам по себе.

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

Конкретно про radix, она же "числовая сортировка", попробуй на бумажке просто с конкретными примерами её осмыслить. Она простая в плане алгоритмов. Вот как грамотно реализовать? Это думать уже надо.

Ответы4175841773

442 24 июля, 18:19 442 1441758

>>1441757
Но ведь любой язык высокого уровня не подразумевает креатива в алгоритмах жеж, нет?

Ответы41767

443 24 июля, 18:36 443 1441766

>>1441531
Самое удобное и понятное - читать в процессе. Заходишь на chekio или codingame и начинаешь решать все подряд. Будешь сталкиваться с проблемой или слишком сложным исполнением задумки - ищи на Стаке и в документации.
Чтобы научиться программировать, надо программировать

444 24 июля, 18:37 444 1441767

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

445 24 июля, 18:46 445 1441773

>>1441739
>>1441757
Спасибо аноны, сами эти сортировки я уже давно на бумажке расписал по нескольку раз, но проблемы с реализацией. Бывало загуглю реализацию и ахуеваю от того, как люди додумали написать для сортировки код, причем так кратко и лаконично.

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

Ну а с МатАном у меня вроде норм. Диффуры там, интегралы. Об этом речь идёт ?

446 24 июля, 19:51 446 1441793

>>1441700
Многое зависит от компании, где то да похуй как ты это делаешь, главное чтобы сделал, меня например просят вёрстку на работе подправить или кнопочку там добавить или убрать и похуй что я бекенд, главное есть возможность получать опыт. Я сейчас уже работаю третью неделю за все время на питоне написал строчек 5-6, основная работа это писать запросы в БД и из БД в soap сервисы других компаний (платежные системы) да первые дни хотелось все бросить и съебать, даже было предложение о знакомого на другое место где больше по деньгам но туманные перспективы, в итоге пересилил себя и остался, вроде втягиваюсь потихоньку, скоро обещал дать допилить пару модулей уже на питоне. В целом жить можно, основная цель стать мидлом и съебать на большую ЗП и лучшие условия

Ответы42074

447 24 июля, 20:28 447 1441816

>>1441700
Далеко не всегда.
Если фирма крупная, то с кодом можешь работать не ты один и важна читаемость и тд.

448 24 июля, 22:48 448 1441884

Поясните, пожалуйста.
class Demo(Frame):
def __init__(self, parent=None, options):
Frame.__init__(self, parent, options)
Что такое "options" и логика parent и вообще вот эти две строчки.
Зачем нужна 3-ья строчка? Сорян за тупость.

Ответы4189441896

449 24 июля, 23:01 449 1441894

>>1441884
Ты делаешь класс Demo, который наследуется от Frame

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

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

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

Ответы41919

450 24 июля, 23:07 450 1441896

>>1441884
про звёзды тут есть:
https://pythonworld.ru/tipy-dannyx-v-python/vse-o-funkciyax-i-ix-argumentax.html

Ответы41919

451 24 июля, 23:50 451 1441919

>>1441894
>>1441896
Про звезды всё понял.
Не совсем понял про переопределение конструктора.
Это пример из Лутца.
Есть фрэйм. Он делает подкласс Демо с кнопками. Нахуя он переопределяет конструтктор фрейма, чем он его не устраивает в этом конкретном примере?
И не понимаю, зачем вызывать конструктор родителя явно? И это касается любых методов?

Ответы41979

452 25 июля, 01:48 452 1441977

>>1441599
На первом пике - да. И ответ тебе - 45. На втором ты суммируешь и все, список остается списком, его ты на печать и выводишь.

Ответы42075

453 25 июля, 01:49 453 1441978

>>1441728
А мне функциональщина нравится в хаскеле, а не питоне. Но ведь это не важно.

454 25 июля, 01:52 454 1441979

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

Ответы42109

455 25 июля, 03:39 455 1442000

А тут ест аноны, которые работают над серьёзными вещами типа дата сайнс или машиным обучением, а не магазины делают?

Ответы42009

456 25 июля, 05:58 456 1442009

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

Ответы42056

457 25 июля, 07:59 457 1442038

Ньюфаг докатился до этих ваших фреймворков для веба.

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

Объясни пожалуйста, анон.

458 25 июля, 08:43 458 1442056

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

Ответы42076

459 25 июля, 09:43 459 1442074

>>1441793
Хорош, если не читер.

460 25 июля, 09:44 460 1442075

>>1441977
Да я после превого же ответа понял как сильно я обсрался стыдно!, спасибо

461 25 июля, 09:49 461 1442076

>>1442056
>или мебель собирать
Не советую.

462 25 июля, 11:17 462 1442105

На питоне можно делать денежку по найму из дома, вроде как фласк какой был? сейчас смотрю питон 3.0, 16 часов курс на инглише, что бы написать специальную прогу для стиралки, что бы её на гвс подключить и она отбирала гвс только когда нужна гвс.

мимо заебал завод, спина болит, фильтры воздуха проебали и теперь меня ещё там и травят

Ответы4211342677

463 25 июля, 11:41 463 1442109

>>1441979
Спасибо, Анон.

464 25 июля, 11:50 464 1442113

>>1442105
Чувак, я сам работяга с лесопилки, и считаю что кодинг должен доставлять в первую очередь, а заработок с этого он рано или поздно придет. По сему, просто дрочи ЯП как хобби заместо игор/сериалов в свободное время и смотри как оно тебе заходит - АТО можешь вложить во вкат огромные ресурсы и обосраться на пол пути.

Ответы42174

465 25 июля, 13:32 465 1442174

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

Ответы42226

466 25 июля, 14:03 466 1442226

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

467 25 июля, 17:25 467 1442389

Есть один кусочек кода: https://pastebin.com/UE7DC4sm
Что-то типа анимации загрузки для моего скрипта.
На каждой итерации звёздочка "*" проходит по ячейкам в виде квадратных скобок "[]", в конце цикла возвращается на исходную позицию и начинается двигаться по-новому кругу.
Проще запустить и посмотреть как оно работает, чем объяснять на словах.
Так вот, как сделать так, чтобы в конце цикла звёздочка не возвращалась на исходную позицию, а шла в обратном направлении?

Ответы42393424084241042454

468 25 июля, 17:37 468 1442393

>>1442389
https://pastebin.com/53SWMS3U

Ответы42423

469 25 июля, 18:03 469 1442408

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

Ответы42423

470 25 июля, 18:08 470 1442410

>>1442389
Конструкцию
index=[x for x in range(len(s)) if x%2] # 1,3,5...19
можно записать как
index = list(range(1, len(s), 2))

Ответы42423

471 25 июля, 18:27 471 1442423

>>1442393
>>1442408
>>1442410
Благодарю, анон.

Ответы42454

472 25 июля, 18:51 472 1442434

В Питоне же можно управлять памятью если необходимо,да?

Ответы42458

473 25 июля, 19:26 473 1442454

>>1442423
>>1442389
Если ты этот список дальше сам по себе не нужен, лучше его и не создавать, сразу писать for i in range(1, len(s), 2): <что-то делаем с i>

474 25 июля, 19:32 474 1442458

>>1442434
Что тебе конкретно нужно?

Ответы42524

475 25 июля, 20:54 475 1442500

Аноны, как можно более удобнее рыться по словарям?

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

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

json.get("fun").get("j").get("f").get("1")

Ответы4250542536

476 25 июля, 21:02 476 1442505

>>1442500
Можно так записать:
try:
json['fun']['j']['f'][1']
except:
...

Что более читаемо. Штатных инструментов вроде нет, но можно слепить что-нибудь колхозное в стиле xpath, чтобы была функция вроде
xget(json, 'fun/j/f/1', default = 555)
это иногда довольно удобно. Реализация строчек 10 максимум.

Ответы42521

477 25 июля, 21:25 477 1442521

>>1442505
Спасибо!

478 25 июля, 21:26 478 1442524

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

Ответы42527

479 25 июля, 21:35 479 1442527

>>1442524
Надо будет но не сейчас, пока не забивай голову такими вещами, изучай основы и дальше по своему усмотрению Django/Flask/Data science и т.д . Оптимизацией приложения обычно занимаются дяди сеньоры помидоры, вот они и думают о памяти, скорости и т.д.

Ответы4253142533

480 25 июля, 21:39 480 1442531

>>1442527
Ок,спасибо,Ананас!

Ответы42534

481 25 июля, 21:42 481 1442533

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

Ответы4253442546

482 25 июля, 21:47 482 1442534

>>1442533 ->Очевидно,тролль-долбоеб

Я->>>1442531

Ответы42540

483 25 июля, 21:51 483 1442536

>>1442500
Можешь специальный класс создать, чтобы было удобно серелиозтвать/десерилизоать его в json, и было удобно работать в своем коде. Есть библиотеки для этого, например, marshmallow
https://marshmallow.readthedocs.io/en/3.0/

Ответы42718

484 25 июля, 21:52 484 1442540

>>1442534
Чувак, я не долбоеб, спасибо за разъяснения

Ответы42552

485 25 июля, 21:58 485 1442546

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

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

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

Ответы425654256642572

486 25 июля, 22:09 486 1442552

>>1442540
Ебать ты тут 4д шахматы пытаешься играть,троллецкий

Ответы42565

487 25 июля, 22:49 487 1442565

>>1442552
Да какие тут шахматы, просто было бы интересно послушать про оптимизацию приложения

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

P.S. извини, что назвал хуйлом

Ответы4256642666

488 25 июля, 22:54 488 1442566

>>1442565
* обстоят

>>1442546
Ну и по поводу твоего поста: разве метаклассы вообще применяются в продакшене, это же довольно сильно бьет по читаемости кода? На мой взгляд эти штуки могут быть полезны только при разработке собственной либы/фреймворка. Вообще, заметил такой интересный факт, что в 90% случаев, там где люди используют метаклассы, можно было бы обойтись обычным декоратором для класса

489 25 июля, 23:02 489 1442572

>>1442546
Вообще задам более абстрактный вопрос: Какова в принципе область примения Python в вебе? Есть ли ему место в хайлоаде?

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

Ну помимо этого, хочу поднять такую тему как архитектура веб-приложений в Python. Даже в таком популярном фреймворке, как Django до сих пор не сложилось строгой архитектуры проекта. Понятно, конечно, что есть апликайшины и базовая структура, но это всё равно не то. Фрейморку уже 10 лет и по сути до сих пор нет конвенционального мнения где хранить бизнес-логику (бля, некоторые вообще во вьюхах до сих пор всё хуячат). Опытные разработчики, какой подход используете вы при организации структуры проекта? Можно не только про джангу, но и про другие веб-фреймворки/либы. Буду рад если накидаете годных источников по этой теме.

Ответы42662

490 25 июля, 23:15 490 1442584

Кстати, какой пакетный менеджер всё-таки выбрать pipenv или poetry? Какие у каждого достинства и недостатки?

Ответы42692

491 26 июля, 01:20 491 1442662

>>1442572
Ты спрашиваешь слишком специализированные вопросы.

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

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

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

492 26 июля, 01:26 492 1442666

>>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, там реально очень крутая система моделей, прямо энтерпрайз. В Джанго на моделях надо логику делать, а не на вьюхах. Надо как-то извращённо скрещивать. Может быть проще просто систему моделей из Джанго подключить к асинхронным фреймворкам, пусть они там в каких-нибудь процессах отдельных крутятся. Не пробовал пока, но может скоро придётся.

Ответы43125

493 26 июля, 01:48 493 1442677

>>1442105
cкинь курс

494 26 июля, 02:59 494 1442692

>>1442584
>pipenv
Если любишь чай попить и пасьянс-другой разложить
>Poetry
Нинужно

495 26 июля, 08:43 495 1442718

>>1442536
Спасибо, буду разбираться

496 26 июля, 12:41 496 1442796

Суп питонач. Вкатываюсь в Django Channels и Celery. Сколько времени понадобится на освоение этих вещей?

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

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

В общем посоветуйте статей\книжек на русском и английском языках чтобы прям по пальцам и терминология и основные концепции. Буду премного благодарен.

497 26 июля, 13:49 497 1442840

Анон, кто на платной основе может питоном позаниматься со мной по скайпу?

498 26 июля, 13:51 498 1442841

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

499 26 июля, 14:00 499 1442848

Анон, подскажи, пожалуйста. Сам не программирую, но сейчас по фану изучаю курс Automate the boring stuff. Хочу сделать вот что:
1) на входе у меня есть csv табличка
2) с табличкой нужно провести кое-какие манипуляции, поменять местами столбцы
3) измененную таблицу нужно залить в гугл документы, которые располагаются в корпоративном пространстве и провести там еще манипуляции - удалить повторы, вот все такое
4) измененную таблицу нужно скачать обратно на комп в cvs

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

Ответы42856

500 26 июля, 14:25 500 1442856

>>1442848
Я тоже для себя подобную муть делаю. Гугли апи гугла.

501 26 июля, 14:31 501 1442862

4 Кб, 788x761 Кб, 119x83

Я согрел от своей тупости. Аноны, объясните как это работает ?
Первый скрин - функция.
Второй, то что она возвращает.
Принимает она матрицу.

Ответы4287142874

502 26 июля, 14:46 502 1442871

>>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 текстовые строки, это уже совсем просто.

Ответы42918

21 Кб, 478x197
503 26 июля, 14:48 503 1442874

>>1442862

http://ninjaside.info/blog/ru/funkcii-map-i-zip-i-lambda-python/

504 26 июля, 15:34 504 1442918

>>1442871
>[genTextLine(l) for l in arr]
Как раз то что и надо было. Что то постоянно сбивало и не мог понять, что '\t'.join(map(str, l)) просто функция в генераторе. Спасибо!

505 26 июля, 20:26 505 1443092

Реально ли нубу скомпилировать киви в апк, имея в арсенале только винду?
Уже всерьёз задумаваюсь уйти в жабу

506 26 июля, 21:25 506 1443125

>>1442666
Логика в моделях - тоже не лучший вариант

507 27 июля, 03:27 507 1443248

>>1443245 (OP)
>>1443245 (OP)
>>1443245 (OP)
>>1443245 (OP)
>>1443245 (OP)

36 Кб, 1362x98
508 27 июля, 14:47 508 1443406

При запуске jupyter notebook есть эта ошибка.
Все работает. Но меня смущает эта ошибка. Нагуглить что-то внятное не могу.
Кто знает, что это такое?

57 Кб, 962x495
509 27 июля, 16:16 509 1443440

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

Ответы4575346375

510 29 июля, 21:58 510 1444637

g

511 1 авг, 00:52 511 1445753

>>1443440
это какой курс?

Ответы4591945970

512 1 авг, 13:44 512 1445919

>>1445753
как я понял, вкатывание в олимпиадное программирование

Ответы45970

513 1 авг, 14:53 513 1445970

>>1445753
http://pythoshka.ru/p82.html

>>1445919
Всё настолько плохо с олимпиадным программированием, что подобное можно назвать вкатыванием?

514 2 авг, 07:29 514 1446375

>>1443440
По поводу данной задачи. Давай пройдем длину шнурка от левого конца к правому. Сначала у нас идет свободный конце длиной l, потом поворот направо длиной а, спуск вниз длиной b. Последние два действия должны повториться три раза (осталось еще два), после чего мы делаем один поворот влево длиной a и начинаем подъем, который аналогичен нашим повторяемым действиям, а значит и выполниться должен тоже 3 раза, после чего мы окажемся с правой стороны и останется лишь пройти свободный конец l.
Теперь запишем эти расстояния уравнением: l + (a + b) \ 3 + a + (a + b) \ 3. Приведя подобные получим: 2 \ l + 6 \ (a + b) + a.
имо такая запись проще, чем на том сайте. Насчет понимания алгоритмов не могу ничего посоветовать, кроме прочтения книг по алгоритмам, в факе доски есть рекомендации. К слову -- я ни одну не читал

Ответы46376

515 2 авг, 07:30 515 1446376

>>1446375
\ это умножение если что. Думал звездочка эскепнется.

Тред утонул или удален.
Это копия, сохраненная 20 августа 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion