Это копия, сохраненная 9 ноября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Тред посвящён новому поколению и его выбору. Питон - выбор нового поколения. Новое поколение не может ошибаться, за ним будущее.
Предыдущий: >>2428654 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
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
> Почему старый как говно мамонта петухон одновременно является зумерским языком в наши дни? Откуда такое противоречие, в каком-то детском мультике главный герой писал на петухоне?
Интересная тема. Реально большой отрыв между зумерами и средним возрастом. Единственный язык, даже у JS такого нет, там равномерная пропорция.
Потому что петухон - это когда в жопу ебут.
Он просто удобный. Удобное подхватывает молодёжь, корявое и неудобное постепенно отмирает. Так во всех сферах.
где фото бля?
>абвгд+иклмн
>вебкам
Насранно. 100% выглядит как тоня бабкина, или хуже.
Небось и весь кодинг это хелоуворлд и гугл+стаковерфлоу.
https://pyimagesearch.com/2018/08/17/install-opencv-4-on-macos/
Естественно, как и ожидалось, у меня нихуя не получилось. Поясните, пожалуйста, вот у меня стоит питон 3.10. Как думаете, может быть дело в том, что у меня нихуя не получилось, потому что требуется питон именно 3.6? Opencv4 может, так сказать, поладить с питоном 3.10?
А ещё подскажите, пожалуйста, где почитать про то, что за хуйня там вообще происходит? Почему по гайду надо каким-то хитровыебанными командами скачивать OpenCV4? Почем обязательно там что-то компилировать надо? Какой-то блятб мэйк фэйк, почему так сложно OpenCV4 установить? Почему нельзя одной командой типа pip3 install opencv-python всё решить? Почему там надо чёта компилировать, какой-то cv2.cpython-36m-darwin.so cv2.so файл искать. У меня очко бомбануло, я всё по инструкции сделал, но у меня нет такого файла cv2.cpython-36m-darwin.so cv2.so хоть усрись.
Как узнать, откуда автор взял, вот эти шаги? Я хочу детально во всём разобраться, узнать где я ошибся. Но для этого надо не просто повторять шаги, а осознанно знать, что именно и для чего делает автор. А чтоб узнать в чем замысел автора, это надо узнать, где нащупать начало всей этой хуйни, откуда начать копать? Надо доку opencv проштудировать от корки до корки? Верно?
Обычно прозрачно и ставится, командой
pip install opencv-python
Насчёт opencv не скажу, но какие-то пакеты могут требовать сборки, она обычно происходит прозрачно, просто долго, но при этом часто требуются зависимости, которые ставятся в систему, а не через pip. Собственно из-за них, скорее всего, сборка и требуется.
К сожалению не всё работает просто через pip install.
На Макоси никогда не работал, что там с макосью ХЗ, думаю чуть больше пердолинга должно быть.
>Как думаете, может быть дело в том, что у меня нихуя не получилось, потому что требуется питон именно 3.6? Opencv4 может, так сказать, поладить с питоном 3.10?
Вряд ли.
В твоей доке сказано
> It is extremely important to use Python 3.6. By default High Sierra and Mojave are coming with Python 3.7 now. It sounds good, but Python 3.7 is unsupported by Keras/TensorFlow
Просто дока 2018 года, говно мамонта. Тогда только выпустили 3.7 и ключевые пакеты не успели его поддержать.
Сейчас все пакеты 3.10 поддерживают, потому что 3.10 уже давно выпустили и все пакеты его поддерживают.
Спасибо огромное за развёрнутый ответ
Там самая ржомба происходит после установки opencv4.0.0 в этом гайде в шаге 6 там надо пройти по пути: /usr/local/python/cv2/python-3.6
и найти там файл:
cv2.cpython-36m-darwin.so
Но у меня ни пути такого нет, потому что у меня пистон 3.10, там вообще всё как-то по-другому в плане расположения папок чем написано в гайде. А файла cv2.cpython-36m-darwin.so вообще нет нигде. Я пробовал искать через Файл - Найти, вообще нигде нет такого файла на всём устройстве.
И я даже не знаю, что искать, что гуглить, где может быть написано почему у меня нет этого файла и как быть если у меня пистон 3.10. Я настолько обескуражен, что я вытираю слюни с воротника своей рубашки.
>И я даже не знаю, что искать, что гуглить
Конкретно я тебе ничем не помогу, хотя бы потому что я на линуксе
Я тебе советую искать другой мануал по установке, по-моему их должно быть чуть больше чем грязи.
Благодарю
Я вроде понимаю, но не могу связать все воедино, чтобы сформировалась целостная картина.
Стоит отложить тему или просто тупо знакомиться с тем, что преподают и попутно набираться опыта, чтобы как-нибудь потом понимание пришло?
А, хуету какую то написал. Но все равно не работает. Не так print(banner) не так print (banner)
Ладно, не буду позориться. Хуета какая то не рабочая
t.start()
TabError: inconsistent use of tabs and spaces in indentation
Тут ты проебал табуляцию. Суть в том, что можно делать 4 пробела, а можно один Таб, но мешать их нельзя, иначе будет то что тебе написало. Засунь в какую-нибудь ИДЕ, возможно даже онлайновую, она сама все поправит.
Спасибо большое. Инструмент autopep8 на линухе исправил всё. Теперь работает
Ну я и дебил. Я после твоего поста зашёл в get started гайд, а там вверху ссылка как через pip установить opencv. И лишь ниже идут ссылки как скомпилировать из исходников. Я до твоего поста эту вверху ссылку не увидел и сразу заходил в ссылку как на маке компилировать из исходников. И очень мучился и страдал, выполняя шаги и не понимая почему так всё сложно.
Смейтесь надо мной и гоните меня.
Да, мне 33 года, я не знаю английский, перевожу копипастой в гугл переводчик, поэтому я не смог сразу понять, что мне надо было заходить именно в ту ссылку, где pip.
октеты я вытащил из ввода в целочисленном типе
| пробовал? У тебя с логическим сложением проблема или конкретно с фстрингом? Что пробовал и что получилось? Нихуя ж не понятно.
[code]
print(f'binary logical AND: {(int(n[0])):08b} && {(int(n[1])):08b}')
[/code]
так не работает нихуя чета
Десять лет унижений скриптомакак, только за что чтобы были скобочки в print?
Почему сознательные люди из числа разработчиков не остановили его еще в 2010м?
Ведь ясно было что он скурвился, еще когда он пошел работать на гугл.
Почему так?
>Объясните мне, зачем Гвидо понадобился питон 3?
Ебля со строками и их форматированием, бич старых языков, в плюсах до сих пор страдают. Хотя изменений нужно было побольше накопить перед выпуском новой версии. До 3.5 тройка действительно была непонятной хуетой.
>binary logical AND
>&&
Да, ведь оператор бинарного и именно так и выглядит, действительно, почему не работает.
Там было довольно много изменений на уровне си-апи, на уровне объектной модели и другого.
Вроде как вычистили питон от болезней детства, но портировать многие библиотеки было сложно.
Но самый большой тупняк сделали по глупости. Во втором питоне юникод строки начинались с префикса u"", а в третьем это был иллигал синтаксис.
Из-за этого даже самый примитив невозможно было писать совместимо, чтобы и на 2, и на 3 работало. Реально пидорасы. Спустя несколько лет добавили в 3 поддержку префикса u"".
Правильно сделали, что перешли, но могли бы сделать сильно умнее, чтобы не так болезнено было.
Причем я бы еще понял если сишник какой-нибудь таким бы занимался по старой памяти, он хотя бы знал бы что и зачем он делает. А тут байтоебство на скриптовом языке, не зная ни синтаксиса языка, ни операторов байтоебства, мам смотри, я прогромироваю.
Обернись это в функцию и воткни return вместо break. Ну или бросай ошибку, но это очень хуевый метод. А зачем тебе блядь, пятикратная вложенность?
>не создавая при этом функций?
Вроде бы никак по нормальному не сделать, это тебе не си.
1. Можно сделать переменную выхода, и в каждом цикле на каждой итерации её проверять, но это некрасивый громоздкий код.
2. Может быть можно создать какую-то очередь итераций в виде генератора, после чего обрабатывать её в одном цикле и выходить - но по смыслу это будет выглядеть как функция с return, а читаться (и возможно даже работать) намного хуже.
3. try <тут твой четверной циклы>, raise hueta вместо break, и потом пустой except: ... - написать очень коротко, но работать скорее всего будет не очень эффективно. А может быть и эффективно. Хотя о чём я вообще, если питон в 200 раз по скорости нормальному языку проигрывай и эффективность с питоном нужно очень аккуратно рядом ставить, только в контексте эффективности написания кода.
Обещают, что процессы налажены, никакого маразма, скоро перейдем на современный стек, мамой клянусь.
Стоит туда вкатываться или ну нахуй?
Если второй питон, то точно нахуй. Если только не стоит приоритетной задачи переехать на 3.
Легко, если проект старый. 10 лет назад запустили, а сейчас хотят поддержать или перепилить
Для вкатуна норм? Я в мухосрани, выбора нет.
Надо же с чего-то начинать.
Плюс в описании сказано, что работа будет по переносу кода на новые версии языка и джанги, а не поддержка легаси.
Если тема для тебя новая, лучше вообще стараться не сравнивать себя с гениями-сыночками маминых подруг и другими задротами олимпиадного программирования. Сравнивай с собой вчерашним - если получается быстрее - заебись, прогресс есть, ты охуенен, плюс мотивация к изучению дальше.
В тех же medium-hard задачах на литкоде можно сдаться и сразу полезть в дискашн и скопипастить решение, слегка разобравшись в логике. А можно написать свое кривое, медленное, но прошедшее все тесты решение и почувствовать, что ты что-то можешь. Потом попробовать улучшить алгоритм, что-то переписать, чтобы он работал быстрее. Главное, чтобы ты видел прогресс относительно самого себя. И уже после всего этого можно посмотреть чужой код и сравнить со своим лучшим.
Третий питон очень долго никто не поддерживал, ничего под него не было, даже джанги. Поэтому реально ещё в 2012 активно стартовали проекты на 2.6-2.7.
Доки на джангу:
https://docs.djangoproject.com/en/dev/releases/1.4/
https://docs.djangoproject.com/en/dev/releases/1.5/
Релиз 1.4 23 марта 2012
релиз 1.5 26 февраля 2013
Версия 1.4 была только для второго питона. В версии 1.5 появилась ЧАСТИЧНАЯ поддержка третьего питона. При том что третий питон уже был доступен в 2010 году.
Аналогичная ситуация и с кучей других фреймворков, пакетов и библиотек.
Реально полноценный переход на 3 где-то в 2014-2015 году состоялся, вот тогда уже все поддержали более-менее.
Период 2009-2014 был для питона "потерянной пятилеткой". Из-за того, что очень косячно организовали миграцию на новую версию.
Чистый питон мало кому нужен, когда никаких пакетов нет. А маинтейнеры не стремились переходить, потому что сложно и потому что другие не переходили.
В результате популярность питона в начале десятых сильно просела. Потому что не хочется стартовать проект на легаси-ветке языка, а на современной невозможно, потому что ничего нет. Это убивает. Вот такая вот засада
Значит тебе надо досканально знать две версии питона и хуйнадцать версий джанги со всеми их косяками. Ищи дальше
Смотря что за проект и что там за стек, но реально глубину жопы можно понять уже только когда в неё залезешь.
Мне кажется в таком варианте как раз интересно может быть, когда есть установка на обновление-рефакторинг, фактически это твоя основная задача.
Я думаю я бы взялся за такое.
а такая?
Ничего не понимаю в 3-5 задачах, подскажите что делоть :c
У меня скачано, так что где-то на варезниках должно быть.
регекспами
https://github.com/sanic-org/sanic
Чем этот очередной асинхронный фреймворк отличается от других кроме встроенного uvloop, который за 2 строчки настраивается?
Вы че ебанутые? миллиард virtual env всяких, что использовать то? шобы актуальное на 22 год
ну каждому свое
я вот pdm использую. всяко сильно вменяемее пипа
он PEP 582, но также в нем есть и виртуаленв
Рост вводится в метрах а вес в кг.
Написал if вес > 3 кг
А = вес
Иначе Б = рост.
Получается он примет и рост и вес за А если я введу 1кг.
Как отделять эти данные для расчёта по другому?
А вообще в таких калькуляторах вводятся не метры а сантиметры и тогда данные могут быть вообще одинаковыми, например рост 180 и вес 180.
Тут на самом деле неоднозначный вопрос, какие пары (рост,вес) считать реальными, а какие нет. Допустим, для веса 1кг, какой максимально допустимый рост? Вес 1 кг - это плод месяце на 5-6м или выкидыш на жизнеобеспечении. И какой у него рост будет примерно? Ну скажем в пределах от 30 до 50 см. Окей, для 1кг мы подобрали границу. Но не будем же мы для каждого веса писать условие. И что делать с дробными значениями? Можно ли подобрать какую нибудь линейную зависимость для максимума и минимума роста в зависимости от веса? Или нелинейную? А может быть потребуется система с параметром, чтобы хотя бы приблизительно задать нужнкю область.
Короче, ты слишком усложняешь для такого уровня задачи, забей.
ну можно по весу или росту
если чел вводит свой рост в ниже 175 то пишешь ему что он карлан и шлешь нахуй
так же и с весом, например ставишь диапозон от 60 до 100
если он вводит больше или меньше соответсвтенно пишешь что он инцел
все, задача решена
В бизнесе требованиях не указаны границы веса и роста, поэтому значения могут быть любые
Ну так рассчитай для роста 180 и веса 1, может пользователи твоей библиотеки будут проверять различные гипотезы, у тебя нет требований ограничивать рост и вес в задаче
>программистки
Залетухи, раздвинувшие ноги перед кабанчиком, работающие по принципу "Коля, ты же в этом шаришь, помоги пожалуйста закрыть тасочку"
В маняфантазиях может и так, а на деле все хоть как-то понимающие в си жирные и всратые.
Алсо тян с пика ничо такая, даже с уебищным кадром, который ты ювелирно выбрал.
Это ко всем относится, даже к кунам
Ты или думаешь о том, как красиво что-то написать и реализовать, либо о том, как привести себя в красивый вид. Плохо совмещается
А тян на скрине ничего, правда судя по тату на руках в голове проблемы какие-то
Логика избыточная, можно сделать просто
if weight > 30:
___fat pig
elif weight > 25:
___overweight
elif weight > 20:
___normal
else:
___underweight
А ещё читал пип-8, незыблемое правило четырёх пробелов. Не соблюдать его это просто как в лицо плевать, если не хуже. Сразу "до свидания, спасибо за уделённое время"
По мелочам ещё всякие пробелы вокруг операторов и т.п.
Ещё зря ты делаешь, чтобы автоматом решение о весе-росте принималось алгоритмом.
Ты думаешь это круто, но нет. Не нужно, просто не нужно. Автоматом разделять рост в метрах и сантиметрах полезно
Сделай просто, чтобы был сначала рост, потом вес. А если усложнять хочешь, то ещё чего-нибудь реализуй более полезное.
Ваще похуй. Если оно валидно, то любой редактор тебе переформатирует в пять сек в нужный вид, а себя можешь хоть на голове ходить.
>6 elif else подряд
что не так то? это ж питон, который столько лет сопротивлялся "зачем swicth/match если есть if"
Но ты же понимаешь, что как только питонист видит так отформатированный код, он сразу понимает, что ты залётный, и дальше только ищет, к чему бы ещё придраться.
Это просто на уровне рефлексов
Я хочу, чтобы он в бесконечном цикле слал запрос на сайт, получал с него инфу, и в зависимости от содержания инфы менял никнейм конкретного пользователя.
Я сделал запросную часть, я поднял бота
И вроде осталось добавить там типа 4 строчки чтобы этот самый ник менять а я не могу понять как сделать нахуй!!
Короче вот как вот такой условно код сделать:
while true
if a > 15:
member#228.edit(nickname = govno sobaki)
time.sleep(600)
пысы я не вкатун поэтому знаю мало, просто балуюсь
Малой, если сказать по делу нехуй, то газани нах.
По умолчанию модель на основе ContentType и GenericKey связана со всеми моделями джанги
Да никакой, я просто 'thumbnail' указан в fields. Ну и с картинкой также, только 'image'. Метод я использую, если GET запрос, тогда вместо них 'image_url' и 'thumbnail_url', потому что я не понял, как сделать чтоб одно и то же поле и на запись могло рабоать и чтоб абсолютный путь возвращало, когда гет запрос. Ну в общем с оригинальной картинкой все работает.
Ну как я читаю в гугле, вроде вот надо в bytesio сохранить и потом какой-то объект создать, но там этих объектов всяких дохера у джанго, я не понял какой. С File вот чет не работает.
Честно говоря, не особо понятно что ты пытаешься сделать.
Зачем ты на бэкенде кропишь изображение? Пуска его фронт обрежет и кинет тебе в json
Потому что на фронте я ебался ещё больше, так и не понял как сделать. Там тысяча сраных библиотек от каких-то китайцев с этими кропперами, которые хуй пойми как работают, половина не устанавливаются даже потому что там в этом сраном жсе какие-то версии фреймворков с разным синтаксисом или хер пойми чем и библиотеки старые не подходят для новых, это вообще пиздец. Я понял как сделать чтоб он координаты обрезки возвращал и ладно.
Ну то есть я раньше делал как-то что он сохранял обрезанное уже, но сейчас я захотел чтоб и оригинальное было и обрезанное. А на фронте я не осиливаю. Там какие-то тоже эти потоки итд.
Ухбля, вот так сработало как надо. Нужно было имя у файла указывать. Только обрезает херово. Ну буду разбираться. Наверное я как-то перепутал координаты.
Только конечно он 2 раза и основной файл сохраняет выходит, потому что save 2 раза вызываю. А как файл из реквеста достать, чтоб в PIL открыть я чет тоже не допер.
Ну и какая альтернатива?
> Там тысяча сраных библиотек от каких-то китайцев с этими кропперами, которые хуй пойми как работают, половина не устанавливаются даже потому что там в этом сраном жсе какие-то версии фреймворков с разным синтаксисом или хер пойми чем и библиотеки старые не подходят для новых, это вообще пиздец.
вся суть современной разработки софта
Сконпелять, убрав проверки? Но хр это как-то уж слишком древне, возможно там нет каких-то нужных апи, но можно попробовать.
В 3.5 версии убрали/заменили какие-то функции, которые нужны для работы на хрюше. Так что просто убрать проверки не проканает, надо по ходу какие-то библы подсунуть.
Я понимаю что это древнее говно, но очень надо софт на хп запустить.
Нет, я где-то читал, что они тупо зарубают старые версии, чтобы не возиться с их поддержкой, хотя могло бы работать.
Но сам питон тоже не стоит на месте, так что что-то может и отвалиться из-за старости платформы.
Где я проебался?
Не лезь в это говно. Если тебе оно понадобилось скорее всего делаешь что-то не так
Вряд ли, т.к. я для решение нужной мне задачи в джанге есть только два основных способа - либо Generic модели, либо django-polymorphic. Все остальное - изобретение велосипеда
ну и про бд почитать дейта желательно + именно по синтаксису sql, затем джангу щупать
зеленый
Нет. Плана никакого нет. Это всё изучается на практике, а не в теории. В теории ты не сможешь подготовиться. Только пойти хуем и подняться на реальных задачах. Так везде, и ойти не исключение.
Имхо лучше Byte of Python за пару вечеров прочитать и сразу идти писать код.
Если ты реально осилишь 100-200 задач на codewars (к примеру), то неплохо закрепишь синтаксис у получишь представление о базовых алгоритмах и структурах данных.
Если речь идет о паттернах ООП, то хз зачем тебе это, если ты начинающий, но если супер интересно можешь почитать
Ну и сразу после этого хуячь веб на джанге, хотя лучше drf, если конечно не хочешь делать фуллстек проекты на джанговых шаблонизаторах
Кому-то нравится, когда контроллер тонкий, вот и все
> Byte of Python
Хочется взять за волосы и ебашить об плитку зассаного туалета ебалом.
Ну совершенно же бесполезное говно. Если бы ты ещё деньги за это получал, но нет же никаких рефссылок. Зачем советовать это?
Или ты сам вкатун, который нихуя не вкатился, но это говно ты понял?
Поясни свою мотивацию, пожалуйста, очень интересно.
>Byte of Python за пару вечеров прочитать и сразу идти писать код.
Что из этого тебе не понятно?
Ну напишешь ты введите х и у и выведешь сумму, что дальше?
Оно не дает никаких знаний дальше этого.
Мне всегда казалось, что это какой-то троллинг вкатунов.
Можешь привести примеры полезных книг по питону для начинающих.
Если хоть один экземпляр больше 200 страниц - сразу послан нахуй
Это не полезная книгая для начинающих, это бесполезный кусок говна, который зачем-то спамят регулярно в этом треде и я стремлюсь понять, для чего. Это вкатуны пробуют насрать конкурентам? Расскажи как есть, очень интересно.
Если ты реально вкатился, то должен понимать, что это реально хуйня, но зачем-то до сих пор советуешь. Значит не вкатился? Признайся.
Алсо, чтобы читающие не пердели, я рекомендую как первую или the python apprentice и последующие, или introducing python 2 от орайли (дальше пока пробел для интермидиейт(?), дальше fluent python 2 от того же орайли, хотя можно зачесть его как интемидиейт). Также рекомендую начала си по вкусу (у маннинга есть хорошие книги, праты и кочаны нинужны, и тем более к&р) и изучение исходников cpython - есть специальня книга по этому от realpython, есть курс на ютубе по второму, но суть примерно та же.
Скриньте этот твит и ставьте в шапку, рассылайте нубам вместо блевотного байт оф питона.
Алсо, ещё вспомнил, есть хорошая книга illustrated guide to python как нубская. Очень хорошая как единичная.
Для сириус бизнеса лучше apprentice и дальше.
>the python apprentice
Paperback : 352 pages
>fluent python 2
Paperback : 1012 pages
Идешь на хуй со своими талмудами
>и тем более к&р
Можешь развернуть плз? Как раз залезаю в компилируемые языки, в т.ч. сишечку по k&r чтобы ускорялки всякие делать
мимо
Человек спросил "как научиться писать?"
Ему отвечают "ну, нужно читать".
Понимаешь в чем противоречие, недоумок?
Нахуй идешь ты со своим клиповым вниманием, даун.
>>51463
k&r это древняя книга с древнии подходами, сейчас так никто не пишет. Для реального опыта нужен базовый юникс и современная книга по си, они есть у маннинга. https://www.manning.com/books/modern-c
По классическому и современному юниксу могу тоже посоветовать, если нужно.
Действительно, не подумал что-то.
Все на самом деле предельно просто, скачиваешь идешку, открываешь, да кодишь себе без задней мысли. Сразу начинай пилить пет-проекты, без них сейчас никуда. Когда напишешь что-то стоящее, так сразу на работу и возьмут. Секретов тут и нет, главное стремись к своей мечте.
Нет противоречия, недоумок.
>modern-c
О, найс, она у меня как раз на рабочем столе уже есть скачанная
>нужен базовый юникс
Имеется ввиду работа с вещами типа glibc? Посоветуй тогда уж и по юниксу, было бы здорово
>Если ты реально осилишь 100-200 задач на codewars (к примеру), то неплохо закрепишь синтаксис у получишь представление о базовых алгоритмах и структурах данных.
>советуешь забить на базовые области знаний из CS
В том числе.
Старье - https://www.amazon.com/Unix-Programming-Environment-Prentice-Hall-Software/dp/013937681X/
(1983, ебать вас в сраку, оно ещё актуально.)
Новье - https://nostarch.com/howlinuxworks3
Ещё бонусом - https://www.amazon.com/UNIX-History-Memoir-Brian-Kernighan/dp/1695978552
Худлит, но помогает с пониманием всего этого. Есть пиривот.
Вообще-то такие вещи в студенчестве учат, подразумевается ты это должен знать к моменту вката
Тут никакого цс нет, дурачок, речь о нубских и мидловских книгах.
Но некоторые дауны советуют какие-то байт оф питоны, как нубские книги.
А никсы так и самому нубскому нубу знать надо, это база важнее чем сам язык, который только дополнение к ней.
Что там в никсах тебе знать для джуна при том, что индустрия в основном на убунте сидит? Пакетные менеджеры с парочкой команд для грепа логов?
Сразу после твоей маман вертел.
Ты бы не огрызался, а слушал старших. Любая хуйня это юникс, кроме дотнета. Юникс знать важнее, чем олгоритмы. Их тоже знать полезно, но их можно загуглить, они универсальны. Полезно читнуть книгу, чтобы знать, что именно гуглить, да.
дядь если челик вкатывается и хочет апишки пилить ему нахуй книжки об устройстве языка твои??? укус питона - курсы на степике - дальше на ютуб или курсы по джанге скачать, пилить пет и искать работу, толмуты твои потом достанет если интересно будет а пока надо вкатиться чтобы практику получать
Доцкеры, ипц, пермишены, вимы базовые(хотя там вроде нано в убунтах, пиздос), крон жопы, сокеты (тут сравнимо с шиндой, да не совсем), ссх с ассиметричным шифрованием, гит (базовый в линуксах), щепотку баша. Это то что я за пять сек вспомнил, ещё куча всего.
Ну пусть ищет работу и ноет, что его никуда не берут. Апишки он будет пилить, лул.
>Докер
Не относится к знаниям никсов
>ICP
Чуть чуть да, но ни разу не видел, что бы сейчас вне очередей или каких-нибудь платформонезависимых протоколов работали
>Вим
Лул, пайчарм использует большинство
>Крон
Чутка да, но тут опять же, кроме формата нахуй ничего не нужно.
>Сокеты
Базовых отправки и получения достаточно
>Ссх
Порт с паролем очень сложно ввести, ага, а больше большинству и не надо
>Асимметричное шифрование
Не относится к никсам
>Гит
Не относится к никсам
>Баш
Похоронить это говно уже давно надо
Всё это родное никсам, что "не относится", то портануто позже.
Остальное у тебя глупые отмазы.
ссх и ассиметричное шифрование отдеально это признак, что ты нихуя не режешь дупля. Ключики-ключики для авторизации, где они? Или ты привык через путти вводить пароли из шинды? Там есть путтиген и пагаеант, подсказываю.
Вот так со всем.
>Всё это родное никсам, что "не относится", то портануто позже.
А джуна должно ебать как это говно 10 лет назад запускалось?
>Ключики-ключики для авторизации, где они
Это гуглится буквально за одну минуту, а cat ~/.ssh/id_pub делается за 10 секунд, я когда устраивался на первую работу только это об ssh знал.
Да джвнм ничего не ебет, выучил циклы и давайте мне 300к/сек.
> Это гуглится буквально за одну минуту
Речь не о гуглится, а что ты разделил это в своей ответке, что многое говорит о тебе.
У тебя асимметричное шифрование на никсы что ли завязано? Или может выполнить простую команду и скинуть админу ключ тоже каких-то особых навыков требует?
В посте было "ссх с ассиметричным шифрованием", ты их разделил на две части "не относится".
Признайся, ты обосрался на этом.
У меня на никсы завязано ссх с ключами, которое нужно крепкому вкатуну.
Ты это поделил на две части, не понимая, о чем речь. И потом вспохватился и за одну минуту загулил (или вспомнил?).
Но это было очень симптоматично.
Разве финалли не делает то же что и эксепт? Без него он тип не поднимает исключение и всё равно крашит метод обрывая цикл?
Нужно более-менее свободно себя чувствовать в консоли линукса.
Уметь ходить по каталогам, удалять-создавать файлы, архивировать, понимать атрибуты файлов и группы доступа (владелец-группа-все), что такое процесс, что их можно как-то мониторить, прибивать и т.п. Ну как пакеты ставить. Перенаправление ввода-вывода.
В принципе вот на таком уровне. Всё, что не знаешь, изучишь.
Начальных админских навыков не надо, девопс навыков не надо. Если об это специально не спрашивают, конечно.
Да, эксепт обрабатывает то что ты хочешь отловить. Если ты ничего не ловишь, то оно и падает. Файналли для другого вообще.
По опыту эти костыли никому не нужны.
Ты дурачок штоле? Номера должны сами присваиваться автоинкрементом в базе, а чтобы запостить в конкретный тред, просто передаешь его номер в хидден поле формы постинга. Если там что-то есть, то это ответ в тред, если нет, то новый тред.
Допустим, MyAnimeList. У каждого аниме есть количество серий, и статус, которые нужно обновлять по определённым датам. И это можно делать двумя способами - либо через GUI вручную, либо настроить какую-то автоматизацию (парсер + cron мб). Как это можно организовать?
Насколько знаю, у всех моделей джанги неявно задан Primary Key со всеми constraint. Если ты хочешь создавать новый объект, тебе нужно у этой модели определить метод creat_thread, к примеру и вызывать его во вью.
Можешь так же указать у модели thread_id = AutoField(primary_key=True), чтобы явно задать первичный ключ
Что именно? Ты же сам всё описал. Так и есть, или ручками, или откуда-то парсить. Ну или повесить это на юзеров теми же ручками делать.
Имеются:
1) books
2) comics
3) reviews
4) user(author)
На рецензиях Many-to-one с books, comics и user.
К какому эндпоинту в таком случае принадлежат reivews?
Вижу два варианта
books/:id/reviews
comics/:id/reviews
user/id:/reviews - чтобы собирать все reviews, которые написал юзер, этот эндпоинт останется одинаковым в обоих вариантах
Или
reviews/books/:id
reviews/comics/:id
user/id:/reviews
Первый обычно чаще используют
Есть софт чтобы быстро запускать такой питоновский черновик?
Сейчас использую онлайн интерпретаторы, но они медленные и неудобные.
Под виндой я бы скорее всего просто создал бы дополнительный портабл лёгкий вскод, чисто под запуск мини скриптов, но под линуксом хуй знает что есть.
А что скажешь по поводу глобального потепления?
А че мешает просто бля с терминала запускать твою хуйню? Или в пайчарме тупа держать черновой файл и его запускать? Чет проблема у тебя типа как открыть дверь не используя ноги и руки.
Бля какой же шелл уёбищный.
Всегда когда надо решить задачу пишу костыль на питоне, лишь бы не разбираться в уёбищном шелло синтаксисе.
Пацаны, вот есть у меня асинхронный шедулер в котором хранятся asyncio.Task, которые спят какое-то время а потом выполняют некий коллбек. Это все существует на серваке в рамках моего тг-бота. Мне порой надо бы зайти на этот сервак и посмотреть какие таски лежат в ивент лупе и их метаинформацию (аргументы). Как это сделать? У celery вот есть свой механизм по контролю тасков, но у селери механика совсем иная, тут же просто корутины в ивент лупе
Тебе надо реализовывать свой механизм по контролю тасков.
В asyncio есть функция all_tasks, которая возвращает все таски, которые сейчас крутятся. Так ты можешь мониторить. Но тебе надо реализовать какой-то дополнительный механизм, чтобы нужная тебе информация о тасках была.
У задачи может быть имя, при создании указывай параметр name.
Ты можешь создать объект-менеджер, куда складывать дополнительную информацию о таске в момент создания.
Вариант, если у тебя эти таски постоянно создаются и прибиваются, это сделать через модуль weakref
weakref.WeakKeyDictionary
ты создаёшь словарь, где в качестве ключа твой Task, а в значении какой-нибудь объект, где детальная информация о задаче, для мониторинга. Когда задача завершится, из этого словаря автоматически данные удалятся, в этом смысл weakref, очень активно используется.
Да, это ему тоже надо, или вебсервер прикрутить, или вариант отдавать какой-нибудь json при подключении клиента на какой-нибудь сокет
Сервер довольно легко прикрутить, aiohttp, надо только чуть иначе подключать. По-умолчанию предполагается, что у тебя приложение это вебсервер, но его можно запускать как опциональную рядовую таску. Смотреть надо в сторону TCPSite оттдута
Вообще у меня был похожий таск, так я просто тредов наплодил, там изкаробки все видно.
Линтеры пишут бараны, которые не понимают в программировании
Смотри, ты же можешь запросто переопределить в каком-нубудь другом модуле функцию print(). И она будет делать другое. Например если ты параметр '1' указываешь, то инициализируется какая-то глобальная переменная. Если параметр '2', а до этого был вызов с параметром '1', то запускается рандом, если рандом что-то пулучил редкое, то генерируется и выбрасывается рандомное исключение.
Весь код осмыслен на мой взгляд
Осмыслен он разве что в том случае если ты специально пытаешься сделать его нечитаемым.
>Прохожу степик, ебать он душный конечно. 100500 неинтересных и бессмысленных задач на перестановку чисел и всякую подобную хуйню.
ХЗ что там на степике этом вашем, все эти задачки нужны для того, чтобы набить руку, чтобы ты свободно писал код
Если ты их легко решаешь, значит тебе нужны задачки посложнее и вообще тебя уже другому учить надо
> ты же можешь запросто переопределить в каком-нубудь другом модуле функцию print()
Я бы в ебло дал такому мудню.
создавать бота в инсту,крутить ему подписчиков и продавать - норм тема в 2022 или уже протухла и ботов легко вычисляют и банят?
Идёт многолетняя борьба матёрых серьёров, кто кого. Одни пытаются накручивать, другие с ними бороться.
Ты конечно можешь попытаться, но будешь маленьким мальчиком, который полез в драку для больших дядь.
мимо трудоустроенный мидл
Во-первых у тебя my_list это строка и нехуй называть ее list.
Во-вторых запускаешь питон шелл и смотришь на результат
следующих выражений:
>>> s="hello world"
>>> s
>>> list(s)
>>> s[-4]
>>> s[-4:]
>>> s.spllit()[-1]
>>> str().join(s[-4:])
Как сделаешь -- приходи с вопросами
Спасибо, запомнил
>>55023
вкатываюсь 2 месяца, пока прохожу степики и дрочу джанго по ютубу, с октября у меня начинается курс в япрактикуме (бесплатно по программе госуслуг попал), пока кидал резюмешку на стажерские вакансии с хх, в половине случаев даже не просматривали, ну или отказ
конкуренция походу дикая, на хх по 1.5к откликов на стажерские/джуновские вакансии
запилю пет проект, прикреплю к резюмешке, может получше дела будут
Ну интернет выдает видосики и статьи как авторы пытаются рукописный текст несложный распознать с помощью tesseract, как-то изъёбываясь.
Чем правильно пытаться распознать рукописный текст, tensorflow в тренде?
можешь контакты дать? Я сам тоже вкатываюсь (4 месяц), хотел бы пару вопросов обкашлять
Базовый линупс знать нужно хотя бы потому, что деплоить ты будешь на сервак с линуксом в большинстве случаев. Ну и некоторые библиотеки не имеют версий под винду. Некоторые технологии не имеют нативных решений под винду, типа докера или редиса, но для докера есть всл, а под редис какая-то заплатка для шиндоус. Короче прям сносить у себя на рабочем компе винду не обязательно, но совсем без линукса ты не обойдёшься в любом случае.
для Мск, Спб 100 тыр. на удалёнку это примерн какой уровень и што надо знать?
немного подвыпал из пятона, очнулся а вакансий как-т не мноха
Типа 'xxx:???:yyy:!!!:zzz:@@@'
где ???, !!!, @@@ могут быть как значениями, так и None.
Как мне заменить фрагменты с None на звездочку? Т.е. это то не сложно, но например если ??? и !!! будут None, то звездочка должна быть одна, типа
'*:zzz:@@@'
VS Code - единственная среда разработки, в которой удобно работать из-за запуска кода в нормальной консоли, работать перестала - ругается на русский язык.
Пробовал другие, у всех свои всратые консоли. Idle не дает нормально копировать/вставлять текст.
Как чинить это??
1280x720, 1:08
Ставь линукс уже!!!!!!!!!!!!
Сначала какими-то левыми кодировками кормишь, cp1251 видимо, потом жалуешься. Скорее всего у тебя код набран не в той кодировке.
Смотря что ты делаешь на питоне.
Если ИИ и аналогичное, то там может и не завязки на линукс. Если что-то системное, сетевое, веб, то линукс почти подразумевается.
Есть варианты с тем, чтобы запускать в какой-то виртуальной машине полноценный линукс с гуи, вроде как почти то же самое, как чистый линукс.
Ещё МС интегрирует линукс к себе, там под капотом тоже виртуальная машина, докер так можно запускать,но это заморочено.
Я моментально посылаю с такими тестовами, если тестовое займет у меня больше суток на выполнение, то нахуй надо.
абсолютно адекватное тестовое, если не нравится - ступай на завод отседа, за забором очередь желающих
Так я уже вкатился давно, пускай в говноконторы, долбаебы продолжают неделями делает тестовые, я то не против.
>Если ИИ и аналогичное, то там может и не завязки на линукс. Если что-то системное, сетевое, веб, то линукс почти подразумевается.
Ты ошибаешься, лол. С разработкой на жанге и прочих фастапи я вполне виндой обходился. всл только нужен, чтоб докер локально запустить. А вот с нейроночками уже нихуя под винду версий библиотек нет, начинается анально-костыльная клоунада.
Не очень корректное, особенно если это в книге про питон с его GIL. Трактовка многопотока как средства увеличения производительности вводит в заблуждение. Потоки не для этого придумывали. Это их потом для этого стали использовать, когда появились доступные многоядерные процессоры.
Сижу на линуксе, потому что привык давно. Все сервера на линуксе. А так для питона должно быть однохуйственно, если тебе ламповее кодить в винде или на маке никто за это не обоссыт.
Обычно ты кодишь не на чистом питоне, а используешь какие-нибудь библиотеки или сервисы. Там numpy/tensorflow/cv2, подключаешься к раббиту и т.п. Вот тут могут начаться сюрпризы, что нужной библиотеки нет или что хрен поднимашь сервис.
Сам сижу на линуксе очень давно и все эти проблемы не волнуют.
Ну так я написал что для тех кто совсем не шарит. Может человек вообще никогда не задумывался что в процессоре несколько ядер.
Поэтому дано короткое объяснение чтобы было понятно о чем вообще речь. После можно уже давать корректные определения и обсуждать детали.
А в коллабе винда по-твоему что ли? Я-то как раз и делаю в блокнотах, но не в коллабе, там же оплату отключили, а в яндекс датасфере. Но если тебе потом деплоить хуйню эту, то желательно на локале придётся тестировать.
>А в коллабе винда по-твоему что ли?
Какая разница че в колабе, если речь про ось которая у тебя на компе?
А для чего? Спрашиваю для подъеба. Ну потоки чтобы прям потоки в одном приложении, т.е. pthread и вся хуйня, мультизадачность на уровне ОС то понятно зачем. Чтобы был свой поток для гуя? Какие-нибудь подключения у сервера асинхронные (и в целом асинхронный IO)?
>Чтобы был свой поток для гуя?
Например вот здесь, на гуе потоки становятся нужны. Или при работе с сетью, когда тебе надо несколько подключений обслуживать одновременно.
То есть главная задача, это чтобы избегать блокировок и чтобы несколько частей приложения могли работать одновременно, то есть приложение многозадачное было.
Для этого потоки и придумывали, причём ещё тогда, когда многоядерные и многопроцессорные машины были диковинкой.
А уж увеличение производительности это приятный побочный эффект. Правда не для питона.
Например простейший сервер где на каждый запрос создается отдельный поток. Или скачать параллельно 50 файлов.
Не слушай линуксодебилов
Есть одно исключение, которое хочу обработать, только не могу понять, какое. Как определить, какое исключение вылезает?
Traceback (most recent call last):
File "F:/Users/юзернейм/AppData/Local/Programs/Python/Python310/ччч.py", line 55, in <module>
readcords(board, user)
File "F:/Users/юзернейм/AppData/Local/Programs/Python/Python310/ччч.py", line 9, in readcords
x=chorddict[start[0]]
KeyError: 'с'
>File "F:/Users/юзернейм/AppData/Local/Programs/Python/Python310/ччч.py", line 9, in readcords
>x=chorddict[start[0]]
Спасиб, не заметил чет, кек
зашел посмотреть тарифы в датасферу:
>Nvidia T4
>самый дешевый тариф 90к в месяц
>Nvidia Tesla v100
>самый дешевый тариф 850к в месяц
>цена на алике - 800к за видеокарту
>колаб pro P100 - 800 рублей
спасибо ебать, охуенно импортозаместили
Этот шарит
Лол, ну человек спрашивает, нужен ли ему линупс, а ты говоришь можно виндой обойтись, потому что коллаб. Ну раз коллаб, можно и телефоном на анроиде обойтись, хуле. Алсо, учитывая что в коллабе линукс, базовые команды типа перемещения по директориям тебе всё равно знать надо.
Я помесячные вдски не смотрел, там у них реально дороже выходит, пользовался только блокнотом, ушло ~4к за 8 часов обучения модельки. То есть в итоге 1к заплатил, учитывая что при реге грант на 3к дают. Хз дорого это или нет, ведь альтернатив нет лел, коллаб же сдох (хотя у кого-то может зарубежная карточка есть).
>максимальное количество потоков в питоне равно количеству ядер
Чел
>скачивать 50 файлов одновременно не получится
Одновременно - нет, конкуррентно - да. Про "одновременность" никто ничего не говорил
покекать)
Просто из альтернатив связанных с питоном вижу ml и data science,но там наверняка не будет быстрого вката и педпочтение
Чел, ну ты чего? В скрине про пул тредов и про про то, какой будет дефолтный параметр, который выставлен исходя из обычных сценариев использования.
Ты можешь хоть 1000 тредов запусть, в том числе в тредпуле.
Скачивание данных это операция ядра, она не завязана на GIL, поэтому ты получишь большой буст даже на тредах в питоне. GIL мешает, когда у тебя чисто питоновские вычисления идут.Работа с сетью не завязана на ядро процессора, ничто не мешает держать потоков больше, чем количество ядер.
>Nvidia Tesla v100
>самый дешевый тариф 850к в месяц
>цена на алике - 800к за видеокарту
Теперь я охуел. В чём прикол этой карт, на фоне обычных карт?
Работа с сетью на низком уровне идёт в ядре. Где-то там обрабатываются входящие пакеты и складываются данные в буферы. Ты просто делаешь системные вызовы.
Вот я только память вижу. У меня 4гб, у них 16, если надо больше 4, что это уже критично. Для ML это вообще критично, реально столько памяти используется?
Вычислительные бенчи какой-то сверх разницы не показывают, чтобы платить такие деньги
А карта nvidia 3090ti по всем параметрам обходит эту теслу, в том числе по оперативке, в cuda бенчмарках первая в списке, +20% к тесле 100, а продаётся у нас за 140 тр., это вместе с налогом на СВО
Почему карта лучше стоит у нас в разы дешевле?
Пошел на ХХ и прихуел, там не так уж и много вакансий с опытом от года, и везде к питону+ооп+sql требуют еще немножечко знать. Ананасы, а как вообще вкатываются то блять нынче в питона??
Мне аж хуёво становится, когда открываю вакансию на ссаные 70 тыщ, а там написано:
Дружный коллектив, печеньки, просто ты должен уметь
PostgreSQL, Redis, AWS, Django, Flask, FastAPI, Docker, Kubernetes, Celery, Pandas, Numpy, scipy, Matplotlib, LightGbm, aiogram, aiohttp, SQLAlchemy, pymysql, json, Tensorflow, OpenCV, Postman, Devtools, Tessa, Jira, DevTools, Postman, Fiddler, Kafka, Robot Framework/Pytest, Jenkins/GitlabCI/TeamCity, Selenium, RabbitMQ, ClickHouse, Docker, K8s, fastapi, celery, rabbitmq, orm (sqlalchemy,alembic/djangoorm), asyncio, unittests (postgresql/mongodb), redis
(без опыта вообще какие то ебанутые требования на самом деле)
А почему fastapi, docker и postman два раза повторяются? Это особо важные вещи?
они пишут про максимально прокаченного пчелика
просто на собезе берешь и нагло гуглишь ответы в стаковерфлоу
Выше написал. Потом тебя прочитал.
А чего ты ждал, типа джунам стали более рады?
Нихуя подобного. Более того, по ходу вкатиться стало сложнее, чем три года назад (когда я пробовал в последний раз перед тем, как на обычную сисадминскую хуйню устроиться)
Этот кстати прав. Это было бы нормальным заданием, если бы джанги не было. Но я сейчас и на это бы набросился, на ёбаном безрыбье.
Хуя ты прямолинеен. Эта метафора подразумевает, что спрашивают везде разную хуйню, на каждую сука позицию свою, а что бы кидать отклики на все вакансии, надо знать всю эту ёбаную портянку. Я некоторых словей и неслыхивал никогда
>смесь из совершенно разных стеков
Анонче, а можете подбить несколько самых частых и востребованных стеков, что бы я по ютубчику зазубрил в тему пару слов хоть, а то ну пиздец, я открываю вакансию и везде половина - знакомые, а половина - незнакомые слова. При чем незнакомые всё время у всех разные.
А прикинь, сколько всего надо знать, чтобы кидать отклики на все вакансии "программиста"? Тебе сразу и JS, и C#/C++/Java/1C/PHP добавлюяются, с каждым из которых десяток базвордов
На все5 вакансий, 2 из которых питон, дааа.
ну потому-что, ему надо что-то пиздонуть
>они пишут про максимально прокаченного пчелика
На самом деле ты меня воодушевил сейчас немножко, спасибо, анон.
Буду просто нахрапом ездить и всё. На 10 собесе экзаменующий зазевается всё равно.
фишка тесл в том что они могут поставляться в специальных блоках, с 3090 ты хуй так сделаешь
Нужно что бы с ойтишниками случилось так же как и с другими спецами. Избыток на рынке труда что бы можно было не платить нормальные деньги.
Только нужны опытные, образованные и квалифицированные и за 30 тыс. рублей в месяц
На штурм села в донецкой области?
Продскажите лучший фреймворк для изучения вкатуну в бекенд
Познакомился с основами синтаксиса, прочитал все тома Лутцашучу, я же не совсем конченный душнила, разузнал об ООП, нарешал задачек в пинтюторе и степике, теперь 3 стула имею перед собой - django, flask и fastapi, подскажите какой фреймворк более терпим к новеньким ньюфагам и ресурсы для изучения соответствубщеего
Спасибо уважаемые формучане.
from PIL import Image вообщето
Да оба несложные для обучения, там разница в подходах, в джанге всё из коробки, в фастапи всё костылить самому (ctrl-c ctrl-v из доки или гайдов). Фастапи и фласк это одно и тоже практически.
https://docs.python.org/3/library/http.server.html#http.server.ThreadingHTTPServer
Кроме этого ничего не надо
>Да оба несложные для обучения
>Джанга
Она не сложная, если сделать что-то не больше бложека. Там только с особенностями ОРМ для составления нормальных запросов нужно разбираться как со всем фастапи.
Лол, по сравнению с Алчеми, которую надо на фастапи накатывать, джанго ОРМ это как лего в сравнении с постройкой ирл дома.
Да, Django ORM, например.
Ormar, Tortoise
Но вообще, орм зло, лучше просто запросы ебошить обернув методами и конвертируя в нужную модель для внутреннего представления.
Да, голый sql. Всегда знаешь какие он запросы строит, всегда можно оптимизировать, не делает десятки запросов пол капотом
Спасибо, интересные варианты, про ormar вообще никогда раньше не слышал, по описанию похоже что годное решение.
Интересно что-то такое, что бы дружило с FastAPI, поддерживало все три основные базы, похоже на правду
>Но вообще, орм зло, лучше просто запросы ебошить обернув методами
К сожалению дикое количество тупой рутины получается, приходит к тому, что ты начинаешь изобретать свою собственную маленькую ORM. Особенно когда тебе надо делать массу join запросов. Вот это раздражает.
А в остальном может и зло. Я когда этим больше занимался плевался от этой джанги, делаешь очевидный запрос, а под капотом оказывается, что там сотри запросов к базе вместо пары очевидных. И это почти норма. Там конечно есть способы лечения, но всё равно выносит.
У лутца есть две проблемы это вода и не совсем свежая версия питона на данный момент. Как фундаментальное пособие по языку для начинающих это хорошая вещь.
>не совсем свежая версия питона на данный момент
чет ты преуменьшаешь обосрамс, там все еще учат что словари - это не упорядоченная коллекция
>Как фундаментальное пособие по языку для начинающих
Возможно для начинающих программирование, но не для начинающих язык с опытом программирования
Как обстоят дела на собесах по питон-бэку? Ничего, если я честно скажу по структурам, что тупо ебашу везде спискит, а вот если жопа загорится, тогда перерефакториваю на кортежы, где необходимо или "БЛЯТЬ СТРОГА НАХУЙ!"?
>модель OSI и каждый из 7 уровней подробно
Выше 4-го вряд ли кто будет спрашивать, мне кажется
допустим x = [{0, 1}, {0, 1, 2}, {2, 3}, {3, 4, 5, 6}, {1, 2}, {3, 4}]
Почему x.sort() (Параметры сортировки дополнительно не указываются, вопрос чисто для понимания работы) выдаёт список в первозданном виде.
Никаких ошибок нет, то есть это вроде как-то работает, но на экран интерпретатор выводит список в том же виде, который и был.
Если указать ключ (k=len), то спокойно сортирует по длине.
key = len, опечатался, написав тут пост
Я Python Junior разработчик, у меня год коммерческого опыта, плюс опыт фриланса и т.д.
Мой стек:
Python,Docker,K8s,PostgreSQL,FastAPI ну и миллиард других технологий связанных с питоном, в целом могу выучить все что надо, тот-же sqlalchemy/alembic и т.д, все это использовалось
Проблема в том, что я с Украины и с начала войны у нас стало 0 вакансий на джуна, я 3 месяца пытался найти работу, ничего не нашел, сейчас сижу на шеё у девушки, думаю уже идти разнорабочим.
Что бы вы посоветовали, возможно ли найти работу на западе с английским intermediate, или можно ли попробовать соврать в резюме и сказать что у меня 3 года опыта работы и я чуть ли блять не сеньйор?) Как думаете, такое прокатит?
Ты с годом опыта можешь говорить всем что ты мидол.
наброс на наброс, наброс на наброс....
ты мидол, удоленно может попробовать, тем более вас не забанили
>с начала войны у нас стало 0 вакансий на джуна
Вкатутося других вкатутось отпуивает потому что боится конкуренции?)))
> что я с Украины
Так иди в танковый зелераш сходи. Если выживешь, будешь работать в айти ваще на изи, по квотам даже в гугл возьмут увидев что ты воевал.
А если смерть, то смерть за родину того стоит
https://stackoverflow.com/questions/42956966/how-does-python-sort-a-list-of-sets
Прямо от разработчика сортировки ответ нагуглил, если коротко, то питон пытается сравнить пары сетов друг с другом методом __lt__, который для сетов переопределен и показывает является ли один сет сабсетом другого, в итоге хуйня получается.
вот освоил я джанго, фастап, даже пет проекты запилил, на гит запушил, резюме все по гайдам нарисовал, а вакансий нет лол, хх предлагает вакансии преподавателя в онлайн курсы пиздец
поздравляю - всего за пару месяцев ты получил ценный урок "не ведись на хайп"
теперь можешь смело удалять аккаунт на гитхабе и забывать джанго-хуянго, и идти искать нормальную работу.
Возникло желание создать кучу объектов и/или переменных с именами по типу имя1, имя2, имя3 и т.д.
Как реализовать это с помощью цикла? Никогда об этом не задумывался. Могу, конечно, вручную набрать, но это же говнокод.
dict
В гугле есть вариант с установкой selenium-wire, но она чето не ставится на мою виртуалку с дебианом
Просто символ Python в виде свастона в цветах укр. флага. Эти цвета знаешь как пафосно называют? COLORS OF FREEDOM, лул, это очень смешно.
Не могу понять эти ваши локалсы, в других языках такого непонятного дерьма нет.
Сейчас пользую винг101, некоторая подсветка сбивает с толку при выделении, сливаясь с ним. В остальном пока похуй.
AQA вкатун из прошлых тредов
Это прост область видимости переменных. Весь питоновский рантайн на самом деле это такой большой словарик откуда дергаются данные.
мимо-анон многоязычник
Объективно это слабая сторона питона, из-за такого подхода область видимости переменных только вся функция, когда почти во всех других языках возможна область видимости "блок". И не понятно, как это можно пофиксить, чтобы не потерять совместимость.
У джанги не-коробочные решения нужно впиливать с болью в жопе. К тому же, для большинства случаев достаточно вебморды для других сервисов, с этим фастапи справляется куда лучше если написать нормальное асинхронное RPC.
Литкодом ты тоже не повыебываешься, там буквально решения в паре кликов лежит. Если вайтборд будут спрашивать то свое что-то дадут. В целом литкод помогает прокачать алгоритмы, но не является чем-то крутым само по себе.
Потыкал без регистрации, просто прикольная игрушка, аналог литкода. Вряд ли это может быть убедительным. Может быть умелительным.
Анон >>58766 почти прав. На собесе статистика литкода не будет убедительной, если ты только на собесе не покажешь, что спокойно задачи оттуда решаешь. Гипотетически может сработать, если ты напишешь, что любил задачки на алгоритмы и приведёшь статистику с литкода, где много хард задач, и медиумов вообще много. Там если будут другие любители задач, это привлечёт внимание. Но боюсь это надо харды решать. Хвастаться изи-медиумами как-то несерьёзно.
Спасибо большое ❤️
Любая уважающая себя контора берёт aiohttp. Фрейморк, главным кор-разрабом которого является человек, который написал бОльшую часть питоновского asyncio. Fastapi - для лохов, aiohttp - выбор мастеров
Петухон вообще выбор дегенеративных порриджей.
завод по производству лопат
>Любая уважающая себя контора берёт aiohttp. Фрейморк, главным кор-разрабом которого является человек, который
рождён в СССР. Для белого господина это хуже, чем даже если в Индии, тех хотя бы англичане долго воспитывали
У нас в постсовке он более-менее популярен и известен. Такое ощущение, что в англоязычной среде даже Sanic знают лучше
Потом, FastAPI позиционируется именно как API-инструмент, для бекенда. Там вот вся эта привязка к pydantic и всё такое. AioHTTP смотрится как инструмент для создания вебморд для асинхронных приложений, в этом плане он удобен. Его можно запускать как рядовую задачу, нет никакой завязки на ASGI и сторонний софт. Мне в таком плане он нужен. Но это не массовое применение и поддержки инструментов для API там фактически то и нет, всё самому надо делать.
Сообщества не хватает, чтобы допиливать и прикручивать нужные фичи.
Просто в том же джанго нет асинхронности из коробки но есть обертка sync_to_async и всякие расширения для асинхронности ORM, и вообще мне кажется что в последующих версиях добавят поддержку асинхронности.
Асинхронность прямо таки бескомпромиссно улучшает перфоманс по операция ввода\вывода?
Хрюши в первую очередь смотрят на стек и опыт. Собеседующий может оценить это только если ты до него дойдешь и все равно даст тебе вайтборд, если хочет.
>Асинхронность прямо таки бескомпромиссно улучшает перфоманс по операция ввода\вывода?
Да + экономия некоторых русурсов.
Джанго это фреймворк для крудов, работающих на архитектуре запрос-ответ, по REST и всё такое.
Там в коробке синхронная ОРМ, с которой всё равно надо пердолить, чтобы оптимально работала. Там в коробке джанго-шаблоны, которые надо сразу же менять на jinja2.
Если ты не круд пилишь, а что-то другое, может возникнуть история, что ты тупо функционал от джанги не используешь, а прикручиваешь другое. Но имеешь ограничения.
>Асинхронность прямо таки бескомпромиссно улучшает перфоманс по операция ввода\вывода?
Скорее нет, чем да. Синхронные более-менее масштабируются количество инстансов. Но синхронные ориентированы на задачи запрос-ответ. Если тебе надо сеансы держать, вебсокеты например, для это уже не их задача и тебе надо асинхронное делать.
>Синхронные более-менее масштабируются количество инстансов
Зависит исключетельно от того как ты запросы отбрабатываешь. Способов для масштабирования асинхронных сервисов уйма.
В текущем году надо не жижу ставить, а какой нибудь реакт
Ну насчет вебсокетов согласен, тут спорить не о чем.
Но по факту в джанго модели в текущих версиях добавляют обертки асинхронности в ORМ.
Получается в случае асинхронных запросов к БД через ORM мы получаем возможность поставить множество запросов в базу на выполнение в event loop на уровне всего приложения?
А в чем прикол? Это же как очередь на сервера в WOW в день релиза аддона - на серваки как правило очередь и зайдет раньше всех тот, кто первый пришел (FIFO). А если бы игроков подключало асинхронно, то первым мог бы войти седьмой, а вторым десятый и тд, потому что у них запрос на сервак тупа быстрее обработался. Так или не так?
Работаю с ЧУЖИМ кодом. Отвечают вяло, я сам довольно таки ньюкек.
Есть софтина, которая делает некий код. Не важно, что она там делает, не суть.
Суть в том, что отрабатывали её на малых объёмах данных (десятки), а мне надо переделать так, чтоб она работала с сотнями образцов так скажем. Данные перерабатываются, из них делаются комбинации, их оче много.
Сразу закину модуль, который, как мне кажется, проблемный.
https://pastebin.com/2n7q2DB3
Беглый анализ показывает, что строка
>return '%.2f%s' % (num, ['', 'K', 'M', 'B', 'T', 'Qd', 'Qt', 'S', 'Qd', 'Qt', 'S', 'Oc', 'Non', 'Dec'][magnitude])
Отвечает за используемые приставки-множители результатов, то есть похоже, от этой строки и зависит, сколько вариантов результатов можно иметь. Девчонка, которая это писала, говорит типа добавь множители ещё. Я не очень понимаю, чего она предлагает сделать.
То есть получается после 'S' добавить триллион? Как оно писаться то будет?
Какой-то хнёй вы занимаетесь. Зачем такие большие числа выводить, всё равно эти обозначения никто не знает, и удобнее уже на обычных 10^N
Ещё у тебя почему-то Qt, Qd, S дублируются, явно так не должно быть.
Попробуй распечатать значение, само число и magnitude
Выглядит так, что не влезает и magnitude больше, чем надо.
>Девчонка, которая это писала
magnitude можно считать как
magnitude = int(math.log10(num) // 3)
не обязательно // 3, можно просто /3
ещё вот
https://crusaders-of-the-lost-idols.fandom.com/wiki/Large_Number_Abbreviations
но тебе на самом деле надо объяснить, что вот так делать не надо для сверх больших чисел.
Потому что нечитабельно, дальше триллионов никто сокращения не знает всё равно
Сначала понять почему не работает, какое конкретно значение приходит, какого порядка, а потом добавить в список нужные аббревиатуры с запасом небольшим.
> а потом добавить в список нужные аббревиатуры с запасом небольшим.
Собственно я и хочу понять, чего там добавить, лучше даже с большим запасом уже.
Короче есть класс, там поле постепенно уменьшается. Если оно стало меньше чем 0, надо приравнять к 0. Как этого добиться?
До такого я и сам додуматься мог, я сюда пришел за советами мудрыми. А именно как это реализовать в самом классе.
Пол второго ночи, я так и не нагуглил что хотел, но в целом уже смирился и сделаю эту хуйню.
Хотя нет, нихуя я не сделаю, хватит свое говно писать. Вот есть у меня класс продукт, от него наследуются яблоки и апельсины. Но мы не продаем, а ПОКУПАЕМ. Яблок максимум 10, апельсинов 15. Если что-то вышло за рамки, должно стать 10 либо 15. Классов таких может быть тыщу и для всех ифами прописывать не вариант.
Сделай в каждом классе атрибут max_size, дальше припокупке почти тоже самое
product.count = max(self.max_size, product.count + 3)
min, простите
Если клаудвафля норм настроена, ее вообще ничего не пробивает, даже хромиум который в бурп встроен. Очевидно есть способы, но если ты это спрашиваешь на дваче, то не только не получишь ответ, но он тебе и не нужен.
У меня запросы в sqllite через полнотекстовый поиск, но сука он каждый раз на знаки препинания ругается разные. Че за хуйня?
блять во-первых выкинь этот индусский код нахуй. Какого хуя он иногда возвращает инт, а иногда стринг? Где тайп хинты нахуй?
во-вторых если прямо так сильно хочется иметь лист с сокращениями, а не как аноны выше предлагали, то вынеси лист из функции в глобальную переменную (ЗАГЛАВНЫМИ_БУКВАМИ_СУКА)
в-третьих очевидно что ошибка из-за того, что число может быть слишком большим и не влезает в диапазон, на который расчитан лист сокращений. Этот случай тоже надо как-то обработать.
в-четвертых используй сука f-strings, а не это ваще говно мамонта с процентами
в-пятых почему первая проверка идет с учетом знака, а следующие по модулю? Типа если там на входе -100005000, то похуй, выводим как есть?
Эта переменная у меня содержит фразу "(is not facet-valid...)"
и судя по скрину, ругается на точку блять. Но там же всё в ковычках, че ему не нравится я не знаю.
Скажу сразу я ни разу не работал с sqllite, но в моем диалекте sql, точки в регулярках должны иди с бэкслешом перед ними. Мб поможет.
Неужели в 2022 ещё кто-то так пишет? Вот чтобы дружественно к инъекциям?
Читай как надо
https://docs.python.org/3/library/sqlite3.html#sqlite3-placeholders
заодно и проблему твою решишь
Я разобрался
Установил на винду selenium-wire и прокси заработала
Вот настройки
proxy_options = {
"proxy": {
"http": f'{type}://{login}:{password}@{proxy_adr}'
}
}
type это тип прокси - хттп, сокс
Почему то не пускает именно через бота. Видимо понимает что это бот
Я гуглю, ниче не получается
Помогите советом плс
А можно ли как то использовать прокси с модулем мультипроцессинга, что бы для каждого процесса был свой прокси?
Но тут в другом же дело, sql принимает за разделитель знаки препинания. Вот как это обойти? Нашел параметр,который указывается при создании таблицы -'tokenchars', но он тож не робит
> блять во-первых выкинь этот индусский код нахуй.
Лучше у меня ничего нет.
> Где тайп хинты нахуй?
Не забудь, что эта тня получает больше меня.
Надо было на кодера учиться.
> в-третьих очевидно что ошибка из-за того, что число может быть слишком большим и не влезает в диапазон,
Да, и я это хочу исправить!
> в-пятых почему первая проверка идет с учетом знака, а следующие по модулю? Типа если там на входе -100005000, то похуй, выводим как есть?
Значения заведомо положительные.
>Да, и я это хочу исправить!
Сделай диангостику сначала, посмотри, какие значения туда приходят, чтобы представлять, с чем имеешь дело.
Ух, придётся тебе изучать протокол дескриптора для такого. Возможно, в attrs можно использовать конвертеры.
Каво? Я чет припоминаю что когда-то такое на плюсах делал без особых заебов.
Вообще на данный момент я это напердолил в связке сеттера и >>59460
Добавил поле макс, которое приравнивается к полю эмаунт при вызове конструктора. Потом в функции вызываю сеттер, который при большем значении чем надо приравнивает к этому максу. Но чет есть ощущение, что есть более элегантные методы.
Может тебе надо сначала как-то ТЗ внятно описать?
Если тебе надо создавать 100500 классов с разными параметрами, то надо описывать какой-то родительский класс, а дочерние конфигурировать параметрами. Или пилить фабрику классов. Разные подходы есть.
На конечном этапе у тебя только два варианта. Или делать сеттер, или переопределять __setattr__ для класса, что примерно тоже самое по смыслу, но больше гибкости. Но setattr будет перехватывать доступ для всех свойств, что может быть перебор.
Ну в целом я получается так и сделал уже. Есть родительский, сеттеры определяют значение в каждом наследованном. Ну ладно, работает и хуй с ним.
>дали прямой ответ на вопрос плюс помогли защититься от идиотской уязвимости
>тут в другом же дело
Необучаемость 80 лвл.
А можно ли у merge запретить создавать новую запись, если записи с primary key из переданного инстанса не существует?
Прогеры, отцы, нужна помощь/
Создаю экземпляр класса, ряд свойств ему задаю в init из заранее сгенерированного словаря
выглядит примерно так
https://pastebin.com/YMWwr9p3
Смысл в том, что ряд свойств может отсутствовать в этом словаре, и при отсутствии весь __init__ не выполняется
Еть вариант каждое свойство заворачивать в try except, но это выглядит громоздко
Подскажите, плиз, более лаконичный способ?
Знаю, что в getattr есть default_value, только вот в setattr такого нет. Неужели придется самому писать?
У меня прокся такая, которая с каждым новым подключением меняет айпи
У меня так это будет решаться в теории
Я сам до мультипроцессинга не дошел
Изучаю программирование в прямом эфире, решая насущные задачи
>Лучше у меня ничего нет.
Так исправь, чтобы стало лучше. Возвращать разные типы в простой функции, название которой никак не намекает на такую возможность - это позорище.
>Не забудь, что эта тня получает больше меня.
Какая разница, сколько она получает, если ее код - говно? И у тебя есть возможность сделать его менее говеным
>Да, и я это хочу исправить!
Так я тебе говорю: если хочешь делать так, то надо как-то обрабатывать случай, когда magnitude получается больше, чем позволяет список. Иначе ошибка рано или поздно вылезет снова.
>Значения заведомо положительные.
Тогда abs(num) на 6-ой строке не имеет смысла.
А вообще, где проверка, что число поданное на вход будет положительным? Вот что-то мне подсказывает, что там не просто так стоит abs - без него, отрицательные числа будут уходить в инфинит луп (и снова привет говнокодерше которая не придумала ничего лучше, чем цикл while).
Что ты хочешь на выходе иметь?
Ты можешь делать data.get('prop_eight', default_value), например
Либо ты можешь завести словарь со значениями по-умолчанию, а дальше делать collections.ChainMap
https://docs.python.org/3/library/collections.html#collections.ChainMap
это типовой паттерн для каких-нибудь конфигов
во-первых исправь аргументы инита на каноничный args, *kwargs
во-вторых не майся хуйней с ручным вытаскиеванием каждого аргумента, используй каноничный self.__dict__.update(kwargs)
>Что ты хочешь на выходе иметь?
Хочу, чтобы при отсутствии целевых интерфейсов в словаре __init__ не выдавал ошибок, при этом хочу, чтобы атрибуты задавались (получали дефолтное значение), также хочу, чтобы это было лаконично.
>Ты можешь делать data.get('prop_eight', default_value), например
Элегантно, гениально, охуенно. Спасибо!
> То, что ниже в посте про ChainMap
Если честно, соду крутость не понял, вообще ничего не понял, но я тупой, это норма. Почитаю на досуге.
Спасибо!
Возможно, я не понимаю крутости того, что ты мне предлагаешь, но мне нужно обрабатывать их по одному, т.к. в зависимости от пришедшего результата возможно изменение хода программы
>Если честно, соду крутость не понял, вообще ничего не понял, но я тупой, это норма.
ChainMap это объединение нескольких словарей.
Допустим тебе нужно какое-то значение. Если оно есть в верхнем словаре, то берёшь это значение. Иначе берёшь значение из словаря ниже. При этом когда записываешь значение в такой словарь, меняется верхнее значение.
Это распространённый паттерн, например тебе надо работать с конфигами У тебя всегда есть значения по-умолчанию. Вот их ты хранишь в нижнем словаре. Но какие-то значения ты можешь переопределять в конфиг-файле, их записываешь в словарь уровнем выше.
Фриланс для петухонщиков ещё существует в этой стране?
Чел, что ты делаешь?
init сделай такой
__init__(self, param1=None, param2=None, ..., kwargs):
super().__init__(kwargs)
self.param1 = param1
self.param2 = param2
...
А вызывай так
my_obj = MyClass(data)
А то очень странно будет, если у тебя если нет параметра, то и свойства не будет
Звездочки перед kwargs и перед последним data сёнло, но думаю итак понятно было
Пистон наконец-то начала оптимизировать, почему на это раньше хуй забивали?
Самое интересное будет не в 3.14, когда питон догонит Си, а в 3.15, когда скорость выполнения станет отрицательной!
Автор все предусмотрел
The result is really stunning! Keeping at this pace, Python 3.14 will be faster than C++. To be exact, the loop time will be -0.232 seconds, so it will be done just before you want to do the calculation. There appears to be a hole in time-space continuum but these calculations are rock solid. Therefore, I think we might have to question the work of Einstein and friends.
Поэтому деды учили вместо циклов делать векторизацию.
И никакой супер питон 3.14 для этого не требуется.
Основа медлительности в базовых типах.
В питоне всё объект, в том числе обычные целые числа. В си они приводятся к единичным процессорным инструкциям, которые исполняются за один такт. В питоне же ты работаешь с объектом. Сначала ты лезешь в само объект, определяешь его тип, потом берёшь его значение, потом создаёшь новый объект, потом удаляешь старый или просто уменьшаешь счётчик ссылок на него.
Отсюда просаживание производительности в десятки раз.
Может быть, но зачем?
Питон изначально проектировался как язык из которого удобно дергать всякие сишные либы. И числодробильня на питоне таким образом пишется стандартно и без тормозов.
Если хочется язык типа питона с быстрой JIT-компиляцией лучше сразу взять Julia мне кажется.
>>60704
>>60711
Протестировал на python3.10, pypy и g++, clang++
Другие версии питона не тестировал, они только под докером на этой машине.
Между pypy 3.8 и pypy 3.9 разницы нет, между gcc и clang тоже, ключи оптимизации как-то не влияют.
брал значения как автор, n_points 10_000_000, n_repeats 10
В оригинальной версии питон кода получается, что
CPython3.10: Estimating pi took 6.7839 seconds per run
плюс-минус
pypy: Estimating pi took 0.6611 seconds per run
c++: Each loop took on average 0.25783 seconds to calculate
Но на самом деле питон-код не соответствует коду на си. У него там ад какой-то:
x, y = (random.uniform(-1, 1) for v in range(2))
Вот нахрен это выебонство?
Почему не сделать
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
запускаю второй вариант, он соответствует си, без лишних операций создания-раскрутки кортежей
Получаем после запуска
cpython 3.10: stimating pi took 4.1485 seconds per run
pypy: Estimating pi took 0.3186 seconds per run
довольно серьёзное ускорение, просто если не делать лишнее, не соответствующее коду на си.
При этом вариант pypy лишь незначительно уступает коду на Си.
Конечно тут не совсем корректно сравнивать платформы, надо понимать, в чём разница между реализациями random в разных вариантах, скорее всего они не эквивалентны.
>>60704
>>60711
Протестировал на python3.10, pypy и g++, clang++
Другие версии питона не тестировал, они только под докером на этой машине.
Между pypy 3.8 и pypy 3.9 разницы нет, между gcc и clang тоже, ключи оптимизации как-то не влияют.
брал значения как автор, n_points 10_000_000, n_repeats 10
В оригинальной версии питон кода получается, что
CPython3.10: Estimating pi took 6.7839 seconds per run
плюс-минус
pypy: Estimating pi took 0.6611 seconds per run
c++: Each loop took on average 0.25783 seconds to calculate
Но на самом деле питон-код не соответствует коду на си. У него там ад какой-то:
x, y = (random.uniform(-1, 1) for v in range(2))
Вот нахрен это выебонство?
Почему не сделать
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
запускаю второй вариант, он соответствует си, без лишних операций создания-раскрутки кортежей
Получаем после запуска
cpython 3.10: stimating pi took 4.1485 seconds per run
pypy: Estimating pi took 0.3186 seconds per run
довольно серьёзное ускорение, просто если не делать лишнее, не соответствующее коду на си.
При этом вариант pypy лишь незначительно уступает коду на Си.
Конечно тут не совсем корректно сравнивать платформы, надо понимать, в чём разница между реализациями random в разных вариантах, скорее всего они не эквивалентны.
лол, а если использовать вместо
random.uniform(-1,1)
использовать просто
random.random()
что тоже будет точно соответствовать коду на си, то результат вообще:
CPython 3.10: Estimating pi took 1.8586 seconds per run.
pypy: Estimating pi took 0.2856 seconds per run.
g++ -O2: Each loop took on average 0.24853 seconds to calculate.
По-моему он специально так код написал на питоне, чтобы получить огромную разницу и красивые графики.
Иначе получается, что базовый питон всего в 7 раз проигрывает си на численных операциях. Как-то не впечатляет.
На самом деле конечно сильно проигрывает, просто здесь random() время потребляет основное
Тупейшая задача на самом деле.
Вот допустим оказывается что на платформе Х в питоне 3.17 экспериментально найденное значение пи равно 3.45, и что дальше?
Значит там какой-то критический косяк в функции случайных чисел. Это уже совсем не ерунда.
Тест, конечно, про сравнение производительности разных версий питона. Но уж очень синтетический и слишком бредовый код там.
Надо какие-то более адекватные бенчи использовать.
>Нет, с беком в целом сложно фрилансить
Но ведь пыхеры постоянно пишут разного рода говносайты на фриласне, вроде как.
А всяких там парсеров, тг ботов или обработки данных тоже больше нет?
>The result is really stunning! Keeping at this pace, Python 3.14 will be faster than C++. To be exact, the loop time will be -0.232 seconds, so it will be done just before you want to do the calculation. There appears to be a hole in time-space continuum but these calculations are rock solid. Therefore, I think we might have to question the work of Einstein and friends.
Ебало автора представили?
Кстати, если бы в нашей физике существовали временные петли, то можно было бы реализовать сверхтьюринговские вычисления.
>Дали прямой ответ на то, что я не просил?
>Гений, я просто тестил разные варианты и мне так удобнее, понятно >всё про эту уязвимость, в моем случае шансов 0 на её реализацию.
>Ну и конечно,скинуть ссылку на документацию - ебать помошник.
Чтобы просто окошки рисовать должно быть достаточно Tkinter который идет в стандартной библиотеке. Не супер сложно, но его надо отдельно учить.
Чтобы управлять виндой, надо учить какие системные API у винды и как к ним привязаться из питона.
Чтобы писать под андроид по-хорошему надо брать яву или котлин. Наверное можно через какую-то прослойку и на питоне писать, но получишь дополнительных граблей и API андроида опять-таки придется учить.
> правильно понимаю, что питухон весьма универсален и это все можно сделать на нем?
Да и нет.
Питон универсален, сделать можно всё, но не всё делать просто. Некоторые вещи делать больно.
Мобильные приложения, графические приложения можно делать на питоне, но сложно, питон для этого не предназначен. И это не маинстрим.
Если ты видишь себя как разработчик софта для мобилок (перспективно), либо как разработчик десктоп (устарело), то смотри на другие платформы. Если же хочется писать именно на питоне, то варианты есть делать это и на питоне.
Корректный вариант даже проще, чем тот, которым ты пользуешься. Отучаться от неправильных способов надо сразу.
Возможно для решения твоей проблемы надо оборачивать параметры в кавычки, чтобы SQL не пытался их интерпретировать как управляющие символы. Корректно экранировать муторно, а если ты будешь работать как надо, за тебя всё сделают.
Ну очевидно что эти знаки препинания надо как-то экранировать (типа \" вместо "), читай доку на SQL как там это делается.
Вкатуны 2022. Итоги.
Знатоки pytest, поясните как бысть с фикстурами которые подгружают данные в таблицы?
Для тестов создается отдельная таблица, но ведь ее надо заполнить данными чтоб все работало, верно? Для этого есть csv-файлы с фикстурами (в данном случае у слова иное значение). На каждом тесте мы подгружаем все эти фикстуры а в конце теста делаем truncate по всем таблицам. НО: данных много и из-за этого тесты выполняются по несколько минут в гитлабовском пайплайне. Надо бы подгружать не все данные по всем таблицам а только нужные нам на каждом тесте. Запилил фигню вроде этой, теперь у нас по 1 фикстуре на каждую таблицу, но выглядит как-то убого да и будет много дублирования кода, в этих 3 строчкам будет менять только название таблицы. Шо делать? Как такие проблемы в pytest обычно решают?
>Дали прямой ответ на то, что я не просил
Дали прямой ответ именно на то, что просил. Твой вопрос и уязвимость - проблема одной и той же природы.
Чел, зачем ты вообще тогда задаешь вопросы, если с околонулевым пониманием предмета (что нормально, для этого и спрашивают обычно), ты сразу, даже не попробовав решение, начинаешь с ним спорить? Что это, как не необучаемость?
Не могу понять что от меня хотят
>НО: данных много
ну так пусть будет данных мало.
Они там охуели? Не знают зачем нужно тестирование?
Я вообще не эксперт в тестировании, но помоему должен быть какой-то код, чтобы его оттестировать бля.
Ты не читал литературу по тестированию, но подаёшься на тестера и хочешь, чтобы мы за тебя решали тестовое задание. Молодец. Плюс тебе за софтскиллы вместо хардскиллов.
Да, понимаю, а что проверять то в стр и в сете?
Простое ебануть рандомную строку и сет и проверить их на что-то типа нот нул, есть ли там цифры или буквы итд?
Судя по их примеру с 1 / 0 должны быть тесты аналогичного уровня.
Скажем
assert "abc" + "def" == "abcdef"
assert "bcd" in "abcdef"
assert "xyz" not in "abcdef"
В общем совсем такой примитив
с set аналогично
Спасибо, я такое говно и пишу, но вот не могу понять их "параметаризация должна быть выбрана обоснована и без избыточности".
Зависит от контекста. Вне контекста мне это не понятно. Это же не с бухты-барахты задание.
Если бы такие тестовые задания были на тестера, то зарплата там была бы на уровне дворника
почему ты думаешь, что дворникам очень плохо платят?
А для тестеров нужен контроль на входе, чтобы совсем случайные люди не ломились, которые вообще не понимают, что такое тест.
Задание откровенно ебанутое. Дали бы лучше реальную задачу, тем более вкат в курсы
Потому что там работают онли мастурбеки, которые даже в такси, даже в доставку не смогли вкатиться. Очевидно же
Не очевидно. Если у тебя будет только два варианта, или работа тестером за 50тр. в месяц, или двроником за 70, какой вариант ты выберешь?
Компенсация за непрестижность
Контекст такой, подразумевается что ты знаешь pytest/unittest или нет? Видимо нет, без фреймворков.
Просто когда параметры, тогда вопрос тестовой инфраструктуры, как технически параметры передаются и проверяются.
Смысл же в том, что у тебя может быть какой-то сложный тест. Но ты хочешь протестировать его с разными аргументами, когда тест остаётся прежним.
Например, у тебя тест на чётность, как у них в примере. Нет смысла плодить слишком много параметров, например 402, 404, 406, сложно представить, что один работает, другой падает.
Но ты обязан протестировать особые случаи, значения вроде нуля, положительные и отрицательные числа.
Или функция определения простых чисел. Там сложные случаи, когда может падать функция, это значения 1, 2, числа вида 2p (удвоенное простое число), p^2. Ты, как тестер, должен предусмотреть, на чём реальный риск свалиться из-за косячной реализации алгоритма.
Или вариант со строками, надо тестировать варианты с пустыми строками, юникод и т.п.
Знаю pytest. Я задание понять не могу, а код написать могу.
Понял.
А множества на что протестить?
И что?
Я когда попал в команду, где были тонны легаси говна и писать без тдд было просто нельзя, то я тоже охуевал от написания тестов и что нужно тестировать. По итогу читал какую-то говнокнигу бесплатную по тестам и такой мути я давно не видел. Толмуд похлеще стауструпа, но просто вода
А че ты предлагаешь то? Толку от совместного изучения? Сиди да дрочи литкод.
Я бы может и написал, но неиронично не вижу смысла.
Сам иди нахуй алгоритмы свои дрочи пидар ёпта
>А множества на что протестить?
Прояви фантазию. Ты знаешь, что такое множества. Ты знаешь, какие у них бывают свойства. Просто как бы опиши эти свойства кодом.
Там добавление, объединение, подмноженсват, эквивалентность разных и т.п.
Зачем? В интернете тысячи разборов на любой вкус
1. вэб-разработка
2. тестировщики
3. аналитики/работа с данными
4. нейронки
Больше вариантов нет и нужно выбрать один из четырех стульев, верно?
Ты сам-то читал, мудель?
Какой тут стек, помимо sql и докера?
Нет. Ты бы хоть с ответом написал.
Где ты взял такое задание? Что за контора?
Блэ, ебал я рот этого pytest блять
Есть примеры как правильно оформлять тесты с базой на aiohttp например? У меня либо все крашится нахуй, либо он мне кидает ошибки вроде "relation does not exist" (миграции почему-то не прошли)
Посмотри как сделано тестовое покрытие к самому aiohttp. Вообще все эти тестирования баз довольно сложны, с наскока не делаются
>Перекатчик, перекатывай, тонем.
Что ты такой нетерпеливый. QA живут с тредом в 1000+ постов и не жалуются
>>2462085 (OP)
>>2462085 (OP)
>>2462085 (OP)
>>2462085 (OP)
Пиздец, ты тупой или слепой? В первом же вопросе написано.
Это копия, сохраненная 9 ноября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.