Сохранен 529
https://2ch.hk/pr/res/1931851.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Питон тред №112 /python/

 Аноним 06/02/21 Суб 00:56:09 #1 №1931851 
2814041-637354302147365160-16x9.jpg
GuidovanRossumpy.jpeg
Banana-Ball-Python.jpeg
Тред, посвящённый языку программирования Питон, #112

Предыдущий: >>1923442 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться

#######################################

ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года

Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.

— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х

— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4

— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
исходник: https://dumpz.org/bASGKD8cCFDf
Аноним 06/02/21 Суб 01:10:15 #2 №1931862 
Вкот, пасанчики
ух блядь, пиздец меня душит питон.
Аноним 06/02/21 Суб 01:43:11 #3 №1931878 
>>1931862
Бери инициативу в свои руки
Аноним 06/02/21 Суб 01:47:04 #4 №1931879 
Бля ребята, я уже 4 день с мокрыми глазами хуярю ссаный код, не связывайтесь с тиктоком, если кто-то предложит, это такая помойка закрытая, что просто пиздец. Когда просто смотришь на 5-8 разных хостов для их апи уже глаза кровью обливаются, там по 4 уровня доменов, десятки параметров и заголовков, которые рандомно появляются и исчезают, половина параметров идентичны для всех запросов в принципе, кароче жопа у меня горит очень сильно
Аноним 06/02/21 Суб 01:54:38 #5 №1931880 
>>1931879
С любым "большим" сайтом не стоит связываться, ну или целенаправленно им заниматься и предлагать актуальные услуги.
Аноним 06/02/21 Суб 02:11:29 #6 №1931886 
>>1931880
Я не особо много работал с вк, телегой, хх, яндексом и пр., но там такого ужаса не было, уж точно не приходилось лазить по китайским форумам, чтобы алгоритмы подписей искать
Аноним 06/02/21 Суб 02:28:07 #7 №1931889 
>>1931886
У болшинства из этих есть апи, речь про другое.
Аноним 06/02/21 Суб 11:00:07 #8 №1932014 
>>1931878
Так точно!
Аноним 06/02/21 Суб 12:41:59 #9 №1932088 
1.png
2.png
3.png
Как читать блин долбанную документацию.
>У джанги отличные доки (одни из лучших для пистоновских либ, имхо)



Вот например, смотрю урок по джанго. Автор написал кусок кода (ПИК1)

Мне интересно откуда он взял эти аргументы для функции
Я повторяю этот код но ИДЕ подсказывает мне какую-то хрень, args, kwargs. (ПИК2)

Ладно думаю я, иду читать библиотеку https://docs.djangoproject.com/en/3.1/ref/models/fields/#charfield
Нахожу нужное место, и там написано class CharField(max_length=None, options)
(ПИК3)

Окей, я вижу аргумент max_length, но что содержится в *options, не хз.
Понять не могу где мне искать тот самый db_index=True, который в видео уроке.

Прошу вашей помощи.
Аноним 06/02/21 Суб 13:19:46 #10 №1932184 
>>1932088
Ты просто пока недостаточно знаешь про сам питон, а в случае с db_index и бд так же, подтяни знания и потом все будет понятней
Аноним 06/02/21 Суб 13:27:16 #11 №1932198 
Посоветуйте intermediate книжку, сконцентрированную на прикладных знаниях. Типа второй книги Лутца (Programming Python), но не такую древнюю, желательно на английском.
Аноним 06/02/21 Суб 13:35:06 #12 №1932216 
353b7501ee672d4202dc9818937a3735.jpg
>>1932088
Прокручиваешь в начало и видишь field options.
Аноним 06/02/21 Суб 15:22:53 #13 №1932288 
Откуда брать идеи и практику в написании программ? Я уже заебался читать одну книгу и выполнять какой-то конченый практикум аля "замените символы в строке". Когда думаю что написать, то в голову приходит только что-то простенькое типа программы для вычисления дискримината. Где брать задания?
Аноним 06/02/21 Суб 15:25:10 #14 №1932293 
>>1932288
Сделай личного телеграм бота который будет тебе что-то делать
Аноним 06/02/21 Суб 15:33:01 #15 №1932299 
>>1932288
Что тебе интересно то и делай. Хочешь датасаенс, хочешь сайты парси, хош ботов пиши, хош скрипты.
Аноним 06/02/21 Суб 15:36:38 #16 №1932302 
>>1932293
Бота, который рандомно пару раз в день будет писать "Бля, че б такого сделать?"
Аноним 06/02/21 Суб 15:41:15 #17 №1932306 
Screenshot1.png
Что нужно вс коду? в utf 8 сохраняю
почему так Аноним 06/02/21 Суб 15:42:26 #18 №1932309 
def say(message, times = 1):
print(message * times)

say('привет')
say('мир',5)


say()


в итоге требует аргумент к message, хотя он указан по умолчанию? учусь по индусскому учебнику
Аноним 06/02/21 Суб 15:54:01 #19 №1932315 
>>1932309
def say(message='ya hui', times = 1):
Аноним 06/02/21 Суб 15:55:40 #20 №1932319 
>>1932299
Я порно люблю
Аноним 06/02/21 Суб 16:05:04 #21 №1932325 
>>1932319
Тогда тебе на вебкам.
Аноним 06/02/21 Суб 16:16:18 #22 №1932331 


def gnida_skazala(a = 3, b = 2):
print(a * b)

gnida_skazala('ya pidr ')


gnida_skazala('no dobri', 4)

gnida_skazala()



1) почему в выводе не присутствует gnida_skazala('no dobri', 4)
2) почему функция бежит в бесконечной рекурсии и заканчивается


RecursionError: maximum recursion depth exceeded while pickling an object
Аноним 06/02/21 Суб 16:24:37 #23 №1932333 
>>1932331
Ты уже совсем растолстел.
Аноним 06/02/21 Суб 17:55:46 #24 №1932406 
>>1932333
а если серьезнр?
Аноним 06/02/21 Суб 18:00:33 #25 №1932410 
>>1932406
Ну если рекурсия, значит ты обдристался с отступами, разве не очевидно?
Аноним 06/02/21 Суб 18:04:49 #26 №1932416 
Скриншот 06-02-2021 180359.png
>>1932410
где например?
Аноним 06/02/21 Суб 18:27:53 #27 №1932433 
>>1932416
не конкатенируй строки и числа, поехавший
Аноним 06/02/21 Суб 18:42:58 #28 №1932437 
>>1932433
всмысле
Аноним 06/02/21 Суб 19:10:24 #29 №1932471 
>>1932331
>1) почему в выводе не присутствует gnida_skazala('no dobri', 4)
Потому что у тебя функция внутри себя 2 раза подряд вызывается, естественно она не дойдёт до 2 вызова, пока ты не добавишь условие на break для 1 вызова.
>2) почему функция бежит в бесконечной рекурсии и заканчивается
https://stackoverflow.com/questions/3323001/what-is-the-maximum-recursion-depth-in-python-and-how-to-increase-it
Аноним 06/02/21 Суб 20:14:06 #30 №1932578 
>>1932198
python in a nutshell глянь.
Аноним 06/02/21 Суб 20:41:54 #31 №1932601 
>>1932578
Есть смысл его читать после первого Лутца? Я так подумал, что уж лучше наверну книги Стива Лотта (Functional Python Programming, Functional Python Programming), пусть они и не совсем application-ориентированные, но хоть intermediate.
Аноним 06/02/21 Суб 21:04:21 #32 №1932630 
>>1932601
>Functional Python Programming
Mastering Object-oriented Python
fix
Аноним 06/02/21 Суб 21:18:27 #33 №1932644 
>>1932198
Большие вообще эти книги? Стоит читать? за сколько осиливаешь одну книгу например?
Аноним 06/02/21 Суб 21:25:53 #34 №1932653 
>>1932601
Ну некоторая часть перекрывается, но в целом там достаточно много практической инфы. У Лутца, я так понял, намеренно многое упускается, потому что это для второй части.
Лотт крутой тип, да. Тоже облизываюсь на эти книги, но пока руки не дошли.
Аноним 06/02/21 Суб 21:27:16 #35 №1932654 
>>1932644
Есть большие (Лутц по 1500 страниц каждая книга), есть маленькие, страниц по 300. Я-то не программист, а научный работник, мне некуда спешить, весь код впечатываю для практики, трачу где-то по 2 часа в день, 30-40 страниц.
Аноним 06/02/21 Суб 21:30:17 #36 №1932657 
image.png
>>1932416
Вот тут, например

покормил
Аноним 06/02/21 Суб 21:42:21 #37 №1932669 
>>1932654
Понял.
1500 страниц, ебать тот рот, это же реально дохуища.
Это блядь больше чем война и мир?
Аноним 06/02/21 Суб 21:43:41 #38 №1932672 
>>1932654
>Я-то не программист, а научный работник
>просит практических книг
Почему я не удивлен.
Аноним 06/02/21 Суб 21:49:30 #39 №1932677 
>>1932669
Да, Лутц большой и, как многие считают, излишний. Но так как мне некуда спешить, я решил разобраться в структуре языка поэтому и проходил потихоньку. Но вторую книгу (тоже на 1500 страниц) желания проходить нет.
>>1932672
А хочу запилить прогу по computer vision по распознаванию микроструктуры шлифов, но уже с каким-то интерфейсом, чтобы легче было с ней работать. И была идея запилить интерфейс для OpenCalphad (это межинститутская оупен-сорс прога для расчета фазовых диаграмм, последний раз, когда я с ней работал, интерфейса там не было).
Аноним 06/02/21 Суб 22:08:55 #40 №1932682 
>>1932654
Пиздато кстати, тебе платят деньги пока ты учишь питон, да? охуенно.
Аноним 06/02/21 Суб 22:16:43 #41 №1932685 
>>1932682
Да я много чего учу, тот же немецкий, например. Но это все для научной работы, как и книжки, которые я читаю (сейчас, например, читаю "Теорию упругости" Лурье, попробуй осилить). Но зарплаты в пост-совкой науке небольшие, если, конечно ты не у корыта, и в конечном итоге путь один - съебывать.
Аноним 06/02/21 Суб 23:20:30 #42 №1932710 
>>1932309
У тебя message как раз не указан по умолчанию, это позиционный аргумент, сам его вводи
Аноним 06/02/21 Суб 23:25:16 #43 №1932712 
>>1932685
Сколько башляют, пацан? алсо читать не мешки ворочать, это по кайфу
я гружу шпалы еври дей, это выматывает пиздец, если ты не был в курсе.
Аноним 06/02/21 Суб 23:37:28 #44 №1932716 
>>1932712
>Сколько башляют
Примерно 400-500 долларов.
>пацан?
Я может даже старше, чем ты.
>я гружу шпалы еври дей
Сколько платят за шпалы?
Аноним 06/02/21 Суб 23:48:04 #45 №1932722 
>>1932716
за шпалы 266 баксов платят.Это средняя по области у нас ЗП
так что у вас выходит огромные зарплаты?
а в науке у нас помню требовался лаборант, там 150 долларов вроде было указано.
Аноним 06/02/21 Суб 23:57:18 #46 №1932727 
>>1932722
>так что у вас выходит огромные зарплаты?
Это со стипендией от академии наук, которая через год закончится. Короче, это меряние нищетой, по-моему, бессмысленно.
Аноним 07/02/21 Вск 00:45:07 #47 №1932791 
>>1932727
да, это жёстко.
зачем ты учишь немецкий, например?
Аноним 07/02/21 Вск 00:54:50 #48 №1932803 
>>1932791
>зачем ты учишь немецкий, например?
Немецкий - второй по значимости язык для физиков и инженеров после английского, например, есть много вещей, которых нет на английском. К тому же, в сети он представлен прекрасным техническим издательством Springer, книги которого можно качать и читать. Ну и германский мир мне нравится больше английского, может туда и съебу (хотя я знаю еще один северноевропейский язык, и может съебу именно туда, но это все не точно, не хочу загадывать).
Аноним 07/02/21 Вск 01:00:25 #49 №1932806 
>>1932803
А что насчет китайского? алсо немецкий сложный или хуйня на палочке?
Аноним 07/02/21 Вск 01:15:46 #50 №1932818 
>>1932806
>А что насчет китайского?
А что на счет его? Китайцы - отличные копировальщики, но по сути у них только 3 нобелевки по физике и одна премия Филдса, и то у ученых, которые работают в других странах. Да и китайская культура мне совершенно не близка, нет персонального интереса, а это важно в изучении второго иностранного после английского.
>>1932806
>алсо немецкий сложный или хуйня на палочке?
Сложнее английского раза в полтора-два. Есть три грамматических гендера (с каждым существительным ты должен еще и учить при один из артиклей + окончание, которые тоже разные) и 4 падежа вместо 2 у английского. Немного иной порядок слов, чем в английском или русском (то есть в простых предложениях второй глагол ставится в конце предложения, типа "Я могу сегодня утром в ресторане булочку покушать") + английский прост тем, что там много международных или сленговых слов, которыми ты пользуешься на русском, в немецком неизвестных и диких слов больше, к тому же они любят объединять несколько слов в одно со сложным комплексным значением.
Аноним 07/02/21 Вск 11:37:35 #51 №1932998 
>>1932818
А сложнее ли он русского?
Аноним 07/02/21 Вск 11:44:28 #52 №1933007 
Dh5xvic.jpg
>>1932998
Нет, славянские языки сложнее германских.
Аноним 07/02/21 Вск 12:44:56 #53 №1933046 
>>1933007
Охуеть, вот это жёстко. Сам писал данную табличку?
Аноним 07/02/21 Вск 13:46:54 #54 №1933120 
>>1933046
Нет, это известный мем, на форчане проскакивал.
Аноним 07/02/21 Вск 14:57:59 #55 №1933204 
Прерву локальный fl вопросом об питоне.
Есть функция, в которой импут.сплит. Хочу написать исключение, но не совсем понимаю, как сделать, чтобы при возникновении ошибки эта же функция заново вызывалась.
Так сказать, зациклить, пока не будут введены данные, без ошибки.
Аноним 07/02/21 Вск 15:03:02 #56 №1933214 
>>1933204
Делаешь бесконечный цикл и брекаешься если всё ок.
Аноним 07/02/21 Вск 15:05:36 #57 №1933217 
>>1933204
def input_validator(a):
if a=='':
raise ValueError("Input is empty")


Тебе все равно придется логику проверки значения выносить. Потом цикл
while True:
try:
a = input()
input_validator(a)
except ValueError:
continue

Continue не даёт выйти из цикла. Но я бы взял tenacity и сделал бы обёртку. Пока результат будет пустой строкой повторяй a = input(), как оказалось библиотека хуево описана, но большинство задач таких решает
Аноним 07/02/21 Вск 15:06:42 #58 №1933219 
>>1933217
После try except в конце else: break. Если не было exception выйди из loop, ну или в try засунь.
Аноним 07/02/21 Вск 17:01:09 #59 №1933387 
Привет, анон. Решил вкатиться в питон с нуля. Всегда нравилось программировать, в школе всё свободное время на паскаль тратил, потому что интересно было, сайты вручную делал и бла бла бла. Сейчас 26, нихуя не помню и не умею. Так вот, сколько примерно нужно учиться по времени, чтобы устроиться куда-нибудь самым днище-джуниором? Я сейчас официантом работаю за 35к, заебало, сил нет. Хочу освоить азы, устроиться в какую-нибудь днищенскую контору и уже серьёзно этим заниматься. Что посоветуете?
Аноним 07/02/21 Вск 17:10:42 #60 №1933395 
>>1933387
А официантом кто будет?
Аноним 07/02/21 Вск 17:15:15 #61 №1933401 
>>1933387
Серега, это ты?
Аноним 07/02/21 Вск 18:07:35 #62 №1933453 
>>1933387
не вкатывайся в пистон. Вакансии процентов 90 на ml инженеров, где выпускники матфаков только котируются. А на бекендеров-джангистов приходится 10 проц вакансий с ебейшей конкуренцией.
На твоем месте я бы вкатывался либо во фронт( да да, конкуренция не ниже, но вакансий ГОРАЗДО больше) либо в автоматизацию тестирования( тут кстати пистон неплохо распространен), что по сути тоже программирование но немного утилитарное, а не креативное.
я скозал.
Аноним 07/02/21 Вск 18:10:07 #63 №1933457 
>>1933217
кстати, зачем писать после цикла тру?
можно же просто написать вайл. разве он по умолчанию не тру?
Аноним 07/02/21 Вск 18:13:21 #64 №1933461 
>>1933457
вайл условие, какое ещё умолчание.
Аноним 07/02/21 Вск 18:16:19 #65 №1933469 
>>1933453
Пиздец кстати, неужели так много программистов вкатывальщиков? или мало работы?
Судя по питону да и прочим видимо языкам - вкатится в эту хуйню сложнее,чем в любую другую профессию,потому что как минимум нужно сидеть и учить, пытаться, пробовать, кодить.
А в любую другую профессию с работой руками например вкатиться намного проще, там тебя на работе будут обучать что и как делать, начиная от стройки и заканчивая автосервисом такая хуйня, там нельзя самому научиться и никто не ждет что ты прям с нуля будешь все делать.
а в программировании никто не будет тебя обучать, им надо чтобы ты сразу уже мог делать что нужно работодателю.
Проще говоря - в других работах если ты умеешь уже делать многое то ты ПРОФИ ПО УМОЛЧАНИЮ, который может требовать себе привилегии.
в кодинге по дефолту ты должен уметь делать многое, это стартовый этап.
Аноним 07/02/21 Вск 18:16:50 #66 №1933470 
>>1933453
в автоматизации сразу (без опыта ручного тестинга) будешь очень грустной макакой за небольшую зп
Аноним 07/02/21 Вск 18:17:23 #67 №1933471 
>>1933461
цикл пишется без тру же, просто вайл.
он будет выполнятся если ты не напишешь тру.
Аноним 07/02/21 Вск 18:21:55 #68 №1933480 
>>1933471
Ну напиши просто и посмотри что будет.
Аноним 07/02/21 Вск 18:22:10 #69 №1933481 
>>1933471
>цикл пишется без тру же, просто вайл
Нет, в пистоне пишется while условие:
Аноним 07/02/21 Вск 18:25:30 #70 №1933484 
>>1933469
Таких как ты каждый день по вагону здесь. А представь, что творится в целом, если в каждой второй ссаной видяшке на ютубе рекламируют инфоцыганские курсы по вкату вайти.
Аноним 07/02/21 Вск 19:12:30 #71 №1933536 
>>1933484
ну там же дохуя разного рекламируют, в основном это не питон. алсо из вкатывальшиков наверняка 80% отваливаются в процессе.
Аноним 07/02/21 Вск 19:15:40 #72 №1933543 
>>1933387
Посоветую искать работу барменом.
Аноним 07/02/21 Вск 19:17:03 #73 №1933545 
>>1933536
Да как раз бидон самый популярный.
А ты не входишь в 80%?
Аноним 07/02/21 Вск 19:21:54 #74 №1933552 
>>1933480
>>1933481
Ок, а в каком случае пишется while False?
Аноним 07/02/21 Вск 19:23:04 #75 №1933555 
>>1933552
Ни в каком.
Аноним 07/02/21 Вск 19:24:24 #76 №1933558 
>>1933545
Хуй знает, я пока не решил.
Алсо допустим курсы рекламируют дохуя, но так же ведь дохуя рекламируют биржи в смартфоне или азино 777.
Неужели много людей на такое ведется?
Аноним 07/02/21 Вск 19:25:29 #77 №1933559 
>>1933552
Если тебе лень закомментить цикл, то вместо условия можешь написать False, и тогда он никогда не выполнится.
Аноним 07/02/21 Вск 19:26:17 #78 №1933560 
>>1933555
То есть тру по сути не несет смысла, если условие фолс не применяется никогда?
Почему в языке не реализовали бы так, чтобы условие тру не обязательно было писать?
Аноним 07/02/21 Вск 19:26:23 #79 №1933561 
>>1933558
Ну раз рекламируют, значит есть профит.
Аноним 07/02/21 Вск 19:27:44 #80 №1933563 
>>1933560
>То есть тру по сути не несет смысла
Нет, оно несёт смысл константного условия, что цикл будет выполняться всегда, пока внутри него не выполнится условие для break.
Аноним 07/02/21 Вск 19:28:39 #81 №1933564 
>>1933560
Тру несет смысл. Вайл работает проверяя условие, ты можешь этим управлять. Когда тебе нужен бесконечный цикл, ты обеспечиваешь
всегда истинное условие тру.
Аноним 07/02/21 Вск 19:36:15 #82 №1933571 
>>1933561
ну еще бы там не было профита, там суммы пиздец по сто тыщ за интернет обучение.
затрат мизер, профита вагоны.
даже если будет учиться 5 человек то уже дохуя профита.
>>1933563
а почему например не пишется в условии вместо тру например вайл а !="?
Аноним 07/02/21 Вск 19:37:36 #83 №1933573 
>>1933564
То есть при значении тру цикл остановится только после брейка?
Значит любое условие по умолчанию будет верным, кроме отдельно указанного неверного?
Аноним 07/02/21 Вск 19:40:00 #84 №1933578 
>>1933571
>вместо тру например вайл а !="
Если у тебя в коде есть переменная a и она никак не изменяется внутри цикла, то ты можешь написать while a, и это будет тоже самое, что while True.
Аноним 07/02/21 Вск 19:42:51 #85 №1933579 
>>1933578
понятно. а что по этому вопросу >>1933573
все так?
Аноним 07/02/21 Вск 19:43:57 #86 №1933580 
>>1933573
Цикл проверяет свое условие на каждом витке. Бесконечный цикл это всего лишь отдельный паттерн, использующий это свойство, нет никакого смысла его как-то выделять средствами языка.
Аноним 07/02/21 Вск 19:54:45 #87 №1933590 
>>1933580
Кстати, слышал что какой то преподаватель по питону говорил типа применять брейк в цикле - дурной тон.
Это так?
Аноним 07/02/21 Вск 20:00:39 #88 №1933593 
>>1933590
Не так.
Небось начитался про плохой goto и решил от себя добавить мудрости.
Аноним 07/02/21 Вск 20:33:03 #89 №1933620 
>>1931851 (OP)
Несколько странный вопрос: как добавить свой оператор в Питон? Хочу поиграть с сурс-кодом и запилить свой оператор в Пистон, с чего начать?
Аноним 07/02/21 Вск 20:40:20 #90 №1933628 
>>1933593
ну это был чел который участвует во всяких соревнованиях по кодингу, может у них там за эту хуйню очки снимают, я хз.
Аноним 07/02/21 Вск 20:58:51 #91 №1933638 
>>1933628
В соревновательном кодинге своя атмосфера и свои преколы.
Аноним 08/02/21 Пнд 00:56:24 #92 №1933766 
Изучив Python куда можно устроиться или можно ли вообще?
Аноним 08/02/21 Пнд 01:02:21 #93 №1933769 
>>1933766
Можешь устроиться водителем троллейбуса.
Аноним 08/02/21 Пнд 01:22:31 #94 №1933775 
>>1933558
>Неужели много людей на такое ведется?
Все хотят иметь высокооплачиваемую работу, где надо работать головой, да ещё такую, с которой "весь мир открыт". Нынче кризис и дальше будет только хуже, прочие специальности сокращаются. А там, где надо работать руками, не престижно, типа "для васянов".

Вторая известная приманка - это фондовый рынок, где ажиотаж среди вкатывальщиков-инвесторов огромный, все хотят "работать на бирже", покупать-продавать разные лоты и на этом зарабатывать. И реально на это многие покупаются.
Аноним 08/02/21 Пнд 01:27:18 #95 №1933776 
>>1933469
Ты на редкость адекватен в своём понимании, таких как ты редкое меньшинство

>а в программировании никто не будет тебя обучать, им надо чтобы ты сразу уже мог делать что нужно работодателю.
Чему-то всё-таки обучают или дают время обучиться. В вакансиях эти вещи перечисляют в разделе "желательно".
Аноним 08/02/21 Пнд 01:27:28 #96 №1933777 
>>1933775
ну допустим чтобы ебаться на бирже не нужно нихуя кроме денег стартовых. а чтобы вкатываться в программы надо же реально это задрачивать.
Мало у кого хватит на это желания и терпения.
К тому же ок, пусть они там хотят за 300к/сек работать, я считаю что норм зарплата для программиста и 40-50к.
Один хуй это больше чем на мухосранском заводе за 20к мерзнуть в цеху
Аноним 08/02/21 Пнд 01:38:36 #97 №1933780 
>>1933007
>Нет, славянские языки сложнее германских.
Преувеличено даже в этой картинке. В славянский языка сложные формы слова, а германских очень сложные комбинации слов.

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

Вот тупо выпиши все времена глагола run в английском.

А потом добавь местоимения и специфичные модальные глаголы
run away
run for
run up
run over
run on
run off
run out
run with

Комбинации индивидуальны для каждого глагола. Понимать смысл очень-очень тяжело.

Главная проблема при изучении германских языков.

Грамматика относительно проста, но мнемоника очень сложна, на порядок сложнее и выразительнее, чем в русском языке.
Аноним 08/02/21 Пнд 01:41:35 #98 №1933782 
>>1933777
> а чтобы вкатываться в программы надо же реально это задрачивать.
Вот это не все в состоянии осознать. Считают, что программирование это примерно как бухгалтерия, потратят сколько-то времени и разберутся.

А тут полностью мозги надо менять. И огромный объем сопутствующих знаний нужен.
Аноним 08/02/21 Пнд 01:48:35 #99 №1933786 
7343f080-4cf3-443f-8095-5d7db1305b021605448206369.jpg
>>1933782
ГАРАНТИЯ ТРУДОУСТРОЙСТВА
Аноним 08/02/21 Пнд 02:02:02 #100 №1933789 
>>1933775
У меня в it уже 7ой год стажа пошёл, и последние 1.5 года стагнация в развитии, а по отношению к рынку так полная деградация. И я понимаю, что лучше бы пошёл сейчас работать руками, потому что it меня заебало, мне уже почти 30, и мозги у меня медленные. И если бы меня сейчас взяли на позицию суши/пицца/бургеродела за ту же зп, что в it, либо даже на меньшую, но с гарантией, что через пол года я буду получать столько же, то не думая бы свалил.
Аноним 08/02/21 Пнд 03:17:03 #101 №1933807 
>>1933558
Пайтон сойдёт для начала. С одним языком ты всё равно нахуй никому не нужен, но с его знанием ты сможешь выучить другие. Смотри: у языка есть библиотеки и фреймворки (в зависимости от отрасли тебе нужно уметь в разные), параллельно с языком нужно знать абстрактные от языка вещи вроде (алгоритмы, базы данных, сеть, структуры данных, принципы архитектуры программ более-менее переносятся из языка в язык). Освоить на 80% сложный фреймворк - ну, не знаю, для меня (а я вкатывался с нуля) это было сложнее, чем освоить на 80% основной язык.

Соответственно, если ты освоил просто пуйтон и ВДРУГ решил уйти в джаваскрипт/руби/сишарп/лисп, твоя трата времени на пуйтон не была впустую, так как ты не инвестировал пятнадцать лет жизни в тамошнюю атмосферу и много общего узнал параллельно. С нуля за месяц научился клепать жирных телеграм-ботов на пайтоне? Тогда для того, чтобы делать таких же ботов на руби, тебе понадобится уже неделя - и так далее.
Аноним 08/02/21 Пнд 06:04:23 #102 №1933834 
>>1933807
Есть что почитать про принципы архитектуры программ? Мой код выглядит как говно и макароны.
Аноним 08/02/21 Пнд 08:23:19 #103 №1933890 
>>1933777
>чтобы вкатываться в программы надо же реально это задрачивать.
Надо сидеть за пекой и много задрачивать. У какого-нибудь условного официанта который привык на ногах работать организм будет в ахуе от того что приходится целый день сычевать за пека. Причем и на уровне психики и физиологии. Все эти васяны которые покупают курсы и пытаются вкатится никогда не станут програмиздами и айтишниками просто потому что не привыкли сычевать за пекой с детства. Именно по этой причине большинствой ойтишников это задроты с самого детства, которые сычевали со школы если не с садика.
Аноним 08/02/21 Пнд 09:39:16 #104 №1933932 
>>1933834
Кнут "Искусство программирования", Макконелл "Совершенный код"
Аноним 08/02/21 Пнд 10:25:40 #105 №1933975 
>>1933780
>А потом добавь местоимения и специфичные модальные глаголы
On, off, out и т.д. - это не местоимения и не специфичные модальные глаголы, а предлоги. У меня они никогда не вызывали проблем в сочетании с глаголами (разве что в самом начале изучения языка), всегда их интуитивно понимал.
Аноним 08/02/21 Пнд 11:06:07 #106 №1934004 
>>1933975
В германских языках предлог может полностью менять смысл глагола, чего не бывает в русском.

Сравни глаголы
run vs run out
не говоря уже про вырожденные случаи вроде глагола take

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

Пример из словаря:
> Can you run off 200 copies of this notice? — Можете сделать 200 копий этого объявления?
Аноним 08/02/21 Пнд 11:09:18 #107 №1934012 
>>1933834
>Есть что почитать про принципы архитектуры программ? Мой код выглядит как говно и макароны.
Эти два предложения никак не связаны.
Книжки по архитектурам есть. Но на качество твоего кода они никак не повлияют.

Намного полезнее читать разные стандарты оформления кода. Обычно там приведены примеры как делать, как не делать, и даже обосновывается почему.
Аноним 08/02/21 Пнд 11:28:39 #108 №1934030 
>>1933834
>Мой код выглядит как говно и макароны.
Тащи свой код, посмотрим.
Аноним 08/02/21 Пнд 11:51:51 #109 №1934050 
>>1933807
ну я примерно так и понял, когда начал знакомиться с программированием. Это типа как тачками, если ты например не умеешь нихуя и не знаешь как работает двигатель и остальное то это жопа.
Но если ты например разобрался с механикой рено то чтобы разобраться скажем с фордом тебе потребуется намного меньше времени, чем если бы делал это с нуля.
Принципы работы общие, отличия в конструкции.
>>1933782
ну это пиздец, да. думаю такие отвалятся сразу же как поймут что нужно потратить на это прилично времени и никто за это время не будет платить.
>>1933786
Это же вроде классическое наебалово, не так ли?
>>1933789
в работах руками очень четкий потолок зарплаты, и он довольно низкий. Больше можно заработать если самому открывать бизнес хуизнес, что то мутить, тут наебать, там кабанчиком метнутся, и это уже совсем не то, чего ты хотел изначально.
Аноним 08/02/21 Пнд 12:03:18 #110 №1934064 
>>1933890
ну да, от склада ума и характера тут вообще дохуя зависит.
Дохуя людей просто не любят думать, например.
Многие не любят получать новые знания.
Я всегда охуевал с того что есть люди, которые при пользовании компом или даже смартфоном не пытаются понять как работает то, чем они пользуются, а просто механически запоминают что нажимать.
Это приводит к ебейшим ситуациям когда в другой проге такой человек видит что кнопки расположены иначе, какие то кнопульки "исчезли" и начинается ПАНИКА, что за хрень, где тут нажать??
Аноним 08/02/21 Пнд 12:23:50 #111 №1934088 
>>1934064
Это просто наипиздецкий пиздец, есть у меня много историй из жизни не связанных с компами. Например из недавних что сложного в том чтобы кабель для телевизора положить в плинтус или собрать комод, тут даже мозгов не надо много для таких целей, но я помог проложить в плинтусе кабель, а мебельщик прилет на следующей неделе собирать комод за пару тысяч, хотя там делов на полчаса-час, но я не стал уже лишнего им говорить, а перешел на пиво. А еще многие охуевают что я сам собрал кухню, вот так вот взял купил в леруа, мне грузчики затащили и я за вечер большую часть собрал, на следуюущий день с перфоратором и уровнем все повесил и сэкономил десятку, под трубы только чуток криво столешницу вырезал. Тут даже мозгов не нужно взял шурик, засунул туда биту h4 и крути себе параллелепипеды из заранее нарезанных и размеченных деталей, как в детстве конструктор. Большинство боятся даже этого, где особо думать не надо, а ты про компы и программы где нужно хоть чуть чуть иметь мозг.
С возрастом начинаю относится к этому как к явлению природы это как снег идет, как трава зеленая, как небо голубое, так же и люди не умеют пользоваться мозгом в большинстве своем.
Аноним 08/02/21 Пнд 12:31:34 #112 №1934096 
>>1934050
>в работах руками очень четкий потолок зарплаты, и он довольно низкий.
Не скажи. Низкий он, когда ты по найму на ставке работаешь. Да и то условно маленький, свыше 100 в месяц может быть. Если же ты на себя работаешь, в принципе это как бизнес, но не в том смысле, что ты людей нанимаешь и ими руководишь, то там иногда и сильно больше зарабатывают.

Сейчас для тех, кто работает руками и делает что-то квалифицированное условия довольно хорошие.
Аноним 08/02/21 Пнд 12:42:07 #113 №1934108 
>>1934088
>а мебельщик прилет на следующей неделе собирать комод за пару тысяч, хотя там делов на полчаса-час, но я не стал уже лишнего им говорить, а перешел на пиво.
А сколько должна стоить работа на час + дорога + переговоры с заказчиком, планирование времени и т.п.? Ну молодец, бесплатно для знакомых поработал.
Аноним 08/02/21 Пнд 12:59:31 #114 №1934117 
>>1934096
>Если же ты на себя работаешь
Я про это и написал
>что то мутить, тут наебать, там кабанчиком метнутся
Это основное что ты будешь делать, работая на себя.
Сама работа там отходит на второй план
Аноним 08/02/21 Пнд 13:05:25 #115 №1934126 
>>1934088
БЛЯ, ТЫ НАПОМНИЛ!
Пиздец я с этой хуйни в шоке когда слышу такие истории типа за 5 тыщ кран поменяли или там масло сменили в машине.
На таких чуваках греются все подряд, а потом идут базары что кругом наебалово.
Потому что реально часто наебалова вагоны. Люди не хотят думать - их наебывают.
От установки виндовс за 10 тыщ, тут по тредам ходит квиток в качестве мема, до охуительных историй из сервисов когда меняют несуществующие детали.
а самый ТОП ЖИР навара это ПЕРЕКУПИКИ, когда у честного деда покупается машина за 500к, полируется на мойке и на следующий день продается за 700к.
Аноним 08/02/21 Пнд 13:07:08 #116 №1934128 
>>1934117
>Сама работа там отходит на второй план
Ну это ты зря, как раз нет. У тебя просто работа и прайслист со сметами. Причём в случае работы руками всё намного прозрачней и понятней, чем когда "умственный" труд, потому что результат твоей работы материальный.

За материальное легче платят, чем за нематериальное.

Аноним 08/02/21 Пнд 13:12:27 #117 №1934132 
>>1934064
>ну да, от склада ума и характера тут вообще дохуя зависит.
Так это все детерминировано генетикой и воспитанием, о том и речь. Надо просто родиться в семье программистов/математиков/ученых и с большой вероятностью сам будешь программистом.
>Дохуя людей просто не любят думать, например.
Думать тяжело и "дорого", позвать славика проще.
>>1934126
>ПЕРЕКУПИКИ
Непонятно чему ты удивляешься, делать меньше и получать больше это самое изи.
>>1934128
Это так, да там 2 строчки добавить че ты там пишешь 2 недели. Вон Ванька то работает сантехником, вчера смеситель установил и 3 тыщи сразу в карман положил.
Аноним 08/02/21 Пнд 13:16:58 #118 №1934136 
>>1934128
>За материальное легче платят, чем за нематериальное.
Вот нихуя. Там срабатывает ДА ЧЕ ТАМ ДЕЛАТЬ Я ЩАС САМ ЗА 5 МИНУТ. Ряяя а че меня током бьет, а чего меня говном залило.
>>1933932
Устарело, есть пепа8.
Аноним 08/02/21 Пнд 13:28:44 #119 №1934152 
>>1934136
>Вот нихуя. Там срабатывает ДА ЧЕ ТАМ ДЕЛАТЬ Я ЩАС САМ ЗА 5 МИНУТ.
Это как раз про умственный труд. Или про бытовую работу руками, типа шкаф собрать.

Как только что-то сложное, так всё как раз очевидно. Никто не скажет, да я сейчас сам за пять минут под аргоном эту нержавейку сварю. Тупо нет ни техники, ни умений. Человек сам интуитивно понимает, что вот это он сделать не сможет. Может только ему интуитивно неприятно платить много денег за "работу для быдла".

А вот с IT другая история. Конфиг поменять или несколько строчек написать, почему это должно стоить дорого?

Вот профессиональная версия винды стоит 300 долларов, официально от Майкрософт. Ты пишешь программу, которая по сложности и возможностям намного примитивнее, а по сервису слабее. Разумно, что и стоить она должна существенно меньше.

Другая интуитивная модель. Ремонт квартиры или машины стоит меньше, чем квартира-машина. Почему обслуживание компьютерной техники, программы для неё, должны стоить больше, чем техника? Вот менталитет не готов это принять. А техника сейчас стоит немного.
Аноним 08/02/21 Пнд 13:32:30 #120 №1934158 
>>1934152
>Как только что-то сложное, так всё как раз очевидно.
Нихуя подобного. Когда сервисменствовал мне регулярно говорили ДА ЧЕ ТУТ 2 ДЕТАЛИ ПРИПАЯТЬ ЖАЛЬ У МЕНЯ ПАЯЛЬНИКА НЕТ ЗАШО ТУТ 5 ТЫЩ? КАКАЯ ЗАМЕНА ЧИПА?
>А техника сейчас стоит немного.
Ну иди посмотри сколько стоит 3080, или пс5.
Аноним 08/02/21 Пнд 13:45:07 #121 №1934174 
>>1934128
самое основное там поиск клиентов и работа с ними.
Согласование сроков. оплаты, материалов и т.п.
документы это мелочи, тем более большинство вчерную работают без всяких бумажек
Аноним 08/02/21 Пнд 13:46:31 #122 №1934175 
>>1934158
замену чипа разве делают сейчас?
Это тупо невыгодно и не стоит того.
реболлят просто по фану в основном, как и ремонт блоков питания и т.п. - дешевле и проще купить новый.
Аноним 08/02/21 Пнд 13:52:22 #123 №1934183 
>>1933834
У самого лучшего языка в мире есть такое https://rubystyle.guide/
У вас тоже что-то должно быть, хз
Аноним 08/02/21 Пнд 13:55:12 #124 №1934186 
>>1934175
Другой не-сервис анон.
Часто нужны какие-нибудь замены разъёмов. И вот там вопросы возникаю, почему 15 минут работы по перепайке копеечного разъёма, при том что ты девайс сам в сервис привозишь и паяют тогда, когда им удобно, стоит как пол дня дорогой работы.

Плюс всё ещё окружено примитивным разводиловом откровенно на лохов, когда даже за быструю примитивную работу, не требующую особого опыта или инструментов просят неадекватно много.
Аноним 08/02/21 Пнд 14:05:14 #125 №1934196 
>>1934186
Это реальный жесткач, алсо как тебе жесткое наебалово с настройкой телефона за пару тыщ в салоне связи?
типа - вам настроить телефон? тыща за настройку, тыща за установку приложений.
Аноним 08/02/21 Пнд 14:06:30 #126 №1934199 
>>1934183
> принципы архитектуры программ
> стайлгайд
Хороший у вас там язык.
Аноним 08/02/21 Пнд 14:06:38 #127 №1934201 
>>1934196
В чем проблема взять с бабысраки 2к рублей если курица не умеет и не хочет учится пользоваться телефоном?
Аноним 08/02/21 Пнд 14:11:47 #128 №1934206 
>>1934201
ну это как то негуманно.
Аноним 08/02/21 Пнд 14:25:31 #129 №1934241 
>>1934199

>>1934012
Аноним 08/02/21 Пнд 14:27:53 #130 №1934243 
>>1934206
Негуманно когда бабасрака бесплатно мозги ебет. Если сама не хочет делать, если ей родня не хочет делать то пусть платит. Аве капитализм. Вообще обьяснять тем кто не желает учиться что либо это наблагодарный труд который должен хорошо оплачиваться. Именно поэтому когда вижу что какой-нибудь мастер взял с бабысраки 30к рублей за настройку шинды мне нисколько не жаль бабусраку. Вероятнее всего она мразь которая изьебала мозги родне, думала что самая умная, за что и поплатилась.
Аноним 08/02/21 Пнд 14:35:49 #131 №1934254 
>>1934201
>В чем проблема взять с бабысраки 2к рублей
Отравление рынка. Мошенники и разводилы отравляют рынок, о рынке формируется мнение, что там постоянно наёбывают, клиенты противятся этому и ищут желание себя наебать во всём.

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

На рынке массовых услуг разводилы успешнее.
Аноним 08/02/21 Пнд 14:38:20 #132 №1934260 
>>1934241
читай
>>1933834
>Есть что почитать про принципы архитектуры программ? Мой код выглядит как говно и макароны.
Аноним 08/02/21 Пнд 14:47:55 #133 №1934273 
>>1934254
Рыночек это не всегда честная конкуренция. Посмотри на крупные компании, мелкософт спонсирует опенсорс чтобы давить мелочь, нинтенда судится со всеми без разбора. Так что все норм. К таким мастерам все ровно идут только бабысраки.
Аноним 08/02/21 Пнд 17:08:15 #134 №1934471 
>>1934030
чот стыдно) смотрю на гитхабах разные исходники, часто не понимаю логики при разбиении программы на классы, функции, пакеты, каталоги.
Аноним 08/02/21 Пнд 17:47:45 #135 №1934520 
>>1934471
Ну почитай про базовые вещи: закон Деметры и слои архитектуры приложения, про связность и связанность
Аноним 08/02/21 Пнд 17:54:33 #136 №1934526 
583867a9b746c7188eee256b7b840025.jpg
Антоши, вкатываюсь в скриптики на питоне, возник вопрос с хранением кред.
Допустим, я общаюсь с неким API и все запросы (которые отправляются питоновскими скриптами) отправляю с одной учетки. И у меня есть набор таких скриптов с разными запросами.

1. Хочу, чтобы не светился пароль в скрипте - сейчас у меня тупо строка вида
api = apisdk.Client("serverip", "user123", "password123")
2. Не хочу вбивать пароль каждый раз, когда запускаю скрипты

Нагуглил keyring, установил.
Запустил консольку питона и руками сделал
import keyring
keyring.set_password("API","user123","pass123")


Окей, креда завелась в виндовом кейринге.
Теперь я могу дергать её внутри скрипта через keyring.get_password("API","user")
Но как долго она там хранится?
Аноним 08/02/21 Пнд 18:01:00 #137 №1934532 
>>1934526
Сделай как нормальные люди https://pypi.org/project/python-dotenv/
Аноним 08/02/21 Пнд 18:21:55 #138 №1934563 
>>1934532
Какие плюсы относительно кейринга?
Прочитал по диагонали и так и не понял, где фактически хранится креда. Видимо, это не для меня.
Аноним 08/02/21 Пнд 18:26:48 #139 №1934576 
>>1934526
Модулем заимпорти.
Аноним 08/02/21 Пнд 18:33:59 #140 №1934586 
>>1934563
Кейринг это гуишная юзерская хуйня.
Значения хранятся в переменных окружения, дотенв позволяет их подгружать из файла.
Аноним 08/02/21 Пнд 18:35:42 #141 №1934589 
>>1934586
Т.е. креда в файле все равно будет лежить?

>>1934576
При всем уважении к твоему многолетнему опыту, но я не понял, на какой вопрос ты ответил.
Аноним 08/02/21 Пнд 18:36:23 #142 №1934592 
>>1934589
>лежить
Лежать*
Аноним 08/02/21 Пнд 18:39:51 #143 №1934598 
>>1934589
Ну смотри, ебло которое не умеет задавать вопросы. У тебя твой говноскрипт лежит в гите и ты не хочешь палить свой обоссаный логин и пароль? Так? Тогда импорти модуль который не будет индексироваться гитом. Просто я хз как понимать твое
>>1934526
>Хочу, чтобы не светился пароль в скрипте -
Или поясняй что ты имел ввиду, тут телепатов нет.
Аноним 08/02/21 Пнд 18:41:16 #144 №1934601 
>>1934589
Сам код их берет из переменных, дотенв загружает из файла в твоей среде. В разных средах оно использует свои переменные без всяких изменений.
Аноним 08/02/21 Пнд 18:43:53 #145 №1934603 
>>1934598
Окей, под "Хочу, чтобы не светился пароль в скрипте" я имел в виду "Хочу, чтобы не светился пароль в открытом виде где бы то ни было"
Т.е. вариант хранить его в соседнем файле не подходит.

Аноним 08/02/21 Пнд 18:53:20 #146 №1934616 
>>1934603
>нехочу хранить
>нехочу вводить
/0
Аноним 08/02/21 Пнд 18:55:39 #147 №1934619 
>>1934576
>Модулем заимпорти.
расскажи как, примерно та же задача
Аноним 08/02/21 Пнд 18:56:26 #148 №1934620 
>>1934616
Всё верно
>Не хочу хранить в открытом виде
>Не хочу вводить каждый раз при запуске скрипта
Ты просто не знаешь, сколько креда в кейринге живет, ведь так?
Аноним 08/02/21 Пнд 18:57:12 #149 №1934623 
Поясните, а в чём отличие or - ^ и and - &?
В чём разница между ними то? Какие лучше использовать?
Аноним 08/02/21 Пнд 18:58:37 #150 №1934626 
>>1934620
Прост не представляю как ты себе это представляешь. Это как посрать не снимая штанов и не измазавшись говном.
>>1934619
Пишешь модуль где константами твои данные, дальше его импортишь и ок.
Аноним 08/02/21 Пнд 18:59:10 #151 №1934627 
>>1934626
>Прост не представляю как ты себе это представляешь
keyring
Аноним 08/02/21 Пнд 19:00:27 #152 №1934631 
>>1934627
Костыль, кривой.
Аноним 08/02/21 Пнд 19:02:28 #153 №1934633 
>>1934623
Это логические и битовые операции, вообще разная хуйня.
https://ideone.com/FnSuUb
Аноним 08/02/21 Пнд 19:05:18 #154 №1934636 
>>1934626
так подожжи
я сделал файл hui, куда вбил пару переменных (у меня не креды если что)
потом сделал в новом файле import hui и тут есть код с вызовом этих переменных
но если я выполняю второй файл, он ругаетсо на "переменная is not defined"
Аноним 08/02/21 Пнд 19:07:02 #155 №1934637 
>>1934636
from hui import zalupa1, zalipa2
Аноним 08/02/21 Пнд 19:07:17 #156 №1934638 
>>1934636
ага понятно, при обращении к переменной надо перед точкой название модуля указывать
а можно изменить это поведение, чтобы по дефолту все переменные искались в определенном модуле?
Аноним 08/02/21 Пнд 19:12:32 #157 №1934643 
>>1934520
ок, спасибо
Аноним 08/02/21 Пнд 19:12:40 #158 №1934644 
>>1934637
или так. спс
Аноним 08/02/21 Пнд 19:14:59 #159 №1934647 
>>1934532
такой способ хранения паролей, токенов норм? или есть еще более трушный метод?
Аноним 08/02/21 Пнд 19:15:52 #160 №1934651 
>>1934647
Ansible vault. Либо Keyring
Аноним 08/02/21 Пнд 19:17:55 #161 №1934654 
>>1934638
https://docs.python.org/3/tutorial/modules.html
Аноним 08/02/21 Пнд 19:20:03 #162 №1934655 
А можно подключать модуль из другой папки относительно основного скрипта, но не трогая syspath?
Аноним 08/02/21 Пнд 19:46:14 #163 №1934681 
двачик, памаги. Есть список [(4, 'a'), (4,'b'), (3, 'a'), (1,'a'), (1, 'b'), (1,'c')] итд.

Если сделать sorted(список, reverse=True), то все сортируется по убыванию первого элемента. Как сделать так, чтобы сортировка учитывала первый элемент и второй, чтобы была сортировка и по числу и по алфавиту?
Аноним 08/02/21 Пнд 19:53:04 #164 №1934690 
>>1934655
В общем, есть у меня такая структура
/script1.py
/script2.py
/script3.py
/src/mod1.py
Все три скрипта включают import mod1
По понятным причинам (модуль лежит не на одном уровне со скриптами) появляется ModuleNotFoundError
Пробовал добавить /src/ в переменную PATH, но не помогло
Как заставить питон искать модули в /src/?
Аноним 08/02/21 Пнд 19:57:14 #165 №1934701 
>>1934681
Что должно получиться?
Аноним 08/02/21 Пнд 20:00:58 #166 №1934705 
>>1934690
RTFM
Аноним 08/02/21 Пнд 20:01:11 #167 №1934707 
>>1934690
import src.mod1
Аноним 08/02/21 Пнд 20:08:05 #168 №1934713 
Я добавил этот тред в избранное. Теперь я вкачусь?
Думаю начать с документации питона и книг лутца, параллельно переписывая свои шелл-скрипты на питон и решая задачки на литкоде с кодварсами. Подводные?
Аноним 08/02/21 Пнд 20:09:25 #169 №1934716 
>>1934707
ModuleNotFoundError: No module named 'src'
Аноним 08/02/21 Пнд 20:13:17 #170 №1934721 
>>1934701
Сортированный список по числу и по алфавиту. Чтобы было 4,а 4,б 3,в 3,г
Сейчас сортировка только по числу, а если числа одинаковые, то по алфавиту нет
Аноним 08/02/21 Пнд 20:14:07 #171 №1934724 
>>1934716
Как запускаешь?
Аноним 08/02/21 Пнд 20:16:47 #172 №1934727 
>>1934721
https://ideone.com/4n2xep
Аноним 08/02/21 Пнд 20:18:36 #173 №1934731 
>>1934727
Спс броу
Аноним 08/02/21 Пнд 20:34:08 #174 №1934749 
>>1934690
import sys
sys.path.append('.../src')
import mod1
Аноним 08/02/21 Пнд 20:34:47 #175 №1934751 
>>1934724
Кнопочку "Плей" нажимаю в VSCode
Аноним 08/02/21 Пнд 20:35:05 #176 №1934752 
>>1934749
Ну вот это выглядит как говно. Думал, вдруг есть еще способы
Аноним 08/02/21 Пнд 20:48:32 #177 №1934768 
>>1934752
>Ну вот это выглядит как говно
Ну тогда засунь своё говно в ...\Python\PycharmProjects\{govno_project}\venv\Lib и не еби мозги.
Аноним 08/02/21 Пнд 20:53:20 #178 №1934774 
>>1934751
Должно работать, ты что-то нахуевертил.
Скрин сделай.
Аноним 08/02/21 Пнд 20:58:24 #179 №1934775 
>>1932998
Чел. Чем язык ближе твоему языку, тем он проще. Китайский до нэйтива ты никогда не подтянешь, а английский сможешь лет через 10 проживания
Аноним 08/02/21 Пнд 21:02:44 #180 №1934779 
>>1933387
Ну я вот уже пол года вкатываюсь в МЛ. Трачу по 2 часа в день.

При этом у меня инглиш b1, я работаю программистом АСУТП и закончил норм вузик в ДС

Ориентировочно вкачусь через 8 месяцев
Аноним 08/02/21 Пнд 21:14:13 #181 №1934792 
>>1934779
>Ориентировочно вкачусь через 8 месяцев
Рассчитал модель?)))
Аноним 08/02/21 Пнд 21:52:40 #182 №1934826 
>>1934623
если применительно к множествам то а^в это элементы входят в A | B, но не входят в A & B
а A & B это пересечения множеств
Аноним 08/02/21 Пнд 23:50:51 #183 №1934949 
>>1934775
Китайсткий это жёсткий ад, сколько там иероглифов, тысячи?
Аноним 09/02/21 Втр 05:27:08 #184 №1935028 
>>1934727
Фешенебельно.
Как это работает? Лямбда выдает Х, равный паре элементов, и эта пара сравнивается с элементами изначального списка попарно? Почему знак минус у первого элемента в лямбда-функции?
Аноним 09/02/21 Втр 06:00:48 #185 №1935033 
>>1934526
https://www.youtube.com/watch?v=WYeC2R2Ytm4
https://www.youtube.com/watch?v=Y9MRCxq4DIc
Аноним 09/02/21 Втр 06:09:34 #186 №1935034 
>>1935033
Я конечно нормально отношусь к каналу диджитализируй, но юзать вим в 2к21 это показатель ментальных расстройств.
Аноним 09/02/21 Втр 06:15:41 #187 №1935035 
>>1935028
Лямбда выдает пары и эти пары сравниваются с другими такими парами, определяя место изначальных элементов.
Минус потому что числа сортируем по убыванию.
Аноним 09/02/21 Втр 06:23:25 #188 №1935037 
>>1935034
труЪ программер всегда чем-то выделяется
Аноним 09/02/21 Втр 06:26:14 #189 №1935038 
>>1935037
Вим не программерская а чисто админская штука, зумерок.
Аноним 09/02/21 Втр 10:09:30 #190 №1935059 
>>1935038
Сразу видно программера, вышедшего из админов. Никакого толка от таких
Аноним 09/02/21 Втр 10:11:15 #191 №1935060 
divan.jpg
>>1935059
Что тебе еще видно c дивана, зумерок?
Аноним 09/02/21 Втр 10:52:30 #192 №1935075 
>>1935060
Что до 27 лет ты желал собственную мать.
Аноним 09/02/21 Втр 11:34:17 #193 №1935094 
Аноны, как поступают в случаях, когда нужно выполнять запрос по разным URL, c разными параметрами, но с одним общим ключевым словом?
Бля, объясняю как мудак походу) Мой случай такой: есть 4 онлайн-магазина, я хочу искать один и тот же товар среди них, получать от каждого ответ и находить самый дешевый. В каждый из магазинов надо передавать разные куки, поисковая строка тоже у всех разная, но товар один.
Парсеры я уже написал, теперь думаю как можно грамотно организовать доставку сырого HTML. Any advices?
Аноним 09/02/21 Втр 11:36:03 #194 №1935096 
>>1935094
https://requests.readthedocs.io/en/master/ ?
Аноним 09/02/21 Втр 11:47:34 #195 №1935104 
>>1935096
не, requests я знаю. запросы я сделал через aiohttp.ClientSession().
получилось 4 функции, выполняющих запросы и отдающих HTML, но чувствую, что это нихрена не питонвей.
Аноним 09/02/21 Втр 12:20:04 #196 №1935117 
>>1935094
Ну так напиши мап-функцию, которая в зависимости от типа магазина на твои входные данные (товар) будет выдавать свои куки (словарь с ключами-магазинами и значениями-куками).
Аноним 09/02/21 Втр 12:41:22 #197 №1935130 
>>1935117
Куда это надо гуглить?
Аноним 09/02/21 Втр 13:13:41 #198 №1935165 
>>1935104
Сделай класс на каждый сайт, там хранишь сессию и функцию для формирования урла. Потом заводишь списочек с этими объектами и гоняешь через него.
Аноним 09/02/21 Втр 13:23:35 #199 №1935190 
>>1935165
Ок, попробую. Спасибо за совет.
Аноним 09/02/21 Втр 13:36:40 #200 №1935219 
>>1935094
>Any advices?
Класс под запрос.
Дальше классы под сайты. Например класс Yobashopreauest и наследующие BolshoyYoba, SredniyYoba, MaliyYoba со статическими методами. Чисто не глядя четам у тебя за данные и тд. Тут же можешь методы написать чтобы инфа на выходе была более-менее одинаковая.
Дальше обработчик ну и дальше сам докумекаешь.
Аноним 09/02/21 Втр 14:00:32 #201 №1935240 
>>1934751
Конфигурацию смени на Python:Module

Внутри пропиши

"configurations": [
{
"name":"Python: Module",
"type":"python",
"request":"launch",
"module":"src.main"
},
Аноним 09/02/21 Втр 17:40:47 #202 №1935544 
>>1935033
ИМХО, но это отвратительно.
Лучше почитать статьи (от разрабов)/документации/кукбуки ну или глянуть видео от непоредственных юзеров/разработчиков технологий.
Аноним 09/02/21 Втр 17:59:33 #203 №1935562 
commit.png
Что за странная ошибка при коммите?
Аноним 09/02/21 Втр 18:57:07 #204 №1935670 
>>1935562
сотри .lock. гугл дохуя вариантов выдает, еще и решенные вопросы на SO
Аноним 09/02/21 Втр 19:29:14 #205 №1935725 
Есть список уровня ['po', 'b', 'pr', 'a', 'b', 'news', 'po']. Мне нужно вычислитьиндекс заданного элемента, например 'b' мне бы выдало [1, 4].
Простой метод .index не подходит он только первый индекс дает, а повторы игнорит. Есть какой-нибудь простой способ эти индексы получить?
в индексе можно конечно пердеть со старт стоп, но это сложно будет
Аноним 09/02/21 Втр 19:38:30 #206 №1935739 
>>1935725
[i for i, val in enumerate(lst) if val == 'b']
Аноним 09/02/21 Втр 19:54:04 #207 №1935773 
>>1935739
[ ... or -1]
Если совпадений нет
Аноним 09/02/21 Втр 19:58:02 #208 №1935784 
>>1935739
Ок. Спасибо.
Аноним 09/02/21 Втр 22:03:07 #209 №1935964 
Помогите я распылился пиздец, изучаю пистон, до этого баловался с крестами и явой, калькуляторы, списки, коллекции, обо всем посмотрел. Но в требованиях на том же хх, просят различные фрейворки и технологии, но как их освоить? Какой пет-проджект (не обязательно на пайтоне, ибо сейчас все три языка у меня на одной уровне примерно) можно написать, чтобы хотя б на учебном проекте осознанно подергать рычажки?
понятие опен сорс знаю, но абслютно не знаю, что там делать.
Аноним 09/02/21 Втр 23:45:41 #210 №1936028 
>>1935964
Ты дурачок, изучающий сайдэффекты.
Учи вим и удивляй господ.
Аноним 10/02/21 Срд 09:20:20 #211 №1936316 
>>1935964
>сейчас все три языка у меня на одной уровне примерно)
Дна?
Аноним 10/02/21 Срд 10:30:42 #212 №1936330 
>>1935964
С++ тут HFT или микроконтроллеры
Java - Spring/Spring Boot очередной веб сервис
Python - Django/FastAPI веб сервис или сразу в Data Science по курсам/книгам.
Java сейчас очень актуальна, но и вкат дольше. Python для обработки данных охуеть как актуален. Там и задачи интереснее, чем просто CRUD писать, но и требования могут быть другие. Кроме языков тебе SQL и NoSQL надо освоить.
С++ как и MycroPython актуальны для IoT, кресты конечно же в почете, так как и ресурсы другие. Вот и выбирай.
ESP32 стоит 900 рублей, покупай и делай вебкамеры личные или JetsonNano за 12 тысяч для проекта ML на Python.
Аноним 10/02/21 Срд 11:48:01 #213 №1936380 
IMG20210210113958.jpg
IMG20210210113935.jpg
IMG20210210113834.jpg
Салам двач. Помогите нубу плз.
Осваиваю flask, столкнулся с проблемой:
На локалхосте форма отправляется нормально кнопкой submit с отображением другого шаблона после validate_on_submit, а на pythonanywhere проверка не проходится и отображается первый шаблон. Чудес же не бывает?
Аноним 10/02/21 Срд 12:12:18 #214 №1936401 
>>1936380
Смотри историю запросов, может что отличается.
Аноним 10/02/21 Срд 13:16:11 #215 №1936526 
>>1931851 (OP)
Как узнать, имеет объект собственный атрибут/метод либо он унаследован от другого?
Аноним 10/02/21 Срд 13:39:44 #216 №1936560 
>>1936526
class.mro()
Потом проверяешь у всех __dict__
Аноним 10/02/21 Срд 13:58:26 #217 №1936605 
А как мне в джанге переделать модель юзера? Нужно при регистрации не только ник, мыло и пароль, но и имя с фамилией хранить.
Аноним 10/02/21 Срд 14:16:57 #218 №1936659 
>>1936605
Сделай ExtendedUser, в котором хранится ссылка на User джанговского.
Аноним 10/02/21 Срд 14:20:35 #219 №1936664 
>>1936659
В документации нашел, что можно что можно накостылить модельку и связать через OneToOneField. Ты про это?
Аноним 10/02/21 Срд 14:26:18 #220 №1936679 
>>1936664
Yes
Аноним 10/02/21 Срд 15:30:01 #221 №1936749 
Есть форма с рекапчей, но с какой-то лоховской настройкой - не дает задачек даже без аккаунта гугла.
И вот я думаю как бы её исполнять, чтобы без целого браузера, может какой-то нодой?
Аноним 10/02/21 Срд 19:15:09 #222 №1936959 
>>1935165
ты увлекаешься классами? это ООП?
Аноним 10/02/21 Срд 19:25:37 #223 №1936966 
>>1936959
Ставь класс если увлекаешься классами!
Аноним 10/02/21 Срд 19:50:38 #224 №1936981 
>>1936749
Там в настройке каптчи может быть указано не давать задач. Ну, точнее invisible captcha
Аноним 10/02/21 Срд 21:00:31 #225 №1937031 
Двочане, повился вопрос, который не могу загуглить, нужно узнать использует ли тикток mysql, нужно для обработки ошибки 2013, алсо может кто знет что еще может генерить эту ошибку, какие программы, скрипты и прочее, ну и вопрос как в принципе узнавать на каком стеке написаны приложения?
Аноним 10/02/21 Срд 22:07:41 #226 №1937091 
свиборг.png
>>1936966
Аноним 10/02/21 Срд 22:59:16 #227 №1937151 
>>1937031
https://careers.tiktok.com/m/position/6760856207306524936/detail
Там написано MySQL. Совсем уже пукпокеры одебилились

Аноним 11/02/21 Чтв 00:48:55 #228 №1937227 
>>1937151
Спасибо, друг
Аноним 11/02/21 Чтв 12:29:35 #229 №1937448 
cover[1].jpg
Хоспаде спасибо автору, кажется наконец-то начал понимать ООП и как его использовать.
Аноним 11/02/21 Чтв 12:38:04 #230 №1937458 
>>1937448
Теперь ты Python Pro?
Аноним 11/02/21 Чтв 12:44:04 #231 №1937462 
hackermanbyshiiftyshift-dan31sc-768x432[1].png
>>1937458
А то
Аноним 11/02/21 Чтв 13:20:34 #232 №1937484 
>>1937448
По-моему ООП это то к чему приходишь, когда функций становится овердохуя и они жирнеют с каждым разом.
Аноним 11/02/21 Чтв 14:35:47 #233 №1937551 
>>1937448
>кажется
Когда кажется надо креститься.
Аноним 11/02/21 Чтв 15:32:26 #234 №1937606 
изображение.png
изображение.png
Двач, помоги с джангой.

Расширил я, значит, по вчерашнему совету дефолтную модель юзера. "Расширил" через OneToOneField - у меня теперь для всего этого есть класс Employee.

Как мне в админке для Employee выводить его имя и фамилию? В самом Employee у меня только ссылки на юзера и на роль, и админка только два этих поля отображает
Аноним 11/02/21 Чтв 15:51:16 #235 №1937631 
>>1937606
Наверное, это то, что ты ищешь
Но хотя бы пытайся иногда гуглить, прежде чем вопросы задавать
https://developer.mozilla.org/ru/docs/Learn/Server-side/Django/Admin_site#%D0%BF%D1%80%D0%BE%D0%B4%D0%B2%D0%B8%D0%BD%D1%83%D1%82%D0%B0%D1%8F_%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F
Аноним 11/02/21 Чтв 15:55:23 #236 №1937636 
изображение.png
>>1937631
Не совсем. Хуево спросил просто, хотелось бы при переходе в конкретного сотрудника иметь возможность менять имя и фамилию, объявленную в дефолтном юзере. Это мне сам шаблон менять надо?
Аноним 11/02/21 Чтв 15:58:08 #237 №1937637 
>>1937636
Ладно, я увидел про инстансы в твоей ссылке. Почитаю
Аноним 11/02/21 Чтв 16:02:37 #238 №1937643 
Всем здрасти, я новичок и мне хочется в бэкенд, но в моем городе нет вакансий на ноду (есть js и питон). Пока учусь переехать не могу. Так вот, в ноду лучше из питона приходить или из фронта на жс?
Аноним 11/02/21 Чтв 17:56:51 #239 №1937822 
Бля, почему Джанго проекты так долго копируются куда-либо, хотя там 30 мегабайт? Из-за того, что там дохуища файлов? Хочу работать над одним проектом дома и на работе. Но на работе вроде нельзя ничего поставить, я скачал портативную версию редактора и норм. А ещё и все порты под флешки заняты, только на соседнем компьютере есть. Приходится копировать на сетевой диск, а с него скачивать на свой пека. Охуеть вообще. А потом обратно все также.
Я вот думаю мб чего придумать. Гит какой-нибудь освоить может. Но я же не смогу обратно в гитхаб залить файлы, не установив какую-нибудь программу?
Аноним 11/02/21 Чтв 18:04:22 #240 №1937839 
>>1937822
У тебя на работе нету гита?
Аноним 11/02/21 Чтв 18:06:02 #241 №1937844 
>>1937839
А он по умолчанию в винде стоит что ли? Я хуи пинаю на говноработе, она никак с айти не связана.
Аноним 11/02/21 Чтв 18:30:08 #242 №1937878 
>>1937844
лох
Аноним 11/02/21 Чтв 18:30:38 #243 №1937880 
>>1937878
Это да.
Аноним 11/02/21 Чтв 18:57:52 #244 №1937934 
Как распознать объекты с экрана, кнопочки там всякие и окна всплывающие?
Аноним 11/02/21 Чтв 19:00:23 #245 №1937938 
>>1937822
про архивирование ты конечно в первый раз слышишь можно без сжатия
Аноним 11/02/21 Чтв 19:03:40 #246 №1937943 
>>1937938
Да, чет не подумал. Но так он не будет просто долго архивировать и разархивировать по тем же причинам?
Аноним 11/02/21 Чтв 19:21:22 #247 №1937978 
>>1937943
Протестируй дядь, яж не знаю твои спеки
Аноним 11/02/21 Чтв 19:23:56 #248 №1937980 
пацаны
перекатываюсь к вам из байтоебли - надоело получать копье за ебучую тонну требований
скажите, что должен знать питон разраб? (не дата сайнтист - не прет математика на таком уровне. Либо бэк либо мл инженер)
спасибо)
Аноним 11/02/21 Чтв 19:25:13 #249 №1937986 

>>1937980
https://github.com/kamranahmedse/developer-roadmap
Аноним 11/02/21 Чтв 19:26:37 #250 №1937988 
>>1937986
а на каком уровне должны быть знаний БДшек? хватит курсов на степике?
Аноним 11/02/21 Чтв 19:28:55 #251 №1937990 
>>1937978
Да, заебись, за 30 секунд сжало, разжало минуты за полторы, спс.
Аноним 11/02/21 Чтв 19:31:08 #252 №1937995 
>>1937988
Смотря чем заниматься будешь. В веб-фреймворках все операции с БД, как правило, уже за тебя написаны
Аноним 11/02/21 Чтв 19:33:55 #253 №1937999 
>>1937995
в вакансиях просто написал "знание бд"
я ж хз
Аноним 11/02/21 Чтв 19:37:05 #254 №1938004 
>>1937995
а вообще, чел, раз уж ты мне отвечаешь
скажи плез, насколько вообще работа интересная?
Я просто в бекенде ничего не смыслю и что ребята пилят на нем тоже не особо то и знаю, тк лет 5 пилил ПО для датчиков всяких
почему питонистов называют макаками? реально что ли по клавишам просто так тыкать? Я из уважения к коллегам по цеху не очень верю, что работа в ИТ может быть макакишной
для меня просто большое удовольствие вызывает решение сложных задач, чтоб прям посидеть, во внутренности системы, в которой работаешь, повтыкать
это все есть в мире бэка?
Аноним 11/02/21 Чтв 19:43:18 #255 №1938019 
изображение.png
Подскажите дурачку - хочется чтобы при нажатии на 'Add user' сразу была возможность вписать имя, фамилию и почту. Как это сделать?
Аноним 11/02/21 Чтв 19:45:58 #256 №1938026 
>>1938019
Чел, если ты дурачок то может пойдешь в курьеры в яндекс еду?
Аноним 11/02/21 Чтв 19:54:17 #257 №1938041 
>>1938004
Тебе какой бэк подавай? Если очередной REST это даже Java макаки, потому что там все с фреймворком. Недавно писал сервис эмуляции протокола Штриха на питухоне. Для байтоебства есть еще micropython для ESP32 и Pi. Хочешь и там задрачивай микроконтроллеры и прочую ебалу. Правда я думаю придется на C++ или Rust с ESP32 переходить, пока еще не пришла из Китая.

Бэк в основном хуйня полная, если не сам архитектуру пилишь.
Аноним 11/02/21 Чтв 19:57:39 #258 №1938047 
>>1938041
Почему хуйня?
Аноним 11/02/21 Чтв 20:07:47 #259 №1938067 
>>1938047
В основном хуйня так как пилишь REST API CRUD с OpenAPI.
В основном архитектуру пилят те кто умеет, а разрабы уже чисто по стеку и реализации.
Я в одно рыло такие костыли лепил, что удивляюсь как все работало. Шина данных держалась на одном RabbitMQ, лол. Зато все сам, да. Отец, системный архитектор, говорил что я дебил (ну он вообще любитель Java) и в нормальную галеру меня не возьмут за такие проделки.
Аноним 11/02/21 Чтв 20:09:52 #260 №1938070 
>>1938047
А ну и проекты госовские часто на SOA (какие нахуй микросервисы) монолитах с XML и WSDL на борту. И конечно же на божественной(нет) Java. Смузихлебы с Python нужны только коммерсам и то не всегда. Куча легаси на Ruby и PHP. Скорее на NodeJS перейдут чем на Python.
Аноним 11/02/21 Чтв 20:30:09 #261 №1938092 
>>1938070
Тоесть не рекомедуешь в веб на питоне вкатыввтся? Лучше в жаву?
Аноним 11/02/21 Чтв 20:32:48 #262 №1938093 
>>1938092
насколько я понимаю, он в принципе в бэк не советует вкатываться тем, кто ждет каких-то дико охуевших задач
либо from supermodule import your_task
либо архитектор ( от себя хочу добавить, шо хуй станешь вторым без работы первым)
мимо
Аноним 11/02/21 Чтв 20:37:24 #263 №1938098 
>>1938093
Дак а чем плох import supermodule, это же значит что сидишь кайфуешь лепишь круды и чинишь если сломаются, будто на фронте свободы больше? Дизайн за тебя уже придумали, библиотеки тоже
Аноним 11/02/21 Чтв 20:38:22 #264 №1938100 
>>1938098
братка, я вообще не шарю в бэкэнде
просто предположение выдвинул
Аноним 11/02/21 Чтв 20:39:41 #265 №1938102 
>>1938098
да ничем, в целом-то, и не плох
главное, чтобы работа по кайфу была
кому-то в кайф круды лепить - в чем проблема? ни в чем
кому-то хочется поебаться прям - ну тоже ок
наверное вторым просто не нужно идти в бэк на питоне - либо кресты, либо еще что-то
Аноним 11/02/21 Чтв 20:40:29 #266 №1938103 
>>1938100
Вот и я не знаю, а в бекендик вкатиться хочется, но в какой...
Аноним 11/02/21 Чтв 20:41:51 #267 №1938105 
>>1938103
сегодня проитал про контору postuf
никто не сталкивался?
рили там все так хуево и главный чел мусульманин, который запрещает даже дома пить?
Аноним 11/02/21 Чтв 20:43:10 #268 №1938106 
>>1938102
Слышал что бек на питоне хуйня, что он не заточен под бек и основная его роль в дата сисенсе. Что можешь рассказать об этом, брешут? Или как жить, на что глядеть
Аноним 11/02/21 Чтв 20:45:00 #269 №1938109 
>>1938106
я крестовик, соре
опыт в питоне на бэке только в унике
со стороны кажется, что да - чисто для бизнес логики
но для написание безнес логики особо то ничего и не нужно знать, кроме как БИЗНЕС в котором эта логика будет
если устраивает - вперед
Аноним 11/02/21 Чтв 21:07:01 #270 №1938126 
>>1938109
>БИЗНЕС логика
Именно, а учитывая, что если монолит - Java, а если монолит Java, то фронт обязательно сука злоебучий AngularJS, то питону некуда примкнуть тут. Монолит на питоне? Ну нахуй. Такая ебака грозная получается, еще и вручную контроллить по сути, JVM же нет, а если микросервисы, то уже ближе к смузихлебству. Но просто REST на питоне? Ну хуй знает, даже Хуяндекс пилит микросервисы Python/Go судя по их хабру. Но там просто так уже не выпилить Я.Такси и не запилить на каком-нибудь чистом Go, не окупится, еще и новое спагетти появится.

>>1938106
Он не то чтобы не заточен. Микрофреймворков с асинхронкой (забудь ссаную Джангу) уже дофига и на любой вкус, проблема с WSGI:ASGI, хотя и тут уже есть интеграция с nginx. Просто как бы помягче сказать, ну не сдался он никому, если только не пилишь соло или весь проект не строится на ML (ну с натягом можно туда вебсервис впихнуть, хотя он особую роль там не играет)
Аноним 11/02/21 Чтв 21:54:20 #271 №1938159 
image.png
image.png
Аноны, кто работал с pyqt?

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

Алгоритм такой: Метод инит конструирует все и выводит первый ui обычного режима пик1, все классно работает. Нажатие кнопки '///' делает что-то self.ui = uic.loadUi('calulate_engineering.ui') и тогда старый пик исчезает и появляется новый интерфейс. Там как бы во втором ui все остается прежним, просто добавляется пара полей, но ничего не работает, типа жмякую кнопки, а не пашет, просто болванка. Подозреваю из-за того, что метод init заново не вызвал. Как можно реализовать такую дичь?
Аноним 12/02/21 Птн 00:45:18 #272 №1938242 
Аноны, кто работал с pyqt?
Когда запрос на oauth делаешь, то открывается страница с кодом. Его никак не получить в ответе что ли? Пользователь сам должен ввести его?
Аноним 12/02/21 Птн 01:22:21 #273 №1938257 
фронтенд на питоне это возможно
Аноним 12/02/21 Птн 01:24:44 #274 №1938259 
>>1938257
Возможно, только пользователю придется выкачать весь интерпретатор и либы
Аноним 12/02/21 Птн 05:52:04 #275 №1938304 
>>1938126
А что тогда смотреть? Пыха, джава и модный го?
Аноним 12/02/21 Птн 10:02:37 #276 №1938357 
>>1938259
Чё ты несёшь, клоун?
Пук среньк. Скажи это на собеседовании и тебе ебало разобьют
Аноним 12/02/21 Птн 10:03:03 #277 №1938358 
>>1938159
Бамп
Аноним 12/02/21 Птн 11:18:04 #278 №1938386 
Аноны, подскажите.
вот есть код
https://www.codepile.net/pile/5R0dKWRO
что надо поправить чтобы в результате сложения экземпляров класса File генерировалось уникальное имя файла для создаваемого объекта класса File?
Аноним 12/02/21 Птн 11:19:15 #279 №1938389 
>>1931879
Чел можешь отписать в тг @jllik, есть пару вопросиков
Аноним 12/02/21 Птн 11:28:15 #280 №1938402 
y.png
>>1938357
Ну давай, расскажи нам.
Аноним 12/02/21 Птн 12:20:45 #281 №1938444 
парняги
есть ли какой-нибудь способ остановить безопасно бесконечный while цикл во время выполнения?
юзаю пайчарм, в цикле идет обработка риалтайм данных с камеры. Если нажимаю стоп в ide, то весь процесс стопится и до строчек, где я закрываю камеру просто не доходит
ну типа

while True:
___do_smth()
camera.stop() # до сюда вот не доходит при остановке процесса
Аноним 12/02/21 Птн 12:51:32 #282 №1938470 
>>1938358
бамп
Аноним 12/02/21 Птн 13:15:25 #283 №1938486 
>>1938470
да иди ты нахуй со своим калькулятором
Аноним 12/02/21 Птн 13:29:45 #284 №1938496 
>>1938444
Не силён в прерываниях через ide, но попробуй это:

while True:
____try:
______do_smth()
____except KeyboardInterrupt:
______camera.stop()
______sys.exit()
Аноним 12/02/21 Птн 13:34:15 #285 №1938502 
>>1938496
лучший, спасибо
Аноним 12/02/21 Птн 13:43:56 #286 №1938511 
image.png
>>1931851 (OP)
Пизда рулю. При попытке юзания pip из виртуальной среды выпадают максимально странные ошибки (пикрил). Причем если запускать приложение (из докера) то все пашет, втф?

Аноним 12/02/21 Птн 13:57:46 #287 №1938525 
>>1938444
finally/with
Аноним 12/02/21 Птн 14:06:57 #288 №1938537 
>>1938525
Либо слушать прерывания (более уебанский способ)
Аноним 12/02/21 Птн 14:07:57 #289 №1938541 
>>1938511
Пушто ты еблан и запускаешь не из под виртуальной среды?
Сначала activate -> переход в venv и потому уже python3 *.py.
Или настраивай PYTHONPATH=${PYTHONPATH}:/home/nick/tele2/webim
Аноним 12/02/21 Птн 14:08:50 #290 №1938543 
>>1938541
Сейчас охуеешь, но делал все именно так
Аноним 12/02/21 Птн 14:14:13 #291 №1938558 
>>1938386
бамп, помогите!
Аноним 12/02/21 Птн 15:30:49 #292 №1938625 
>>1938543
покажи echo. Ты небось в пучарме еще дрочишь?
Аноним 12/02/21 Птн 15:32:45 #293 №1938626 
>>1938537
Какой еще уебанский? Если ты сервис запускаешь через systemd, то как ты еще graceful shutdown сделаешь без обработки signal?
Самая мякотка, когда в Process вложен Asyncio Loop и надо прям аккуратно все завершить и при этом загасить, так чтобы никто не думал kill -9 послать, ибо долго блять.
Аноним 12/02/21 Птн 16:27:14 #294 №1938677 
>>1938543
У тебя запуск идёт из системных каталогов, а не из под среды. Смотри сам, что тебе интерпретатор пишет. Там должны быть пути вроде
/home/vasya/virtualenvs/porevo/bin/...

Попробуй запускать интерпретатор не через activate, а напрямую как
/home/vasya/virtualenvs/porevo/bin/python my_script.py
Аноним 12/02/21 Птн 16:39:45 #295 №1938686 
>>1938486
бамп
Аноним 12/02/21 Птн 16:40:07 #296 №1938687 
>>1938511
Нормальная ошибка. У тебя какой-то webim/stats/types.py шадовит системный и всё охуевает.
Аноним 12/02/21 Птн 16:42:09 #297 №1938690 
>>1938687
Ага, дело в том что в той же дире находится файл types.py (который есть и в стандартной либе питона в /usr/lib). Опять "приколы" питона
Аноним 12/02/21 Птн 17:38:04 #298 №1938755 
>>1938690
Какие приколы? В JS такого что ли нет? Просто находятся дебилы, у которых проблема с фантазией
Аноним 12/02/21 Птн 18:12:32 #299 №1938802 
Screenshot170011.png
Пайтаны выручайте заебало
Есть Лист классов и есть обычный лист
Как блять сделать дубликаты объектов в листе классов в соответсвии с кол-вом повторений в обычном листе?
Сделал ка кна скрине и оно висит нахуй
Дубликаты я посчитал удобно а дальше хз заебало уже аутировать даже
Пикрил
Аноним 12/02/21 Птн 18:15:29 #300 №1938805 
>>1938802
1. Лист классов? Чего блять?
2. Повторения считаются с помощью collections.Counter, "дубликаты" убираются с помощью set
Аноним 12/02/21 Птн 18:21:54 #301 №1938818 
>>1938805
>1. Лист классов? Чего блять?
Питоновский list содержащий объекты класса Test
>2. Повторения считаются с помощью collections.Counter, "дубликаты" убираются с помощью set
Убирать повторения не нужно нигде, наоборот в листе классов должныбыть повторения как в обычном листе на основе сравнения строк листа и полей name Объекта класса
Функция upd пытается это сделать на скрине
Аноним 12/02/21 Птн 18:24:07 #302 №1938824 
>>1938818
Вижу ты итерируешься по cl_list и одновременно его модифицируешь. Красава
Аноним 12/02/21 Птн 18:24:58 #303 №1938827 
>>1938824
))
памахите
Аноним 12/02/21 Птн 18:27:16 #304 №1938833 
>>1938802
Ты наращиваешь при итерации, вот он и растет бесконечно. Делай через range(len).
Алсо, аппенд сделает только два. Делай extend([item] * v-1)
Аноним 12/02/21 Птн 18:28:36 #305 №1938834 
>>1938833
Да я это понял, просто пытался пояснить что хочу примерно
Через рэнж попробую, спс
а вот с extend ЯННП
Аноним 12/02/21 Птн 18:40:48 #306 №1938857 
image.png
>>1938834
Аноним 12/02/21 Птн 18:50:52 #307 №1938879 
Screenshot175015.png
>>1938857
Спасибо
Только в моём случае пришдлсь в скобки обернуть чтобы работало
Аноним 12/02/21 Птн 18:56:59 #308 №1938885 
>>1938879
У * таки выше приоритет, лол.
Аноним 12/02/21 Птн 19:25:26 #309 №1938896 
Screenshot182431.png
Пытаюсь дать этой хуете уникальные имена но имена выходят нихуя не уникальный
Это как-то связанно мю что я копировал классы и они копились как ссылки?
Аноним 12/02/21 Птн 19:32:16 #310 №1938901 
>>1938896
Да, это просто ссылки.
Надо делать copy.deepcopy им по одному тогда.
Аноним 12/02/21 Птн 19:37:26 #311 №1938904 
пидоры-помогите-6360505.jpeg
Как закомпилить питон в cmake с статической ссылкой на переменную среды PYTHONPATH и PYTHONHOME
Сам Cmake

cmake_minimum_required(VERSION 3.16)
project(pytest C)
set(CMAKE_C_STANDARD 99)
set(ENV{PYTHONHOME} "python")
set(ENV{PYTHONPATH} "python\\DLLs")
set(ENV{PYTHONPATH} "python\\Lib")
set(ENV{PYTHONPATH} "python\\Lib\\site-packages")
include_directories(python\\include)
link_libraries(python\\libs\\python37.lib)

add_executable(pytest main.c)
Аноним 12/02/21 Птн 19:52:22 #312 №1938911 
>>1938901
Т.е. мой extend оборачивать в copy.deepcopy или как его юзать?
Аноним 12/02/21 Птн 20:07:45 #313 №1938921 
Screenshot190701.png
>>1938901
Ничего не поменялось чет
Аноним 12/02/21 Птн 20:10:14 #314 №1938922 
>>1938911
Ну если ты хочешь что-то менять, то надо в цикл оборачивать, а так можно и генераторным объектом обойтись, например.
https://ideone.com/wAJ2Sb
Аноним 12/02/21 Птн 20:10:42 #315 №1938923 
>>1938922
Генераторным выражением то есть.
Аноним 12/02/21 Птн 20:13:47 #316 №1938925 
Screenshot191323.png
15852485541932.jpg
та ну ёбана
Аноним 12/02/21 Птн 20:14:48 #317 №1938927 
>>1938925
Вам не стоит заниматься программированием.
Аноним 12/02/21 Птн 20:21:15 #318 №1938930 
Screenshot192024.png
>>1938927
Та ладно, я всего-то невнимательно вставил копирование.
Только вот оно имена не всем скопированным объектам меняет а только первым двум
Аноним 12/02/21 Птн 20:22:34 #319 №1938932 
>>1938930
Ну так ты только раз копируешь. Та же хуйня, что раньше, только с копией.
Аноним 12/02/21 Птн 20:25:36 #320 №1938933 
>>1938930
Там не в копировании дело.
Аноним 12/02/21 Птн 20:28:45 #321 №1938934 
>>1938686
бамп
Аноним 12/02/21 Птн 20:37:20 #322 №1938939 
>>1938934
Ты заебал, просто по кнопке меняй ширину формы, больше ничего делать не надо.
Аноним 12/02/21 Птн 20:41:52 #323 №1938942 
>>1938933
Какой же ты загадочный, пиздец просто.
Аноним 12/02/21 Птн 21:17:54 #324 №1938987 
Двачик родной, подскажи как вкатиться в ООП? Я понимаю что такое классы и зачем они нужны, хочу как-то освоить вот эти ваши всякие паттерны и бест практисы. Есть что почитать/посмотреть толковое с примерами на пистоне? Заранее спасибо?
Аноним 12/02/21 Птн 21:58:41 #325 №1939021 
>>1938939
Какая же ты скотина. Твой высер ничего общего с решением не имеет.

Теперь по сабжу. ОП. Тебе надо вывести отдельную функцию, а не определять все в инит и создать какую-то переменную типа self.status и с помощью этой переменной по нажатию кнопки подгружать новый шаблон в созданную функцию и просто вызывать ее по нажатию кнопки.
Аноним 12/02/21 Птн 22:14:17 #326 №1939034 
>>1938987
на питоне сложно писать в ООП стиле. Выглядит чужеродно.
Аноним 12/02/21 Птн 22:16:44 #327 №1939035 
>>1938987
Что конкретно тебе непонятно?
Аноним 12/02/21 Птн 22:17:48 #328 №1939036 
>>1939035
что такое инкапсуляция и нахуя она
Аноним 12/02/21 Птн 22:19:01 #329 №1939039 
>>1939035
и полиморфизм
Аноним 12/02/21 Птн 22:26:20 #330 №1939044 
>>1939036
Ну типа ты запечатываешь хуйню всякую чтобы она не протекала везде. Типа методы класса сразу пишешь чтобы не искать функцию хуй пойми где в программе и думать как блять это работает и как это нахуй отлаживать. А так у тебя сразу в классе его методы, понятней.
>>1939039
Ну эт наследование когда ты можешь методы одного класса использовать в другом. Допустим ты созда класс овощи. А потом создал класс картошка, и класс морковка, и в них используешь тот же метод что в овощах.
Аноним 12/02/21 Птн 22:28:09 #331 №1939048 
>>1939036
>>1939039
Это не ООП понятия, а компутер саенсовые.

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

Каноничный ООП сейчас это джава и те языки которые с нее все украли
Аноним 12/02/21 Птн 22:30:01 #332 №1939051 
>>1939048
>Каноничный ООП сейчас это джава и те языки которые с нее все украли
Ой блять, иди нахуй, душный легасипидор. Джава у него. Ебать ты дед вылез тут нахуй, джава сиплюсплюс. Хуй тебе в рот.
Аноним 12/02/21 Птн 22:31:57 #333 №1939054 
>>1939051
В питон тред залез джавасквирт дебил?
Аноним 12/02/21 Птн 22:32:43 #334 №1939055 
>>1939054
Какие у тебя проблемы с джаваскриптом, говно?
Аноним 12/02/21 Птн 22:35:05 #335 №1939060 
Ладно, я понял что с ооп сложно. Может подскажете тогда, что глянуть просто по бест практисам питона каким-то? Мне скорей для общего развития надо, т.к. больше наукой занимаюсь...
Аноним 12/02/21 Птн 22:36:42 #336 №1939063 
15960264102200.jpg
>>1939051
>Ой блять, иди нахуй, душный легасипидор. Джава у него. Ебать ты дед вылез тут нахуй, джава сиплюсплюс. Хуй тебе в рот.
Аноним 12/02/21 Птн 22:37:18 #337 №1939064 
>>1939060
Чел, я хз если ты не понял моем обьяснение на овощах то я даж не знаю.
>>1939063
Боевые картиночки с гринтекстом, слив защитан.
Аноним 12/02/21 Птн 22:39:41 #338 №1939065 
>>1939064
Бля, я понимаю что такое инкапсуляция и полиморфизм. Это какой-то клоун влез.

>>1939021 кун
Аноним 12/02/21 Птн 22:58:28 #339 №1939076 
>>1938987
На питоне ООП во всей красе не прочувствовать по причине отсутствия модификаторов доступа, интерфейсов и абстрактных классов. Так что такие вещи как инкапсуляция и полиморфизм тут забзать не получится. Если хочется прям ООПшного ООП, то советую попробовать Java, C# или на худой конец php.
Аноним 12/02/21 Птн 23:14:24 #340 №1939086 
php.png
>>1939076
>php
Аноним 12/02/21 Птн 23:45:23 #341 №1939110 
>>1939086
Да ладно, олдфаг из прошлого) Ты последние версии пыхи видел? Там все тоже ООП что и в джавашарпах, плюс строгая типизация есть.
Аноним 12/02/21 Птн 23:59:02 #342 №1939114 
Пагни, как запилить простейший ПАТЧ реквест в джанге? Имеется уже ПОСт, можно ли пол как-то модифицировать чтобы был патч? Я в этом не особо шарю, менеджер спрашивает. Спасибо
Аноним 13/02/21 Суб 00:03:40 #343 №1939119 
>>1939114
Это одно и то же. Ну поменяй на патч где там есть пост, лол.
Аноним 13/02/21 Суб 00:48:38 #344 №1939138 
>>1939119
Рили? А как ключ паф выделить? Айди там или имя для пути.
Аноним 13/02/21 Суб 01:59:51 #345 №1939192 
>>1939076
>отсутствия модификаторов доступа
Есть, но неявные
>интерфейсов и абстрактных классов
Напиши свой интерфейс. В чем проблема? Абстрактные классы тоже есть ABCMeta
> инкапсуляция и полиморфизм тут забзать не получится.
https://www.geeksforgeeks.org/encapsulation-in-python/
https://www.geeksforgeeks.org/polymorphism-in-python/

Короче ты хуйню сморозил. Если есть необходимость применять такой подход, то пожалуйста, чаще всего нахуй не надо, а та же Жаба заставляет тебя это делать.
Аноним 13/02/21 Суб 02:05:20 #346 №1939194 
>>1938987
refactoring.guru
Аноним 13/02/21 Суб 02:29:30 #347 №1939204 
>>1939119
>>1939114
Плиз хелп.
Алсо, Постмен выводит все лидсы даже по обращению к айди /480. Почему?
Аноним 13/02/21 Суб 02:30:11 #348 №1939205 
>>1939204
Аноним 13/02/21 Суб 03:45:41 #349 №1939217 
Антоны, как работает современный фронт, может кто подсказать как бэку начинающему, про шаблоны в джанге и как вебсервер документы отдает я понимаю, а вот зачем нужны фреймворки для фронта я хз. Я вот так представляю что на js подгружается вся динамика через апи и часть еще через ajax, я прав?
Аноним 13/02/21 Суб 03:47:41 #350 №1939218 
>>1939114
На практике вообще юзаются патчи и путы? Все ведь онли на пост/гет можно делать
Аноним 13/02/21 Суб 03:55:50 #351 №1939220 
>>1939218
Смузихлебская хуйня, видел может пару раз, и то скорее всего какие-то фреймворки из коробки такое предлагают.
Аноним 13/02/21 Суб 04:02:13 #352 №1939223 
>>1939218
>>1939220
Я с вами абсолютно согласен, однако один наш клиент лично попросил менеджера, что они хотят патч фичу от нас.
Попробовал я модернизировать пост, так не работает.
Кину сам кол чуть позже, если кто-то сможет подсказать.
Аноним 13/02/21 Суб 05:49:18 #353 №1939243 
>>1939223
Короч вот. Из вьюс и сериалайзера. Из этого нужно как-то сделать патч.

> class ListLeadScoreIngesterView(generics.ListAPIView):
"""
GET songs/
POST songs/
PATCH lead/
"""
queryset = LeadScoreIngester.objects.all()
serializer_class = LeadScoreIngesterSerializer

@validate_request_data
def post(self, request, args, *kwargs):
a_lead = LeadScoreIngester.objects.create(
eventType=request.data["eventType"],
version=request.data["version"],
parameters=request.data["parameters"],
payload=request.data["payload"]
)
return Response(
data=LeadScoreIngesterSerializer(a_lead).data,
status=status.HTTP_201_CREATED
)

> class LeadScoreIngesterSerializer(serializers.ModelSerializer):
id = serializers.ReadOnlyField()

class Meta:
model = LeadScoreIngester
fields = ("id", "eventType", "version", "parameters", "payload")

def update(self, instance, validated_data):
instance.eventType = validated_data.get("eventType", instance.eventType)
instance.version = validated_data.get("version", instance.version)
instance.payload = validated_data.get("payload", instance.payload)
instance.parameters = validated_data.get("parameters", instance.parameters)
instance.save()
return instance
Аноним 13/02/21 Суб 10:42:03 #354 №1939329 
Screenshot - 2021-02-13T104145.182.png
Аноны, подскажите.
вот есть код
https://www.codepile.net/pile/5R0dKWRO
что надо поправить чтобы в результате сложения экземпляров класса File генерировалось уникальное имя файла для создаваемого объекта класса File?
Аноним 13/02/21 Суб 11:35:12 #355 №1939360 
>>1939217
Ajax как раз дёргает твой АПИ Бэка, получает новые данные и производит мутацию объектов на фронте.
Шаблонизатор уже устарел, так как обработка идёт на стороне сервера, что добавляет нагрузки. Можно и VueJS рендерить на сервере и отдавать готовый DOM, но не советуют.
Аноним 13/02/21 Суб 11:54:44 #356 №1939367 
image.png
Как выводить массив с элементами, выравненными по правому краю?
Сейчас вот так выводит,
Аноним 13/02/21 Суб 12:08:18 #357 №1939385 
image.png
>>1931851 (OP)
Старая добрая задачка с двоичными числами. Даны 2 десятичных числа. Надо перевести их двоичную форму так, чтобы в обоих было одинаковое число знаков
Ну ебана, вот о чем я: даны 1 и 4; 1 -> 001; 4 -> 100

Вот код на скрине, вроде работает, но меня не покидает чувство что написал его по-уебански, как лучше?
Аноним 13/02/21 Суб 12:09:14 #358 №1939386 
>>1939367
If len(num) neq 2:
pad(num, 1)
Аноним 13/02/21 Суб 12:30:56 #359 №1939421 
>>1939386
Это numpy чтоли?
Аноним 13/02/21 Суб 12:38:20 #360 №1939425 
>>1939421
Это не numpy. Это псевдокод. Я тебе готовое решение давать не стану.
Аноним 13/02/21 Суб 12:47:46 #361 №1939438 
Screenshot from 2021-02-13 12-41-49.png
>>1939385
Вместо паттерна 'if diff > 0'
можешь пользоваться схемой
'0' x max(diff, 0) # в смысле умножить
в случае нуля '0' выродится в пустую строку.
Аноним 13/02/21 Суб 13:44:08 #362 №1939491 
image.png
image.png
Привет, друзья! Django

Собрался я значит сделать так, чтобы после успешной регистрации аккаунта, автоматом логинилось и редиректилось на стену этого самого пользователя. Но редиректится почему-то на адрес в начале которого подставлено /registration/.

Чем это может быть вызвано и как пофиксить?
Аноним 13/02/21 Суб 13:48:12 #363 №1939495 
image.png
Есть ли готовые решения для сохранения результатов вычислений на диск, чтобы повторно из не пересчитывать при перезапуске? joblib.Memory не завелся как я понял из-за того, что я либо на винде, либо аргументы функций не могут быть функциями, либо работаю в жопитер блокноте. Так что навелосипедил свой вариант для сохранения в csv. Можно тут что-то улучшить или заменить готовым?
Аноним 13/02/21 Суб 13:59:43 #364 №1939502 
>>1939385
Зделол йоба-функцию в рамках тренировки, принимает сколько хошь.
https://ideone.com/7Z1cro
Аноним 13/02/21 Суб 14:00:47 #365 №1939505 
Для начала подсушите код, пожалуйста, а то 2 последних совпадающих абзаца глаза режут
Аноним 13/02/21 Суб 14:01:33 #366 №1939506 
>>1939505
>>1939495
Аноним 13/02/21 Суб 14:02:17 #367 №1939509 
>>1939495
Можно сериализовать в текст в формате json, или yml, или xml, или еще в каком-нибудь формате соответствующих библиотек море, в питоне есть встроенный модуль pickle для бинарной сериализации питоновских объектов. Полученные значения можно просто в файлы записывать, можно в базу данных, а можно сразу данные писать в базу данных, в sqllite какой-нибудь.
Аноним 13/02/21 Суб 14:04:19 #368 №1939512 
>>1939509
Нихуя ты умный, я уже это сделал.
>>1939505
Есть такое, хотя и похуй.
Аноним 13/02/21 Суб 14:04:31 #369 №1939513 
>>1939495
На каждый запрос дрочить файловую систему и загружать дохулиардный список решений ради одного значения?
Переделай на тот же скулайт хотя бы.
Аноним 13/02/21 Суб 14:04:46 #370 №1939514 
>>1939495
Если тебе нужно именно с pandas работать, так там есть встроенная сериализация датафреймов о множество форматов
https://pandas.pydata.org/docs/reference/io.html
Аноним 13/02/21 Суб 14:06:09 #371 №1939516 
>>1938987
>>1937448
Аноним 13/02/21 Суб 14:07:03 #372 №1939519 
>>1939514
Я и взял pandas именно из-за встроенной сериализации в csv.
>>1939513
Там не настолько большой объем данных, но вычисляется он очень долго. После каждого перезапуска жопитера их вычислять не охота.
Аноним 13/02/21 Суб 14:14:33 #373 №1939527 
>>1939519
А, ты по одному на файл пишешь?
Нахуя тогда цсв? Просто файл read write.
Аноним 13/02/21 Суб 14:24:52 #374 №1939540 
>>1939527
Нет, не по одному, для каждого вызова функции с каждым набором аргументов. Но все равно объем небольшой получается. В данном случае чтение и запись на диск гораздо дешевле.
Аноним 13/02/21 Суб 14:30:34 #375 №1939545 
>>1939425
for i in matrix:
for j in i:
print(str(j).rjust(3), end='')
print()
Аноним 13/02/21 Суб 14:32:09 #376 №1939547 
>>1939495
А cache, cached_property и lru_cache из functools не подходят?
Аноним 13/02/21 Суб 14:34:50 #377 №1939552 
>>1939547
Нет. Нужен персистентный кеш.
Аноним 13/02/21 Суб 14:44:10 #378 №1939563 
>>1939048
>>1939036
Не своетую читать шизика Мартина (или, по крайней мере, воспринимать его шизу всерьез). Инкапсуляция - это то, как ООПшники называют information hiding (https://en.wikipedia.org/wiki/Information_hiding) - это один из основных инженерных принципов вообще. Можешь начать с этой статьи.
Аноним 13/02/21 Суб 19:00:55 #379 №1939882 
>>1939552
Redis?
Аноним 13/02/21 Суб 19:42:04 #380 №1939940 
>>1939495
В ipython, а значит и в jupyter, есть магическая команда %store, кажется, она делает именно то, что надо
Аноним 13/02/21 Суб 19:54:04 #381 №1939956 
>>1939940
Вот именно это я и искал, спасибо.
Аноним 13/02/21 Суб 21:05:18 #382 №1940063 
>>1939243
ДЖАНГИСТЫ ХЕЛП
Аноним 13/02/21 Суб 21:13:20 #383 №1940071 
>>1939545
Молодец
Аноним 14/02/21 Вск 11:08:55 #384 №1940462 
Анон будь няшей подскажи как:
1) Есть aiohttp веб сервис, иногда на него прилетают тяжелые запросы которые обрабатываются 100мс (вероятно это не предел) в синхронной части кода (какая-то обработка данных на pandas написаная не мной, я делаю http обертку).
Как бы мне из обработчика запроса спавнить подпроцесс и выполнять синхронный код в нем и await'ить до его выполнения передавая тем самым управление эвент лупу? (чтобы синхронный код не тормозил другие запросы).
Я думал заюзать multiprocessing, но ведь он синхронный, т.е. запустить то в процессе что-то можно, a await'ить это никак.
Может быть более правильно будет просто в основной цикл вычислений синхронного кода добавить переодический вызов await asycio.sleep(0), что бы дать возможность переключения на другие асинхронные таски? И сразу запускать скрипт с нескольких инстанциях.
2) Можно ли вывести как-то информацию, сколько примерно простаивает event loop (т.е. ему нечему передавать управление), чтобы на основе этого понимать сколько инстанциий скрипта необходимо для корректной работы (а может в будующем и автоскейлер накрутить). Понимаю что можно косвено судить по количеству асинхронных тасков или времени выполнения запроса, но хотелось бы явно.
Аноним 14/02/21 Вск 12:36:55 #385 №1940528 
Братья, ну помогите!
>>1939329
Аноним 14/02/21 Вск 14:57:16 #386 №1940614 
>>1940528
uuid4() гарантирует уникальностт
Аноним 14/02/21 Вск 14:59:44 #387 №1940616 
>>1940462
Не совсем понял твою задачу. Ты можешь поднять микросервис через Process и кидать туда задачи через Pipe, тогда у тебя 1 процесс это вебсервис, а второй это для расчётов. Или же как вариант выделить просто отдельно сервис расчетов в микросервис и кидать туда по REST задачи. Третий вариант Celery с Redis или RabbitMQ, но нахуй надо.
Аноним 14/02/21 Вск 17:17:07 #388 №1940767 
>>1940462
https://stackoverflow.com/questions/54685210/calling-sync-functions-from-async-function
Аноним 14/02/21 Вск 17:30:38 #389 №1940779 
>>1940767
Вот спасибо, похоже то что надо.
Аноним 14/02/21 Вск 17:36:30 #390 №1940781 
В шапке очень много книг, а что посоветуете прямо новичку-новичку?
Аноним 14/02/21 Вск 17:37:43 #391 №1940782 
>>1940767
Бля, это и мне подойдет. Спасибо, анон.
Аноним 14/02/21 Вск 18:21:04 #392 №1940845 
>>1940781
В английский не можешь, конечно же?
Аноним 14/02/21 Вск 18:31:06 #393 №1940858 
>>1940845
Ну если гугл переводчик подойдет как азмена английского - то могу.
Аноним 14/02/21 Вск 18:31:22 #394 №1940859 
Замена*
Аноним 14/02/21 Вск 18:36:01 #395 №1940866 
>>1940462
>Может быть более правильно будет просто в основной цикл вычислений синхронного кода добавить переодический вызов await asycio.sleep(0), что бы дать возможность переключения на другие асинхронные таски?
Про run_in_executor тебе уже ответили.

А вот по этой части грабли есть: asyncio.sleep(0) не переключит таску. Тебе надо делать asyncio.sleep(0.0000001), например, чтобы переключение было.
Аноним 14/02/21 Вск 18:51:50 #396 №1940893 
>>1940462
>2) Можно ли вывести как-то информацию, сколько примерно простаивает event loop (т.е. ему нечему передавать управление), чтобы на основе этого понимать сколько инстанциий скрипта необходимо для корректной работы (а может в будующем и автоскейлер накрутить). Понимаю что можно косвено судить по количеству асинхронных тасков или времени выполнения запроса, но хотелось бы явно.
Про asyncio прямо так не смотрю, надо в исходники лезть, но по-моему он никак не считает, сколько времени он простаивает.

Косвенный метод в том, чтобы взять
time.process_time() (количество секунд работы процесса) и сравнить с time.monotonic()
то есть ты каждую секунду, например, считаешь разницу в monotonic времени (должна быть примерно секунда) и в process_time, по чему делаешь вывод, насколько сильно у тебя процессор загружен.

По-моему там есть даже более специальные инструменты для подобного мониторинга и более точные, но я на память не помню, где они закопаны, искать надо.
Аноним 14/02/21 Вск 19:05:24 #397 №1940914 
Сап двач, подскажите за функцию min. Юзаю её и нахожу наименьшее число, но можно сделать, чтобы она возвращала не число, а название переменной?
Аноним 14/02/21 Вск 19:09:07 #398 №1940919 
>>1940914
Попахивает говнокодом
Если хочешь поебаться с названиями, юзай dict
Аноним 14/02/21 Вск 19:18:37 #399 №1940930 
>>1940914
Я как-то выкладывал смищное решение в таком ключе на ебанутую задачку, сейчас гляну.
Аноним 14/02/21 Вск 19:20:38 #400 №1940936 
>>1940930
Во, нашел >>1927282 →
Аноним 14/02/21 Вск 19:33:47 #401 №1940951 
image.png
>>1940936
Аноним 14/02/21 Вск 19:37:46 #402 №1940958 
>>1940951
Норкоман штоле?
Аноним 14/02/21 Вск 19:38:25 #403 №1940961 
>>1940951
Букашка.
Аноним 14/02/21 Вск 19:40:00 #404 №1940963 
>>1940781
Я вот нашел книгу "питон для детей"
Подойдет?
Аноним 14/02/21 Вск 19:44:43 #405 №1940968 
>>1940963
Сложна, бери для котов.
Аноним 14/02/21 Вск 19:49:52 #406 №1940972 
>>1939243
Неужели никто не знает.
Аноним 14/02/21 Вск 19:57:37 #407 №1940977 
>>1940972
Мудак, твое говно неформатированное никто даже пытаться читать не будет
Аноним 14/02/21 Вск 20:08:22 #408 №1940986 
>>1940616
>>1940866
>>1940893
Спасибо аноны.
Аноним 14/02/21 Вск 20:11:32 #409 №1940988 
>>1940951
Зачем на питоне писать как на перле?
Аноним 14/02/21 Вск 20:21:14 #410 №1940998 
>>1940988
У тебя всё что сложнее одного выражения это "как в перле"?
Иди посмотри современный жс, там вообще какая-то инопланетная хуйня и никто не пиздит.
Аноним 14/02/21 Вск 20:26:35 #411 №1941005 
>>1940998
>какая-то инопланетная хуйня
Это ты автор вот этого говна >>1927282 → ?
В жс есть свои конвенции и парадигмы, хоть они и малость уебанские порой но смысл в них есть. За то говно что написал ты, в любой компании будешь сразу уволен нахер. Тут не в питоне как таковом дело а в том что это максимально неподдерживаемый и лапшеобразный код
Аноним 14/02/21 Вск 20:30:53 #412 №1941008 
>>1941005
Это шутка - пруф оф концепт, какие компании нахуй.
Собрались блять промышленники.
Аноним 14/02/21 Вск 22:56:56 #413 №1941119 
>>1941008
PoC, у него лол. Т.е можно писать спагетти код и потом отвечать "да вы что это просто PoC, а не говнокод", ору
Аноним 14/02/21 Вск 23:01:09 #414 №1941124 
>>1941119
Да, можно.
Аноним 14/02/21 Вск 23:01:48 #415 №1941126 
>>1941124
Доедаем борщик и идем спатеньки
Аноним 14/02/21 Вск 23:05:52 #416 №1941130 
>>1941126
Почему без точки?
Аноним 14/02/21 Вск 23:34:45 #417 №1941161 
>>1940614
Ок, понял.
уже сам решил через
tf = tempfile.NamedTemporaryFile
Аноним 15/02/21 Пнд 02:35:01 #418 №1941338 
Я сегодня узнал что мой код используют уже 3 месяца, как я счастлив аноны, в октябре еще нашел заказ на фрилансе, нужно было разработать бота, который бы писал рейтинг игроков для мода халфлайфа, мы нашли решение, я написал бэк и самого бота, который полил обновления и писал в дискорд о результатах матча и лидерборду. А сегодня я выяснил его оказывается подключили как доделали мод и там уже целый сезон прошел и все работает и как же я кайфанул от этого, моим кодом пользуются! Решил поделится с двачиком с которым начинал изучать питон
Аноним 15/02/21 Пнд 05:52:43 #419 №1941383 
>>1939051
Java мне немного прочистила мозги насчет абстрактных классов и интерфейсов. Особенно интерфейсы понравились.
Аноним 15/02/21 Пнд 09:17:25 #420 №1941447 
>>1940977
Лучше на репо залить или фотку?
Аноним 15/02/21 Пнд 09:18:34 #421 №1941448 
Пацаны, написал охуенный скрипт, полезный. Решил его собрать через pyinstaller, чтобы не ебаться с установкой питончика на других компах, а просто запускать exe файл. Залил на гитхаб, на другой тачке скачиваю ехе файл, а встроенный в дрисятку антивирус орет, что это очень страшный троян и удаляет его. Файл можно добавить в разрешённые в защитнике виндовс, тогда всё ок. Но как сделать чтобы антивирус не ругался? Я гуглил везде предлагают подписывать ехе файл. Короче, знающий анон помоги.
Аноним 15/02/21 Пнд 10:08:47 #422 №1941478 
>>1931851 (OP)
Господа. Помогите машин лернинг вкатывальщику. Может есть какие-то матхев курсы? На рутрекере или ютюбчике.
Помогите мудрым советом
Аноним 15/02/21 Пнд 10:14:56 #423 №1941482 
>>1941448
Антивирь дриснятки блочит все что незнает.
Аноним 15/02/21 Пнд 10:20:25 #424 №1941484 
>>1941448
Подпиши exe файл
Аноним 15/02/21 Пнд 10:34:25 #425 №1941493 
>>1941478
что ты УЖЕ знаешь? от этого зависит все остальное.
На самом деле не понятно чего вы туда лезете.
Думаешь, зарплата говна просто не прогулявшего матстат должна быть выше джуна-программиста?
Аноним 15/02/21 Пнд 10:42:12 #426 №1941498 
>>1941493
>Думаешь, зарплата говна просто не прогулявшего матстат должна быть выше джуна-программиста?
Мне на зарплату поебать. Могу за еду хуячить, при условии, что в итоге смогу подняться. Меня математика привлекает, хоть я ее и не очень знаю. Во фронтенд не очень хочется, слишком много вкатовальщиков.
Есть знания в мат статистике, теории информации, системном анализе. Но далеки от совершенства.
Вот питон начал учить.
Я сам все что нужно найду, но на это целый день убью. Думал может кто что посоветует
Аноним 15/02/21 Пнд 12:05:15 #427 №1941598 
>>1941338
Ура! давно ты в питоне? много заработал на этом боте или делал чисто на энтузиазме?
Аноним 15/02/21 Пнд 12:07:15 #428 №1941601 
>>1941482
>>1941448
кстати да, там скорее всего база данных куда отправляют доверенные екзешники, а любой незнакомы распознается как враждебный, ну как я понял.
ибо любые модифицированные он принимает за враждебные
Аноним 15/02/21 Пнд 12:12:32 #429 №1941611 
>>1941383
https://realpython.com/python-interface/
Ору с сектантов жабы.
Аноним 15/02/21 Пнд 12:33:19 #430 №1941641 
>>1941598
Питон ровно год назад начал учить(большие перерывы вотвоемя сессий), это был первый заказ крупный, получил 5500 вроде, хотя пока не получилось найти более выгодное предложение по цена/время, все берут таймауты, проекты морозятся, а найти работу вообще нереально
Аноним 15/02/21 Пнд 12:35:22 #431 №1941645 
>>1941611
Я правильно понимаю, что жабисты придумали хороший ооп, а теперь как сектанты доказывают всем что у них все неправильно, потому что по-другому?
Аноним 15/02/21 Пнд 13:12:21 #432 №1941730 
>>1941641
Ебать, че вообще нет работы? Это пиздец печально.
сам работаешь в магазине или как? учишься? алсо долго писал этот прожект?
Аноним 15/02/21 Пнд 13:13:30 #433 №1941734 
>>1941645
>>1939048
Кстати, что насчет функционального стиля?
Пиздец жёсткая тема, не так ли?
есть кто на постоянке пишет в функциональном стиле?
Аноним 15/02/21 Пнд 13:29:56 #434 №1941769 
>>1941645
>Я правильно понимаю, что жабисты придумали хороший ооп
Реализация ООП жабы, как и плюсов, завязана на то, что код компилируемый. Там иначе просто не сделаешь.

Интерфейс - указатель на соответствующую таблицу виртуальных функций.

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

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

В питоне ООП просто другое. И проектировать программы надо по-другому.
Аноним 15/02/21 Пнд 14:04:24 #435 №1941811 
Всем ку. Заранее прошу ссаными тряпками не гонять(хотя если хочется, то можно). Пост перехода на питон(стоит ли?)

Сейчас стою на некоем распутье. В институтской бытности попробовал кодить на 1С, и понеслась пизда по кочкам. Сейчас мне 26, 5 лет опыта разработки в 1С, несколько неплохих сертификатов, но душа постоянно просит чего-нибудь свежего(да и кошелек тоже). Имея в ДС доход 180 на руки закрадываются мысли что можно и больше, да и сама 1С чую надоест через года 2-3. Вот и решил зайти в первоисточник и попробовать расспросить, стоит ли начать изучать питон для будущего полного перехода на этот ЯП. В принципе у самого образование - программная инженерия, тупым бухгалтером себя не считаю, даже ООП вспомню если постараюсь. Как с работой в ДС, как с зарплатой, как со сложностью/скоростью вкатывания. Ну короче в 2х абзацах распишите какой я мудак стоит ли начинать играться с питоном по вечерам

П.с. Есть небольшой опыт написания мобильных приложения на Java, когда делал очень нравилось, хотелось бы понять есть ли интерес в работе с питоном.
Аноним 15/02/21 Пнд 14:09:47 #436 №1941817 
>>1941811
>5 лет опыта разработки в 1С
>надоест через года 2-3
А ты нетороплив.
Аноним 15/02/21 Пнд 14:19:18 #437 №1941835 
>>1941817
Ну первые 2 года было совмещение с универом, там по большей части писюн пинал на работе
Аноним 15/02/21 Пнд 14:55:05 #438 №1941875 
>>1941383
Белый Человек выбирает TypeScript
Аноним 15/02/21 Пнд 15:04:02 #439 №1941883 
>>1941769
Именно. Только учти что у Java есть JVM. На самом деле сложилось впечатление, что туда притащили все и сразу, а потом обернули все во фреймворк, чтобы голова не болела у господ "ынтырпрайз" погромистов как и что писать.
Если в Питоне банальная инкапсуляция, да и видимая, то в Java слоев до implementation будет овердохуя (помним, что один класс - один файл). Зачем? В питухоне я могу описать модель ORM, обернуть ее в Pydantic и там же прописать интерфейсы под нее и будет это в db/models/user.py.

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

Если например собирать тот же JSON в объекты, то в Java это сложнее чем через Pydantic. Почему так получилось я хуй знает, но как по мне направление языка не туда ушло. Вместо упрощения, его наоборот сделали комбайном. И ты тащить вместо одной функции кучу ненужного хлама или же изобретатель велосипед.
Когда мне говорят, что Питон потребляет много ресурсов (а так и есть) я напоминаю про JVM, которая может зарезервировать себе гигабайты памяти, потому что так решила.
Аноним 15/02/21 Пнд 15:06:20 #440 №1941887 
>>1941875
JS и TS для фронта а не бэкэнда. TS потом все равно в JS перегоняется при деплое, кек.
Аноним 15/02/21 Пнд 16:21:35 #441 №1941967 
Screenshot 2021-02-15 at 18.18.56.png
Пацаны. Какие по стандарту должны быть названия в функции для замера времени?

Встречалось что-то ARGS, KWARGS. Но не уверен уместно ли мне тут это использовать.
Аноним 15/02/21 Пнд 16:39:47 #442 №1941991 
>>1941967
Это у тебя декоратор, смотри как они оформляются для передачи всех параметров.
Аноним 15/02/21 Пнд 16:52:12 #443 №1942002 
>>1941484
Как?
Аноним 15/02/21 Пнд 16:55:54 #444 №1942008 
>>1941482
>>1941601

Хуйню не несите. Антивирь сканирует ехе-шник и на что-то ругается. Что-то его не устраивает. База приплетенная тут не причём. Он именно определяет как троян, присваивает классификацию. Значит реагирует на сборку или используемые компоненты. Я на c# написал хелло ворлд и на другом компе запустил, так ехешник был заблочен как полученный из неизвестного места. Антивирус на него не ругался и не удалял.
Аноним 15/02/21 Пнд 17:04:52 #445 №1942027 
>>1941991
А почему это декоратор?
Я например хочу мерить время выполнение кода средним значением из 1000 раз.
Про декораторы читал. Но не понимаю почему ты решил что это декоратор.
Аноним 15/02/21 Пнд 17:10:43 #446 №1942035 
>>1942027
Декоратор это функция которая оборачивает другую функцию, добавляя какой-то свой функционал.
>Я например хочу мерить время выполнение кода средним значением из 1000 раз.
Для этого есть искаробочный timeit
timeit.timeit(func, number=1000)
Аноним 15/02/21 Пнд 17:16:28 #447 №1942041 
Screenshot 2021-02-15 at 19.14.43.png
>>1942035
>искаробочный timeit
Он какой-то стремный. В примерах использования, какие-то лист компрехеншены одни. Реального использования не нашел.
Аноним 15/02/21 Пнд 17:22:21 #448 №1942052 
>>1942041
Ты неправильно делаешь просто, вот же он пишет что хочет string or callable
Т.е. нужно
"""hello('privet')"""
или отдельную функцию
def test1():
hello('privet')
и тогда передаешь только test1
Аноним 15/02/21 Пнд 17:27:18 #449 №1942061 
>>1942052
Спасибо, работает. почти
Аноним 15/02/21 Пнд 17:43:34 #450 №1942089 
Мне нужно сделать программу которая автоматически будет выполнять некие действия в браузере при этом основываясь на текст находящийся на этом сайте, это возможно сделать на питоне? Если это не очень трудно скажите как это сделать может библиотека там есть какая-то, спасибо.
Аноним 15/02/21 Пнд 17:55:32 #451 №1942125 
>>1941887
Статическая типизация. Слышал про такое?
Аноним 15/02/21 Пнд 17:58:07 #452 №1942134 
>>1942008
ну так полученный из неизвестного места это тоже ругань антивируса.
сорта говна тащем та
Аноним 15/02/21 Пнд 19:14:46 #453 №1942258 
Я не понимаю импорты.
Есть несколько реп в корне и там же в корне файл с основным кодом. Репы ходят иногда друг в друга. Я так понимаю все пути начинаются в том месте, откуда запускается питон, даже если запускаемый файл в другой папке. У меня же первое совпадает со вторым, но я получаю ошибку спустя несколько импортов по цепочк
ModuleNotFoundError: No module named repa1.src
Но в корне есть папка repa1/src/.../utils.py
В чем может быть дело?
sys.path.append("repa1/src") не помогает.
Аноним 15/02/21 Пнд 19:20:15 #454 №1942264 
>>1942008
Какой же ты денегерат, просто пиздец. Даже пояснять не буду.
Аноним 15/02/21 Пнд 19:25:39 #455 №1942265 
>>1942258
Что ты называешь репами?

> Я так понимаю все пути начинаются в том месте, откуда запускается питон

Нет такого понятия все пути начинаются. Заглянь в содержимое sys.path, там список никак между собой не связанных путей, откуда импорты реально начинают искать модули и пакаджи.
Аноним 15/02/21 Пнд 19:27:26 #456 №1942267 
>>1942089
И кто будет открывать эти страницы в браузере? Что является текстом на сайте? (не такой простой вопрос как кажется) Почему не расширение браузера типа greasemonkey? Почему именно на питоне?
Аноним 15/02/21 Пнд 19:29:00 #457 №1942268 
>>1941811
Бросать 1С рано. Пробовать всякое разное однозначно стоит, не только питон.
Аноним 15/02/21 Пнд 19:35:16 #458 №1942273 
>>1942265
>репами
Репозитории из гитхаба, т.е. полагается, что это цельные куски кода.
> Заглянь в содержимое sys.path, там список никак между собой не связанных путей, откуда импорты реально начинают искать модули и пакаджи.
И при запуске туда вписывается полный путь откуда все запускается же, не? Я это вроде как знаю и все равно не понимаю, что может помешать заимпортить один из репозиториев.
Аноним 15/02/21 Пнд 19:47:10 #459 №1942279 
>>1942273
> И при запуске туда вписывается полный путь откуда все запускается же, не?
Только если там есть специальный путь точка, означающий текущий каталог.

Каждый раз когда ты импортируешь какой-то модуль, проверяются все пути по маскам {syspath}/{module} и {syspath}/{module}/--init--.py. Во втором случае это считается пакаджем. То что найдено, фиксируется в импорт кэше. И если ты импортируешь например foo.bar, то сначала импортируется foo, это запоминается как {packageRoot}, дальше пробуется путь {packageRoot}/bar.py. То есть, foo.bar и foo.baz обязаны лежать в одном каталоге, как и всё остальное дерево foo. Относительные импорты возможны только изнутри этого дерева и не могут вырваться наружу {packageRoot}, то есть, нельзя импортировать ../../../../../../etc/passwd.

То что ты пытаешься сделать, строго говоря, некорректно. А если там модули в этих репах, которые нужно собрать компилятором? А если там структура кода такая, что сорцы лежат в repa1/src/python/modules/src/? По-хорошему зависимости нужно ставить через pip, а не клонировать репозитории, здесь тебе не го. Используй либо pip, либо симлинки если в этих репах чистый питон, либо просто скопируй себе всё что там есть. Колёса для pip кстати можно собрать и устанавливать локально, без загрузки на pypi.
Аноним 15/02/21 Пнд 20:07:33 #460 №1942299 
>>1942279
>Только если там есть специальный путь точка, означающий текущий каталог.
Нет, зачем точка, туда кажется по умолчанию добавляется полный путь к нынешней директории, а не его сокращения. В любом случае там по умолчанию прописана домашняя директория, а все происходит в ней.
> По-хорошему зависимости нужно ставить через pip
Еба, вот это удобство.
Ну я понял как надо делать по хорошему. Но это не объясняет почему у меня не работает импорт. Идея может в разных репах лежит папка src
Аноним 15/02/21 Пнд 20:24:45 #461 №1942330 
Screenshot from 2021-02-15 20-17-07.png
>>1942299
Вот эта пустая строка в начале и означает текущий каталог. Если сконфигурировать питон так чтобы её там не было, то не будет он ничего искать в текущем каталоге.

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

> Но это не объясняет почему у меня не работает импорт.
> ModuleNotFoundError: No module named repa1.src
> Но в корне есть папка repa1/src/.../utils.py
> папка repa1/src/.../utils.py
> sys.path.append("repa1/src") не помогает.
Ты просто рандомом тыкаешь во все стороны и даже не пытаешься вникать ни в документацию, ни в мой длинный пост. Папка utils.py, пиздец какая каша.
Аноним 15/02/21 Пнд 20:28:19 #462 №1942332 
>>1942330
>Если сконфигурировать питон так чтобы её там не было, то не будет он ничего искать в текущем каталоге.
Какие-то репы в этом каталоге он видит, а какие-то нет.
>Что за мутные репы там у тебя
Я так код храню. Иногда нужна функция написанная где-то в другом месте и еще иногда приходится клонировать чужие сложные репы, чтобы дернуть у них что-то.
>Ты просто рандомом тыкаешь во все стороны и даже не пытаешься вникать ни в документацию, ни в мой длинный пост.
Да вникать не во что. Я знаю это. Говорю же. По идее должно все и так работать без сис-пас-аппендов. Вот просто из корня должно рабтать import repa1.src.....
Аноним 15/02/21 Пнд 20:29:52 #463 №1942335 
>>1942330
Но да, я это уже от безысходности начал делать.
Аноним 15/02/21 Пнд 20:41:37 #464 №1942343 
>>1942332
> Да вникать не во что
В смысле не во что? В моём посте все ответы почему у тебя что-то импортируется, а что-то нет.

> Я знаю это
Уверен?

> Вот просто из корня должно рабтать import repa1.src.....
Не должно. Имена модулей это не пути в файловой системе. Иначе тебе придётся вместо import requests писать каждый раз import C:\Programs and files\Python\Lib\site-packages\requests\--init--.py
Аноним 15/02/21 Пнд 20:43:52 #465 №1942345 
>>1942343
>В моём посте все ответы почему у тебя что-то импортируется, а что-то нет.
Видимо, в глаза долблюсь.
>Не должно.
Остальные репы, кроме этой без проблем притягиваются.
>Иначе тебе придётся вместо import requests писать каждый раз import C:\Programs and files\Python\Lib\site-packages\requests\--init--.py
Нет, почему. В PATH есть путь до папки, откуда питон вызывается и еще до нескольких. Достаточно просто дописать недостающую часть пути.
Аноним 15/02/21 Пнд 20:52:17 #466 №1942347 
>>1942345
> В PATH есть путь до папки
Воот. Теперь ты близок к пониманию что такое sys.path как никогда раньше. Вот только вместо бинарников, он указывает на локации с наборами импортируемых модулей.

> Остальные репы, кроме этой без проблем притягиваются.
Потому что там по счастливой случайности непосредственно питонячий код лежит, без всяких src. И не факт что они работают, даже если успешно импортировались. Мало ли как их задумал использовать создатель. Вдруг там вообще не модули, а программы, которые запустят ракету в космос когда ты будешь их импортировать?
Аноним 15/02/21 Пнд 20:52:56 #467 №1942348 
>>1941730
Я не могу найти работу с сентября, но щас понимаю, что тогда совсем зеленый был, щас сильно апнул скил, но вакансий вообще нет для джунов, их 0, а те что есть либо с тестовым типа зайдите на наш сайт и напишите эссе чем он вам понравился, либо компании уровня яндекса, тинькофф, сбера и пр, куда можно пробовать, но даже тестовое наврятли получишь. С вакансий на мидлов меня просто пидорят, отказывают не глядя, в сентябре хоть тестовых 5 сделал, после нг не получил ни одного. Я студент это тоже минус к желанию меня взять на работу
Аноним 15/02/21 Пнд 20:54:10 #468 №1942351 
>>1942348
Чел, ты - это я
Аноним 15/02/21 Пнд 20:54:46 #469 №1942352 
>>1942279
>Каждый раз когда ты импортируешь какой-то модуль, проверяются все пути по маскам {syspath}/{module}
И я не вижу причин не заимпортить нужную мне репу.
В третьем абзаце про другое речь.
Не понимаю в чем моя проблема.
Аноним 15/02/21 Пнд 20:55:34 #470 №1942354 
>>1942089
Selenium.
Аноним 15/02/21 Пнд 20:56:07 #471 №1942355 
>>1941730
Отклеилось то что делал проект дня 4-5, потом еще деплоил день и все вроде. Но щас если мне пишут по заказам уже смело сильно больше ставлю цены, вот сегодня посмтрел тз на тг ботов, суммарно оценил в 300 деревянных, теперь просто жду ответа. Так же мне написал один кабанчик сделать бек для обзвона клиентов, я назвал 800$, он сказал согласен с ценой и сроком, прошел небольшой собес, но думаю он не выберет меня, ибо опыта все еще маловато
Аноним 15/02/21 Пнд 20:57:43 #472 №1942362 
>>1942347
>Вот только вместо бинарников, он указывает на локации с наборами импортируемых модулей.
Ну я как бы и про это знал с самого начала.
>Потому что там по счастливой случайности непосредственно питонячий код лежит, без всяких src.
А, да, стоит добавить, что в проблемной репе лежит может и не только питон, но притягивается функция из файла с питоном и по дороге плохих импортов нет. Я уже тащил оттуда ее, если что. Сейчас либо проблема в верхних импортах, либо я что-то сделал с окружением.
Аноним 15/02/21 Пнд 20:58:08 #473 №1942364 
>>1942351
>>1942348
Давай поболтаем. Что сейчас изучаешь? У меня большие проблемы с фронтом, не могу сделать красиво. Ну и потихоньку изучаю C
Аноним 15/02/21 Пнд 21:02:05 #474 №1942367 
>>1942364
>>1942355
Второй ответ это мой же коммент, почитай
Вчера буквально зашел в раздел с книжками в шапке и забрал себе книгу по шаблонам проектирования, мне кажется мой скил улучшился раза в 2 после прочтения благодарностей автора. Все откладываю изучение докера, который уже везде требуют и даже от джунов, хотя мне так лампово на убунту ковыряться и не учить ничего. Только недавно начал часто использовать на практике всякий сахар типа лист компрехеншона, разные методы в ооп, стараюсь в язык и ооп углубляться по сути, ты?
Аноним 15/02/21 Пнд 21:04:44 #475 №1942369 
>>1942367
Почитай книгу https://www.labirint.ru/books/516656/, там как раз то что ты изучаешь, я прозрел после прочтения
Аноним 15/02/21 Пнд 21:05:35 #476 №1942370 
>>1942364
Алсо параллельно делаю студенческий сайтик на джанго для кафедры математики, углубляюсь в джангу, в основном пытаюсь запомнить все методы орм которые там очень классные, а так же работаю на галере по сути, все неловко сказать заказчику, что я блять не буду вновь перерабатывать код ради теста, который не факт что сработает, работаем над сервисом по накрутке в тикток, но до сих пор не разгадали всех подписей тиктока и как именно ему надо отправлять данные, чтобы он не возращал то что слишком часто пользуемся им. Рассказывай про себя
Аноним 15/02/21 Пнд 21:20:58 #477 №1942385 
>>1942352
{module} не может содержать слешей. Там только имя из a-z0-9.

>>1942362
Ну в целом ты делаешь что-то очень странное. Я тебя просил уже неоднократно разъяснить что за репы (ссылки на гитхаб?), и зачем ты из них импортируешь, и кроме того что тебе так хочется я ничего не увидел.
Аноним 15/02/21 Пнд 21:23:56 #478 №1942387 
>>1942385
>{module} не может содержать слешей. Там только имя из a-z0-9.
Ага, т.е. вместо слешей точки. Я же правильно понимаю, что модулем становится любая папка и я могу как угодно глубоко в ней лезть за нужными мне функциями?
>Ну в целом ты делаешь что-то очень странное.
В смысле у тебя ответа нет, почему одна репа может притягиватьс, а аналогичная рядом нет?
Ссылки на гит не дам, это приватные репы для студ проекта, к сожалению, там не я один работаю.
Аноним 15/02/21 Пнд 21:36:48 #479 №1942407 
>>1942370
А я пилю систему управления проектами. На джанге. Как выше писал - с фронтом проблемы
Аноним 15/02/21 Пнд 21:48:24 #480 №1942432 
>>1942387
> В смысле у тебя ответа нет, почему одна репа может притягиватьс, а аналогичная рядом нет?
Ты меня типа на слабо берёшь или что? Откуда мне знать что там за студенческий хлам у тебя лежит и каким образом? Спрашивай своих братишек, которые написали эти репозитории, они тебе пояснят как ими пользоваться.
Аноним 15/02/21 Пнд 21:52:00 #481 №1942434 
>>1942432
Спасибо, анон. Очень полезно провел час. К сожалению, не узнал абсолютно ничего нового и пришлось разбираться самому, и да, уже разобрался.
Аноним 15/02/21 Пнд 21:55:31 #482 №1942440 
>>1942434
Какой вопрос, такой и ответ.
Аноним 15/02/21 Пнд 22:08:31 #483 №1942455 
>>1942125
Да, в Vue 3 прекрасно все. Кстати они довольно быстро перекатили на TS, было бы забавно увидеть Python года через 3 со статической типизацией и высокой производительностью.
Аноним 15/02/21 Пнд 22:28:58 #484 №1942477 
пятерочка чел кассир тату.png
>>1942355
>>1942348
жёско.
Почему не нужны прогеры, зато объявлений продавцами в пятерочку полно?
Аноним 15/02/21 Пнд 22:58:37 #485 №1942530 
>>1942477
Кто-то востребован, а кто-то нет. Смирись.
Аноним 15/02/21 Пнд 23:52:28 #486 №1942591 
>>1942530
Не лежит душа к работе продавцом как-то.
Аноним 15/02/21 Пнд 23:56:14 #487 №1942601 
>>1942591
А если бы зарплата была бы в два раза выше программиста твоего уровня?
Аноним 16/02/21 Втр 00:19:35 #488 №1942628 
>>1942134
Петушмэн, что за хуйню ты несёшь? В дрисятке есть UAC и Windows Defender. Оба по разному блокируют приложения. Впрочем, пошёл ты на хуй чмо тупорылое, нахуй я перед тобой оправдываюсь...
>>1942264
И ты шлюхандрий, сын трансгендерной женщины, наебни говна, ублюдок косорылый.
Аноним 16/02/21 Втр 00:34:18 #489 №1942652 
>>1942601
Если бы такая зарплата была в комп сервисе или хотя бы в ламповом магазине по продаже железок (не ебаной сетевой шизе типа дноэс), было бы охуенно.
работал в таком магазе -сервисе, в принципе все норм, если бы не ЗП ебаные 14к рублей за работу без выходных и праздников.
Алсо если бы в автосервисе была такая ЗП и нормальное оборудование, тоже было бы пиздато. Но я автосервис с нормальным оборудованием и условиями типа нормально отапливаемых и вентелируемых боксов видел только на картинках в журналах и в роликах на ютубе где сервисы для мажоров, которым движки чипуют за миллион.
Обычно это грязь, срач, холод и жара с уёбанным инструментом и за низкий прайс.
Аноним 16/02/21 Втр 00:47:17 #490 №1942655 
>>1942477
Вакансий тьма, только никто не будет джуна типо меня обучать, зачем, все равно через год зарплату апать, либо съебет на более теплое место и останетесь с говнокодом, либо убытками. А вот посмотреть на вакансии любые хоть фронт, хоть бек, везде зп отличные(мне такие пока только снятся), условия супер, только опыт нужен. Надежда только на то что мои проектики потм смогу показать и хоть немного выделюсь среди таких же как я и может примут куда
Аноним 16/02/21 Втр 00:49:38 #491 №1942657 
>>1942655
Мне вообще кажется что это самое сложное, просто скил удачи должен быть прокачен, один знакомый фронт начал еще в далеком 2015 наверное рулетки по кс делать, залетел в эту тему, теперь именно что 300к\нс получает в сити за эти же рулетки
Аноним 16/02/21 Втр 01:01:35 #492 №1942666 
>>1942477
Кстати, кринжит только людей с низкой самооценкой с этой пикчи.
Аноним 16/02/21 Втр 02:10:35 #493 №1942709 
Есть класс с хранилищем и асинк методом с while True внутри, который работает с элементами этого хранилища
Проблема в том, что мне иногда нужно добавлять новые элементы в хранилище, но похоже, что работающий метод с while True блокирует все остальные методы
Что делать?
Набросал схематично суть: https://pastebin.com/hYd4CZ13
Аноним 16/02/21 Втр 02:33:06 #494 №1942723 
>>1942709
Не силен в асинкио, но проде авейты должны выбрасывать из цикла, проверь точно ли до авейтов доходит код
Аноним 16/02/21 Втр 02:38:47 #495 №1942727 
>>1942709
У тебя какая-то странная схема с пиханием элемента в очередь.

Вообще, если у тебя исполнение пойдёт по пути else, то цикл заблокируется, у тебя не будет переключение задачи.

Это грабли asyncio и реализации очереди там. Там используются оптимизации, и если в очереди есть элемент, то await q.get() не переключит задачу. И если в очередь можно что-то положить, то и await q.put() не переключит задачу.

Переключение задачи будет только в том случае, если очередь пуста в случае get, или переполнена в случае put.

Поставь ради теста после await _queue.get() строчку
await asyncio.sleep(0.00001)
но только не await asyncio.sleep(0), потому что там тоже грабли и тоже переключения не будет.

Аноним 16/02/21 Втр 10:54:24 #496 №1942864 
У меня есть куча моих проектов pycharm на флэшке, устанавливать pycharm нет желания, как можно выполнить main.py чтобы python подцепил виртуальное окружение?
Аноним 16/02/21 Втр 11:06:52 #497 №1942876 
>>1942864
К О Н С О Л Ь
Аноним 16/02/21 Втр 11:09:00 #498 №1942880 
>>1942864
>пишет на питоне
>не умеет пользоваться терминалом
>про линух скорее всего тоже не слышал
>чтобы запустить проект нужна IDE
>...
Аноним 16/02/21 Втр 11:10:05 #499 №1942881 
orange3logo.png
crisp-dm.jpg
a2aa2512e801dad774fe96fe941b9831.png
>>1941498
хорошоу.

вот тебе многослойный луковый план:
"Тирни Брендан, Келлехер Джон - Наука о данных.pdf" - обзорная болтологическая хуйня, но короткая. Это важно чтобы не спрашивать что такое X и y и прочие максимально тупые вопросы, которые машобщики считают само собой ясным, поэтому просто не описывают никогда.

Python_и_анализ_данных_Второе_издание_2020_Уэс_Маккинни.pdf - здесь самый чоткий и свежий питон с упором в обработку данных в pandas. Но питон нужно отдельно подчитывать в других книгах.

"Наука о данных. Учебный курс. Скиена" - тут второй виток машоба.
Если захочешь по-быстрому поэкспериментировать с алгоритмами в образовательных целях - есть программа Orange.

Где ХОРОШО про DeepLearning я не знаю, но попробуй снова Келлехара "Deep Learning by John D. Kelleher.pdf" или Николенко или Бишопа. Или сразу делай вид что ты элитарий и иди в ML-треде ссылки на английском читать.
Аноним 16/02/21 Втр 11:18:02 #500 №1942884 
>>1942881
Параллельно, если понравятся, предлагаю подчитать:
"Нейт Сильвер - Сигнал и Шум. Почему одни прогнозы сбываются, а другие нет " - математики нет, но пиздецки интересно.
Искусство_статистики_Как_находить_ответы_в_данных_2021_Дэвид_Шпигельхалтер.pdf - самое современное введение в статистику (и поэтому даже с учетом машоба)

Само собой разумеется, ты должен придумать себе упражнения сразу по прочтении глав. Смотреть как реализованы алгоритмы.
Придумать себе Любимую Задачу - то, которая тебя бы вдохновляла. Желательно чтобы это было не распознавание котиков/аниме/жоп, а классификация каких-то доступных тебе уже сейчас твоих табличных данных. Чтобы ты смог ее приблизительно решить освоив классические методы.

Так же будет полезно освоить Tableau Public и power bi.
Прочитать отдельные книги по Time Series Analysis и рекомендательным системам.

Так, примерно лет через 5 твой путь будет завершен.

Аноним 16/02/21 Втр 11:46:14 #501 №1942900 
>>1942880
При чём тут умение пользоваться терминалом????
тут надо знать схему использования виртуальным окружением да и ОС Линукс тут при чём??? Работал я раньше в нём да и сейчас иногда приходится. В чём прикол подобных высеров, чтобы самоутвердиться перед новичком?
Аноним 16/02/21 Втр 11:48:15 #502 №1942902 
>>1942900
Проганье на питоне автоматом подразумевает знание линуха на уровне пользователя а также умение пользования терминалом
Если бы сказал кому на работе (даже будучи стажером) что не можешь запустить прогу без пайчарма, стал бы надолго локальным мемом
Поэтому познавай терминал и UNIX
Аноним 16/02/21 Втр 12:01:22 #503 №1942914 
>>1942666
Возможно. Я в пикче кринжа не вижу, скорее это ЛУЗЛ.
>>1942655
то есть тут получается как на многих других работах - без опыта не нужен, а опыта нет, потому что без опыта не берут?
Аноним 16/02/21 Втр 12:09:08 #504 №1942920 
Парни, захожу в venv питона с помощью activate, делаю pip3 freeze, но эта падла показывает какой-то левый список установленных пакетов, не тот что в среде. Что это может быть?
Для справки: сама прога запускается и работает как надо, проблемы лишь с venv
Аноним 16/02/21 Втр 12:28:38 #505 №1942954 
image.png
image.png
Задачка с Литкода:
"Вы профессиональный вор. Грабите ночью дома. В каждом доме определенное integer число денег, которое можно украсть. Но если ограбить два рядом стоящих дома, то сработает сигнализация. Напиши алгоритм чтобы взять максимальное число денег из домов, не тригернув сигнализацию"

Я написал жадный алгоритм на пикриле 2, он в общем-то дает близкий ответ, но не всегда точный. Как решить эту задачу чтобы всегда получать точный ответ?
Аноним 16/02/21 Втр 12:47:47 #506 №1942992 
>>1942954
Тебе же просто надо взять четные или нечетные, не?
max(sum(lst[::2]), sum(lst[1::2]))
Аноним 16/02/21 Втр 12:48:30 #507 №1942994 
>>1942992
Нет.
[9, 1, 1, 9, 1]
Проверь свою теорию еще раз
Аноним 16/02/21 Втр 12:48:48 #508 №1942996 
>>1942920
Для одной библиотеки может качаться еще 10 мелких, зависимости же
Аноним 16/02/21 Втр 13:01:08 #509 №1943019 
>>1942996
Они все должны быть в pip frezze
Когда запускаю прогу ничего там не качается, все зависимости уже собраны в venv
Аноним 16/02/21 Втр 13:01:10 #510 №1943020 
>>1942954
Классическая задача на динамическое программирование.

Идейно, если у тебя есть список длины N, то рассматриваешь две ветви.
Первый вариант, это ты берёшь последний элемент, и максимальную сумму по списку длины N-2
Второй вариант, это ты не берёшь последний элемент, и дальше максимум по списку длины N-1.

Можно сделать рекурсивно, с мемоизацией (кешированием), а можно идти снизу вверх.
Аноним 16/02/21 Втр 13:01:45 #511 №1943022 
>>1942954
https://leetcode.com/explore/interview/card/top-interview-questions-easy/97/dynamic-programming/576/
Вот сурс если что
Аноним 16/02/21 Втр 13:18:08 #512 №1943044 
>>1943019
Так а в чем проблема, пип фриз собирает все модули что есть в венв, пип инсталл устанавливает эти библиотеки определенных версий
Аноним 16/02/21 Втр 13:43:55 #513 №1943084 
>>1942727
else там лишний, да
>>1942723
Вот и я не силен
Пиздец, ничего не помогает. Если заранее заполнить очередь, то все работает, как надо. Но вот потом уже не получается вставить новые элементы в эту очередь, оно просто намертво блокируется, чо бы я не делал. Похоже, я просто неправильно понимаю, как решать свою проблему

Мне нужен таск менеджер, который будет запускать пакет корутин, ставить таймаут (пакету), брать следующий пакет, который не в таймауте... ну и так по кругу
Ваши предложения???
Аноним 16/02/21 Втр 14:07:31 #514 №1943139 
>>1943084
Про какие-то грабли из асинкио и кривой вариант для обхода я тебе уже написал >>1942727

Суть в том, что операции await q.get() и await q.put() работают синхронно, если есть, чего взять, или есть, куда положить.

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

>Мне нужен таск менеджер, который будет запускать пакет корутин, ставить таймаут (пакету), брать следующий пакет, который не в таймауте... ну и так по кругу
Пока не очень понятно, что у тебя таймаут и т.п. То есть ты планировщик (ака скедулер, scheduler) реализуешь?

Тут разные подходы могут быть. Во-первых глянь на функции вроде loop.call_later(), эта функция работает на низком уровне asyncio.

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

Глять заодно на PriorityQueue, если тебе нужно сортировать, выбирать задачи, которые раньше других надо выполнить.
Аноним 16/02/21 Втр 14:13:41 #515 №1943154 
>>1943084
Я торможу, звиняюсь.

Всё проще, у тебя строка
await q.add_item(item) # вот эта функция уже никогда не исполнится
и не должна исполняться никогда, потому что loop_queue() содержит вечный цикл.
await означает, что бы ждёшь, когда функция что-то вернёт, но ждёшь асинхронно. То есть с точки зрения твоего кода в функции main() это как синхронный код. Он асинхронный в том плане, что передаёт управление другим задачам.
Аноним 16/02/21 Втр 14:15:50 #516 №1943160 
>>1943154
>>1943084
>Ваши предложения???
вероятно то, что тебе нужно, это
asyncio.create_task(q.loop_queue())
(asyncio.ensure_future для древнего питона 3.6)

Так ты оформляешь свою корутину в задачу, которая уже будет где-то там крутиться независимо и асинхронно.
Аноним 16/02/21 Втр 14:23:33 #517 №1943173 
16107856067140.jpeg
ПЕРЕКАТ

>>1943168 (OP)
>>1943168 (OP)
>>1943168 (OP)
>>1943168 (OP)
Аноним 16/02/21 Втр 14:27:30 #518 №1943180 
>>1942881
>>1942884
Спасибо большое
Аноним 16/02/21 Втр 15:07:51 #519 №1943234 
>>1943154
Это я сообразил. Но как же мне тогда крутить свою бесконечную(круговую) очередь и подкидывать в нее новые задачи?
>>1943139
>Пока не очень понятно, что у тебя таймаут и т.п. То есть ты планировщик (ака скедулер, scheduler) реализуешь?
Да, это скедулер, который должен работать постоянно в фоне.
>Глять заодно на PriorityQueue, если тебе нужно сортировать, выбирать задачи, которые раньше других надо выполнить.
Это в ближайших планах, будет несколько очередей и некий балансировщик, да. Но мне бы сначала разобраться с самым базовым функционалом.

Вот часть реального кода из моего проекта. Вероятно, я делаю полную хуйню, но тогда направьте в нужную сторону, что ли, а то я уже конкретно запутался с этим асинком
https://pastebin.com/5nhSB94r
Аноним 16/02/21 Втр 15:39:16 #520 №1943252 
>>1943234
> Но как же мне тогда крутить свою бесконечную(круговую) очередь и подкидывать в нее новые задачи?

Во-первых замечания по стилю. Делать вот это
loop: asyncio.AbstractEventLoop = None
передавать loop в функции не надо. Это устаревший стиль, актуальный для питона 3.5, которые сейчас считается obsolete и активно выпиливается. Там была особая магия с тем, что можно пересоздавать циклы обработки сообщений, и куча проблем из-за этого. Это можно забыть, как страшный сон, и просто делать
self.loop = asyncio.get_event_loop()
или
self.loop = asyncio.get_running_loop()
У тебя код завязан на специфику 3.7 (contextvars, typing), поэтому можешь и функции для asyncio оттуда использовать смело.

Я не вникал особо в твой код, но там есть вот такое вот:
62: self.loop.run_until_complete(self.consume_queue())
это синхронный вызов, он завершится только тогда, когда завершится цикл в consume_queue, то есть судя по всему никогда, если только какого-нибудь исключения не будет.

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

Соответственно, идея такая. Ты свой планировщик оформляешь как независимую задачу (сервис).
Как вариант, создаёшь объект
my_scheduler = TaskScheduler()
и запускаешь его как задачу
scheduler_task = asyncio.create_task(my_scheduler.consume_queue())

Потом в других задачах ты можешь делать
await my_scheduler._queue.put()
или синхронным вызовом
my_scheduler._queue.put_nowait()

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

Аноним 16/02/21 Втр 18:29:24 #521 №1943417 
>>1942902
Разве это так важно?
Аноним 16/02/21 Втр 21:29:28 #522 №1943581 
>>1942864
Отвечу тебе серьезно, в консоли запусти батник виртуального окружения. Он лежит вроде вот тут
venv/Scripts/activate.bat
После этого пишешь python main.py
Все
Аноним 17/02/21 Срд 03:06:55 #523 №1943781 
>>1943139
asyncio.create_task, а на остальные callback done. loop.run_forever()
Суть в том чтобы луп не останавливался, а таски подкидывакшь
Аноним 17/02/21 Срд 11:57:48 #524 №1944012 
>>1942954
Что лучше, литкод или кодварс?
Аноним 17/02/21 Срд 16:06:45 #525 №1944256 
>>1944012
Интервьюверы любят литкод, а я нет =))
Аноним 20/02/21 Суб 22:57:57 #526 №1947942 
Чуваки, нужен совет по джанге.

Есть приложуха, часть данных хранится в бд прикрученной к джанго, часть - в google firebase.

Модель джанго типа:
>class Currency(model.Model):
>..name=
>..description=
>
>..def chart(self):
>....return queryset from google firebase where currency_name==self.name

Графики к ней хранятся в Firebase:
>DailyCurrencyPrice:
>..datetime=
>..min_price=
>..max_price=

выводится все на тупом жс в обычный джанговский шаблон типа
><div id="chart-currency">...
><script>
>var array={% for currency in currencies_list %}
>..{% for data in currency.chart %}
>....{{ data.something }}

как бы мне просчитывать допустим средние значения ( типа average=(min_price+max_price)/2 ) данных выгребаемых функцией def chart класса Currency из данных выгребаемых из DailyCurrencyPrice Firebase ?
У джанго кверисетов .annotate() было, но это ж только для того что в джанго орм, а тут я левой либой (fireo) выгребаю
Аноним 20/02/21 Суб 23:35:53 #527 №1947967 
>>1947942
Короче чет я тупанул, вопрос-то не к джанге был: https://octabyte.io/FireO/fields/custom-field/#extend-db-value
Аноним 21/02/21 Вск 12:42:35 #528 №1948236 
>>1947967
В итоге, кстати, сделал через Django Template Tag
На случай если кто переживал
print и pprint Аноним 14/03/21 Вск 11:15:33 #529 №1966424 
Я так понял, что атрибут width относится только к pprint? И нельзя контролировать ширину строчки в стандартном print? Зочем это разделение и какой фундаментальное назначение у pprint
comments powered by Disqus

Отзывы и предложения