Это копия, сохраненная 14 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>1835577 (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
вот такой запрос, бро https://pastebin.com/p4jV7QqC.
отдает не то, что бы я хотел. отдает форму входа, хотя на локалке все норм.
Где ты вообще апишку эту откапал? У них там вроде все не так, еще и токен нужен
https://developers.facebook.com/docs/instagram-api/guides/hashtag-search
Ни кидайте говном, я совсем нюфаг
у тебя в командной строке должно быть название твоего виртуального окружения. если нет, значит ты на системном питоне сидишь. пип устанавливает туда, откуда ты его запустил.
Если я просто тыкаю в Cmd, install <библиотека name> у меня куда она ставится? На общий питон?
Нашёл на сайте рандомной школы какой-то учебник. Вроде толковый
Кому надо - берите
>>844015
Собственно сейчас остался только один вариант, через JS. Раньше были какие-то другие извращения с флешем, JavaApplet, некоторые извращения на http уровне с модифицированным протоколом, но последнее уже совсем-совсем старое.
JS опрашивает сервер раз в N секунд (это совсем дубово для чата), или через long polling, или через вебсокет, получает данные в виде json пакета и перерисовывает страницу.
Больше вопросов с тем, как на сервере всё это хозяйство поддержать, тут нюансы разных фреймворков и разной инфраструктуры, не всё легко дружит с long polling и вебсокетами.
Спасибо за ответ развернутый
на общий
попробовал получить токен, устал.
Вот ката https://www.codewars.com/kata/5a34b80155519e1a00000009
Вот мое решение https://www.codepile.net/pile/kARyM0Z2
Строчек много, зато еще поработал с фильтер, редус, зип и мап. Еще пробовал вайл и еще дохуя чего. Но получилось по итогу так. Умники с кодворза решили в одну строчку как обычно.
>От кодворза все таки есть польза, узнал о enumerate и abs.
Ну вообще, об этих штуках пишут в любых непорашных книгах для начинающих
мимо осилил первый том Лутца
Короче, есть текст разбитый на пронумерованные пункты и подпункты вида:
'1. hui
1.pu 2.tin 3.su te
2. pizda
1.hi 2.ut re mi 3.ses
3.ziopa
1.fhu jih 2.vguhb 3.drt bjikj...'
и таких пунктов всего 64
Суть в том, что текст разделен на нумерованные пункты, в каждом из которых одинаковое количество подпунктов. Мне нужно распарсить текст и засунуть текст в массив, где весь текст будет древовидно разделен в подмассивы, которые будут содержать эти подпункты хотя бы в таком виде:
[['1. hui', '1.pu', '2.tin', '3.su te'], ['2. pizda', '1.hi', '2.ut re mi', '3.ses']...] и т.д.
Вроде что-то мне подсказывает, что эта задача должна легко решаться, но что-то не могу додуматься как. Пробовал даже изучать регулярки, но по-моему не в этом дело
Оно и просится в однострочник-компрехеншен. Как с энумерейт, так и рейндж, оба примерно одинаковой всратости.
Бьешь на строчки, потом иф на парную-непарную строчку.
Ух, спасибо. Кажется понял, что мне пока до программирования как до луны. Свой код даже стыдно было бы показать
https://www.youtube.com/watch?v=uk5uB05G3H0
Если он и правда годный то я таки задоначу автору 10 баксов, обещаю
Пока искал нашел работу 30-ти страницную где описывеется шрифт пантелей и проблемы, которые вознили при его создании, но оказалось, что в стандартном юникоде есть вроде все символы для того, чтобы реализовать мою идею, осталось понять как юникод вообще отображать, ибо знаю только что если не utf-8 или cp1251 то на выходе выходит хуйня а не текст и как програмно добавлять спецсимволы типа ударения и титло, если кто может подсказать, то пишите
вопрос закрывается, потому что такой конвертер уже существует, я вообще не представляю как придумать что-то такое чего еще нет, но на реализацию чего не понадобится целая команда
А зачем тебе придумывать то, чего нет? В 99% задач ты будешь делать то, что уже кто-то делал.
Ну для себя просто, разве интересно делать что-то ради интереса, если в 10 секундах поиска можно скопировать, тем более более хороший код(я не что-то общее, свою ос писать глупо, но конвертер церковнославянский чисел почему бы и нет)
На выходе получаю только слово
Пробки
Хотя по идее должен получить
Пробки 2 балла
Код: https://ideone.com/VTrrdf
Идеон почему-то скрывает ссылку в парсере, вот она:
https://yandex.ru/maps/35/krasnodar/probki
Так, знакомство оказалось недолгим, увидел, что это обертка для sqlalchemy - удалил нахуй
И это значение может быть как-то скрыто/защищено яндексом, несмотря на то что все отображается вручную через ф12?
Ничего не скрыто, просто изначально его по тому адресу нет, оно подгружается позже и добавляется динамически, по ф12 ты видишь уже финальный результат.
Сап, двощ. Как вы качаете скилл в numpy/pandas? Может, есть курсы какие-то, типа степика, сборники задач, тестовые датасеты и т.п.?
Он нам и нахуй не нужон, это игрушка для студентоты и всяких дата-сатанистов.
пытался сделать через матрицу в numpy, ничего не вышло, подскажите, пожалуйста, как реализовать
достаточно черно-белого изображения
пользовался pillow
удваиваю
Все дебажат принтом. Делают моднявые дебаггеры, потому что надо как у людей, но принт есть принт.
Бамп вопросу.
>Обычно делается норкоманская соснольная хуйня, на которую потом уже навешиваются сторонние ИДЕ.
Ты про что вообще?
Выглядит как годнота, кто нибудь юзал?
У пайчарма свой дебаггер.
Я вообще не понимаю зачем тебе в этом разбираться. Я три года пишу код на питоне и ни разу (до этого момента) не задавался вопросом как работает дебаггер - это просто не нужно.
потому что ты слесарь по компьютерам, а не Программист.
Разумеется, блядь, нужно понимать как он работает чтобы хотя бы уметь в проде запускать отладчик.
А ты ебанушка, а не программист.
Лучший способ дебагать на проде, это вести мониторинг и логи, желательно в специальных менеджерах, типа sentry, где тебе и весь трейсбек, стек вызовов и содержание переменных будет Ты точки остановки не расставишь сам, а копаться в вызвовах тысячи пользователей в секунду себе дороже.
>тысячи пользователей в секунду
который раз это в треде вижу.
У вас там в яндексе все такие?
А, не пизди, ты же не в Яндексе.
Спортивные ставочки
Да и вообще, даже 50 пользователей это просто дохуя, что бы стек вызовов по каждому запросу проверять
учусь исключительно сам и ссу проебаться
Для этой задчки достаточно словарей и инпута, ну и какой-то жсон или пикл приляпать для сохранения.
Это первые несколько глав нубской книжки. Маловато за месяц.
Нормально, даже не плохо. Вот этого >>845244 не слушай.
Всё ещё зависит от бэкграунда, насколько у тебя в инженерном и алгоритмическом стиле мозги работают. Всё-таки с "полного нуля" сейчас, наверное, не бывает.
Ещё надо смотреть на то, что из себя представляет код и алгоритмы в твоих решениях.
Но в любом случае, месяц это мало. Для программирования надо перестроить мозги, чтобы они как у программиста работали, а это реально годы.
За год программистами не становятся. Про сроки вроде месяца-трёх я вообще молчу. Хотя на питоне и намного легче учиться, чем на индустриальных C/C++/Java, с чего многие раньше начинали.
>Хотя на питоне и намного легче учиться, чем на индустриальных C/C++/Java, с чего многие раньше начинали.
По-моему легче всего учиться на джаве. Питон сложнее из-за динамической типизации и вседозволенности в целом.
Да ну, там тулчейн этот пиздецовый, однозначная необходимость среды, гигабайты бойлерплейта.
По-моему, самый злоебучий из мейнстримных как раз.
Ты выдумал какие-то несуществующие проблемы. Вкатывальщику нужен максимально четкий и понятный язык, и джава для этого прекрасно подходит. Да, она более многословная и есть необходимость писать бойлерплейт, но питон с его динамической типизацией еще хуже.
По-моему ты троллишь просто.
Джава может и нормальный язык, но это индустриальный язык, который предполагает хорошую инженерную подготовку и понимание самого предмета программирования.
А проблема вкатывальщиков именно в том, что такой подготовки у них обычно нет.
Для человека, который не программировал вообще, просто интуитивно не понятны даже такие понятия, как "функция", а ему надо продираться через магию всяких public static void и прочей хрени.
Я кстати думаю, что на каком-то среднем уровне уже полноценный строгий язык полезен в каком-то объёме. Чтобы лучше понять как данные устроены, все эти массивы, байты, ссылки и т.п.
Опять же, чёткое ощущение, что если на питоне человек может самостоятельно довольно быстро научиться что-то писать, то на Java/C/C++ без шансов совсем.
>Для человека, который не программировал вообще, просто интуитивно не понятны даже такие понятия, как "функция", а ему надо продираться через магию всяких public static void и прочей хрени.
В питоне аналогичный if __name__ == "__main__".
Вдобавок, у питона намного больше своих нюансов, только они скрытые. Вот попытается вкатывальщик присоединить к строке число, и получит ошибку. Причем ошибка вылезет в рантайме, в то время как в джаве такая ситуация в принципе невозможна. Подсказок от IDE в большинстве случаев не будет, а от питоновских type hints голову вкатывальщик сломает еще сильнее, чем от обозначения типов в джаве. В прошлом треде был один с похожими вопросами. Это список можно продолжать бесконечно: вложенные функции (попробуй запомни, какая переменная откуда), kwargs, list comprehension, генераторами с корутинами и прочее. ООП в питоне тоже сложнее чем в джаве, чего стоит одни только self и cls.
>Я кстати думаю, что на каком-то среднем уровне уже полноценный строгий язык полезен в каком-то объёме. Чтобы лучше понять как данные устроены, все эти массивы, байты, ссылки и т.п.
Ты путаешь джаву с си или крестами. В джаве нет указателей и можно не использовать простые массивы. Основная разница в отсутствии синтаксического сахара и строгой типизации, которая на начальных этапах только поможет.
Лично я начинал изучать питон имея несколько лет опыта и неплохо зная три языка со статической типизацией. Несмотря на это, вкатываться в питон было очень больно. Ни на одном языке я не ловил такое большое количество рантайм ошибок как на питоне. Чтобы научиться более-менее уверенно на нем писать у меня ушло в несколько раз больше времени, чем на то, чтобы с абсолютного нуля вкатиться в джаву и устроиться на первую работу.
В конце концов в питон я вкатился, и теперь его знаю даже лучше чем все остальные языки вместе взятые, но начинать с него все равно не рекомендую. Чтобы научиться нормально программировать на питоне придется выучить все то же самое, что и для джавы, только помимо этого добавится необходимость держать многие вещи в голове, плюс освоить питоновский синтаксический сахар. Для некоторых вещей так же понадобится знание функционального программирования.
Производительность на питоне это вообще отдельный разговор - чтобы выжать из питона и некоторых библиотек максимум, нужно понимать как он работает с точки зрения си, на котором он написан.
>Для человека, который не программировал вообще, просто интуитивно не понятны даже такие понятия, как "функция", а ему надо продираться через магию всяких public static void и прочей хрени.
В питоне аналогичный if __name__ == "__main__".
Вдобавок, у питона намного больше своих нюансов, только они скрытые. Вот попытается вкатывальщик присоединить к строке число, и получит ошибку. Причем ошибка вылезет в рантайме, в то время как в джаве такая ситуация в принципе невозможна. Подсказок от IDE в большинстве случаев не будет, а от питоновских type hints голову вкатывальщик сломает еще сильнее, чем от обозначения типов в джаве. В прошлом треде был один с похожими вопросами. Это список можно продолжать бесконечно: вложенные функции (попробуй запомни, какая переменная откуда), kwargs, list comprehension, генераторами с корутинами и прочее. ООП в питоне тоже сложнее чем в джаве, чего стоит одни только self и cls.
>Я кстати думаю, что на каком-то среднем уровне уже полноценный строгий язык полезен в каком-то объёме. Чтобы лучше понять как данные устроены, все эти массивы, байты, ссылки и т.п.
Ты путаешь джаву с си или крестами. В джаве нет указателей и можно не использовать простые массивы. Основная разница в отсутствии синтаксического сахара и строгой типизации, которая на начальных этапах только поможет.
Лично я начинал изучать питон имея несколько лет опыта и неплохо зная три языка со статической типизацией. Несмотря на это, вкатываться в питон было очень больно. Ни на одном языке я не ловил такое большое количество рантайм ошибок как на питоне. Чтобы научиться более-менее уверенно на нем писать у меня ушло в несколько раз больше времени, чем на то, чтобы с абсолютного нуля вкатиться в джаву и устроиться на первую работу.
В конце концов в питон я вкатился, и теперь его знаю даже лучше чем все остальные языки вместе взятые, но начинать с него все равно не рекомендую. Чтобы научиться нормально программировать на питоне придется выучить все то же самое, что и для джавы, только помимо этого добавится необходимость держать многие вещи в голове, плюс освоить питоновский синтаксический сахар. Для некоторых вещей так же понадобится знание функционального программирования.
Производительность на питоне это вообще отдельный разговор - чтобы выжать из питона и некоторых библиотек максимум, нужно понимать как он работает с точки зрения си, на котором он написан.
>питон с его динамической типизацией
Динамическая типизации это большое благо. Зло нестрогая типизация.
В питоне достаточно строгая динамическая типизация. Нет неочевидного поведения, в отличии от JS, например.
В питоне ты не сможет сделать '2' + 2, вылетит ошибка. Очевидна разница между строкой и числом. Вот то, как сделано в JS, это ад, потому что там подковёрные преобразования из типа в тип. Очень неочевидное поведение, трудно прогнозируемое.
Кстати Си этим тоже грешит, с кучей его неявных преобразований, при этом статическая типизация, в общем такой адский микс, тот ещё язык. Плюсы в этом плане сделали намного строже, может избыточно строго даже.
>Динамическая типизации это большое благо. Зло нестрогая типизация.
Что то хуйня, что то хуйня. Со строгой строгой будешь ловить ошибки в рантайме, с нестрогой - неочевидное поведение. В обоих случаях нужно хорошо знать как язык, так и программирование в целом, чтобы избежать ошибок.
С точки зрения простоты самая лучшая типизация - статическая строгая, как в джаве. Только взамен энжой ер бойлерплейт и десять строк кода заместо одной в питоне.
>статическая строгая, как в джаве.
Смотря что писать.
Я начинал с Си, потом были ООП плюсы, PHP с номинальным JS (и это с коммерческим опытом). Потом для себя изучил Питон, и вот реально очень понравился, потом был питон по работе (2.6, хотя изучал третий, вот это боль после третьего), ассембер, и Си в одном флаконе, потом уже нода, сейчас больше питон-asyncio и нода меньше.
Джаву смотрел совсем-совсем чуть-чуть, уже умея ООП на плюсах.
Вот совсем не понравилась джава даже с таким опытом. Там красивая модель ООП, но и всё. В остальном жутко перегруженный язык, жуткой тяжёлый. Хуже только современный STL-C++.
А питон как раз понравился больше всего.
С типизацией - тут смотря что делать. Когда у тебя сетевой софт, обрабатывающий xml, json и левые протоколы через обычные сокеты одновременно, со сложной логикой поведения, накопления-сброса данных, то я просто не представляю, как ты будешь это делать на джаве.
У тебя пакеты приходят, и какого-то строго формата нет. Там структурные данные, но строгого формата нет в плане атрибутов, дочерних элементов и т.п. А в компилируемых языках данные надо сразу как-то описывать в виде классов,а реально это невозможно. Вот там и какие-то жуткие костыли везде вокруг этого.
Плохо дружит джава и с async-await моделью. А она реально крута и удобна. Сколько представляю, там принято тредами и мютексами в основном обходиться и какая-то лапша из-за этого (в питоне принят подход очередей, более современный). Правда лучше всего тут Go, но там всё остальное ужасно, даже лезть в него не хочется.
ps: при этом asyncio в питоне это печаль, кривовато, медленно, с чудовищным количеством граблей и подводных камней, и походу они уже и не собираются это исправлять, хотя очевидная потребность есть. Но по сумме даже на asyncio питон приятнее всего.
Есть база данных игроков с их кол-вом очков в разных матчах
Следующая игра будет против команды плохо уровня, соответственно, я считаю что игрок должен на дистанции выступить на 10% лучше. Т.е если средний показатель у него - 11 очков, то против этой команды он в среднем будет набирать 12.1
Ещё я могу посчитать дисперсию на основе его очков в предыдущих матчах.
Как мне имея ожидание и дисперсию получить вероятности набора 11 или, например, 12ти очков. Мб какие-то распределения? Подскажите, куда копать?
Еще один. У питона - неявная строгая, и никак не динамическая, сколько раз уже сказано
В треде нейросетей спроси. Тот еще загон псевдоилитариев
>Никакая ни динамическая
В питоне переменные не связаны с типом а момент объявления без возможности последующего изменения
Анон, подскажи книгу на русском новичку для изучения языка. Книг много, не знаю какую выбрать. Нужно что-то актуальное и лёгкое в изучение на данный момент.
Вот этот приятный курсец для ленивого диванного просмотра.
https://rutracker.org/forum/viewtopic.php?t=5897547
А после него?
Определяться с более узкой специализацией типа аналитики https://rutracker.org/forum/viewtopic.php?t=5905142 или бэкэнда на джанго?
И отправлять сотни резюме на стажировку?
Бамп
Надеюсь не на локальный ip ты пытаешься зайти?
Ты поднимаешь сервис? Если да, то какой адрес указываешь, на котором работать? Надо 0.0.0.0 выставлять, по умолчанию часто поднимается на локалхосте, 127.0.0.1, такой сервис будет доступен только с локальной машины. Если укажешь локальный адрес, вроде 10.67.11.22, то будет доступен только из локальной сети.
>И\или видеокурс.
>Для быстрого вката стажёром за еду.
Нет таких. Программирование не та область, где можно чего-то внимательно почитать или посмотреть, и после этого уже работать.
не, не на локальный) все пытаюсь спарсить страничку инстаграм.
с удаленного сервера выкидывает на страничку авторизации, а с локального все норм. заипалсо думать.
Делаешь скриншот экрана/окна/нужной точки, получаешь лист пикселей, нужный тебе пиксель находится по указанной координате (высота+ширина), получаешь пиксель по координате через PIL или qt.
Какого окна? Если для шиндовс, то там дохуя есть функций в винапи для поисков окон, просмотров пикселей и прочих дел. И модули для его использования.
У инстаграма такая политика борьбы с ботами. Они там меняют периодически что-то, впрочем. Контрольный тест, сейчас проверил, захожу в приват-режиме на чью-то страницу, то есть без авторизации, показывает нормально. Если пытаюсь зайти через свой личный прокси (моя vps, никем больше адрес не используется), то перекидывает на авторизацию, причём просит подтверждение по СМС. Захожу, работает, закрываю окно, открываю опять, всё тоже самое, опять просит авторизоваться, если через прокси.
Я так понимаю, что смысл в том, что у них держатся базы ip адресов. Есть пользовательские сети, из которых провайдеры пользователям дают адреса, им они доверяют и разрешают работать без авторизации. А есть сети, которые принадлежат разным хостинг-провайдерам, они им не доверят, поскольку через них ботов гоняют, и поэтому делают разные авторизации.
Вряд ли можно обойти так просто. Вообще они борются с ботами, вкладывают в это много сил и ресурсов.
Бота для одного аккаунта может быть ещё и можно сделать. Но в сущности его можно пускать и с домашнего компьютера.
Спасибо за проверку и разъяснение.
Последний тренд это residental proxy - компании предлагают бесплатные впн, лохи подписываются и через них гонят левый трафик, продавая его ботоводам за сотни денег.
================================================
- БАМП ВОПРОСУ -
================================================
да я уже сделал все, спасибо
Поделись :3
Крайние это крайние.
Может кто объяснить в чём суть ":str) -> set:" ?
Читаю Бэрри, за 2 дня дошёл до 200-й страницы и тут впал в ступор.
В книге чёткого ответа я так для себя и не нашёл.
То, что я взял в кавычки - это аннотация, верно? Для чего она?
Заранее спасибо за ответ.
разные области видимости.
Функция ищет переменную main в своей локальной,потом в глобальной своего модуля, потом в обжекте. А в твой модуль она никогда не заглянет анон.
Сначала надо найти все пары граничных точек, потом посмотреть распределение углов наклона прямых, которые через них проходят.
А что с работой?
Вот выучил я основы питхуна и куда дальше идти?
Куда грамотнее будет вкатиться мимокрокодилу без ВО чтобы начать зарабатывать?
Веб? Анализ данных? МЛ?
Ты принят, подходи на работу.
Имею ввиду в каком направлении дальше развиваться
Веб, мл или ДС
Куда после основ сворачивать?
>Куда после основ сворачивать?
Для начала практиковать и доучивать питон пока не освоишь его на нормальном уровне. Потом иди в веб. В МЛ/ДС слишком высокая конкуренция, а зарплата не выше чем в вебе.
>>845950
>Как что-то важное
Если у тебя нормальные навыки и десяток пет-проектов в резюме, то может быть и не важное. А так в большом количестве случаев твое резюме полетит в мусорку только из-за одного факта отсутствия ВО. В остальных случаях шанс есть, но при прочих равных все равно выберут того, у кого есть ВО.
Если в веб (бэк и фс очень интересными кажутся) то может сначала выучить джс, хтмд, Асс, реакт какой, бд и потом уже питун + Джанго?
Это все нужно учить параллельно. Сначала основы HTML/CSS, потом основы джанги. С этого момента уже можно начинать делать простой вебсайт и доучивать и то, и другое. JS и тем более фреймворки вроде реакта на начальных этапах не нужны - к ним приступай только после того как более-менее освоишь джангу и верстку на HTML/CSS.
Power Point 29%, лол.
Алсо на счет работы, мне приглашение дали пройти тестовое, там нужно делать асинхронные вызовы celary, использовать rabbitmq, redis, postgresql, django, кароче половину я пока не использовал, в вакансии написано опыт от 3-х лет, скажите если я реализую тестовое(дашборд с функциями и их графиками), то меня примут на работу без опыта работы релевантного?
Какая-то обоссная выборка по требованиям к бэкэнду.
Кстати, чому мало кто идёт тут в BA? Стек инструментов уже чем на других направлениях, только маркетинговую хуйню задрочить надо, платят очень хорошо.
Вряд-ли, всё-таки человек без опыта и человек с 3+ годами - охуеть какая большая разница. Но тестовое делай и на гитхаб лей - безусловный плюс тебе будет.
в веб-версию не загрузишь много строк, да и на том уровне, который они требуют, лучше pandas какой-нибудь использовать наверное.
кмс по excel.
Пусть написанный выше скрипт называется 'path/to/file/script.py' и функция называется exec
Написать скрипт, который динамически вызовет данную функцию зная только строковый путь. (т.е. нельзя from path.* import exec)
Что значит вызвать динамически, что имеется ввиду, от меня хотят, чтобы я файл script.py загрузил как строку и выполнил? Или какой-то другой способ вызова функции или запихнуть ее в переменные или через os path нужно зайти по пути данному и запустить скрипт, не понимаю, помогите, хочу сразу правильно прислать ответ
Видимо такое решение имеется ввиду
import os
path = '/path/to/file/script.py'
os.system('python3 '+path)
Мне понравился преподаватель, но не смог осилить лекции, ибо темы для меня были уже на тот момент достаточно знакомы
>А что, анализ данных без экселя никак?
Если хорошо знаешь питон и нужные библиотеки, то необязательно. Просто аналитик данных - это довольно общая вакансия. Аналитики зачастую вообще не умеют программировать.
он для даунов хорошо разжевывает.
Мне больше с книг доходит, чем с лекций.
Ты уже тему понял и сидишь минут 20 скучаешь, пока он следующий этап начнет рассказывать.
Собираюсь начать читать.
В планах по 100 страниц в день (по ~10 часов в день собираюсь уделать книге).
Прочёл уже 'A Byte of Python' и 'Head First Python'
Так вот: наткнулся на то комментарии по поводу книги, что перевод 5-го издания полон ошибок и неточностей, а вот с 4-м изданием, говорят, всё хорошо, но 4-е издание, говорят, морально устарело.
Так какое же издание выбрать для обучения? У кого-нибудь был опыт ознакомления с 5-м или 4-м изданием? Так ли всё плохо с актуальной информацией в 4-м издании?
Заранее спасибо за ответ.
читал 5ое. оно тоже морально устаревшее,хоть оно и вышло во время пистона 3.7.
1\4 книги, это в чем разница пистон2 и пистон 3
Некоторое вещи дотошно понятны, некоторые наоборот.
Книгу можно рассматривать в комплексе с другим материалом.
Сам по себе больше справочник, чем что-то практичное.
>В планах по 100 страниц в день (по ~10 часов в день собираюсь уделать книге).
Профанация. В этом нет никакого смысла, нельзя читать книги по науке и технологиям в таком темпе, это не Война и мир. Чисто для галочки, в мозгах ничего не останется.
о! прикольный сайт. спасибо за наводку.
гуру питона, оцените говнокод, пожалуйста. что так? что не так по первой задаче?
For example, if we run 9119 through the function, 811181 will come out, because 92 is 81 and 12 is 1.
Note: The function accepts an integer and returns an integer
def square_digits(num):
squares = [str(num) for i in range(len(str(num)))]
result = list(map(lambda x: int(x) 2, squares))
result = ''.join(map(str, result))
return int(result)
>
>def square_digits(num):
>squares = [str(num) for i in range(len(str(num)))]
>result = list(map(lambda x: int(x) 2, squares))
>result = ''.join(map(str, result))
>return int(result)
Тут какие-то знаки потерялись и поэтому всё не работает.
Рабочий код на пикрил.
У тебя первое же выражение какое-то месиво: squares = [str(num) for i in range(len(str(num)))] можно заменить на str(num), потому как строку тоже можно итерировать.
А вообще, зачем тебе трижды разбирать/собирать список. Может лучше просто циклом пройтись один раз и собрать строку, не?
Просто тролль зачётный, но код интересный :)
>по ~10 часов в день собираюсь уделать книге
Не выдержишь, нужно делать перерывы для переваривания информации + эффективность восприятия сильно снижается в зависимости от времени
на кой он нужен?
def __init__(self, n, a):
self.name = n
self.age = a
почему я должен его прописывать? объясни зелёному...
Если ты не будешь прописывать self в присваивании переменных, то это будут локальные переменные для данной функции, они не будут хранится в стейте объекта и ты не сможешь вызвать их из другого метода или получить доступ.
Чтобы присвоить значение переменной (атрибуту) объекта, а не локальной переменной.
Объект не сможет принимать аргументы при инициализации
Так сделать не получиться
my_object = MyClass(hui, pizda)
лаконичный код
Кто шарит в sqlalchemy? У меня список с кортежами данных, как мне массово обновить строки в таблице, основываясь на нем?
update действует для одной строчки
Покажи цитату, вот в питон зен есть чето вроде експлисит бетер зен имплисит, симпл бетер зен комплекс, ридабилити каунтс.
Привет. Пытался гуглить, но выдаёт не то, что нужно.
Как измерить время выполнения текущей итерации цикла и скипнуть её, если преодолён таймаут?
Пилю сейчас скрипт, где wget выкачивает файлы, и он постоянно обрывается: то закачка файла на середине встанет, то не приходит ответ на хттп-реквест и т.д.
И как тебе это поможет?
У вгета есть статус как у любой никсовой утилиты - 0 если всё ок или код ошибки. Пихаешь его в while и повторяешь, пока не ноль. Ну или несколько попыток.
А как мне это поможет, если статус с нуля изменился уже после перехода к новой итерации внутри цикла вайл? И всё встало
С хуя ли ему меняться? Запускаешь комманду, она отрабтаывает и возвращается свой статус.
Или ты какую-то асинхронщину делаешь?
Работай над этим.
>Запускаешь комманду, она отрабтаывает
Так в том и проблема, что есть список из N ссылок на файлы, и на M-ом файле команда не отрабатывается(по множеству причин).
Я правда сейчас понял, что измерять время выполнения не подходит, так как долгой итерация может быть и просто из-за того, что скачиваемый файл тяжелый.
Я же тебе и говорю, сделать вайл и статус.
т.е.
for url in urls
while true:
status = exec('wget...')
if status == 0: break
Потому что на четвертой строке результат отбрасывается, а ты дальше дрочишь строчку.
Толсто. Написано же, что нельзя удалять часть строки, потому что строки в питоне неизменяемые
В питоне нет переменных, есть объекты, хранимые в памяти. Имена a, b, c являются ссылками на объекты.
Целостные объекты нельзя раздробить и удалить из них часть. Но можно из списков удалить какой-то объект.
То, что ты написал list(str(a)) не сделало "а" списком, тебе нужно этот новый объект сохранить под каким-то именем:
c=list(a)
str(a) делать не нужно, так как input и так воспринимает всё как строку.
Хули тебе непонятно?
Цикл с твоими ссылками, внутри бесконечный цикл с брейком при успешном выполнении.
Спасибо за развернутый ответ.
Ну все, сука, ты огребаешь!
Бамп вопросу. Какое веб приложение сделать чтобы можно было забить гит? Или магаза или борды хватит вполне? Хочу заюзать фласк, он кажется как-то проще.
Как она понимает, что сокет готов?
вот стучит она в первый список и вызывает fileno(), получает дескриптор. И что с ним дальше? Что ей это дескриптор дает?
Буферы сканирует?
>AttributeError: 'HTMLParser' object has no attribute 'unescape'
Вот такая ошибка появляется на 3.9 при создании виртуалки в ПайЧарм. Кто сталкивался?
Поныкался по форумам чето там вроде сказали что объекта HTMLParser теперь нету и нужно обновить setuptools до последней версии. Обновил - нихуя не момогло.
В чем проблема откатить версию интерпретатора?
Это ведь самое простое решение: ты что-то поменял и всё сломалось? ПОменяй обратно.
Я всегда недоумевал с людей, которые обновляют ПО, которое выполняет все необходимые функции. Ты хоть знаешь, что нового в 3.9 пистоне? Бьюсь об заклад, что нет. А если и знаешь, то вряд ли эти фичи так критичны для твоей разработки.
Ваистину рашкинские форумы ахуенны. Спрашиваешь как что-то сделать, тебе говорят почему ты тупой и что этого делать не надо. Ты действительно думаешь, что я не могу откатиться?
Но ведь ты действительно тупой
https://tw511.com/a/01/19838.html
Там на японском, но гугл нормально переводит
Если коротко - то пока проблему никак решить, создавать виртуалку напрямую, а потом pс использовать.
>Ваистину рашкинские форумы ахуенны
это исключительно здешние быдланы, просто.
Я не прочь, только удаленно, опыт есть, знания тоже, поработаю чисто за еду, чисто символически, онли за опыт и чтобы получить знания в таких проектах. Готов на любую черную работу в смысле даже просто набирать код что угодно.
Ну вот от этого товарища письмо получил - напиши ему.
https://career.habr.com/fedorovvyacheslav
Если еще актуально, напиши в тг @yellowpearl я там могу прикрепить резюме и получить тестовое
Антош, я не аффтор вакансии, это мне на почту прилетело, чуть выше контакты автора глянь.
Мне эта понравилась из нубских. Я правда смотрел в оригинале, но вряд ли там что-то сильно испортили. https://rutracker.org/forum/viewtopic.php?t=5764403
Потом можно полирнуть тем же лутцем.
строка dictionary['name'] = value создает строку в словаре, просто оберни это в функцию
Не, то, как добавлять элементы в словарь, я знаю. Вопрос-то в том, как завернуть это говно в функцию и заставить её принимать пользовательские значения...
select items.id, items.price, count(purchases.item_id), sum(items.price), /Тут должны быть проценты/ from purchases
inner join items on items.id = purchases.item_id
where date BETWEEN '20190101' and '20200101'
group by items.id
order by sum(-items.price)
limit 10;
в треде по бд не отвечают, надюсь тут мне подскажут, уже слишком много времени убил на это
items = [i for i in input()]
Ты чо микрочелик?
Я сегодня писал парсер для гугл ньюс по заголовкам и потом делал ворд клауд, для тестового задания, сделай такой же, я дико кайфанул с результата(заголовки по запросу russia). А вроде если как программист хочешь дальше идти, то смотри линукс и серверы(сисадмин), базы данных(data engineer), веб(backend), ml(ds)
Сделал симулятор слот-машины на основе телеграма в качестве ГСЧ (недавно Дуров добавил dice в виде игрового автомата)
@rkeytestbot
Дружище, если бы я знал что делать, мне бы нобелевскую премию дали.
Ладно, офаю пока. На iOS клиенте какие-то проблемы, почему-то в чат при нажатии кнопки пользователем отправляется не dice а просто эмодзи.
Странные дела. На дсктоп и андроид клиенте все работает исправно.
> by
> пятерочку
Давай в соседи на Сурганова. Меня вон тоже уже год динамят в 98 из 100 случаев.
>Или, может не глупить и пробовать пытаться в юнити на шарпах?
А ты умеешь хоть немного юнити или шарп хотя бы?
Питон не про графику, а больше про обработку сложных данных, язык так построен. GUI делать неудобно, хотя и возможно, и весь питон там теряется.
Если ты делаешь игру с веб интерфейсом, то это интересно, сейчас реально очень серьёзные вещи в браузере можно делать, за этим будущее, но это больше на JS задача, чем на питон.
Если хочешь делать игру и умеешь тот же шарп-юнити, то да, заведомо лучше не выпендриваться.
> язык так построен
А как так построен что на нем нельзя делать графику уровня детроита например? Мб это не из-за языка а из за того что он не компилируемый или просто не та традиция делать на скриптовых языках игры. Мне вот просто интересно, почему на таких как пистон не пилят игры. Он же проще. Что Си что плюсы что шарпы - они же пиздец какие сложные, или на фреймах игры пилить проще и не надо заморачиваться с синтаксисом?
Ставить в один ряд по сложности си, плюсы и шарп - это, конечно, хорошая шутейка.
Шарп - высокоуровневый язык. Тебе там не придётся работать с указателями, препроцессором и т.д., разбираться в структурах данных. Сложность в работе с си шарп другая - тебе нужно освоить фреймворки.
Начал отвечать, но понял, что у тебя слишком толсто и грубо. Не интересно.
А вообще, любой язык лишь инструмент, с помощью которого ты решаешь какие-то задачи. Сложность в решаемых задачах. Если язык ещё добавляет сложности на пустом месте, это плохо.
Для разных задач разные инструменты. Очевидно, что питон не для графики и не для бинарных данных.
К этим переменным присвоить значения
Если переменные входят в промежуток(допустим от 10 до 20), то нужно посчитать их количество.
Ты, наверное, думаешь, что тут сидят написанные на питоне боты с развитым AI, которым ты скормишь задачу, что тебе препод дал, а они выдадут тебе решение.
Задумался о том, что было бы неплохо изучать питон и фреймворки с таким же ньюфагом как я. Мб проект какой совместный запилить. Кому-то это может быть интересно?
Я просто попросил помощи. Не понимаю как записать количество переменных если они входят в определенный промежуток
Заходишь переменную-счетчик, в цикле по вводу значений переменных проверяешь условие. Если условие выполняется, то увеличивает счётчик на единицу
>Мб проект какой совместный запилить
По опыту и наблюдениям, когда речь идёт о том, чтобы ЧТО-НИБУДЬ сделать, то шансы делать что-то адекватно примерно равны нулю. Особенно с мало знакомым человеком.
Есть смысл совместно делать какую-нибудь интересную для участников задачу, которая сама по себе интересна, и уже под неё изучать язык и фреймворки.
Подскажите секьюрно ли использовать аргументы с реквеста сразу в алхимии?
class TestAsset(Resource):
def get(self):
asset = request.args.get("asset")
listed_asset = Assets.query.filter(Assets.ticker == asset, Assets.listed == true()).first()
Cпасибо)
Допустим, у меня есть уже идея проекта учебного.
Суть в том, что я полный ньюфаг, что касается фреймворков. Хотелось бы найти такого же заинтересованного новичка, с которым можно было бы обсуждать все вопросы и помогать друг другу.
>А ты умеешь хоть немного юнити или шарп хотя бы?
Умею в шарп на уровне того, чему научили за полтора года в университете. Самостоятельно же более глубоко выучил питон, и в итоге что-то не нравится мысль, что нужно вкатываться в юнити и учить это все, если в питоне дело пойдет гораздо быстрее через лучшее знание языка.
Приложение разместить в одном репозитории github или bitbucket. Название репозитория должно состоять из рандомного хэша.
Для БД использовать Postgresql.
Для реализации приложения использовать django.
Для фоновых задач использовать celery, шину сообщений RabbitMQ, бэкенд результатов Redis.
Графики можно генерить самостоятельно, например через matplotlib.
Скажите это нормальные требования на джуна, просто я начал в себе сомневаться, ибо только с постгрес и джанго смог разобраться на уровне, чтобы понимать как и зачем каждая строка кода нужна, а тут еще минимум 2 сервера нужно поднимать под ребит и редис, либо это может троллинг, хотя все равно хочу сделать задание
Алсо скажите что значит бекэнд редис, я понимаю что для селери нужен брокер, но что такое бекэнд в этом контекте я хз и для чего его использовать, если результаты можно сразу в бд грузить, а отвечать с помощью реббит, разве нет?
Наебывают. Еще небось зарплатка тысяч 100 всего и собеседуют на долбоебскую позицию.
У меня всегда после такого отпадает желание продолжать или продолжать считать яблоки на кодворзе.
В рашке, с учетом что нету инфраструктруы и нигде этому не учат, хз как и где учиться такому и такое реализовывать. Но вместе с тем, что самое странное. мы имеем телеграм, вк. и охуенные сайты. Этому нигде не учат, но оно само появляется и при том лучше чем у других. Хотя что странного, все эти персы - из дсов, там и возможностей больше. До наших сел что тырнеты что пк дошли с опозданием в 30-40 лет. Остается просто смотреть, и разгружать вагоны, а по ночам считать яблоки на кодворзе.
Т.е для джуна без опыта работы это все же не уровень? А то у меня мозг немного взрывается от того, что мне надо сразу 3 новых хуйни поднять, когда я раньше этого не видел, вот думаю продолжать ли жопу рвать
Файл с тестовым называется Тестовое задание. Начинающий Python разработчик.
вакансия Python Backend разработчик / Data engineer, правда там опыт работы был от 3-х лет, но я подумал что они решили еще и джуна взять, поэтому мне приглашение отправили
Спасибо. Я тоже так думаю. Но иногда еще использую валидацию marshmallow
Разница между грейдами больше в опыте работы, в поддержке больного и длительного кода и в столкновении с реальными проблемами, а не в "стеке", не в наборе ключевых слов.
В принципе по верхам как-то нахватать ключевых слов можно довольно быстро. Ну чисто для теста поставить, посмотреть как работает, сделать тестовые примеры уровня hello world.
Реальное использование же такого стека подразумевает либо серьёзный проект, либо ужасно организованный проект, где бахаются ненужные технологии просто для того, чтобы были, это не редкость, кстати, особенно у модных и молодёжных.
Ну ХЗ, кто там чего хочет и почему. Может от тебя хотят способности разбираться в сложной инфраструктуре в первую очередь, что ты этого не боишься, то есть DevOps навыки, а не твой уровень как программиста.
Меня такие зоопарки очень смущают.
>а тут еще минимум 2 сервера нужно поднимать под ребит и редис
Сейчас это совсем не сложно, большинство таких серверов на раз поднимается через докер. Квалификация нужна минимальная, пока речь не идёт о полноценной поддержке эти сервисов.
А вот докер уметь и понимать очень-очень полезно, для современного специалиста в этих направлениях просто необходимо. Поэтому если с докером не знаком, то очень советую начать с него. Жизнь станет легче.
Бамп.
Я думаю может хотят узнать смогу ли быстро разобраться в стеке проекта, просто само тз не сложно - сделай форму, значения в бд, сгенерируй картинку, меня просто пугает куча неизвестной херни, в которой мне нужно разобраться на уровне копипаста чужого кода, чтобы был шанс пойти на собес
У меня еще не все места закрыты по изученным темам, поэтому боюсь еще что-то начинать, хотя общее представление пора бы получить
Возможно. Мне было интересно, делает ли кто-то так реально? Загуглить не проблема же. Правда хз, работает ли.
https://medium.com/@dwernychukjosh/setting-up-nginx-gunicorn-celery-redis-supervisor-and-postgres-with-django-to-run-your-python-73c8a1c8c1ba
Мимо анон
28 лвл без во и профильного опыта
Красроглазик линуксоид
Когда-то админил сетку и игровые серваки
Закончил мат школу
Есть шансы вкатиттся в МЛ, АД, ДС и т.д?
После разбора и изучения исходника питоньей ВМ.
Конкретно докер нынче довольно фундаментальная штука. Хотя времени требует, чтобы понять.
Но докер вообще много где сейчас используется, и особенно нужен тогда, когда надо с какими-то большими сервисами работать.
Если так тебе надо или что-то бездумно ставить в систему, пачкая её, имея одну версию и т.п., то так ты уже пользуешься готовыми сборками, настроенными, а установка-запуск зачастую делаются в одну строчку, ничто систему не захламляет и т.п.
Это реально полезная инвестиция времени. И в принципе это спрашивают, знание тебе в плюс, незнание в минус.
Знать надо на каком-то базовом уровне docker и docker-compose. В docker swarm (запуск распределённых систем) лезть не нужно совсем.
Есть перезвонный тред для таких вопросов.
Прежде чем про вкат спрашивать, попробуй сделать что-нибудь из МЛ-ДС прикладное небольшое. Если сможешь что-то интересное сделать, то наверное шанс есть.
А в стиле, чтобы тебя взяли и научили, 100% нет.
Мне не надо чтобы меня учили
Просто спрашиваю, что при устройстве на работу могут ли быть проблемы в связи с образованием и возрастом
Ещё проверяют на полиграфе, не пидорок ли ты.
Берут только тех, кому не больше 24 и кто окончил или физтех, или МГУ, или ВШЭ. Изучал ты программирование или нет, похуй, главное вот такой диплом и не больше 24, в крайнем случае 25. К.ф.-м.н. могу сделать исключение и возьмут в 26.
Виртуальное окружение (в.о.) это изолированные контейнеры, в которых хранятся определённые версии подключаемых через импорт библиотек.
1. В случае, если необходимо запустить скрипт с определённой версией пайтона мы указываем и её и в.о.?
virtualenv --python=/usr/bin/python2.6 <path/to/new/virtualenv/>
2. После создания в.о. скачивают в него библиотеку. Например: pip install requests. Затем в.о активируется и выполняется скрипт, путь к которому указан. Как скрипт поймёт, что ему необходимо выполниться именно в этом окружении на другой машине или после deactivate текущего в.о.?
Как вообще на другой машине окажется это в.о., если оно не переносимо? Можно выполнить pip freeze > requirements, но мне приходилось пользоваться некоторым ПО на пайтоне и оно не требовало от пользователя никаких действий вообще. Там даже .exe имеется, который запускается как обычно.
То есть непонятна сама концепция автоматизации этих действий для, предположим, стороннего человека, которому без лишних телодвижений необходимо запустить скрипт написанный в в.о. под определённую версию библиотек.
> Как вообще на другой машине окажется это в.о
git clone govno
cd govno
python3.8 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python govno.py
> Там даже .exe имеется
Можешь свое govno собрать в exe либой cx_Freeze
>
Сейчас это одно из самых крутых мест в направлении математики и смежных. Круче МГУ (мехмат, ВМиК, физфак) по крайней мере. ВШЭ поднялся, МГУ скатился. Насчёт физтеха не скажу.
Контейнеры это докер. Виртуальное окружение не совсем контейнер, поскольку как минимум тебе необходимо в системе иметь нужную версию питона, а может и ещё каких-то системных библиотек.
То есть это изоляция, но очень-очень ограниченная. Просто чтобы каши не было.
Автоматизировать установку можно через requirements.txt, просто его лучше формировать руками, а не через freeze, freeze очень-очень дурная практика. Нужна гарантированная работа и заморозка - используй докер.
> Как скрипт поймёт, что ему необходимо выполниться именно в этом окружении
Запускай через полный путь. Например ты можешь вызвать скрипт как
/opt/virtualenvs/venv_37/bin/python hello.py
или, в линуксе, добавить первую строку
#!/opt/virtualenvs/venv_37/bin/python
разрешить файл на исполнение
chmod 755 hello.py
и запускать как ./hello.py, не думая, где у тебя лежит твоё окружение и не активируя его дополнительно.
Где он в гите? На месте хуярится венв и разворачивается из requirements
venv нужно добавить в .gitignore
Ну как бы тебя не взяли ещё на питон-работу и совсем-совсем не факт, что возьмут.
Там может быть очень большой отсев, им может быть десяток человек прислали тестовое, уверенных, что написали хорошо.
Ещё и собеседование может быть, и брать могут по каким-то своим принципам. У тебя опыта работы в программировании, как я понимаю, нет.
Ты должен понимать, что тебя скорее не возьмут, чем возьмут.
Если очень жжёт, просто напиши этим товарищам, скажи, что вот тебе или надо выходить на другую работу, или устраиваться к ним, время не ждёт. Что ты хочешь к ним, в питон, но нужны гарантии. Пусть проведут собес быстрее.
Если ты им интересен, то это хороший повод для них провести собес раньше. Если ты им так себе, то значит в любом случае шансы попасть были минимальны, не ты один.
И учти, что работающий человек привлекательнее для найма, чем ищущий что-нибудь. Просто подсознательное ощущение у нанимателя, что ты востребован и с тобой можно говорить. Бросить через месяц-три текущую работу, перейдя на другую специальность, мотивируя, что эта специальность не интересна - вполне нормально и вполне этично.
Почему send+more=money имеет решение O = 0, M = 1, Y = 2, E = 5, N = 6, D = 7, R = 8, and S = 9.
В чем логика то? Как я должен присваивать цифорки? Нигде не написано. Я предполагаю что можно сверяться с алфавитом и буквы позади будут иметь меньший номер чем буквы ближе к концу.
>В чем логика то?
Как и в любых уравнениях, неизвестная величина заменяется буквой, одинаковая величина - одинаковая буква.
9567+1085=10652
Бамп.
И как такое решать? Сделал 4 вложенными циклами и пермутациями, находит за миллисекунду, но выглядит криво.
Есть ли человеческий путь для этого?
А если я няшный кунчик с волосами по лопатки? :3
Если распущу волосы и надену очки, то мой сосед по общаге начинает материться и угрожать, что шишка встанет и выебет.
Мимо.
Неть. Тока с тьяночкой!
В гугле не забанили, просто из этого:
Функция super(), возвращает объект объект-посредник, который делегирует вызовы метода родительскому или родственному классу, указанного type типа. Это полезно для доступа к унаследованным методам, которые были переопределены в классе.
я нихуя не понял
>>849347
Ну у меня есть одна идея, которая мне пока интересна. У моего универа нет ни электронного расписания, ни странички студента, ни вот этого всего с трекингом нагруженности, времени и прочего. Пока удаленка — это все делается через майкрософтовский функционал и бумажные журналы. Вот хотел бы сделать то, что впадлу было сделать моему универу, но пока пилю другой минипроект на рельсах, потом, если все еще будет интересно, возьмусь за это.
мимокрок
Есть класс Rectangle
В нем метод area(self, height, width):
Возвращает height + width
Есть класс Square, наследуемый от Rectangle
В нем метод area(self, length):
Возвращает super().area(length, length)
Думай.
В моем проекте нужно юзать pcl (point cloud library). Проблема в том, что она написана на c++ и разумных враперов на нее нет: есть один костыль заброшенный в 2017 и еще какая-то не очень вразумительная хрень (хотя я может искал плохо). В чем вопрос: какл лучше подойти тогда к этой либке? Возможно, стоит как-то ее скомпилить как dll и вызывать из питона, это возможно? Или лучше написать свой врапер (я просто таким не занимался и хз как это по трудозатратам)? Или юзать вообще вот этот заброшенный в 2017 врапер и дополнять? Короче немного теряюсь в догадках как лучше, посоветуйте плз
спасибо
как удалить элемент из словаря при помощи функции? при этом программа должна спрашивать пользователя, какой именно элемент удалять.
а как делать так, чтобы эти изменения сохранялись на диске? потому что при следующем вызове этого словаря после перезапуска программы удалённый элемент снова там.
Забавно, когда мне пришла идея сделать что-нибудь с расписанием вуза я узнал и про ботов телеги и про отдельное приложение под ios/android в котором было расписание полное
а что если написать телебота для своего универа...
А выйти на эту работу и просто ждать приглашение и свалить, когда придет, это ведь совсем свинство, верно?
Кстати очень крутая задачка с точки зрения программирования. Надо подумать.
https://codecamp.ru/blog/python-list-comprehensions/
прочитай и попробуй еще раз. Решение в одну строчку реально очевидное.
На, думой.
https://www.codewars.com/kata/5b5fe164b88263ad3d00250b/train/python
Пойду может сидра куплю и тоже посижу.
Еще один интересный варик: калькулятор заменяющий eval. (Строка с действиями ( например 1+2*3(7+1)) и их нужно вычислить не применяя евал.) Я хуй знает. Обычный калькулятор с выбором действия как нехуй делать, но вот такое посложнее. Подумываю о использовании рекурсии.
По кругу сдвигать? А если нет? Если А = 2 а B = 1, а сдвигается наоборот.
1 2 3 4 5 6 7 8 9
A B C D
1 2 3 4 5 6 7 8 9
A B C D
> чем джанго лучше фласка
Фласк топ, остальное не нужно
ну фаст апи и торнадо тоже топ
> бутстрап джнджа
Не нужно в 2к20, далай апи
>>849270
Как такой вопрос вообще можно задавать? Очевидно QT
>>849358
Можно просто добавить ретурнов, а не писать в элс
if input() != GET: return
if x != y: return
Ну и сразу можно вернуть соответствующую ошибку.
Ну или можно через словари, как тут https://stackoverflow.com/questions/9442724/how-can-i-use-if-else-in-a-dictionary-comprehension
10 букав 10 цифор.
Сколько комбинаций?
10!=ДОХУЯ (3628800)
Питон эту хуйню будет вечность перебирать и 12 секунд не хватит.
Нужно только цифры, буквы в одном порядке.
Ну и какую-то оптимизацию придумать, чтобы не делать совсем тупой перебор.
Нет разницы. Я просто упомянул буквы.
10! это перестановки без повторений.
Можно отбросить конечно перестановки с лидирующим нулем кроме как. Ибо он не может существовать. Но как это проверить?
Ифом? Который тоже жрет время?
Или кучей вложенных циклов в которых некоторые буквы не от 0 до 9 а от 1 до 9. (Но при этом кстати букв не обязательно 10 штук.)
Ну конечно еще перестановки где физически тупо выглядит. Ну 4 + 4 буквы = 5 букв, первая буква в последнем слове не может быть равна выше 1.
Но это ебать дерево ифов.
Ну я тупой короче и мне сложно. Подожду решения. Может кто-то сделает. Я хоть посмотрю как это делается. А пока буду пытаться сделать копию eval.
> Питон эту хуйню будет вечность перебирать и 12 секунд не хватит.
Ты прав. Для тестов из каты:
26.5s
9.4s
38.8s
20.5s
15.0s
Yep :3
>Ну конечно еще перестановки где физически тупо выглядит. Ну 4 + 4 буквы = 5 букв, первая буква в последнем слове не может быть равна выше 1.
Смотри условие задачи полное: >>849566
Там надо сделать универсальное решение, причём в уравнении может быть не два, а больше слов.
Решение в лоб это перебор. С учётом, что у нас букв может быть меньше, чем возможных цифр, в данном случае всего 8 букв, то перебор делается сначала по комбинациям цифр 8 из 10 в нашем случае, потом уже перестановка 8!
Вот код для получения всех возможных перестановок:
letters = set(word1+word2+answer)
cnt = 0
for digits_selection in itertools.combinations(range(10), len(letters)):
____for digits_permutation in itertools.permutations(digits_selection):
________variant = dict(zip(letters, digits_permutation))
________cnt += 1
print(cnt)
для 9 и 10 букв возможно 3628800 вариантов (10!), для 8 1814400.
сам двойной цикл работает весьма быстро, 0.2 секунды на всё, если закомментировать строчку с variant, если раскомментировать, то 3 секунды уже. Дорогая операция, может как-то оптимизировать можно.
первая буква, по идее, не может быть нулём, подразумевается в таких задачах. То есть m и s в нашем случае.
Дальше можно просто тупо проверить, соответствует ли словарь решению или нет.
Не делал пока.
Но не нравится это, как-то немного топорно и медленно. Надо что-нибудь более оптимальное, как в уме если задачу решать. Вариант в лоб работает, потому что цифр всего 10. Для 16-тиричной системы накрылся бы, хотя умно можно быстро решить.
>Ну конечно еще перестановки где физически тупо выглядит. Ну 4 + 4 буквы = 5 букв, первая буква в последнем слове не может быть равна выше 1.
Смотри условие задачи полное: >>849566
Там надо сделать универсальное решение, причём в уравнении может быть не два, а больше слов.
Решение в лоб это перебор. С учётом, что у нас букв может быть меньше, чем возможных цифр, в данном случае всего 8 букв, то перебор делается сначала по комбинациям цифр 8 из 10 в нашем случае, потом уже перестановка 8!
Вот код для получения всех возможных перестановок:
letters = set(word1+word2+answer)
cnt = 0
for digits_selection in itertools.combinations(range(10), len(letters)):
____for digits_permutation in itertools.permutations(digits_selection):
________variant = dict(zip(letters, digits_permutation))
________cnt += 1
print(cnt)
для 9 и 10 букв возможно 3628800 вариантов (10!), для 8 1814400.
сам двойной цикл работает весьма быстро, 0.2 секунды на всё, если закомментировать строчку с variant, если раскомментировать, то 3 секунды уже. Дорогая операция, может как-то оптимизировать можно.
первая буква, по идее, не может быть нулём, подразумевается в таких задачах. То есть m и s в нашем случае.
Дальше можно просто тупо проверить, соответствует ли словарь решению или нет.
Не делал пока.
Но не нравится это, как-то немного топорно и медленно. Надо что-нибудь более оптимальное, как в уме если задачу решать. Вариант в лоб работает, потому что цифр всего 10. Для 16-тиричной системы накрылся бы, хотя умно можно быстро решить.
Ох ебать. Нихуя не понял из твоего кода.
Эх, надо учить ваш синтаксис.
Там наверно нужны охуенные кучи ифов, либо похожие проверки, ибо например если ответ больше на один символ самого большого слагаемого то не имеет смысла искать первую букву выше 1. В общем если ответ выше на одну цифру то первая цифра ВСЕГДА 1.
Если есть слагаемое из двух букв и четырех и при этом первая буква суммы не равна первой буквы
abcd ef ghab
то b = 9
Ну и выдумать больше таких правил чтобы перебирать нужно было не кучу вариантов, а уже поменьше.
>>849628
> Вот код для получения всех возможных перестановок:
Пасяб канеш, но как таковые комбинации не нужны. Их проверять надо. А с их количеством время сильно жрется.
И количество слов может плавать, кстати.
В общем случае только перебор остаётся. Логические правила можно придумывать, когда у тебя сумма из двух слов. Вот тогда можно быстро именно логикой решить.
А когда у тебя может быть десять слов, хрен ты что придумаешь.
А твоя программа должна уметь решать все варианты, и поддающиеся логическому решению, и не поддающиеся, и такие оптимизации теряют смысл.
Отстань, иди кормить своего кролика жсонами.
Массив = список.
>а потом распихать в нужные строки с условием Не \
Чет я не догоняю, о чём ты и как мне это поможет. Распиши подробнее
А, вроде понял. У тебя в строке \a, и оно не сплитится по \?
Ну так в строке должно быть \\a.
Есть элемент "Steven Adams\adamsst01", на выходе мне нужно получить Steven Adams и adamsst01. Из-за спец символа '\a' обычное разделение split("\\") тут не работает. Как сделать чтобы работало?
по \\а тоже не сплитится. по \а сплитится, но на выходе 'Steven Adams', 'damsst01', а надо 'Steven Adams', 'adamsst01'. а теряется
Плюс не все будут с \а, у большинства элементов как бы будет только \, по которому надо разделить.
Не по \\а сплитить, а экранировать слеш в строке.
Намасте!
Это работает, но появился НЮАНС, с \b такая же хуйня. Я не могу каждую букву отдельно менять
Нашел ошибку, пикрил окончательное решение.
Наверняка можно сделать менее вырвиглазно, но мне не хочется заморачиваться.
Под что делать апи?
Норкоман, если ты хардкодишь строчки со слешами, то эскейпь их или делай raw.
r'a\a' или r'a\\a'
Это относится только для значений определенных в коде, во всех остальных случаях на это похуй. Всё.
Во втором случае без r, просто 'a\\a'.
Бамп.
ещё цыфырки и \xNN
Наверняка они в решаемой задаче просто не встречаются, так что можно не заморачиваться
def login_required(function=None, redirect_field_name=REDIRECT_FIELD_NAME, login_url=None):
"""
Decorator for views that checks that the user is logged in, redirecting
to the log-in page if necessary.
"""
actual_decorator = user_passes_test(
lambda u: u.is_authenticated,
login_url=login_url,
redirect_field_name=redirect_field_name
)
if function:
return actual_decorator(function)
return actual_decorator
Не понимаю что такое actual_decorator и почему вы в него передаем функцию
actual_decorator - это функция, которая сама принимает функцию и возвращает функцию.
Помсотри код user_passes_test для подробностей.
Автор вопроса не смог объяснить, почему.
Значит, почему-то нельзя сделать r-стринг.
Это ловушка, конечно, из которой надо выпутываться.
Декоратор это такая функция, которая подменяет декорируемую функцию. Т.е. если написано:
@decodator
def func():
____<body>
, то выполянеца это:
def func():
____<body>
func = decorator(func)
+ некоторые тонкости с аргументами и проч.
Мощная штука.
Ну ты код покажи. Покажи, как данные на этом самом диске хранятся. Файл там у тебя какой-то, куда всё записывается, БД или может вообще с левого места подгружается все
Перебором.
Прогоняешь все числа от 1111 до 9999 для первого слагаемого. Потом числа от 1111 до 9999 для второго, смотришь, удовлетворяет ли результат входным условиям.
А, блин, туплю. Реально, лучше буквы по очереди подставлять и пробовать
Пытаюсь поставить вот эту нейросеть:
https://github.com/xinntao/ESRGAN
Винда 10, поставил Питон 3.8, поставил numpy, torch 1.7.0+cu110, torchvision 0.8.1+cu110, torchaudio 0.7.0 и pencv-python.
Но при запуске тестового скрита нейросети получаю пикрелейтед. Как фиксить? Советы с гугла не помогли.
Дк он установлен черезе pip, пишет что все ок, саксефул. В папке с питоном папка с numpy появилась.
Посмотри версию нумпая. может он подтянул что-то старое. У меня такое постоянно бывает с 3,8
Делаю запрос requests.get на API вконтактика с токеном группы. Отваливается с ошибкой, что нет разрешения. Делаю с токеном приложения, отваливается с ошибкой, что нет доступа к такому методу. Хотя у приложения (standalone) есть все доступы.
Как вы стучитесь на API Вк? Живой пример покажите, пожалуйста, а то я заснуть не могу.
Вот решение моё.
Не очень мне нравится, тяжеловато. По-возможности разогнано. В 10 секунд самые долгие варианты на моём ноуте 10-ти летней давности считает.
https://ideone.com/nfJJum
на их движке не тестировал, исходник привожу, только под их тест надо функцию вывода подправить, но это тривиально.
у вк говняный айпи. куча еботы с доступами, ограничения на запросы и т.д.
так что я все выкачивал парсером с этой помойки через сессию.
a, b, c, d, f, h, k, q, w, e = (int(input()) for _ in range(z))
Как посчитать количество переменных которые больше допустим, 5
>Возможно, стоит как-то ее скомпилить как dll и вызывать из питона, это возможно? Или лучше написать свой врапер (я просто таким не занимался и хз как это по трудозатратам)?
Все возможно. Есть стандартный модуль ctypes, он умеет вызывать сишные функции, только надо их правильно описать, "представить" эти функции модулю ctypes, так сказать; есть cython, это такой язык на основе питона, там нужно обязательно указывать типы переменных, он умеет напрямую вызывать сишный код, а модули написанные на cython можно потом вызывать из нормального питона; есть всяческие инструменты для создания привязок, вроде pybind11, cppyy или CFFI.
Куча вариантов, выбирай, к чему душа лежит. Вот некоторые материалы по теме:
На русском:
https://habr.com/ru/post/466499/ - пример с ctypes
https://habr.com/ru/company/oleg-bunin/blog/518464/ - обзор разных возможностей
https://smyt.ru/blog/sozdaem-s-python-rasshireniya-s-pomshyu-pybind11/ - пример с pybind11
https://python-scripts.com/extending-python-with-c-libraries - еще пример с ctypes
На английском:
https://realpython.com/python-bindings-overview/ - обзор различных вариантов подключения к C/C++
https://wiki.python.org/moin/IntegratingPythonWithOtherLanguages - списки инструментов для интеграции питона с другими языками
>Или юзать вообще вот этот заброшенный в 2017 врапер и дополнять?
Ты про это говоришь? https://github.com/strawlab/python-pcl
Вроде, репозиторий живой, и на pypi есть пакет, 2019 года, https://pypi.org/project/python-pcl, если нужен новее, можешь попробовать сам собрать из исходников.
Там еще есть, то же вроде как живой проект https://github.com/davidcaron/pclpy
надеюсь я никогда не встречу такой пиздец на практике
Скажите что не у меня одного мозг при виде даже самой пройсто регулярки мозг отключается и я не могу заставить его работать смотря на регулярку
Бамп есть два ноута. Что можно придумать с фласком если один гонять как сервер другой как клиент для тренировки что можно написать?
Щитаю, что надо в шапку, такую годноту.
> Как прокачивать навык написания апи.
Почитать что такое restapi и с чем его жрат. Дальше, бери любые сервисы которые юзаешь(ВК/телеграм/двощ/пекабу/новостные сайты/платежные системы (Stripe, к примеру, можно бесплатно гонять) ) и пробуй подключать к их апи и смотри как они у себя реализуют.
> Опыта мало, хз с чего начать.
С пет проектов.
> Для начала у кого есть опыть в написании таких апи, что именно требуют компании для своих наебизнесов.
Умение их хотелки преобразовать в АПИ и сервисы.
> Я даже примерно не могу представить что им может потребоваться.
Логин/регистрация юзера/CRUD данных юзера, к примеру. TODO List.
> Да и портфолио соответсвуюего нету.
Пили акк на гитхабе и комить.
Ну почему же, если у тебя стоит задача втиснуться в какие-то лимиты, то вполне себе. Оно же не с нуля так пишется вчистую, а обдумывается, тестируется, срезаются углы тут и там. Выходит стремненько, но задача выполнена.
Пайп тоже надо внести.
Версию пакета
А есть ли разница вообще на чем делать апи? То что это перспективно и востребовано я понял. Щас вот решаю на чем делать. Джанго - слишком сложно. На фласке - еще более, но есть фласк рест, там вроде попроще. Есть фаст апи - там типо вообще просто. Посоветуй с этим.
И что все таки запилить, туду лист и что еще можно? Я просто хз где эти апи и как юзаются, читать то читал. Но там пишут так чтобы меньше конкурентов было.
Пикрил подходит к тебе и говорит "Скажи вим крута". Твои действия?
1. на кой эти больные ублюдки импортируют sys как _sys и atexit как _atexit. Нахуя?
2. Вроде как импорт from . import _defaults зашкварен сам по себе не? _defaults в названии модуля должно означать что этот модуль не предназначен для импорта же, а?
посмотри в гит блэйм коммит, может там есть пояснение
Авито на стажировку просило запилить жсон рест апи по укорачиванию ссылок, сделай такой, мне помогло разобраться что же такое рест апи, слабо теперь понимаю как я раньше себе это представлял. И да, как по мне джанго это не сложно, он идеально как по мне реализовывает mvc, вот тут у тебя бд, тут шаблоны, тут вьюхи, просто поищи курсы, статьи, доки, видео и во всем азберешься
По соглашению, если там есть андерскор, то к нему не надо лезть, это непубличное апи и вообще сьеби.
Второй вопрос это то же самое, в общем. Это часть либы, которую он использует и импортирует для себя, а ты пользуйся публичными интерфейсами, которые без андерскоров.
Да я почитал что такое рест апи, и что тако круд, посмотрел пару видосиков, вроде ясно так то, пут. делет, гет. пост. Но вот я никак не могу поянть, для чего этот апи нужен всяким ваито и яшам вк и тд. Те для чего он вообще нужен. Например если пилить апи для фирмы. Зачем этот апи нужен им? Ну вот ты сделел этот укарачиватель ссылок, кто им пользуется как он устроен? Апи вобще для кого? для людей, для компухтеров, для кого? А так мне удобней кажется фаст апи, рест флас, еще старлетт есть. Но те которые прям для этого удобны. Но я не могу понять, зачем нужны вот эти все жсон ответы и так далее. Конечно я читал про рест апи. но так и не понял зачем. Зачем именно для людей это нужно.
import subprocess
Это разные структуры и нужны для разного.
Лист словарей будет hui[0]['key'], хотя вряд ли нужен доступ по индексу.
Словарь словарей hui['key1']['key2'].
Спасибо. А для чего что нужно больше/меньше?
У меня несколько данных, которые мне нужно будет доставать взавичимочти от того что ввёл юзер.
есть текстовое поле
>text = Text(frame,height=10)
я добавляю в него текст в 1 строку, все ок.
но когда пытаюсь добавить в 2,3 и т.д. он всё ровно дописывает текст в прошлую строку
text.insert(2.0, "test text")
что я делаю не так7
Да, регулярки ахуенны.
Зачем тебе в клан дружок-пирожок?
Так ты разным переменным присваиваешь или так и копипастишь text = Text?
Ап, можно подробней плис про апи. Не очень хочется тупо копировать код, а хочется понять для чего можно заюзать чтобы было и полезно тоже.
Одну проблему исправляю, десять новых появляется
И это ещё простейший питон, лол.
>Зачем именно для людей это нужно.
Формат для стандартизации ответов который не всегда работает
А какая в питоне самая модная ORM?
Чтобы в include clause, window functions, update from select, lateral joins и т.п. умела?
Бля во я дебил, он же не работает с 32битным питоном.
я ньюфаг
Но если уж ты хочешь изъябнуться то надо юзать isinstance(string, str) потому что прямая проверка на тип не учитывает наследование
Но это все околоэкзотичная хуйня. Редко кто такое будет делать
Учить си и курить исходники, очевидно же.
В самой питоновской документации это не описивается.
Есть некоторые лекции и книжки, разбирающие внутренности cpython.
Анонимусы прошу поддержки! Бамп вопросу!
Дайте совет, как разбирать asn.1 на питоне?
Мне нужен не весь ber/der, а только небольшое подмножество, ну, там, SEQUENCE, OCTET STRING, INTEGER, CHOICE, REAL и т.д., еще нужны атрибуты OPTIONAL и IMPLICIT. На самом деле, не сильно дальше этого, поэтому не предлагайте, пожалуйста, pyderasn и pyasn.
Вопрос в том, как с точки зрения концепции организовать этот процесс? Классами теги делать или что и как? Вообще не совсем понимаю, короче.
Как будто кто-то знает, что это за хуйня.
Но по контексту примерно понятно, это отдельная дисциплина, по которой куча инфы.
Лексический разбор, парсинг и т.д. В эту сторону и гугли.
Пробую вообще без параметров и вообще ничего не выводит, хотя файл должен по идее быть прочитан целеком
Хз, я только учусь. Читаю пояснение: Метод read(размер) считывает из файла определенное количество символов, переданное в качестве аргумента. Если использовать этот метод без аргументов, то будет считан весь файл.
---
Но вот я и использую метод, без параметра, а это говно ничего не выводит.
Файловый хендлер это итератор, он исчерпывается по мере чтения.
оверкилл = из пушки по воробьям.
В чём проблема,
посмотреть как это сделано в pyasn1,
и сделать в том же духе но как тебе надо?
В чем смысл вот этого наследования вообще? Какой юзабилити?
Если бы вы учили дауна программированию, да в качестве первого языка давали питон, какой бы материал дидактический посоветовали?
Учу предка. Ебались даже со стек-машиной Форт, но регистры предка переполнились.
Спасибки.
inb4: "Питон для детей" слишком не для детей.
Всякие массивы и строки понимаем лол. Матешу еще больше. Циклы и if тоже Ок.
Тхенкс. А вдруг?
Глянул, по ней я буду учиться лол. Спасибо. Толковая книжка.
Для тупых таки книжки интересны по-прежнему.
Что-то ты батю недооцениваешь, лол.
Вот эту я ещё смотрел и она мне показалась слишком уж разжевывальной. https://www.manning.com/books/get-programming
По-моему, перевод пролетал, но сходу найти не удалось.
Спасибо. Да, транслейт не гуглится. Насчет 1 впечатления соглашусь, но там нашел индекс элемента строки, имеющий вид range. Не совсем пустой звук. Может заплачу автору.
Если клиент поддерживает ассинхронную итерацию, то можно
А, в степень подносить с помощью a^2 == a2
Если можно, то примерно через что реализовать? или читать как строку (а-1)(в-1) и через регулярные парсить?
поищи черепашку.
И все я равно я не понял. Чтобы запилить апи, мне надо чтобы у меня уже было приложение. И для него сделать апи. Но у меня пока нет никаких приложух. Мои действия какие, сделать апи на базе уже существущих? Поясни плис, нету опыт просто. Сделать не проблема, я просто не совсем понял для чего это нужно. Обращаться к апи будет человек или другие программы? Апи - это что-то типо телеграм бота чтоли?
без разницы кто будет обращаться, ты главное сделай так, чтобы параметры, передаваемые в твой апи, в итоге формировали запрос sql к базе данных и отдавали обратно запросившему ответ в виде json или xml.
Если я правильно понимаю, надо реализовать круд, те пут, делит, апдейт и криейт. Но а как же что нельзя сохранять инфу о состоянии клиента? Или занесение запросов в бд - не считается. Кароче, должно быть как - сам круд плюс - любая бд по типу sql? А веб морда должна быть или это не обязательно? И еще по архетектуре, апи же пилится под какое-то приложение, нет? Те типо есть телега, а ее апи - это уже как связаться с телегой? Хочу вот разобраться. А то идет хайп вокруг этих апи, а я валенок.
Как это делаь? Тупо методом добавить?
не обязательно под приложение. ты сайты парсил вручную? реквест, потом восхитительный суп, получил данные и использовал. примерно такая схема без апи.
а с апи ты бы написал просто реквест(АДРЕС_САЙТА/МЕТОД?имя=вася, пол=мужской) и получил бы жсон без парсинга.
как-то такое примитивное представление об апи у меня.
Парсил да. Вот про это и вопрос. Обращатья должны же другие за инфой или вносить данные.Типо сервиса. Не даром же пут, делит... Те у меня приложуха, типо вк. Я запили апи. Выдаю токены, и дт, через апи обращаются к самой приложухе. Так же и в фирмах. С тем же ТОДО. НАчальник просто вносит тодо, другие получают. Это все ясно. Но вот что меня смущает. Вот этот жсон. Я не думаю что какаянинть телка будет сидеть и curl получать задание ТОДО. Я вот и пишу, нужны будут эти морды, красивости и тд. Иначе я нпонимаю что такое апи, что оно делает и нахуй вообще нужно. По докам я понял что пилить его просто. Вот хочу сделать и поместить в гит. Но копировать чужой код - тоже такое. Но примеры с видосов или с доков - примитивны, не с реального поля боя. Но с другой стороны, я понимаю что пилить апи - доходня хуйня, тк а хх ру куда не сунься везде - флас, маска, апи. Те в сети тоже инфа - чисто общая, типо интерфейс для взаимодействия.. бла бла. КОнкретики нету.
наверное в запросах работодателей навык написания апи нужен для того, чтобы расширить свое присутствие в будущем в инете, сейчас у них голая база и веб-страничка с ценами, которую парсят самоделкины. будь у них апи, они бы выдали токены и не охуевали от нагрузок на сервер ну или хз какие мотивы у них там). а всякие морды и красивости должны остаться уже на совести самих нуждающихся.
Тебе как бекендщику должно быть похуй как апи использовать будут. Могут веб-морду сделать. Могут приложуху для мобилки навернуть. Могут башскрипт который курлом будет тянуть инфу, парсить и что-то делать в зависимости. В этом и смысл апи, что инфа предоставляется относительно универсальным методом (а не просто высирается в виде вебстраницы) который можно использовать практически где угодно. Тебе как разработчику нужно всего лишь реализовать нужные роуты. Ну или если совсем с нуля - то продумать сценарии использования чтобы получить мифический "удобный апи". Но ты думаешь в сторону "какая инфа нужна" а не "как использовать будут".
Что "в транзакции"? Там несколько десятков разных query, если их гонять через обычный for или попытаться загнать в транзакцию на уровне БД то на производительности это скажется не лучшим образом
Ты бы подробнее описал что у тебя за функция и что вообще происходит, а то непонятно зачем тебе хранить ошибку в модели вместо того, чтобы просто возвращать её текст в респонсе.
>>850668
>Джанго - слишком сложно
Для джанги есть django rest framework, тоже простой, но говорят, сериализация медленная.
def thread1():
while(True):
pass
def thread2():
while(True):
pass
if __name__ == '__main__':
t1 = Thread(thread1)
t1.start()
t2 = Thread(thread2)
t2.start()
t1.join()
t2.join()
У меня возникает вопрос, почему не запускают один тред а второй луп просто из мейна? Есть какие подводные камни?
Т.е. почему не так -
if __name__ == '__main__':
t1 = Thread(thread1)
t1.start()
thread2()
t1.join()
>Объясни пожалуйста что за обвязки
У джанги по дефолту куча мидлвейров (промежуточная обработка реквеста перед выполнением пользовательского кода), типа аутентефикации и сессии.
Ну и админка, орм и т.д., дохуя всего в общем
Потому что в примерах показывается как запустить два треда. Так как у тебя тоже можно
Начинаешь транзакцию, хуяришь много запросов, коммитишь. Это намного быстрее и скажется на производительности охуенно, потому что применяется скопом, а не по одному запросу.
Так ещё диды делали и это правильный способ пакетных апдейтов.
Можешь попробовать вставить мильйоничик записей в базу разными способами и увидишь.
Ну хорошо, как все таки лучше это апи сделать? Под что например, просто набить рандомной инфой? Или подсмотреть у кого-нибудь можно? Смутно представляю что это и с чем едят. Ну например, доставка пиццы?) хз или еще что. Что вообще это может быть. библиотека, склад. магаз. Наприер если сделать подобное и поместить на гитхам так чтобы не было совсем стыдно.
API тут
https://docs.rocket.chat/api/rest-api/methods/authentication/login
Согласно тому, что там написано - такой запрос:
headers = {
'Content-type': 'application/json',
}
data = '{ "user": "xxx", "password": "xxxxxx" }'
response = requests.post('https://xxxxxx.ru/api/v1/login', headers=headers, data=data)
pprint.pprint(response)
Должен выдавать какой-то внятный ответ json
Но он не выдаёт нихрена кроме сообщения о том, что я успешно приконнектился
<Response [200]>
[Finished in 1.178s]
Как получить json от этой шелупони нормально - по человечески?
Да, если я через терминал отправляю - curl то всё ок принимается
response.text или response.json выводи
В задании написано:
5) Сделайте закрытый метод printlog(), в котором с помощью функции print() выводите значение переданного параметра.
6) В методах get и set вызывайте метод printlog с параметром: «Запрошено свойство NAME» (для методов get) или «Изменено свойство NAME» (для методов set). Вместо NAME должно быть подставлено имя соответствующего свойства.
Я не понимаю как в этом методе обращаться к параметру класса
если атрибут достать
то getattr("экземпляр",str : "название атрибута", "дефолтное значение")
С версии х86 на х64.
Торговый бот на эфир
Не тупить
Я вас проверял.
Я через sqlalchemy их делаю по типу
async with get_db_connection() as connection:
----connection.execute(query)
потому что на проекте так положено, я не могу воротить что мне вздумается
Или это ебанина какая-то и нормальные люди пишут для этого шел скрипты?
Да я вообще видел это уже. Просто подумал, мало ли на дваче гении есть
>, потом парсить ее и выполнять умножения как тебе надо
>>> a = MyNumber(7); b = MyNumber(8)
>>> (a-1)(b-1)
42
>>> (a)(b)
56
чтоб не строкой писать, а в таком виде реализовать это? Через что можно сделать? Это в класе MyNumber реализовать нужно/можно?
Не очень понятно, чего ты хочешь. Во всяком случае, чтобы твой класс поддерживал арифметические действия, нужно реализовать специальные методы
https://docs.python.org/3/reference/datamodel.html#emulating-numeric-types
Самая лучшая у джанги и sqlachemy перестает быть говном, из асинхронных многие только пилятся
Теперь понял, благодарочка!
Ну вот корзина состоит из
форинг на пользователя
форинг на товар
количество товара
цена товара
сумма по товару
как мне динамически цену менять и сумму, я чет не понимаю :(
Не пойму, где ошибка? У меня никак такие коэффициенты c не получаются.
Я использую tortoise orm для сохранения моделей в базе и pydantic для валидации и сериализации (оно встроенно в fastapi).
Модели могут быть разные и одинаковые по полям. Думаю сделать абстракный класс для pydantic моделей, которые подразумевают отражение в базе и сделать там методы convert_to_orm для преобразования в orm модели и методы сохранения/апдейта, которые будут юзать convert_to_orm.
А на что будут смотреть?
Так то да, но шо попросили, то и ваяем.
Думаю сейв в продукте переопределить и в нем инициировать обновление корзины, на сколько это решение говно?
У тебя другого выбора и нет
или можно засунть модель корзины в redis или любое другое in memory хранилище, а в базу сохранять только какой-нибудь wishlist
А мы как должны понять, где у тебя ошибка? Мы блять Ванги тут что ли сидим?
Спасибо, анон, за идеи и участие :)
Чем бы вменяемым requirements.txt генерировать вместо freeze и ctrl+c ctrl+v?
БД access, таблица Client есть. При открsnbb окна должен в tanleView показать таблицу, но крашится.(( ЧЯДНТ?
Применительно к укорачивателю ссылок - в авито предпложим есть функция, которая на мейл тебе кидает что твою машину хотят купить, если ее тригернуть, то функцию собирает данные и отправляет в этот апи, в нашем случае отправляет ссылку, а в ответ получает укороченую ссылку, которую вставляет в мейл и получается в мейле короткая ссылка, а потом они запиливают функцю копирования объявления - кнопка поделится, эта кнопка тоже отправляет такой же запрос на апи и получает ссылку, а потом они придумают еще 10 мест, где им хотелось бы иметь короткие ссылки с их доменом. Таким же образом у вк есть, например апи для авторизации или есть апи какого-нибудь сайта погоды
не согласен, я бы посоветовал прочитать главу про системное программирование с переходом в потоки и multiprocessing
Это копия, сохраненная 14 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.