Это копия, сохраненная 5 сентября в 18:03.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>3055259 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://online-python.com/ - листинги и онлайн-запуск
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
https://github.com/yakimka/python_interview_questions - интересная подборка, масса разнообразных тем и вопросов, для продолжающих, всё на русском
— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— А как учить джангу? Нахожу книги по джанге 1.х, можно их использовать?
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: https://www.composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущая шапка: https://goonlinetools.com/snapshot/code/#154ln61u1e2e5b4kfv6w8r
Python - язык для школьников и data science.
Работы в разработке на питоне нет.
Питон - плохой язык, который учит плохому.
Говна наверни, уёбок.
Падла файнд_олл делает пустой список !!! НУ ПОЧЕМУ?????
Он не умеет искать _внутри_ тэгов что-ли??
https://pastebin.com/raw/7n9vr8NG
это где descr. descr == [] вот почему ?????
Заўваж, ты з самага пачатку дадаеш адзінку да старонцы. А на старонцы https://xakep.ru/1/ няма ніводнага блёку < p > клясы "block-exb", таму не зхнаходзіць. Выпраўлены варыянт https://www.online-python.com/DaE7xOedvp
мамка твоя учит плохому
Съжалявам, не те разбирам. Бихте ли могли да пишете на английски?
Двачую. Я раньше на джаве писал бэкэнд. Лет 8 назад перешел на питон. Сейчас параллельно на го немного код поддерживаю. Питон очень приятный язык, особенно с тайп хинтингом и pydantic
Знатоки Джанго, что это за хуйня?
Делаю загрузку файла через django rest. Сваггер автогенерируется через drf-spectacular. Накидал ручку, захожу в сваггер и вижу вот такую вот ебень на 1м пикриле, фастапи мне без заебов генерил форму через которую я мог нажать на кнопочку, выбрать файл с моего компа и загрузить его через multipart-formdata, тут же какая-то ебень - просит мне строку двоичную для файла вставить
Պիդորաս, պիշի պո-րուսսկի, հվատիտ վիեբիվածյա
Не, я пынямаю, что могу ПРОСТО прикрутить настройки дпи или масштабирование на дефолтное поставить, но почему разработчики вообще допускают такое мыло в 2024? Это ж не васянская программа, а оффффициальный установщик
Потому что подавляющая часть погромистов на питоне пользуется линухом
Это старый гомосек, охотящийся тут на молодые немытые сраки полуджунов.
ПОЧЕМУ ТАК?
МНЕНИЕ?
В ЧЁМ НЕПРАВ?
УЗНАЛИ?
СОГЛАСНЫ?
БАЗА ИЛИ КРИНЖ?
ТВОИ ДЕЙСТВИЯ?
ОПРАВДАНИЯ?
А ЧЕГО ДОБИЛСЯ ТЫ?
ЕБАЛО?
ОТКУДА ЭТО ПОШЛО?
ПРОСТО ХОЧУ РАЗОБРАТЬСЯ
А У ВАС КАК ДЕЛА?
СЭЙМЫ ЕСТЬ?
ПРОСТО НАПОМИНАЮ
У МЕНЯ ОДНОГО ТАК?
КАК ФИКСИТЬ?
ПОДВОДНЫЕ?
ЧТО СКАЖЕТЕ?
ЧТО ДУМАЕТЕ?
ЧТО ДЕЛАЕТЕ?
ЧТО ДЕЛАТЬ?
КАК ПЕРЕСТАТЬ?
ЧТО ТЫ МОЖЕШЬ ЕЙ ДАТЬ?
Блять как я ору когда с фриланс бирж мне приносят код со словами "чото не работает", а там как раз эксепшены с пассами и принты вместо логов, зато за 500 рублей
Переделываю их за 1000 рублей
Возможно потому что через терминал как правило устанавливают люди
Людям дали choco, scoop, winget для удобной установки и обновления программ
@
Нет, хочу качать инсталляторы и жрать говно
СПАСИБО ТЕБЕ !!!
А почему на страницах 1,2, и прочих нет таких классов-то ???
Эксепшн поставил - заглушку...
Мы не знаем, спроси в другом треде
Перевел в другой офис, в мурике дораха
Судя по твоему вопросу ты не умеешь читать и искать информацию, значит ты уже питонист профессионал
>>3139573
Заткнись, драник
Боюсь, легальных методов нет.
Скинь фотки во время питонирования, может подскажем чего
1080x1920, 0:54
Не спеши унывать. Регистрируешься на Instagram и OnlyCode, на первом снимаешь видео и фотки как ты типа питонируешь, но не по настоящему и оставляешь ссылки на свой OnlyCode, а на самом OnlyCode уже по настоящему питонируешь и жёстко, можешь даже с кем нибудь вместе питонировать, и выкладываешь всё это по платной подписке и за разные особые денежные подарки для подписчиков. Всё, мама и папа больше не нужны, можешь уехать в теплые страны и там питонировать сколько угодно, твои донатеры тебя будут содержать
И нет, не надо мне советовать requests, он палится антибот системой. Мне нужно отсылать именно сырой реквест, чтоб иметь полный контроль над тем, что отправляю на сервер.
У тебя HTTP/2. Емнип requests_raw его не поддерживает, говняка в заголовках вроде нет
Да, тебе теперь не сладко из-за змеи паганой. Но, согласись, что сам виноват же. Нельзя пайчарм расчехлять же так просто!! Нужно как-то скрытно быть!
Многим же удавалось как-то от предков скрываться, я думаю. Но тут нужно спросить как. Я вот тоже не смогу так...
options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)
options.add_experimental_option('excludeSwitches', ['enable-logging'])
driver=webdriver.Chrome(options=options)
driver.get("https://www.test.com")
Есть какие-нибудь идеи, что может к этому приводить?
На днях одну хуйню делал с селениумом, и ничего не зависало, можно было работать и после завершения скрипта, правда вкладка была всего одна. Может 50 вкладок слишком много для компьютера. Или где-то надо указать что для работы твоей программы надо снять ограничение на потребление оперативной памяти. В Visual Studio при работе с языком C/C++ вроде можно в свойствах проекта указать объем выделяемой памяти под heap/stack/или как это называется я не помню я не погромист.
Дык может мы тебе тут напиздим
эт я селениум изучаю, чтобы потом чот побольше сделать
Хром почти нереально заставить работать стабильно. Всегда будет какая-то хуйня происходить, то память утекать, то зомби-процессы оставлять, то ещё что-нибудь. Единственный способ с этим бороться - это либо распараллеливать на несколько компьютеров, чтобы 1 хром запускался на одном компьютере и брал из очереди rabbitmq задание. Потом как завершается задание - хром убивать. Либо тебе нужен пиздец какой сервер, гигабайт на 8 оперативки минимум. И после того как ты свои 50 вкладок откроешь, у него память утечёт, ты его убьёшь и снова перезапустишь свои 50 вкладок.
Но у меня вагон сомнений в твоём подходе. Вряд ли хром будет эффективно работать на 50 вкладках в параллели. Ему тупо мощности проца не хватит. Либо это надо арендовать сервер гиг на 32 и въёбывать минимум по 10к рублей в месяц в этот сервер. Проще сделать 10 проходов по 5 вкладок. Сначала 5 вкладок, завершаешь парсинг, потом эти закрываешь, открываешь новые 5 вкладок и так далее.
реально, зуб даю
Я открывал по 50 вкладок вркучную и всё не слишком стабильно работало, но вот прям таких зависаний я не видел. Тут есть какая-то разница в ресурсах при открывании всего мануально и селениумом?
И ещё вопрос - может просто заменить хром на что-то менее прожорливое? Какой-нибудь хромиум-бейсд полуголый браузер без фунционала
>есть какая-то разница в ресурсах при открывании всего мануально и селениумом?
Естественно. Ну он же автоматизирован, там будет большая нагрузка на проц. К тому же во вкладках будут одни и те же куки. То есть ты не можешь одновременно на одном и том же сайте быть залогинен под разными именами. А у многих соцсетей ещё и защита стоит, на количество запросов с одного айпи, у того же вконтакте например.
>может просто заменить хром на что-то менее прожорливое?
На обычный urllib. Если тебе не джаваскрипт не нужен. Там же просто заголовки скопировать и всё. Либо если у сайта есть api, то и скрапить ничего не придётся. А так ты просто наживаешь себе лишний геморрой на жопу.
Лиса, кстати сделана на движке хрома.
>>145317
Ну очевидно что когда ты запускаешь хром через селениум, там к каждому процессу хрома прикреплен вебдрайвер, который занимает память. Ещё важно что в самих вкладках открывается, всё что там грузится на сайте тоже занимает память через движок хрома и потом ещё в веб драйвере. А в хроме ещё есть свои правила управления памятью. Предположим такая ситуация что памяти не хватает и хром начинает выгружать страницы и это создает какой-то конфликт с вебдрайвером и его содержимым. Но это не точно.
В целом ты просто хуйню какую-то творишь с этими 50 страницами. Если нагружаешь некую систему до предела для которого она не предназначалась то надо уже как-то и вместимостью и пропускной способностью ресурсов озаботится, памятью, процессором, сетью, вот этим всем.
Короче говоря забудь про свои 50 ссылок, пересмотри подход к задаче.
>Лиса, кстати сделана на движке хрома.
У файрфокса всегда был свой движок, мозилловский. И раньше и сейчас.
И правда, как же сильно я заблуждался. Теперь всерьез подумаю на лису пересесть.
Нужно какой-то простенький gui или (в идеале) открывалась консоль, чтобы можно было выбирать стрелками на клавиатуре пункт меню и при нажатии enter выполнялось некое действие или выводить другое подменю с пунктами.
Куда копать, что прочитать?
>Лиса, кстати сделана на движке хрома.
Ебать, еще и "кстати" туда влепил.
мимо-охуел с этого специалиста
О! Я раньше любил делать такие менюшки для своих консольных программок.
В простом цикле ставишь слушателя ввода (input() или getch() потому что весь прикол в том чтобы было минимум импорта или вообще только с помощью встроенных функций) и после каждого нажатия кнопки очищаешь консоль и перерисовываешь полностью содержимое.
Никаких гайдов нет, просто использую print и пространственное мышление, но конечно это бесполезное и дичайшее васянство и никому такое говно не нужно. Никто так не делает. В питоне есть встроенная библиотека для GUI и ещё десяток мощных сторонних библиотек на любой вкус. Правда, конечно, освоить их сложнее чем просто в цикле через print "рисовать".
да
Хуле вы тут шизите то?
Хде интересные пет проекты, алгоритмы на коленке, оптимизации?
Нет, будем по сотому кругу шутитьб про дрочку как школота ебанная
>Как питонить?
Задать правильный вопрос значит найти половину ответа. Ты тут уже обосрался, потому что правильный вопрос не "как", а "зачем".
Зачем ты хочешь питонировать? Чтобы бросить ненавистную работу баристой и зарабатывать 300кк в наносекунду? Если да, то плохие новости, питонирование не для тебя. Чтобы питонировать у тебя должен питон стоять на питонирование, и если у тебя питон стоит, то и вопросов "что делать" не возникает, а возникают противоположные - откуда взять время чтобы все хотелки реализовать.
юзал много poetry где, но постоянно баги ловили, сейчас на новой работе pdm
Значит, дана задача: Напишите программу, которая принимает на вход словарь целых чисел
и выводит на экран сумму всех значений в словаре
Что я решил попробовать: пользователь вводит сам столько значений, сколько хочет. Искал в инете, но в итоге самое простое решение нашел в.. ответах маил.ру. Затем, надо всё это дело сложить. Тоже, искал-искал, сам не помню где и как, по итогу сделал это максимально просто, хотя на всех сайтах были и функции, и ретурны, и еще что-то
В итоге, вышло вот так:
my_dict = {}
punkty = int(input("Введите количество элементов в словаре: "))
for i in range(punkty):
key = input("Введите ключ: ")
value = int(input("Введите значение: "))
my_dict[key] = value
print(my_dict)
print (sum(my_dict.values()))
Максимально коротко и просто, так ещё и работает. Собственно, что меня волнует: ну не мог я с нулевым опытом, решая практические для вуза, как-то вот так наебать систему, кучу сайтов, и прочего.
Что тут не так?
>Введите количество элементов в словаре:
>Введите ключ: Введите значение:
А это нахуя. Этого же в задаче нет.
А ну да, действительно, я и забыл какие дегенераты заплесневелые в универах задачи составляют.
Только у тебя тогда ошибка. Ведь твоя программа "принимает на вход" не только целые числа, но и вообще всё что угодно. Нужна проверка что введено целое число. Ну и ключ словаря исходя из задачи не имеет значения, значит его вводит не обязательно.
https://www.online-python.com/hobMTDXEvC
Почему VS code меня газлайтит?
В коде видим: подчеркивания нет под headers. То есть что бы не определяло подсветку, оно все видит. По ctrl+click переходит в нужный файл.
При запуске видим пик2.
Вот какого хуя?
В смысле? Там же указан инт. А именно проверку запускать мне было уже лень
Попросили реплику одного бордобота который был в телеге сделать, чят-бот если кратко.
Пытаюсь возможность делать реплаи к нему прикрутить, обнаружил что в pyrogram нету цитат, т.к. разраб исчез, нашёл нужный функционал https://pyrodocs.kurimuzon.ru/api/bound-methods/Message.copy/#pyrogram.types.Message.copy в форке https://github.com/KurimuzonAkuma/pyrogram, но цитата пропадает из сообщения(видно буквально на одно мгновение), почему лыжи не едут?
Пиздец, нашёл корень проблемы, если сообщение отредактировать, то всё, цитата слетает.
Ты имеешь в виду вот это?
import sys
sys.path.append('/путь/к/папке/проекта')
Или я вообще не понимаю?
Pythonanywhere предлагает бесплатный хостинг. Иногда, правда, сервер убивает процесс и надо заново врубать.
А вообще free-for.dev
Не знаю.
Можешь купить за 100 руб сервак у timeweb и запускать. Впринципе, это почти бесплатно
>>148920
Да бля обычный яндекс облако. Что тебе мешает взять https://developer.hashicorp.com/terraform/cdktf поместить код в функцию https://yandex.cloud/ru/services/functions через api gateway пробросить и готово. Тут тебе пошагово объяснили как и чо https://infostart.ru/1c/articles/1618933/
>>136638
> Работы в разработке на питоне нет.
Вот это правильно, не надо никуда вкатываться, работы нет
>>137280
Зачем ты используешь какое-то левое говно? Вот единственная либа, которую используют в проде адекватные люди. Подключается в две строчки
https://drf-yasg.readthedocs.io/en/stable/
>>144134
Нахуя ты всвякую дрисню на селениуме пишешь? Это установка на нищету?
А вообще, зачем ты GenericViewSet используешь вместо ViewSet? Дженерик вроде не подразумевает форму с загрузкой файлов
Бля, я сам запутался пока писал. Не ViewSet, а APIVIew
Назови файл без пробелов и английскими символами. Тут дело не в питоне, а в том, что русский язык и пробелы в файлах сделаны через ебаные костыли. Так что никогда, запомни, никогда не создавай папки с пробелами. Ну и желательно называй латиницей
Ладно, следующий вопрос: что я делаю не так теперь?
Проблема решается добавление вот этой строчки в settings.py
А вообще, ебал я рот Джанги, если б не начальство, хер бы взял новый проект на ней
какой-то долбаеб неправильно написал коммент про readline(x). иди в гугл блять. python realine - очень сложно загуглить
Но было там следующее:
a = "Меня зовут анон"
with open ("example1.txt", "w") as file_otkr:
print (file_otkr.write (f "Попытка создания файла. {a} и я пробую разные способы работы с файлом. \nА ещё, я знаю, что 24+1= {24+1} \nС виду тут нет ничего необычного, но чтобы это увидеть, надо открыть код")
Выдает ошибку синтаксиса. Что я делаю не так?
Если что это массив флоатов. При этом на первой пикче можно видеть что часть чисел он отображает в флоат формате, часть в инте, а часть в этом ебучем научном формате.
Вариант фильтрации через id__in не подходит, т.к. он просто проигнорит несуществующие айдишники
Сравни количество входящих в бд и выходящих из бд.
Ан нет, там не было принта
a = "Меня зовут анон"
with open ("example1.txt", "w") as file_otkr:
file_otkr.write (f "Попытка создания файла. {a} и я пробую разные способы работы с файлом. \nА ещё, я знаю, что 24+1= {24+1} \nС виду тут нет ничего необычного, но чтобы это увидеть, надо открыть код")
При работе без f-строк всё происходит нормально. Питон не работает с файлами, если там есть форматирование? Просто.. потому что? Или же ему нужно использовать другие виды форматирования?
>>152732
Содомит. Пока она ишачит на кухне, я, так уж и быть, могу помочь ей с учебой
Джанго говно, это факт. Но магические строчки в settings.py это почти даже не проблема. Вот ОРМ у штанги это говно ебаного говна
>>152488
А ты уверен, что тебе это надо? Ну выводи с помощью формата
'{0:.20f}'.format(number)
будет 20 знаков после запятой показывать
https://docs.python.org/3/library/string.html#formatstrings
>>152735
Нахуя ты ставишь пробелы перед скобками? Нахуя ты ставишь пробел после f? Ты ебнутый?
Улучшения читаемости чего? Почему ты в тексте для улучшения читаемости н е п и ш е ш ь в о т т а к ?
И большой текст можно внутри скобок переносить вот так. Это действительно повышает читаемость, в отличии от того, чтобы в рандомных местах ебашить пробелы
1)Пользователь должен ввести 10 чисел, необходимо собрать эти числа в список, а затем создать новый список, в котором останутся только те числа, которые являются простыми (простые числа делятся только на себя и на 1)
2) Пользователь должен ввести любое количество имён, необходимо собрать их в список, а затем запросить у пользователя букву и вывести только те имена, которы начинаются с этой буквы (для ввода произвольного количества имён можно использовать стоп-слово, по вводу которого ввод прекращается) Учтите, что букву можно ввести в любом регистре.
3) Пользователь должен ввести 20 значений температуры (одно значение - один день), необходимо собрать эти значения в список. Запросить у пользователя ещё одно значение (минимальную температуру) вывести номера тех дней, в которые температура была выше этого значения (учтите, что в списке индексация начинается с 0, а нумерацию принято проводить с 1)
Спасибо анонче! Первое задание правда не работает всё равно.
Я начал так, но дальше, чтобы число было простым, хз как вычислить и написать это в список. Можно как-то проще, чем у тебя.
>Я не знаю, что гугл сделал со своим поиском
сломал. С помощью chatgpt.
И теперь обычный поиск буквально не работает.
вот. Разве не это?
Алхимии это не помешало на вторую версию с sql-like синтаксисом переехать. А джанга застряла в нулевых вместе с ларой остался с ее охуительными запросами вида
$user = User::firstOrCreate(['name' => 'John']);
Очевидно, что в SQL базе. И наверное через ORM, хотя, я давно панду не трогал — вдруг она уже нативно научилась хранить в каком-нить SQLite?
>Какое же говно, господи, я не верю, что так хуево можно писать
Что не так, как надо, почему именно так.
Есть функция check(), внутри которой происходят арифметические действия и возвращает она результат. Возвращаемый результат меняется раз в секунду.
Есть if, в котором по моей логике, должно проверятся значение, полученное от функции, и если оно <0.50, то делать одно, в другом случае - другое соответственно.
Проблема в том, что происходит только одна итерация и цикл печатает одно и то же не проверяя после этого ничего.
https://pastebin.com/Wgxq9PFG
Всё нормально работает.
Даже несмотря на то, что твой код - гавнище полное.
https://www.online-python.com/Skn0BwHYbv
close() это чисто правило хорошего тона в большинстве случаев. Если ты запускаешь эту программу разок и она у тебя не бегает по 30 дней, то можешь забить. Ось сама закроет файл за тебя
Зачем у тебя проверка на какую-то неизвестную переменную происходит? Зачем ты просто так функцию вызываешь? Что это нахуй?
>>155178
Напишу только про первую задачу, так как каждую из задач объяснять лень. Ну, начнем с того, что ты делаешь префикс _ у переменной просто так. Продолжим тем, что вот это говно
> print("Простые числа:", *[n for n in arr if simple_num(n)], sep="\n")
это просто пиздец. Тут даже непонятно с чего начать -- с того, что ты бездумно пихаешь однострочники, хотя они нахуй не нужны, или с того, что ты не в курсе про join, или с того, что ты вместо того, чтобы переместить логику проверки списка в функцию, переместил ее в вывод данных.
>>155533
> global tt, nu
Ох блять...
>> global tt, nu
>Ох блять...
Цыть, ебёныть! Нельзя ж трогать творчество автора и его видение.
Ссать тебе в глаз, зануда.
Чтобы сделать нормально, надо переписать функцию check() этого полуджуна в полукедах. Но надо дать ему возможность раскрыть себя, следовательно, сделаны костыли.
Теперь иди нахуй, тупое копытное.
То есть, ты специально написал говно, так как тебе кажется, что чел не особо разбирается в программировании?
Пиздец...
>тебе кажется, что чел не особо разбирается в программировании
В его код глянь, душный кастрат.
Та нейросеть генерации замечаний рандомному кроку на дваче?
>начнем с того, что ты делаешь префикс _ у переменной просто так.
Соглашение с нижним подчеркиванием используют не только чтобы обозначить личное поле, но ещё и тогда, когда переменная дублирует, повторяет или похожа на существующий нейминг. _input = input(). Можно открыть любую авторитетную репу чтобы в этом убедиться, например популярный модуль requests, там всё в подобном нейминге.
>Продолжим тем, что вот это говно
>однострочники, хотя они нахуй не нужны
Почему же не нужны, когда нужны. Ты забыл обосновать чем перемещение этой примитивной микроскопической логики в отдельный блок лучше чем однострочник. Компрехенсоны для того и нужны, чтобы таким говном код не засирать. Твоя же "правка" не нужна ни для чего, ни для упрощения алгоритма, ни для читаемости.
Итого ты приебался к неймингу, ты утверждаешь что для одноклеточной логики нужно делать отдельные блоки не обосновывая ни чем это свое заявление.
Понимаешь, если ты ещё 10 раз напишешь "пиздец" умнее от этого твои посты не станут, ты сейчас похож на джуна вчерашнего вкатуна, который узнал немножко поверхам и теперь пытается выебываться и самоутверждаться на анонимном форуме для школьников.
> когда переменная дублирует
Да
> повторяет
Чем это отличается от дублирования?
> похожа
Нет
> Ты забыл обосновать
Обосновывать почему в принт не нужно пихать бизнес логику? То есть, ты на таком уровне находишься?
Пиздец, лучше бы ты промолчал -- за умного сошел бы
>Пиздец Пиздец Пиздец Пиздец Пиздец Пиздец
>бизнес логику
Вкатун, проснись, ты серишь.
Надеялся что ты сможешь меня позабавить и хоть как-то защитить свою позицию, но ты просто слился. Ясно.
Все что ты смог выдавить из себя -- это обосраться на ровном месте с рассказами о нейминге переменных и заявить о том, что так как задача небольшая, то можно говнокодить. А после струи урины тебе на лицо, ушел в игнор аргументов и начал коупить. Тебе норм так жить? По ночам в подушку не плачешь?
Открываю самый популярный и один из старейших модулей.
>print(json.dumps(info(), sort_keys=True, indent=2))
Ой, пиздец. Почему же БИЗНЕС ЛОГИКА в принте? Пиздец что же делается? Надо срочно Гвидо написать что он говнокодер, а петушок с двача лучше знает как надо.
> Вся БИЗНЕС ЛОГИКА в info()
Ну так все верно, вся бизнес логика в инфо, она не протекает в принт. Ты вообще отбитый что ли?
>>155767
Ковыряю опенцв. Сравниваю картинку с шаблоном. На статичном изображении - все легко и просто, а если это видеоряд - возникают проблемы.
Есть основной цикл вайл тру - в нем происходит основная сверка с шаблоном. Если есть совпадение if max_val > .58: - вызывается функция check(), в теле которой происходит сверка текущего изображения с другим шаблоном и возвращается результат типа флоат. Если функция check() вернула, на пример, 0.45668552 if check() < .50: - напечатать одно, если вернула другое, на пример, 0.85452 - напечатать другое соответственно.
Везде в if я запихнул вызов функции в надежде, что каждый раз при ее вызове цикл будет возвращаться к if check() < .50 и в зависимости от результата будет выполнятся иф или елс.
Я не погромист ни разу, к слову.
>Я не погромист ни разу, к слову.
Оно и видно. Ты даже алгоритм не смог сочинить и написать.
Не надо постоянно вызывать функцию check(). Надо только один раз. Причём этот один раз и сравнивать с 0.5. А то ты просто так её вызываешь. В функции должен быть явный return с возвращаемым значением, а не по умолчанию.
раз он в циклах запутался, до этих фич opencv даже не дойдет
И то и то от программирования довольно далеко.
Школьникам нужен "Игрушечный" язык, который будет понятен и который сложно сломать.
Датасаенсу нужна оболочка над быстрыми библиотеками которой можно будет их перетасовывать и которую трудно сломать
> Как обеспечить бесперебойную работу?
Никак, в zero downtime даже гугл не может. Если говорить о том, чтобы ну прост не было кринжа с тем, что у тебя апликуха неделю не работает из-за того, что упала, а ты ежедневно не проверяешь, то да
> придется разбираться со всей этой девопсовской хней
Это самый простой способ. Не уверен, но вроде бы есть сервисы, которые за тебя займутся инфрой, а тебе только в докер упаковать нужно. Затем через интерфейс кубера сможешь следить
Хостинговые сервера могут не перезагружаться годами. А если всё таки произойдёт, то да, автозагрузочный скрипт.
Крашится у тебя ничего не должно. Если крашится, то это плохой код. Переписывай.
Не умеет.
Докер магически не может запуститься при старте системы. Нужен скрипт для системы инициализации.
Это скрипт есть во всех дистрах.
Бек на питоне помер или что? На дажнге тоже 300 вакух среди которых половина где то на сеньора
Все вот эти фастапи это просто гейтвей и валидатор для данных, там за ними еще кучу сервисов на пистоне, которые могут реста не иметь, а слушать кролик/кафку
Зачем вкатываться на FastAPI, если это просто очередной крудофреймворк, которых десятки? Ну подрочи его пару вечерков, чтобы в целом понять основные фишки. Хули там вкатываться? Ну swagger без yasg'ов генерится из коробки, pydantic зашит намертво и через async сделан. Все значимые особенности кончаются на этом. Используется дохуя где, просто это настолько незначительная деталь, что ее упоминают редко
Работа на дядю всегда уныла
Весь веб и энтерпрайз на любом языке можно описать как препроцессинг для потока байтов
От работы не должно быть противно, все остальное опционально. В любом случае лучше не превращать любимое занятие в работу, иначе оно перестанет быть любимым.
Ну я зашел на офф сайт питона там где то 10 книг и 10 сайтов самоучителей, все выглядят пиздато и хочется попробовать
Пытаюсь у себя решить проблему с Сериализатором Django Rest, видите ли он пишет какую-то хуйню когда складываю туда другую модель: product with this username already exists
И что бы вы думали? Судя по этому ответу Джанга автоматически блять пытается сохранить объект Product для которого использован ModelSerializer просто потому что это POST-запрос... Сцуко, кому еще нужны были пруфы, что Джанга - кусок пхпшного сблева из середины нулевых - вот пожалуйста. Не беритесь за это говно, пока вас под дулом ствола не держат
Зависит от твоих предпочтений, очевидно же.
Кому-то и фронтенд-дрисня покажется дохуя интересной.
Кому не похуй какой интерфейс? Бэкенд про то,как жсоны переложить в базу и насрать в очередь
>>157103
Программирование 90% практики и 10% теории. Сидишь и пытаешься разобраться, чтобы код работал. Никогда не будет так, чтобы ты прочитал, сразу все понял и заебашил работающий код
>>157250
Попробуй все-таки открыть документацию прежде, чем пытаться писать код. Ты взял именно тот view, который тащит за собой автогенерацию логики круда, хотя есть куча других вариантов без этого, и теперь с горящей жопой прибежал в тред, а нужно открыть документацию и все-таки ее хотя бы начать читать
И конечно, стоит упомянуть, что лучший интефейс "для себя" - это консольный ввод.
Для себя подразумевается, что тебе не нужно никого обучать и упрощать.
Пытаюсь у себя решить проблему с Сериализатором Django Rest, видите ли он пишет какую-то хуйню когда складываю туда другую модель: product with this username already exists
И что бы вы думали? Судя по этому ответу Джанга автоматически блять пытается сохранить/проверить объект Product для которого использован ModelSerializer просто потому что это POST-запрос... Сцуко, кому еще нужны были пруфы, что Джанга - кусок пхпшного сблева из середины нулевых - вот пожалуйста. Не беритесь за это говно, пока вас под дулом ствола не держат
Напиши свой букинг.
Никакой, блять.
API не имеет ценности само по себе.
Ну хочешь, сделай прокси для chatgpt с логгированием запросов и наебов гоев :
if model='gpto':
model='gpt3.5-turbo'
почему ты думаешь, что высраться о намерениях в питон-треде это охуенно?
Учишь - учи. Задавай конкретные интересные вопросы и получишь ответ.
Я сказал - сделаю виндоус!
Как сделать на питоне оформление окон, верхнее меню ??? Чего не понятен вопрос?
Нет никакой разумной причины это делать.
Что ты читал об операционных системах вообще?
Разбирался как устроен linux - наиболее открытая для изучения ОС?
зачем? Что будет двигать твою мотивацию во время написания этого проекта?
Почему люди захотят использовать твой "браузер"?
Что за браузер?
Ну вот, нарисовал блок-схему. Толку от этого не много. Программа не большая, все в голове можно удержать.
>>156132
Я с нейросетью точно не разберусь. Было бы больше свободного времени...
Вот целый код - https://pastebin.com/RqsNJEc9
Алсо, все равно ощущение, что check() вызывается один раз и на основании этого раза выдается результат. В какой-то цикл еще засовывать вызов check() надо, чтобы ежесекундно проверялось?
Только что еще с проблемой столкнулся. Мне надо будет в реальном времени отслеживать наличие совпадений с shab.png, покуда работает программа. Скажем, раз в секунду.
Но это потом. Сейчас, хотя бы, надо сделать, чтобы корректно работали ифы.
Но я не хочу здесь открывать все секреты.
Понятно.
вот тебе нормальная реализация того что ты хочешь сделать
https://github.com/idealo/imagededup
А вы думали что chatgpt сам код пишет?
Нет. Просто все уже когда то было написано, выложено на github и chatgpt обучился на нем.
ну вот я уже кидал в тред
По России на фастапи 573 вакансии сейчас, в Москве 335, при чем 200+ из них это 3-6 лет опыта
Для джанги 611 вакансий по России и 313 по Москве из них 194 с опытом от 3-6 лет
Если ты даже годик опыта будешь накручивать у тебя все равно +- 200 вакансий будет в арсенале, при том надо учитывать, что тебе ещё не всегда будут отвечать, а если и ответят, то не все собесы ты пройдешь, если вкатун
Да любую e-commerce залупу сделай, магазин питсы, букинг, как анон выше советовал, или какой-нибудь таск менеджер
>>157701
Ладно, я первый и последний раз отвечу серьезно.
Нахуя ты ищешь названия фреймворков? Нахуя ты ищешь их на хэдхантере с их ебейшим поиском, который при поиске по умолчанию выдает вот такие вакансии как на пикриле. Ну и да, при таком же поиске у react и angular по всей России выдает 3069 и 1132 вакухи, что казалось бы много, но даже на первой странице 2/3 вакансий это фулстак хуйня с и вакансии с названием
> Разработчик операций AI, Python/React (Удаленно) для меняющих профессию на разработчика
Короче, ты либо делаешь нормальные фильтры и потом ручками валидируешь всю выдачу, либо даже не пытаешься в анализ рынка таким способом
>с их ебейшим поиском, который при поиске по умолчанию выдает вот такие вакансии как на пикриле
Ну тогда ситуация ещё хуже, потому что это не 300 вакансий для питон бекендера, а 300 вакансий, в которых ЕСТЬ НАЗВАНИЕ фреймворка
И того, настоящих вакансий для бекендера ещё меньше, разве не так?
> это не 300 вакансий для питон бекендера, а 300 вакансий, в которых ЕСТЬ НАЗВАНИЕ фреймворка
Нет, это 300 вакансий для джуномидлов, в которых есть слово fastapi, и которые размещены на hh
> ситуация ещё хуже
Хуже, чем то, что у тебя в голове? Возможно так и есть, я не психиатр.
Во-первых, перестань путать вакансию с позицией. Во-вторых, если какая-то вакансия закрылась, то это не означает, что осталось после это 299 из 300. Эти количество открытых вакансий в моменте. Вот, например, 259 вакансий для позиций на питониста в сбере, там такая же хуйня как и в hh с поиском, но порядок думаю понятен. При том, что там именно позиции, а не просто вакансии, как на hh. Короче, ты слишком вне контекста рынка, чтобы пытаться там какие-то данные собирать. Есть живые языки, на которых есть работа, и мертвые, на которых есть полторы вакансии. Питон язык живой, любая другая аналитика требует построения целой инфры для наблюдения за ситуацией и очень глубоко знания рынка
Блять, отвалился скрин
Чел ты... Как недавно вкатившийся в бэк на питухоне могу тебе сказать, что на нормально созданное резюме с 2 нарисованными годами опыта тебе каждый день ХРюши сами пишут и предлагают пообщаться. Твоя задача это только затащить тех собес.
Спасибо, но мне самому бы разобраться уже, раз начал.
ссытесь, вкатуны?
Вот такой простенький код надо запихнуть в функцию, чтобы в результате так же приписывалось кол-во айтемов со схожей буквой. Заранее спс.
words = ['баклажан', 'банан', 'вишня', 'киви', 'черника', 'виноград', 'арбуз']
indexed_words = {}
for word in words:
---first_letter = word[0]
----if first_letter not in indexed_words:
--------indexed_words[first_letter] = []
----indexed_words[first_letter].append(word)
print(indexed_words)
from collections import defaultdict
words = ['баклажан', 'банан', 'вишня', 'киви', 'черника', 'виноград', 'арбуз']
def group_words_by_letter():
d = defaultdict(list)
for word in words: d[word[0]].append(word)
return d
d = group_words_by_letter()
for k, v in d.items(): print(len(v), k, v)
Благодарю!
Хотя может оказаться, что нужно, что-то другое, но всё же.
Хочу понять, можно ли как-то создать сетку которая будет накладываться на картинку сверху, чтобы манипулировать кусками картинки больше чем пиксель. т.е. мне нужны правила манипуляции допустим прямоугольником 3х2, а не просто начертить поверх картинки сетку. Понятно объясняю? Я сам просто нубас ещё, делаю для себя арт-проект.
Что посоветуете?
Если учить питон, то сколько времени это займет?
Если нанимать кого то, в какую минимальную цену смогу уложиться для каждого бота?
Использую библиотеку rich и selenium.
В 10 потоках (threading ) открываю 10 selenium браузеров и парсю данные с сайта, каждый из потоков у меня сохраняет логи, и эти логи я принчу в Table из библиотеки rich. Так вот, браузеры из-за этого дико тормозят и сайт грузится минуты 2, когда в норме это 5-10 секунд. Конкретно из-за пикрыл кода все идет пиздой. Если его убрать, то все 10 браузеров грузят сайт почти мгновенно.
Комп мощный, проц, оперативка - ниже 20%.
С playwright такой проблемы нет. То есть что-то конфликтует у rich и selenium wire, я хз что.
Что находится внутри generate_table() не важно, я оставлял его полностью пустым, проблема из-за самого факта наличия цикла Live()
Добавление дилея помогает. Но хотелось бы видеть логи в реальном времени. Проблема только с вебдрайвером селениума, весь остальной код работает так же быстро.
Если какая-то неведомая хрень внутри pytorch - шансов нет?
PasteAPI = pastebin.PastebinAPI()
my_key = PasteAPI.generate_user_key(api_dev_key, username, password)
Вылазит следующая ошибка:
C:\Users\user\Desktop>python key.py
Traceback (most recent call last):
File "C:\Users\user\Desktop\key.py", line 9, in <module>
my_key = PasteAPI.generate_user_key(api_dev_key, username, password)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\AppData\Local\Programs\Python\Python312\Lib\site-packages\pastebin.py", line 572, in generate_user_key
request_string = urllib.urlopen(self._api_login_url, urllib.urlencode(argv))
^^^^^^^^^^^^^^
AttributeError: module 'urllib' has no attribute 'urlopen'
Автор тупой мудак и не обновил модуль под python 3.8?
вполне.
Теперь знаешь почему в питоне столько дрочьбы вокруг venv, деплоев докером и прочих пакетных менеджеров
Так-то, я смотрю, этот модуль последний раз обновлялся в 2016 и он вообще под python2
Я кукухой скоро поеду, это пиздос.
Бро, матрица дала сбой, я это ты из параллельной вселенной, где ты выбрал пэхапэ. Только закончил копаться в доках....
У вас там тоже безобразие схожее что ли... А я вот нихрена не закончил, я фигею просто.
Я тыкался с Pyautogui (определял положение элемента по заранее сохраненному изображению, а затем нажимал на элемент), но меня тоже забанили. Вероятно проблема здесь в том, что Selenium и PyAutoGui не перемещают мышь, как человек, а телепортируют курсор к элементу. Но не уверен, вообще есть масса других потенциальных слабых мест, которые могут быть причиной.
Есть ли библиотека, которая решает эту проблему и может максимально приближена к моделированию действий человека?
Что там за сверхразумы в разрабах телеги сидят что он детектит WebDriver
Я уже готов целых 500руб заплатить чтобы я мог зайти на разные акки хотя бы на свой без постоянного логина
>Что там за сверхразумы в разрабах телеги сидят что он детектит WebDriver
Всё верно. Уёбкам с парсингом надо делать больно.
>Я уже готов целых 500руб заплатить чтобы я мог зайти на разные акки хотя бы на свой без постоянного логина
Ты это и так можешь в клиенте телеги (настроить несколько аккаунтов и переключаться).
Пидорас, который спамит мне в личку своей хуйней с рекламой цп и наркоты, ты? Хртьфу тебе в ебало
Там ничего сложного нет. Просто много понаписали.
Эти технологии писались 20 лет на парусах нескольких биржевых пузырей. Но они не обязаны быть логичными. Это не учебник матеши.
А зачем?
Нахуя ты в них разбираешься? Там буквально круглое кати, квадратное неси
Хз как через селениум, но через апи телеграма легко.
А не похуй?
Что значит нахуй сериализовать данные из функции? Ты вообще понимаешь хотя бы примерно какую задачу выполняет сериализатор в DRF?
А как в Питоне сделать? Пытался пройтись циклом по ячейкам (фрагмент):
for cell in row:
if cell.data_type == 'f':
cell.value = cell.value
Но ничего не происходит. Формулы остаются на месте. Как их убрать?
Попробуй, для начала, написать название библиотеки, которую ты используешь. Затем, напиши что по-твоему мнению должно поменяться от того, что ты ничего не меняешь. Потом подумай о том, как поменять data_type
Спасибо, завтра буду пробовать менять тип данных в ячейке. Библиотека openpyxl, не сказал. cell.value=cell.value это как бы аналог операции в VBA. Там же все работает, причём сразу на всём листе, без цикла по ячейкам.
Ничего не получается. Заковыка именно в перезаписи ячейки. Всё остальное нормально. Неужели в библиотеке openpyxl нет простого метода для "убийства" формулы в ячейке?
вот я во вьюхе создал функцию, которая сложила два числа. я могу созать сериализатор, который эту сумму передаст в api?
Лол
Ты не понимаешь как дрф работает и для чего нужны сериалайзеры. Вообще, сериалайзер это штука которая переводит жсон в словарик при десериализации и словарик в жсон при сериализации. Вот пикрил с документации. Логику можешь любую использовать, это вещь параллельная сериалайзеру.
НО есть нагруженные сериалайзеры, которые гвоздями прикручиваются к какой-то орм модели джанги и позволяют автоматически переводить не только словарь в жсон и наоборот, но и модель в жсон и жсон в модель. Это ModelSerializer. Там есть куча нюансов, но тебе они на данном этапе не нужны
Пробовал. Ничего не получилось. Может неправильно использую?
У меня в цикле ячейки перебираются.
for cell in row:
if cell.data_type == 'f':
Соответственно, вижу логичным вот так дальше сделать
cell.set_explicit_value(value, data_type="n")
Но эта строка выдает ошибку Cell object has no attribute set_explicit_value
Пробую предварительно получить в переменную adr координаты ячейки (они нормально записываются), а затем вот так
ws['{adr}'].set_explicit_value(value, data_type="n")
Ошибка {adr} is not a valid coordinate or range
Если вот так ws.cell.set_explicit_value(value, data_type="n")
То ошибка fuction object has no attribute set_explicit_value
ws здесь это переменная, в которую ранее записывается лист в цикле через ws = wb[sheet]
А что мы прописываем в качестве аргумента value? Предварительно записать туда на каждой итерации
value = cell.value?
Тогда там формула окажется.
Пробовал. Ничего не получилось. Может неправильно использую?
У меня в цикле ячейки перебираются.
for cell in row:
if cell.data_type == 'f':
Соответственно, вижу логичным вот так дальше сделать
cell.set_explicit_value(value, data_type="n")
Но эта строка выдает ошибку Cell object has no attribute set_explicit_value
Пробую предварительно получить в переменную adr координаты ячейки (они нормально записываются), а затем вот так
ws['{adr}'].set_explicit_value(value, data_type="n")
Ошибка {adr} is not a valid coordinate or range
Если вот так ws.cell.set_explicit_value(value, data_type="n")
То ошибка fuction object has no attribute set_explicit_value
ws здесь это переменная, в которую ранее записывается лист в цикле через ws = wb[sheet]
А что мы прописываем в качестве аргумента value? Предварительно записать туда на каждой итерации
value = cell.value?
Тогда там формула окажется.
>Ты не понимаешь как дрф работает
Я тоже нифига не понимал года 2 назад. Такая громоздкая хреновина, офигеть.
Зато мне это очень тогда помогло, потому что пришлось исходный код читать, чтобы переопределять классы. Очень много чему научился.
Вот так ws[f'{adr}'].set_explicit_value(value, data_type="n") тоже ошибка 'Cell' object has no attribute 'cell'
Попробуй s сделать, а не n
>>165551
Я рот ебал штанги и дрфа, я даже не знаю что меня больше бесит -- ебучая штанга со своей скуфидонской орм с бесконечными чейнами через __ и своими названиями для любо хуйни угадайте что значит annotate? может какой-то алиас? НИХУЯ, это group by или ебаный дрф, который думает, что он умнее меня
>Посоветуйте редактор кода, маленький, быстрый, чтобы кушал как можно меньше оперативы, бесплатный.
Github codespaces
>диаграмму экселя
Как это переводится с кабанчикового языка на нормальный инженерный?
Спроси там и приходи снова.
А еще лучше, данные из экселя бери и рисуй.
спасибо
Пиздец, ну вот есть в экселе диаграммы и графики. Тебе на "нормальный инженерный" слова "диаграмма" и "график" как перевести?
"Там" спросить - это где? У твоей мамы?
Как мне взять эти данные и нарисовать? Вопрос именно в этом.
Ок, если прям ДЕЙСТВИТЕЛЬНО непонятно, что имеется ввиду в этом элементарном вопросе - есть файл .xlsx, в нём есть какой-то график/диаграмма, как не открывая файл спарсить данные скриптом и сохранить на диск в виде картинки/хз чего ещё.
Так это не программист, а говнопрепод-паскалятник с нулем реального опыта
так это он в интернете такой злой) в жизни то немножко по другому бы общался. Очень вежливый был бы мальчик.
Так столяров это мгушный питух-кукаретик, там студенты первокурсники максимум, которым грозит армейка и отчисление, если этот петух нажалуется. Если бы он в реальной компании поработал бы хоть день - его в тот же день отпиздили, обоссали и уволили бы. Он сам понимает, что профнепригоден, поэтому и верещит на своем сайтике, что все кодерки какие-то не такие.
Короче, старый стремный козел, а ВМК дно.
Полностью прав во всем.
>>166916
Петух, терпила и бессловесный холоп ты, работающий в "реальной компании", которого кабаныч ебет в жопу страпоном и увольняет за просроченные таски.
А Андрей Викторович собирает лямы на донатах, переехал жить в Черногорию. У него все хорошо.
Возьмём теперь классический вариант занятости на fulltime — восьмичасовой рабочий день, пятидневная неделя, вот это вот всё. Кто работал на полную занятость программистом или кем-нибудь ещё, в чьи обязанности входит умственная деятельность, знает, что из восьми часов стандартного рабочего дня хорошо если половину удаётся потратить непосредственно на создание результата. Остальное уходит на трёп с коллегами, лазанье по интернету, перекуры, телефонные разговоры, которые всегда невовремя, и прочее в таком духе. И это, в принципе, даже неплохо, поскольку если попытаться восемь часов в день реально работать мозгом, через неделю работы в таком режиме очень захочется в отпуск, а через месяц — хоть в дурку, хоть в грузчики, только подальше от этой проклятой работы. Работы с рукописью это тоже касается.
http://stolyarov.info/node/266
> Петух, терпила и бессловесный холоп ты
> А Андрей Викторович собирает лямы на донатах
Не знаю как там столяров, но его донатеры это буквально петухи и холопы. Это дегенеративное шизло специально портит электронные версии своих книг, на которые его петухи фанаты скидывали миллионы, чтобы им сложнее читалось. Это какой-то запредельный уровень гнили
Ни в чем не прав. Столяров - это диванный теоретик и луддит, последний раз писавший коммерческий код лет 30 назад. На лор регулярно притаскивают его поделия на плюсах, где видно, какой он "программист" - код неструктурирован, везде ошибки управления памятью, UB и прочие радости. Его уже обоссали все кому не лень.
Питон ему не нравится, потому что он его не знает. Зато не гнушается писать на пхп, лол.
// мимо-сишник
>У него все хорошо.
В полтинник пора уже доктора получить, а не кандидата.
У него точно всё хорошо?
>Тебе на "нормальный инженерный" слова "диаграмма" и "график" как перевести?
Да никак. График в экселе не бывают нормальными.
>Как мне взять эти данные и нарисовать? Вопрос именно в этом.
import pandas as pd
df = pd.read('123.xls')
df.govno.plot()
Это весь код.
У тебя установка на нищету? Зачем ты вообще такой хуйней занимаешься?
headless
Ну ладно, попробую через пандас, хотя смутные сомнения меня терзают. Спасибо.
Хм, что-то меня заинтересовал этот скрин. А в чём вообще смысл то поиск не добавлять намерененно? Ну, в смысле, я понимаю если бы это был прогрев на покупку бумажного издания, но ведь нет, это как я понимаю просто именно _прихоть_, я всё правильно понял?
Если да, то этот ваш Столяров (впервые про такого слышу) - полнейший идиот.
Ну чел верит, что он так типа повышает продажи бумажной версии и борется с людьми, которые распространяют куски из его книг. Но на деле столяров просто ебаный шиз, который заперся у себя на форуме с премодерацией и окончательно деградирует
Суть такова: tkinter Canvas, нужно по-человечески вписать текст в окружность. Текст должен быть максимально возможного размера, в одну строку и не вылезать за пределы окружности. Шрифт моноспейс (курьер). По идее, достаточно знать отношение длины строки к её ширине в пикселях. Но пропорции символа меняются в зависимости от размера шрифта. С помощью метода шрифта tkinter.font.Font.measure(string) как будто бы можно это соотношение найти, но непосредственно нарисованный на канвасе текст какого-то хуя оказывается другого размера (размер смотрю методом канваса bbox). Более того, получается, что отношение ширины к высоте одного ёбаного символа меняется ещё и в зависимости от длины строки даже в пределах одного размера шрифта. Что это, блядь, за хуйня?
Нет, я конечно, понимаю, что можно тупа нарисовать и бинарным поиском подбирать размер, пока не впишется, но это же уебанство.
Жопными разрывами малолетних дебилов удовлетворены.
Сталинист Дмитрий Юрьевич Пучков
Антисталинист Андрей Викторович Столяров
Успокойтесь, никому ваш недогуру не нужен.
> Жопными разрывами малолетних дебилов удовлетворены
Причина тряски?
> Петухонщик-дегенерат не может в OCR?
Было бы ради чего стараться.
> доцент
По качению бревен.
> Жирнота-то какая...
А что, знает? Он даже си нормально не знает.
А, ну понятно, что ни шизик, так либертарианец.
Короче говоря, это такой биоробот, у которого в голове какой-то убогий мир, который к реальному миру особо отношения не имеет.
Питонщики настолько тупорылые денераты, что не могут догадаться сдвигать символы?
Накидал небольшую прогу, которая кодирует русские буквы в столяровскую кодировку для поиска по текстовому слою.
С цифрами и символами пунктуации лень возиться.
Запускать java -jar Stolyar.png
> мне срут в рот, но я придумал специальную технику сплевывания, чтобы успеть половину какашек выплевывать
Да-да, охуенно
Скучно читать книжки, поэтому использую подход learn by doing.
В целом неплохо освоил базу питона + фреймворки.
Решил пройтись по стандартной либе и увидел там всякие миксины, декораторы, генераторы и прочие продвинутые фичи языка.
Вопрос: нужно ли все эти фичи знать чтобы оформить вкатучинского в питоныч?
Я прочитал, зачем все эти штуки нужны, но как их применять в своих проектах не знаю, да и смысла не вижу.
>Скучно читать книжки, поэтому использую подход learn by doing.
Правильно
>Вопрос: нужно ли все эти фичи знать чтобы оформить вкатучинского в питоныч?
Есть план минимум и есть план максимум. Строго говоря, для вкатуна это не нужно.
>как их применять в своих проектах не знаю, да и смысла не вижу.
Ну если не видишь, то и не применяй. Тебя кто насильно под током заставляет?
>В целом неплохо освоил базу питона + фреймворки
Как ты это определил?
Если ты изучил фреймворки, то ты наизусть должен знать всякие миксины и декораторы, потому что они активно применяются в Джанго, например. В drf тоже.
И это не продвинутые фичи. Это обычные. Просто чуть поглубже, чем объявление функции или цикла.
И вкатиться куда? Куда ты собрался вкатываться?
Нет такой работы "программист на Питоне", или почти нет. Есть конкретные направления типа работать над веб-приложением написанным на fastAPI
>миксины, декораторы, генераторы и прочие
Эти "продвинутые" фичи у тебя с вероятностью 99% сейчас будут спрашивать на собесах на джуна-мидла в любую контору. Так что да, учи это. Слоты и абстрактные классы еще не забудь.
>миксины, декораторы, генераторы и прочие
Эти "продвинутые" фичи у тебя с вероятностью 99% сейчас будут спрашивать на собесах на джуна-мидла в любую контору. Так что да, учи это. Слоты и абстрактные классы еще не забудь.
> Скучно читать книжки
Если "книжки" это всякие Лутцы, то правильно. Если "книжки" это документация, то это хуйня идея
> В целом неплохо освоил базу питона + фреймворки
Не знаю почему, но в 10 случаях из 10, когда кто-то такое пишет, то это означает, что ни базы питона, ни фреймворков человек не знает. В лучшем случае, по каким-то гайдам с помощью копипаста запустил hello world
> миксины, декораторы, генераторы и прочие продвинутые фичи языка
Наследование и базовый синтаксис языка это не продвинутые фичи
> нужно ли все эти фичи знать чтобы оформить вкатучинского в питоныч?
Для вката нужно уметь поднять свой простенький сервис на пару десятков эндпоинтов, подключить эту хуйню к бд какой-нибудь, написать модельки и заебенить миграции. Все это подразумевает понимание того, как работает наследование и базовый синтаксис языка
> как их применять в своих проектах не знаю
Ты какие там фреймворки изучил, что тебе нигде ни декораторы, ни миксины не понадобились? По ходу, ты просто бездумно копипастил всякую хуйню из инета и думаешь, что это означает, что ты что-то там изучил. Советую тебе взять в руки документацию хотя бы того же drf и плотно ее изучить, благо там всего пара десятков страниц
Нужно вот этот код преобразовать в питоновский. Функции написать. Как вам удобно, главное чтобы работало. Пожалуйста.
https://publicapis.io/lord-of-the-rings-api/
Мой ключ: YctbNHotTwnVf0mC2kEO
>Когда на курсах кабанчиков дали задачу заставить кого-то в интернете написать код за спасибо...
Хуево когда нуб еще и ленивый...
>>169415
Без вас троллей сделал, только теперь не знаю как настроить, чтобы по другим именам искало
import requests
def quotes_by_character(character_name:str):
key = 'YctbNHotTwnVf0mC2kEO'
headers = {
'Authorization': f'Bearer {key}'
}
character_response = requests.get(f"https://the-one-api.dev/v2/character?name={character_name}", headers=headers)
character_data = character_response.json()
character_id = character_data["docs"][0]["_id"]
url = f"https://the-one-api.dev/v2/character/{character_id}/quote"
response = requests.get(url, headers=headers)
data = response.json()
return data["docs"]
quotes = quotes_by_character("Gandalf")
print(quotes)
> Без вас троллей сделал
Додик, который пришел в пр за бесплатной рабочей силой, ты? Хртьфу тебе в ебало
Но так и быть, дам тебе бесплатный совет -- не пали свой токен
Вряд ли он по этой причине. Скорее всего знает только один язык, а в доке дан пример на другом языке.
Аллилуйя у меня всё вышло! А вы ...
> Скорее всего знает только один язык, а в доке дан пример на другом языке
Бля, я бы понял, если бы там какие-то специфичные штуки жса использовались. Но там ничего знать про жс не нужно, просто убрать const, вместо $ в строке поставить f и fetch заменить на session.get Будет буквально рабочий код на питоне
>>169437
Мог бы проигнорировать, но не проигнорировал
Мне на все устройства надо. И там должен быть трехмерный модуль для визуализации процессов, с возможностью манипулировать этой хуйней - объекты перемещать там, размеры их менять, крутить и во такое.
Не надо пытаться на питоне пилить гуишки. Особенно для мобилок. Это ОЧЕНЬ плохое решение. Все библиотеки говно, кроме мб qt, но тогда уж лучше взять нативные плюсы если нужно много и сложного либо qt creator если нужно немного и не сложного
Что за бред сивой кобылы. Выдаешь свое желаемое за действительное. На чем еще гуишные приложения писать как не на скриптовом клее? В том же пятоне гуишные либы нативные, если причина твоей ненависти в этом.
> бред
Ебать, как же жестко ты приложил
> На чем еще гуишные приложения писать
Посмотри на чем написаны все приложения на твоем пука -- электрон, кутэ, гтк и впф
> В том же пятоне гуишные либы нативные
Что это нахуй значит?
>>169542
Написано много чего? Если бизнес логика, то похуй вообще. Возьми обвязку qt для пистона. Знаю даже 1 контору в своей мухосрани, которые давятся кактусом, но пишут на PyQt свою залупу
>>169551
Потому что все инструменты говно. Если твоя цель сделать минимальный гуй с 3 кнопками и 1 картинкой, то проблем нет. Вообще поебать на чем писать и чем проще решение, тем лучше. Как только у тебя начинаются действительно бизнесовые задачи, то ты взвоешь
> электрон, кутэ, гтк и впф
это не пятон это гуишные либы, которые ты в пятоне используешь (кроме электрона и впф)
поэтому непонятно утверждение
>Не надо пытаться на питоне пилить гуишки
Оно звучит как призыв красить кнопки исключительно на цпп
> это не пятон это гуишные либы, которые ты в пятоне используешь
И которые лучше не использовать без крайней нужды. Рынок говорит тоже самое, причем из 14 вакансий PyQt часть чисто плюсовые, где в опыте работы PyQt просто как возможный опыт указан.
> непонятно утверждение
Что конкретно не понятно? Не надо писать гуи на питоне. Он плохо для этого подходит. Тем более, что чел хочет писать в том числе и под мобилки, что уже совсем безумие
Причем здесь вакансии... Какое это имеет отношение к вопросу на чем можно писать? 🐗猪🐗ыч тебя может заставить гуй и на пыхе пилить.
> Причем здесь вакансии
При том, что если никто не использует библиотеку, то она 100% говно. И дело тут не в том, что миллионы мух не могут ошибаться, а в том, что без большой базы пользователей библиотеки не развиваются
> Какое это имеет отношение к вопросу на чем можно писать?
Прямое
> 🐗猪🐗ыч тебя может заставить гуй и на пыхе пилить
Может, но в случае с 🐗猪🐗ычем это не твой проект и не тебе ебаться в случае чего с последствиями такого решения
Я за лет 5 пытался что-то учить, но не мог и часа просидеть. Сейчас с помощью 4о очень много нового узнал, например. Он мне объяснил как макаке как поставить гит, как создать ссш ключ и связать с гитхабом, как клонировать, пушить и пуллить изменения. Работать с ветками и прочее.
Также базово начал изучать Питон. Хочу дойти до уровня написания автотестов на питоне как минимум, как максимум на хорошем уровне начать понинмать ООП и в целом хороший код писать.
Решил челлендж для себя сделать, изучать питон и гит исключительно с помощью гтп 4о. Для себя создал канал в тг и там отчётность веду, также на гитхаб стараюсь коммитить всё подрят, писать комментарии к коду и прочее.
Пока чисто всё базовое рассмотрел, но прям очень нравится.
Можете что-нибудь подсказать, советы может какие. Какие задачки стараться делать и прочее?
Может через пару лет, GPT какой-нибудь последний и сможет быть адекватным "учителем". Но сейчас текстовые нейронки только плохому могут научить как не надо делать.
Если конечно ты пускающий слюни дегенерат с iq 80, то, наверное, чему-то сможешь у нейронки научиться. Во всех остальных случаях это просто справочник поисковик вроде гугла т.е. тебе от него прок может быть только если ты уже в теме предмета и сможешь распознать когда нейронка гонит порожняк.
Я когда ещё всего этого не знал, пытался с помощью гпт осваивать встроенную либу для gui и решать некоторые тригенометрические задачки с помощью нумпи. Это был пиздец опыт. Просишь его перечислить какие-то методы какие есть у класса, он "забывает" парочку (самых нужных офк), как в нумпи сделать определенные вещи с веткором он отвечает инфой из прошлого века, которая давно не актуальна. Тычешь его носом в его ошибки - он тебе в ответ "ой вы правы", "действительно вы правы", "извините за неточность".
Короче, если ты можешь чему-то учиться у нейросети в текущем её состоянии, во-первых - забудь всё что научил там, тебя скорее всего научили говну и во-вторых - ты даун.
Да он полностью пустой, там только я один. Ща сходу ещё засрут мой код))
>>170340
Ну отчасти соглашусь, да, НО.
Сегодня я, например, узнал, что принято оставлять пустую строку в конце файла с кодом. Сегодня от чата я узнал, что функция должна что-то возвращать. То есть
def greetings(name):
return f"Привет, {name}!"
Вот так хорошо писать, а
def greetings(name):
return print(f"Привет, {name}!")
Так плохо. Это наверно очень простая и понятная вещь, но я этого не знал и нигде этого не видел.
Также, если мне чего-то непонятно, он мне "разжёвывает" в нескольких вариантах всё. Я потом переписываю код по-своему (другие переменные, чуть друргой стиль) и спрашиваю: ок или не ок и он также подробно отвечает.
НО
Если был бы выбор: кореш под рукой, который шарит в программировании или этот чат, то, естественно, выбрал бы кореша. Но кореша у меня все заводчане.
>пускающий слюни дегенерат с iq 80
сук представил своё ебало слюнявое
>справочник поисковик вроде гугла т.е. тебе от него прок может быть только если ты уже в теме
тут согласен полностью, если знаешь что непонятно и правильно задать вопрос, то получишь ебейший ответ в разных вариациях со всевозможными примерами
>ты даун
сука во ты пидор, в конце это написал. я всё так читал, на всё отвечал, а в конце такое. во гад
Да он полностью пустой, там только я один. Ща сходу ещё засрут мой код))
>>170340
Ну отчасти соглашусь, да, НО.
Сегодня я, например, узнал, что принято оставлять пустую строку в конце файла с кодом. Сегодня от чата я узнал, что функция должна что-то возвращать. То есть
def greetings(name):
return f"Привет, {name}!"
Вот так хорошо писать, а
def greetings(name):
return print(f"Привет, {name}!")
Так плохо. Это наверно очень простая и понятная вещь, но я этого не знал и нигде этого не видел.
Также, если мне чего-то непонятно, он мне "разжёвывает" в нескольких вариантах всё. Я потом переписываю код по-своему (другие переменные, чуть друргой стиль) и спрашиваю: ок или не ок и он также подробно отвечает.
НО
Если был бы выбор: кореш под рукой, который шарит в программировании или этот чат, то, естественно, выбрал бы кореша. Но кореша у меня все заводчане.
>пускающий слюни дегенерат с iq 80
сук представил своё ебало слюнявое
>справочник поисковик вроде гугла т.е. тебе от него прок может быть только если ты уже в теме
тут согласен полностью, если знаешь что непонятно и правильно задать вопрос, то получишь ебейший ответ в разных вариациях со всевозможными примерами
>ты даун
сука во ты пидор, в конце это написал. я всё так читал, на всё отвечал, а в конце такое. во гад
>функция должна что-то возвращать
Ну вот видишь, нейронка уже начала делать из тебя пидора. Функция это просто блок кода, она ничего никому не должна. Вот у тебя есть функция, которая например пишет в файл слово "хуй", что и кому она должна возвращать? Она записала в файл "хуй" и на этом её работа окончена. Если в файл не получилось записать "хуй", то можно вызвать другую функцию, которая пишет лог "так и так, не вышло записать хуй в файл".
>Так плохо.
Это хуйня полная, важно ПОНИМАТЬ суть вещей, понимать почему что-то "плохо" а что-то "хорошо", в этом и смысл обучения, в понимании сути вещей сука. Ну ты точно даун.
> Вот у тебя есть функция, которая например пишет в файл слово "хуй", что и кому она должна возвращать?
Функции в питоне всегда что-то возвращают. Если ты явно ничего не вернул, то вернется None. Аналог void в питоне сделать нельзя.
>>170344
> def greetings(name):
> return print(f"Привет, {name}!")
>Так плохо
Конечно плохо, ты блять возвращаешь вызов принта. Это какое-то безумие полнейшее. Тот факт, что нейронка вообще такую хуйню тебе в пример приводит, уже говорит о том, что не стоит нейронку для обучения использовать. Хотя если тебе неиронично нужно пояснять вещи уровня
> Он мне объяснил как макаке как поставить гит
где нужно просто скачать exe файл с сайта, то это пиздец. Если тебя в принципе вдохновляет использовать нейронку, то хотя бы перепроверяй то, что она пишет. Потому что пишет она почти всегда лютую хуйню, так как просто усредняет ответы лет за 10 последние, часть из которых ответы косолобиков, часть устарела уже 10 лет назад, часть просто хуйня.
Чел, ты ни хуя не понял, "функция должна что-то возвращать" это императив, выражающий побуждение к действию, читай "код функции надо писать так, чтобы он что-то возвращал". Это заявление не имеет отношения к архитектуре языка, в которой любая функция неявно возвращает None, это заявление о стиле, о том как якобы надо писать.
Может быть и так, можно и такое вчитать в слова того анона. Но, как минимум, можно воспринятьего слова и по другому
> def greetings(name):
> return print(f"Привет, {name}!")
Это я у нейронки спросил, а можно ли так. На что получил, что можно, но крайне нежелательно.
Она наоборот выдала верный ответ и пояснила, почему так.
>Функции в питоне всегда что-то возвращают. Если ты явно ничего не вернул, то вернется None.
Воооот именно это она мне и сказала. И после моего примера сказала что я ебанат и возвращать принт вообще пиздец.
>где нужно просто скачать exe файл с сайта, то это пиздец.
Я под "поставить гит" подразумевал не установить экзешник и понажимать "далее", апро то, как связать гит и гитхаб (представь себе, в начале пути об этом никто не знает, но идут гуглить и учиться), как пушить, пуллить в репу или из неё. Как создавать ветки и переключаться между ними. Понятное дело, что можно всё это загуглить или посмотреть видос, но слушать эмкание мычание и пердежь на видосе я не хочу.
А тут чат мне написал какую-то команду, я сходу спросил а почему так, а зачем, а где ещё дополнительно что-то взять и нужно ли. И моментально получил ответ.
Вы почему-то всегда забываете, что в начале пути во время обучения никто ничего не понимает и старается как-то по накатанной брать инфу. Само собой обучаться исключительно с помощью гпт я не буду, просто в самом-самом начале это для меня показалось сейчас проще, чем вычитывать долбоёбов на форуме, которые токсичностью просто убивают всё желание сидеть на этих самых форумах.
Всем добра, перестаньте быть токсиками, жизнь одна и надо помогать всем, друзья!
> я у нейронки спросил, а можно ли так
Значит, ты все еще не понимаешь что делает return
> под "поставить гит" подразумевал не установить экзешник и понажимать "далее", апро то, как связать гит и гитхаб
Выражайся точнее тогда
> можно всё это загуглить или посмотреть видос, но слушать эмкание мычание и пердежь на видосе я не хочу
Зачем вообще смотреть видео по программированию, кроме записи собеседований и выступлений на конфах? В любом случае, достаточно просто загуглить и быть уверенным, что тебе не высрут рандомную хуйню
> в начале пути во время обучения никто ничего не понимает
Так кто ж спорит
> это для меня показалось сейчас проще, чем вычитывать долбоёбов на форуме
Все правильно, не надо пытаться по двачу изучать программирование, особенно в начале. Кто-то вообще это предлагал?
>Значит, ты все еще не понимаешь что делает return
Знаю, просто часто мне проще что-то усвоить, когда в голове я понимаю, что это не совсем правильно. Я задаю вопрос, а вот так вот хуево будет? Косвенно понимая, что да, просто мне нужно подтверждение.
>Кто-то вообще это предлагал?
Да я не конкретно про двач, а про обсуждения. Например, изучаешь фасад и хочешь укрепить какие-то знания, чтобы было более глубокое понимание. Идёшь на форум, а тебе говорят, что всё вообще не так и надо переписывать, хотя на самом деле всё было правильно, просто это было достаточно слабо.
Я вообще тестером работаю и щас вот 5 лет откладывал изучение прогерства и в итоге без задней мысли сел ебашить. Не знаю почему именно питон и пригодится ли он мне или нет, но бросать и быстро свитчить на другой язык пока не хочу (1 день изучаю)))))))
> Знаю
Сомневаюсь, скорее всего тебе кажется, что ты знаешь. Вообще, концепция return'ов это одна из самых сложных концепций в принципе в программировании. Ну, например, ты понимаешь что происходит в таком коде?
some_func(10)(True, False)(foo)
> Идёшь на форум, а тебе говорят, что всё вообще не так и надо переписывать
По своему опыту скажу, что обычно говорят все правильно, просто слишком погружаясь в нюансы
Не знаю, что происходит в таком коде. Только могу предполагать.
Я пока только понимаю, что return что-то возвращает, что будет использоваться при вызове функции, например.
return завершает функцию и возвращает значение, которое вызывающий может записать в переменную:
a = some_func()
Например
- return "Stroka" - вернёт строку
- return print("Stoka") - аналогично коду
a = print("stroka")
return a
- return (без значения) - аналогично return None
- отсутствие return - аналогично пустому return в конце кода функции, но не факт что он достижим (например, функция может делать raise)
>some_func(10)(True, False)(foo)
Анон сверху дал пример когда функция возвращает функцию, кторая возвращает ещё одну функцию.
Это кусочек функционального программирования в питоне, который главным образом используется в декораторах. Но тебе знать это ещё рано, так что держи искуственный пример на скрине
Кажется, у меня проблема с объяснениями, наверно из-за того, что ещё неуверенно себя чувствую, поэтому я хуево говорю, что имею в виду. Вот то, что ты показал на скрине - я это понимаю.
Не знаю что ты имеешь ввиду под call(), выглядит очень странно
>>170700
> return что-то возвращает, что будет использоваться при вызове функции
Мб ты имел ввиду после вызова функции?
>>170760
> функция возвращает функцию, кторая возвращает ещё одну функцию
Нет, это одно из возможных значений и я действительно немного намекал на декоратор с параметром, но это далеко не единственный возможный вариант
>>170776
Ты уверен что понимаешь? Почему переменная "число" внутри второй функции запоминает переданное значение после первого вызова?
Чем вот эти две функции принципиально отличаются?
>В любом случае, достаточно просто загуглить и быть уверенным, что тебе не высрут рандомную хуйню
Лол, можно подумать, что на форумах (типа этого, кста) сплошь гении сидят и конечно же не советуют рандомную хуйню из головы.
Ну так ополоумевшего от двачей дебила поправят другие люди, это смысл наличия именно коммунити. А с нейронкой ты 1х1 находишься, при том, что нейронка не говорит "бля почоны, я не в курсе", она всегда что-то высирает, причем в гопоту заложено еще писать пиздец с каким самоуверенным видом. По итогу, ты видишь простыню, которая как будто бы написана шарящим человеком, при этом 80% из этой простыни будут в целом правдой, а 20% рандомной лютой хуйней, которая вообще хз как и откуда высралась
Всё так, подписываюсь под постом.
Бля столько опечаток, фикшу:
1 bar(10) возвращает функцию inner и сразу её взывает
2 однако, после того как функция возвращена, ей уже не доступна переменная number - из за этого происходит исключение
3 если сделать num = number+1, то всё работает, значит тут всё дело в области видимости.
Как-то так?
и все забыл сразу же
Ты вовремя ответил, я как раз писал про то, что нихуя не понял лол.
> 1 bar(10) возвращает функцию inner и сразу её взывает
Да, хотя "сразу" или не "сразу" тут не важно
> 2 однако, после того как функция возвращена, ей уже не доступна переменная number - из за этого происходит исключение
Почему недоступна? Вполне себе доступна
> 3 если сделать num = number+1, то всё работает, значит тут всё дело в области видимости.
Ну вот, а ты говорил, что переменная недоступна.
Ладно, не буду душить дальше загадками. Да, дело в области видимо в том числе. Но в первую очередь тут дело в том, что выражение
number += 1
на самом деле синтаксический сахар для
number = number + 1
Это выражение выполняется слева направо, то есть, сначала создается переменная number, она находится в более узкой области видимости, а значит переопределяет переменную number из области видимости замыкания. Затем выполняется часть справа, но так как наша переменная только что объявлена, но ей не присвоено значение, а мы уже бежим складывать ее с единицей, то питон выплевывает ошибку. Это называется затенение
я не отвечал пока на твой вопрос. может будет ошибка, потому что переменная локальная? надо оформить нонлокал или глобал?
>переопределяет переменную number из области ви
Ну и зачем ты тогда гнал анону про ретёрн, в этой ситуации оно не рилейтед вообще.
Я спросил к тому, точно ли он понимает что такое замыкания. Речь про ретерн уже не шла. Ты чет жопой читаешь посты
Смысл в том, что я учусь и не смотрю ответы, ответил как подумал. Недавно книженцию смотрел байт оф пайтон и там много примеров про локальную и глобальную переменные поясняли
Прочитай мой ответ, в целом я там про затенение телегу толкал. Вообще странно, что ты хотя бы читал про замыкания и в курсе про остальное и при этом принт в ретерн кидаешь
Так я в ВУЗе учился на прогера (посещал вуз просто и что-то запоминал).
Закончил ВУЗ в 18 году и понял, что я выблядок и надо было учить прогерство, но дальше я стал ленивым тюленем и только сейчас расчехляюсь вот. Я ещё и на плюсах многопоточность пробовал.
Даже на лиспе прогал диффуры, лол или че то там из математики.
Даже паттерны когда-то понимал (фасад и сейчас помню).
А принт хуйнул в ретерн это ну даже хз что сказать. Лет 5-6 в код вообще не смотрел (кроме хтмла и цсс), так что думаю временно простительно.
>затенение
Всё время про эту хуйню забываю, наверно потому что я так пишу, что у меня таких ЗАТЕМНЕНИЙ никогда не случается, а потом когда сталкиваюсь допускаю ошибку, сразу вспоминаю. Повторить.
> Закончил ВУЗ в 18 году
А я так и не закончил...
> я стал ленивым тюленем и только сейчас расчехляюсь вот
Правильно, автотестерам платят те же три сотыги, надо подключаться
> Я ещё и на плюсах многопоточность пробовал
Мои плюсы закончились на laba1.cpp С тех пор не переношу их
> А принт хуйнул в ретерн это ну даже хз что сказать. Лет 5-6 в код вообще не смотрел (кроме хтмла и цсс), так что думаю временно простительно.
Да бывает
>>171274
> я так пишу, что у меня таких ЗАТЕМНЕНИЙ никогда не случается
Ну и правильно пишешь, когда у тебя затемнения возникают, то это в 99% случаев говорит о том, что ты объебался с архитектурой и занимаешься не тем
> когда сталкиваюсь допускаю ошибку, сразу вспоминаю. Повторить.
Если пойдешь когда-нибудь на собесы по питону, то там везде это будет. Стоит держать в голове. Бтв еще по-моему ни один лайвкодинг не прошел у меня без того, чтобы меня бы не попросили написать декоратор с параметром, иногда спрашивая про затемнения
Сейчас решил задачку, помогал чатгпт.
https://github.com/makdevpy/PythonLessons/blob/main/Tasks/Task1.py
Был затык с тем, что я писал
while value > 0:
total += value
и проверки на 0 небыло как таковой. Ну и с табуляцией обосрался, после других япов очень непривычно соблюдать табуляцию пока что
Сделал вторую задачку по угадыванию чисел
https://github.com/makdevpy/PythonLessons/blob/main/Tasks/Task2.py
Единственное, где подглянул - это как импортировать библиотеку и какую и как запихнуть в переменную рандомное число (я понимал, что это надо сделать, но не знал как).
В итоге написал год, но без функции, изначально мой код был таким
import random
randomNumber = random.randint(1, 100)
print("Я загадал число от 1 до 100. Попробуй угадать!")
while True:
userNumber = int(input("Введи число: "))
if userNumber > randomNumber:
print("Меньше!")
elif userNumber < randomNumber:
print("Больше!")
else:
print("Поздравляю, Вы угадали число!")
break
Чатгпт сказал, что пойдет, но посоветовал ебануть в функцию, я сделал и он сказал, что я маэстро.
Сделал вторую задачку по угадыванию чисел
https://github.com/makdevpy/PythonLessons/blob/main/Tasks/Task2.py
Единственное, где подглянул - это как импортировать библиотеку и какую и как запихнуть в переменную рандомное число (я понимал, что это надо сделать, но не знал как).
В итоге написал год, но без функции, изначально мой код был таким
import random
randomNumber = random.randint(1, 100)
print("Я загадал число от 1 до 100. Попробуй угадать!")
while True:
userNumber = int(input("Введи число: "))
if userNumber > randomNumber:
print("Меньше!")
elif userNumber < randomNumber:
print("Больше!")
else:
print("Поздравляю, Вы угадали число!")
break
Чатгпт сказал, что пойдет, но посоветовал ебануть в функцию, я сделал и он сказал, что я маэстро.
Сделал 3 задачу и понял, что я мыслю узко и "деревянно" ещё.
Если вдруг кто-то тоже изучает базовые базы, то можете посмотреть, вдруг кому пригодится - https://github.com/makdevpy/PythonLessons/blob/main/Tasks/Task3.py
Попросил у чатгпт задачки для практики while и понял, что сама концепция while: True меня может запутать очень сильно.
Всё также проблемы с табуляцией, затык на этом участке кода был
while True:
userNumber = int(input("Введите положительное число: "))
if userNumber > 0:
break
print("Число должно быть больше нуля")
Тут бесконечный цикл, то есть до тех пор, пока не будет введено число больше 0, он будет отрабатывать.
Но я не совсем понял один момент по поводу break. Может кто тут подскажет...
Бесконечный цикл выполняется, пока нее встретится брейк. Но, судя по табуляции, он находится в if и я изначально думал как:
- бесконечный цикл пока юзер не введет >0
- если ввел больше нуля, то ВЫХОД из цикла и вывод текста после break (если текст находится внутри текущего цикла)
Я правильно всё понял же? Написать-то написал и понял по-своему, в общем.
Короче может просто засиделся, хз, но щас плыву как-то с табуляцией.
Сделал 3 задачу и понял, что я мыслю узко и "деревянно" ещё.
Если вдруг кто-то тоже изучает базовые базы, то можете посмотреть, вдруг кому пригодится - https://github.com/makdevpy/PythonLessons/blob/main/Tasks/Task3.py
Попросил у чатгпт задачки для практики while и понял, что сама концепция while: True меня может запутать очень сильно.
Всё также проблемы с табуляцией, затык на этом участке кода был
while True:
userNumber = int(input("Введите положительное число: "))
if userNumber > 0:
break
print("Число должно быть больше нуля")
Тут бесконечный цикл, то есть до тех пор, пока не будет введено число больше 0, он будет отрабатывать.
Но я не совсем понял один момент по поводу break. Может кто тут подскажет...
Бесконечный цикл выполняется, пока нее встретится брейк. Но, судя по табуляции, он находится в if и я изначально думал как:
- бесконечный цикл пока юзер не введет >0
- если ввел больше нуля, то ВЫХОД из цикла и вывод текста после break (если текст находится внутри текущего цикла)
Я правильно всё понял же? Написать-то написал и понял по-своему, в общем.
Короче может просто засиделся, хз, но щас плыву как-то с табуляцией.
разобрался после того, как поменял слегка код (для наглядности)
while True:
userNumber = int(input("Введите положительное число: "))
if userNumber > 0:
break
elif userNumber < 0:
print("Число должно быть больше нуля")
Я просто очень сильно привык, чтобы было else/elif, если есть if.
В душе не ебу. За базар правое полушарие мозга отвечает вроде... Это всё, что помню из погроммирования. Человек-загадочник, я пришёл за советом, а не ебучие шарады твои разгадывать. Я не прошу тебя переписать мой говнокод за меня, я спросил что я делаю не так? Ты не мог бы нормально ответить, дабы я укатился в цикле for свой говнокод крутить, но я уже догадываюсь что ты как Ватсон без трубки Холмса не можешь...
input(some_string)
это тоже самое, что
print(some_string)
input()
А тебе нужно у сабпроцесса вызвать wait
p.wait()
А ты не через попен, я чет не заметил.
По идее, тебе нужно сделать
print(p.stdout)
print(p.stderr)
А толк мне от
print(p.stdout)
print(p.stderr)
если мне нужно строку "ffmpeg -i 1.mp4 -i 1.mp3 -c:a copy -map 0:0 -map 0:1 -map 1:0 video_sound.mp4" передать в ffmpeg...
Ёбушки-воробушки, как всё просто оказалось! Спасибо тебе огромное, анончик! Смешно, но меня справка в смутила, и огород городить начал, лол:
>args is required for all calls and should be a string, or a sequence of program arguments. Providing a sequence of arguments is generally preferred, as it allows the module to take care of any required escaping and quoting of arguments (e.g. to permit spaces in file names). If passing a single string, either shell must be True (see below) or else the string must simply name the program to be executed without specifying any arguments.
Причем это какие-то залетухи с пикабу, иначе бы не срали такими простынями без разметки, а ссылочки бы кидали хотя бы на сайты где код нормально отображается.
Пиздец просто.
>Человек-загадочник, я пришёл за советом, а не ебучие шарады твои разгадывать.
>>171295
>Ты знаешь что делает эта команда?
А правда, нахуя этот идиот срёт в тред, если не собирается помогать? Знаешь ли ты, что делает эта команда? А вот та? А знаешь ли ты, что мамаша твоя - шлюха, а ты, соответсвенно, пидорас? Идиотина, ты нахуя в тред свои нереализованные амбиции то высираешь? Если весь пук от тебя - это высрать очередную идиотию навроде "ну ты и дебил, не знаешь элементарного", то нахуя ты тут нужен то вообще?
>нахуя ты тут нужен
Странная постановка вопроса. Анонимный форум это сообщество равноправных нонеймов, а не работа, никто тут ни для чего не "нужен". Все тут сидят чтобы общаться на определенную тематику, а так же чтобы развлекаться. С моей точки зрения анон который высирает беспредметную хуиту "а это для чего нужно а то" засоряет тред не меньще чем залетуха "так епта я тут насрал разргебайте АРЯЯ ЧЕЛОВЕК ЗАГАДОЧНИК Я ПОПРОСИЛ РАЗГРЕБАТЬ А ТЫ МНЕ ЗАГАДКИ"
А ты когда учился, где ты и чем засирал, выблядок тухлоёбый?
Пасть свою дырявую щёлкни и пиздуй коллу разливать, хуесос
Полегче псинка
Ну так покажи что выдает сам ffmpeg будучи запущенным на твоих данных, с этим же ключами, но без твоей хуевой программы-обертки
> не срали такими простынями без разметки
Шизоид, какие простыни, ты что несешь? Ща две строчки кода буду на пастебин заливать, уже бегу только штаны подтяну
>>171669
> А правда, нахуя этот идиот срёт в тред, если не собирается помогать?
Говно, я бесплатно сижу и помогаю людям. Если что-то не нравится -- заваливаешь ебало и помогаешь сам.
Каждый раз в ахуе с дегенератов, которым просто так от щедроты души помогают, но они ебало кривят и бухтят, что ожидали сервис получше
Если ты простыни не писал, тогда зачем визжишь и оправдываешься, дгенерат шизанутый, значит это не тебе написано было.
Говно с пикабу, ты не смог в интерфейсе двача из 3 кнопок разобраться? Тебе нужно гайд сделать как на посты отвечать?
>>172192
Если ты про веб фреймворки, то разбирайся в чем-то одном, так как они все равно все одинаковые и изучив один, ты изучишь все. Единственное, что у джанго с дрф своя волна немного, но в основном из-за своей орм
Спасибо за ответ. Сделал маленькие проекты во фласке и в фастапи, чтобы посмотреть, что больше по душе. Сейчас решил большой проект на фастапи попробовать написать, заодно с sqlalchemy подружиться.
Главное в алхимии не возьми случайно deprecated синтаксис через Model.query Сейчас нужно через
select(Model).where(Model.field > 0)
Все какую-то хуйню ответили, не работает из-за попытки изменить нелокальную переменную.
> не работает из-за попытки изменить нелокальную переменную
Во-первых, я выше написал уже в чем дело в затенении Во-вторых, нет, не из-за этого. Изменить значение мутабельной переменной вполне себе можно.
>def foo(name : type)
Аноны, это что какая-то типизация? Это в какой версии питона ввели? У меня 3.7 такой хуйни нет.
А почему у тебя 3.7? У тебя дома пеки нет, только на работе с прибитым гвоздями петоном?
Ага, типы с деженериками уже есть, скоро кривые скобочки и точки с запятыми введут
> Аноны, это что какая-то типизация?
Нет
> Это в какой версии питона ввели?
3.8
> У меня 3.7 такой хуйни нет
Эта хуйня 6 лет назад вышла, ты бы еще постарее версию взял
class C1:
def __init__(self):
self.v()
def v(self):
print("C1 v")
class C2(C1):
def __init__(self):
super().__init__()
def v(self):
print("C2 v")
c2 = C2()
Так базовый класс свой метод и вызывает лол
Или ты про то, чтобы внутри инита супера вызвались именно методы родителя? Ну так сделать нельзя, можешь super().v() сделать, если очень хочешь именно достучаться до методом родительского класса
1. Есть "айтишная" вышкабакалавриат в миллионике 09.03.01
2. Знание питухыча. Проверял на всяких ТОП 100 ВОПРСОВ РАЗРАБОТЧИКУ НА ПИТОНЕ. Могу в asyncio.
3. Есть два пета: один на DRF, второй на FastAPI. Петы с нормальной БД, аутентификацией, разбиением на сервисы и прочей парашей.
4. Опыта работы, кроме говноработ, нет.инб4 ну и пошел нахуй тогда
Ебашь себе норм резюме мидла с 2 годами опыта да и начинай ходить на собесы, хули тут гадать и пытаться примерно почувствовать. Если ты реально нормально знаешь питухон (под этим я подразумеваю то что тебя хотя бы вопросы при миксины, слоты и поверхностное/глубокое копирование не ставят в ступор) то найдешь спокойно. Хотя то что ты знание asyncio решил выделить как особенное достижение уже навевает подозрения. Пытаться искать без рисованого опыта забудь, в 2к24 это только по блату или если еще с универа забрали.
;мимо нашел первую работу бэкэндером на питоне пару месяцев назад*
>Пытаться искать без рисованого опыта забудь, в 2к24 это только по блату или если еще с универа забрали.
Ну я так и думал. Останусь на старой работке значит пока.
Крутить опыт это смешно, палится сразу же, не?
>аноннейм, расскажите про задачи, которые вы решали на работе
>нннуууу пук я там написал пару валидаторов, подключил сторонние бибиотеки вооот ну и запросы к базе оптимизировал
>хорошо, опишите свой опыт работы в команде
>ну я там бэк делал с парой человек, а другая команда фронт рисовала мда кхем кхем
>ну хорошо, а покажите вашу трудовую
>пук среньк
Ну во-первых никто там не будет тебя с паяльником пытать досконально о том что ты делал на работе, в рамках 2-3 предложений расскажешь и все (напоминаю, ты идешь на позицию джуномидл обезьяны у которой задача это переложить жсон, а не проектировать там какую-то ебейшую архитектуру). Так что описанный тобой рассказ вполне бы прокатил, если его еще удобрить фразами про джиру и всякими скрам штучками. Вообще я себе нашел ментора который мне помимо прочего объяснил как грамотно пиздеть на собесе и на каких моментах могут доебаться.
Ну у тебя 100% на собесах будут вопросы по базе языка (генераторы/итераторы, в чем разница между __new__ и __init__, GIL, лямбда функции, контекстные менеджеры, cлоты и подобное), база твоего фреймворка (для джанго аннотации/агрегации, мидлвари, сигналы, что будет если отнаследовать одну модель от другой и т.п), база SQL ( https://habr.com/ru/articles/745948/ ), общие вопросы типа в чем отличие http1 от http2, что такое CORS, потом по Celery и брокерам сообщений могут еще поспрашивать, мб чутка по тестам, архитектурные паттерны (заучи просто штук 5), докер, алгосы тут зависит от припизднутости конторы, в какой-нибудь яндекс они 100% будут, в ооо рога и копыта вряд ли. Вот эти темы и учи.
Ну выглядит так, что тебе уже пора вкатываться на работу. Думаю, 5-6 собесов и будет первая работа. Не слушай шизов с их рассказами про то, что для получения первой работы нужно обязательно пиздеть. Это какой-то запредельный уровень кринжа. Главное сделай нормальное резюме, это примерно 99% успеха
>>173010
> Ебашь себе норм резюме мидла с 2 годами опыта
О, очередной шиз
> Хотя то что ты знание asyncio решил выделить как особенное достижение уже навевает подозрения
Почему пикрил 4 секунды выполняется, тут же асинхронно все?
> Пытаться искать без рисованого опыта забудь, в 2к24 это только по блату или если еще с универа забрали.
Спокойно все ищется
>>173057
> твою трудовую увидит только тетка из отделов кадров
Пиздец, фантазер, допустим даже, что ты реально нашел работу недавно, но тебе в голову не приходило, что абсолютно каждый понял, что ты напиздел про опыт, но просто решили, что толковый джун им тоже нужен? 2-НДФЛ, СТД-Р, СТД-СФР у тебя абсолютно любая хрюша после согласия на оффер попросит. Как бы без этого они тебя устроить не смогут. И попросит об этом та же хрюша, что изначально тебе напишет по поводу работы. Если тебе такое не написали, значит все и так все понимают, что ты на пиздаболычах залетел на собес.
А, надо через asyncio.gather() запускать.
> Из-за GIL?
Нет, гил тут вообще не при чем
> надо через asyncio.gather() запускать
Да, но вопрос в том ПОЧЕМУ надо через gather запускать
>Если тебе такое не написали, значит все и так все понимают, что ты на пиздаболычах залетел на собес.
Ну пусть будет по-твоему, напомни хоть одну причину почему меня это должно ебать? Я получил работу? Получил. Я получил ЗП мидла имея за плечами 0 опыта? Получил. Так какого хуя мне загоняться о том что там кто-то понял или не понял?
> Я получил ЗП мидла имея за плечами 0 опыта?
Не знаю, скорее всего ты получил ждуновскую зарплату, просто почему-то решил, что она мидловская
Это уже демагогия, факт остается фактом, на работу я вкатился. Чел спросил совет, я ему дал ответ опираясь на собственный опыт. Че тебя порвало хуй знает. Если кому-то по кайфу играть в брутальную честность тем самым усложняя себе кратно процесс поиска, ну окей, не крутите опыт.
Чтобы запустить две корутины конкурентно, а не ждать пока первая завершит свою работу и только после этого запускать вторую.
Бля, в пятницу собес на джуна, бегаю с горящей жопой статьи по multiprocessing, multithreading и asyncio читаю
> Это уже демагогия
Да нихуя лол
> Если кому-то по кайфу играть в брутальную честность тем самым усложняя себе кратно процесс поиска
Крутить опыт это не брутальная честность дебс. Ты буквально себе сложности дополнительные придумал и вместо поиска компании, где ищут джуна, ты искал компании, которые ищут не джуна, в надежде, что джун им тоже нужен. Зачем, нахуя, для чего?
>>173196
> запустить две корутины конкурентно
async многозадачность не конкурентная, а кооперативная. Рекомендую на ютубе тебе найти плейлист Олега Молчанова по асинхронности, там прям очень подробно и с расстановкой рассказано все, начиная от еполла и наблюдением за файлами подключения, и заканчивая объяснением механизма залупа
Как минимум та, в которую ты устроился, вполне себе искала. Друг к себе в команду искал недавно(осенью), бтв я даже на двач приходил никто даже не попытался лол Примерно месяца за два кое-как нашли какого-то лоботряса, который хотя бы примерно код писать мог
Есть маленький парсер, который потрошит страницы сайта. Страниц очень много (больше 10000), в среднем на страницу уходит 1 секунда, но при таком количестве - занимает очень много времени.
В связи с чем нагуглил решение - многопоточность. Проблема заключается лишь в том, что все примеры, которые я видел, запускают одновременно несколько функций, которые выполняются параллельно. Есть ли возможность запустить одну функцию несколько раз, чтобы она выполнялась параллельно? Например, запускается поток1, в нем парсятся страницы с 1 по 100, поток2 парсит страницы со 101 по 200 и т.д., при этом, не нагромождая кучу функций с разбивкой по парсингу конкретных страниц?
Алсо, я сам не программист, так что не сильно владею техническими терминами
>Хотя то что ты знание asyncio решил выделить как особенное достижение уже навевает подозрения
Вообще это действительно особое достижение, другой уровень. Правда не факт, что чел действительно понимает asyncio, а не прошёлся по верхам
Вот эта вот картинка >>173175
ещё не говорит, что какой-то уровень присутствует
> Вообще это действительно особое достижение
Согласен
> эта вот картинка ещё не говорит, что какой-то уровень присутствует
Если чел не понимает о чем речь на картинке, то он в принципе не понимает что такое asyncio Бтв итт так еще никто и не ответил ничего по ее поводу лол
> так еще никто и не ответил ничего по ее поводу лол
кто-то что-то написал, про gather вспомнил
несерьёзная картинка. Сама логика и назначение оператора await о том, чтобы ждать результат. Его придумали и ввели для того, чтобы сделать асинхронное выполнение программы максимально похожим на синхронное. Вот ты и ждёшь два раз по две секунды
Интересная задача, как заставить выполняться параллельно эти две функции, при этом не пользуясь gather
> кто-то что-то написал, про gather вспомнил
Ну так вопрос был не в том, что нужно сделать, чтобы работало за 2 сек, а почему работает за 4, а не за 2
> несерьёзная картинка
Ну так и претензии такой не было
> Его придумали и ввели для того, чтобы сделать асинхронное выполнение программы максимально похожим на синхронное. Вот ты и ждёшь два раз по две секунды
Верно, но вопрос все-таки немного про другое
> Интересная задача, как заставить выполняться параллельно эти две функции, при этом не пользуясь gather
Примерно 5 способов есть, мб больше, лень считать. Хз что там интересного
Да, можно. Хочешь конкретики - скажи на каком языке написано.
А вообще возьми фреймворк для своего языка, и запихни парсер в него.
https://github.com/geziyor/geziyor - пример для go
>Да, типизация твердо и четко
"Типизация" != "явная статическая типизация".
Типы есть практически во всех языках, в питоне она даже строгая, хоть и динамическая.
>Главное сделай нормальное резюме, это примерно 99% успеха
Без указания 1-2 лет профильного коммерческого опыта твоё резюме просто никогда не попадёт к работодателя, его отсеют автофильтры HH.
Обожаю эти охуительные советы сделать нормальное резюме от людей, которые в последний раз искали работу джуна в 2к15.
Забей, это шиз, у которого джуны на питоне в 2024 изи ищут работы, c такими спорить бесполезно, у них свой мир.
Ебать ты душнила, спасибо что пояснил, так бы никто не понял о чем речь
>>173483
> Без указания 1-2 лет профильного коммерческого опыта твоё резюме просто никогда не попадёт к работодателя
К кому-то не попадет, к кому-то попадет. Более того, тебе почти наверняка эйчары и сами напишут хотя бы раз
> его отсеют автофильтры HH
Пчел, автофильтры отсеивают далеко не только из-за опыта, более того, это наименее значимый параметр. Большинство резюме челов это литералли
> Иван Говнов Python Developer мой номер телефона +1234567890
и все. Вот это влияет в разы сильнее, чем отсутствие или наличие опыта
>>173493
Ты выдумал за меня позицию и назвал шизиком. Таблетки прими
>более того, это наименее значимый параметр. Большинство резюме челов это литералли
Чел, просто сделай резюме джуна без опыта и попробуй пооткликаться. Может манямирок пропадёт.
> сделай резюме джуна без опыта
Да, ща, уже бегу блять. Моих сил еле хватает мое резюме в нормальном состоянии поддерживать, тратить несколько дней работы на создание резюме несуществующего человека я не буду
> попробуй пооткликаться
Попробуй сделать нормально резюме. Я тебе открою страшную тайну, примерно 80-90% позиций джунов закрываются эйчарами во время скрининга резюме мидлов и сенек. Опубликованные джуновские вакансии эти единичная хуйня, которую эйчары не хотят повторять обычно, так как разгребать тысячи резюме говна и мочи всем лень
Я советую каждому челиксу, который думает, что дело исключительно в том, что он мало опыта накрутил, сначала посмотреть на свое резюме со стороны. Лучше сначала открыть hh и посмотреть резюме других людей, которые ищут работу, и сравнить со своим
>Да, ща, уже бегу блять. Моих сил еле хватает мое резюме в нормальном состоянии поддерживать, тратить несколько дней работы на создание резюме несуществующего человека я не буду
Просто возьми своё резюме, сделай копию, но убери весь опыт. Это несложно. У тебя же хорошее резюме, без вот этого всего кринжа, так? А значит проблем с откликами не будет.
> Просто возьми своё резюме, сделай копию, но убери весь опыт
Тогда будет хуевое резюме
> Это несложно.
Сделать резюме хуевым действительно не сложно
> У тебя же хорошее резюме
Да, если выкинуть из него 80% содержания, то оно станет хуевым
> значит проблем с откликами не будет
Будут. Сразу видно человека, который сделал резюме "Python Developer Иван Говнов город Тверь вот контакты" Если нет коммерческого опыта, то нужно написать о том, какой не коммерческий опыт есть. Описать технологии, которые использовал. Рассказать о пет проектах, которые сделал. Кратко и по существу. Понимаю, для некоторых сесть и потратить 20-30 часов на составление резюме намного тяжелее, чем месяцами ломиться в открытую дверь, краснеть, когда ловят на пиздеже и что-то невнятно мямлить. Но не надо всех мерять по себе
Святая толстота.
Да, да, все проблемы вкатунов конечно же из-за того что они поголовно пишут такое резюме, а не потому что их без накрученного опыта тупо сбривает фильтр HR-a. Зачем ты продолжаешь серить себе в штаны при всем треде? Тебе уже предложили возьми свое резюме, удали оттуда коммерческий опыт и попробуй поискать работу. Может вернешься в реальность.
>потратить 20-30 часов
А зачем столько времени? Там же работы, не считая оформления, на пару часов.
>Тогда будет хуевое резюме
То есть мы пришли к тому, что резюме без профильного опыта работы - хуевое резюме. В принципе, да, тут ты во всём прав, только это и был изначальный тейк, с которым ты зачем-то пытался спорить.
>Описать технологии, которые использовал. Рассказать о пет проектах, которые сделал.
Чел, это сейчас есть у каждого второго вкатуна. Вот рандомные резюме вкатунов на хх.
Это лучше, чем просто "программист на питоне". Хотя вот в третьем совсем много воды и неадеквата.
Хрюшам тяжело читать сразу слишком много пространственных речей. А технарям умилительно.
Вот третье резюме, вкатун пишет про то, что там какую-то модель обучения реализовал. Но общие слова, нет технологий, упоминает "для этого был использован фреймворк Flask". Что за пиздец, он шиз? Какое отношение фласк имеет к машинному обучению?
Это такое резюме, которое заведомо отпугнёт любого.
Второе резюме самое адекватное, но мне кажется, лучше иначе это подать, разбить на класс технологий, скажем "компьютерное зрение", и дальше опыт в этих технологиях. ХЗ как это хрюши считают, но для технарей уже лучше выглядит.
Думаю, что если бы я джуна искал, то со вторым может быть даже связался для дальнейшего общения.
> все проблемы вкатунов конечно же из-за того что они поголовно пишут такое резюме
Да, именно так. Более того, минимум половина додиков вообще отправляют готовое резюме с курсов, где отличается только имя и фамилия кандидата
> возьми свое резюме, удали оттуда коммерческий опыт и попробуй поискать работу
Я тебе написал о том, что если нет коммерческого опыта, то нужно писать о некоммерческом опыте. Зачем ты продолжаешь троллить тупостью?
> А зачем столько времени?
Потому что сделать хорошее резюме это большой труд. Нужно максимум полезной информации выложить максимально кратко, причем так, чтобы это смогла прочитать хрюша. И да, держи в голове, что никто твое резюме дольше 15 секунд смотреть не будет. Можешь посмотреть на резюме, которые чел ниже кидал и убедиться в том, что написать не говно далеко не так простт
>>174027
> То есть мы пришли к тому, что резюме без профильного опыта работы - хуевое резюме
Кто вы? Кто вы блять? Шизоид, перечитай ещё раз мой пост
>>174039
1. Ебучий кринж, навыки, условия работы, технологии — все в одну кучу свалено. Это читать физически трудно, а на прочтение резюме эйчар тратит секунд 15, так что это сразу в мусорку полетит.
Вердикт: автоскип на моменте открытия резюме, вонючее говно 2/10
2. Чуть-чуть лучше, проекты вынесены в отдельный список, но опять же технологии, описание проекта и пояснения свалены в одну кучу. Нет приоритезации проектов, по резюме не понятно вообще на какой стек и область претендует человек. Распознавание лиц рядом с игрой на сишарпе и изучением юниттестов.
Вердикт: автоскип после прочтения 5 строчек, говно, но не такое вонючее 3/10
3. Здесь человек пытался использовать перенос строки чтобы хоть как-то форматировать резюме. Это очень хорошо. Плохо то, что на этом все хорошее закончилось. Нихуя не понятно что делал чел, на каком стеке, что за проект. Пояснения про производственную практику в начале названия каждого проекта это просто пиздец.
Вердикт: это, наверное, лучшее резюме из тех, что есть, но даже оно просто плохое, 4/10 это слишком щедро будет, так что 3.5/10
>Думаю, что если бы я джуна искал, то со вторым может быть даже связался для дальнейшего общения.
Если бы добрался до него среди 1000+ других резюме.
Да, ща покажу, у меня как раз на компе лежит несколько сотен джуновских резюме, разбитых на каталоги в соответствии с моей оценкой
Не ебу что там на винде, но на маке все питоны работали нормально(3.8, 3.9 и 3.10). Проблемы были только с образом эластик серча, не было долго билда под м1 для него
С Докером может быть геммор. У меня например рабочий проект отказывается заводиться на м1 макпуке
Можете объяснить, зачем мы должны внутри самого итератора возвращать его же? Не понимаю.
> мы должны внутри самого итератора возвращать его же?
Для единообразия интерфейса, в доке подробно описано
> Дополню, что в данном случае BookshelfInterator::__init__ не будет вызываться вообще
Как не будет? Смотри пикрил. Инит как раз нужен для создания итератора.
> В принципе __iter__ должен возвращать что-то, что имеет метод __next__
Да, но к __iter__ более 1 раза может быть обращение, так что поэтому и просят возвращать самого себя, чтобы не получить потом внезапную ошибку.
Короче, вот как выглядит примерно внутри цикл for на примере списка. Вызов __iter__() происходит в самом начале для того, чтобы получить итератор, но если у тебя и так изначально итератор, то нужно, чтобы он сам себя вернул(по сути просто скипнул этот вызов)
Бля заскринить вывод забыл, вот норм вариант
Здесь тебе нужно не for i in Iterator:, а for i in Iterator():
Эти сложности нужны не для примитивных одноразовых итераторов, а когда какой-то объект позволяет по себе итерироваться. Тогда тебе надо учитывать, что ты по тему можешь итерироваться много раз.
В то время как твой BooksheldInerator хранит внутри состояние, текущее положение, но ему реально метод __iter__ не нужен, поскольку это одноразовый итератор, а метод __iter__ был вызван до этого
Можешь для теста удалить, будет работать.
Эм, ну, я ж написал -- внутри цикла for, например. Если ты хочешь добавить своему классу возможность итерироваться по нему. Вот пример пикрил
Теперь попробуй вместо
for i in Iterator():
____print(i)
сделать
my_obj = Iterator()
for i in my_obj:
___print(i)
for i in my_obj:
___print(i)
то есть два раза цикл по одному объекту прогнать
Ты же список, например, не создаёшь каждый раз новый в цикле? Ты ходишь под одному циклу
> Здесь тебе нужно не for i in Iterator:, а for i in Iterator():
Вот именно, так что инит для вызова итер нужен
> твой BooksheldInerator
Но он не мой
> BooksheldInerator хранит внутри состояние, текущее положение, но ему реально метод __iter__ не нужен
Я хз что значит "реально не нужен", но если интерфейс итератора требует, то надо делать. Иначе у тебя получится говно фром жопа, когда человек ожидает один интерфейс, а ты его наебываешь и приносишь другой
> Можешь для теста удалить, будет работать.
В конкретно данном юзкейсе да, но вообще работать не будет и ты сам такой пример привел лол вот тут >>175672 если ты удалишь __iter__, то код упадет, хотя должен был просто сразу выйти из цикла
Правильно понимаю, у нас есть два стиля создания итерируемых объектов:
1. Создаем итератор внутри класса, который хотим сделать итерируемым. Все будет работать, но состояние для всех итераторов объекта этого класса будет одно.
В этом случае мы возвращаем уже сам итератор, чтобы он ссылался сам на себя, чтобы питону вообще было что вызывать.
2. Создаем отдельный класс итератора для класса, который хотим сделать итерируемым. Все будет работать, состояние для каждого итератора будет своим.
Но в __iter__() итерируемого класса нужно уже указывать на класс итератора, чтобы для каждого объекта сделать свой итератор. В этом случае в самом классе итератора __iter()__ уже не нужен, т.к. даже не будет вызываться?
> В этом случае в самом классе итератора __iter()__ уже не нужен, т.к. даже не будет вызываться?
Нужен, не слушай этого чела, ты буквально закладываешь себе мину в коде, если не делаешь iter, так как у тебя в коде будет говно, которое выглядит как итератор, но при этом падает с ошибкой, если его начать использовать, собственно, как итератор
__init__ нужен для инициализации объекта
__iter__ нужен для старта цикла for, например, смысл __iter__ только в том, чтобы вернуть какой-то объект, который имеет метод __next__
дальше смысл в том, чтобы итерироваться, вызывая метод __next__
В одноразовом BooksheldIterator реально метод __iter__ не вызывается, это просто для унификации нужно, чтобы линтеры не бузили и т.п.
Не очень представляю, при каких обстоятельствах он может быть вызвал, кроме хаков, когда ты руками его создаёшь и вызываешь.
> __init__ нужен для инициализации объекта
Да, зачем ты вообще начал говорить о том, что init не вызывается у итератора?
> В одноразовом BooksheldIterator реально метод __iter__ не вызывается, это просто для унификации нужно, чтобы линтеры не бузили
Да, охуенно, линтеры говна в жопу залили, не дают каловую мину заложить в код
> Не очень представляю, при каких обстоятельствах он может быть вызвал, кроме хаков, когда ты руками его создаёшь и вызываешь
Охуенный хак -- взять класс, который называется ...Iterator и начать его использовать как итератор, не представляю даже как такое может произойти
>В этом случае в самом классе итератора __iter()__ уже не нужен, т.к. даже не будет вызываться?
При типовом адекватном использовании не нужен. Можно какие-то извращённые схемы придумать, что это стрельнёт. Но это реальные извращения для какого-то системного кода. Ещё линтеры могут ругаться
Поэтому и есть соглашение, чтобы метод был и делал return self. три строчки вместе с пустой.
Попробуй вставить отладочную печать, например, чтобы отследить, что когда вызывается.
Потому что в some_list[0] последовательно записываются 1, 2 и наконец 3?
А вызвано это тем, что итератор списка вызывает метод __next__(), который и кладет в переменную списка очередное число, которое ему дал __next__()?
Чел, следи за смыслом обсуждения
В примере, где BooksheldIterator, подразумевается, что этот итератор не может быть создан снаружи. Только изнутри класса Booksheld
В стардатных схемах BooksheldIterator.__iter__ никогда не будет вызван. Да, я могут придумать нестандартную разумную, где будет.
Но только вот не помню, чтобы реально с этим сталкивался.
Вопрос анон задавал, зачем нужно возвращать self. Ответ, чтобы какие-то особые ситуации закрыть, чтобы соглашение итератора соблюдать. Для более извращённых ситуаций, чем у него в коде
Да, верно
>>175702
Первая переменная списка звучит очень странно, если честно. Обычно говорят "элемент списка" или там хотя бы "ячейка списка"
А вообще в питоне нет переменных, но не будем об этом
>>175706
> подразумевается, что этот итератор не может быть создан снаружи
Кем, где и как подразумевается? Более того, почему ты считаешь, что никто не захочет получить к нему доступ через тот же iter?
> В стардатных схемах BooksheldIterator.__iter__ никогда не будет вызван
Не знаю что это за "стандартные схемы", но в любом случае, тем только хуже. У тебя код может разрастись успеть, а потом ты этот Booksheld куда-то передал и все упало. В какой-нибудь сериализатор или еще что-то такое. И потом ты будешь с горящей сракой по всему коду бегать и пытаться понять где и что пошло не так. Особенно с учетом того, что где-нибудь какой-то мудак мог ебануть что-то в духе
try:
----some_method()
except:
----raise CustomZalupaException('Ooops something goes wrong')
> только вот не помню, чтобы реально с этим сталкивался
Значит, у тебя очень мало опыта
> Для более извращённых ситуаций, чем у него в коде
Для каких "более изощренных"? Это учебный код, он не решает никакую проблему. Зачем вообще измерять (не)допустимость чего-либо по учебному блять коду на 50 строк? И зачем на основании этого советовать нарушать интерфейс итератора, что может просто нереальный жопной болью стрельнуть даже в микроприложении уровня петпроекта?
basedpyright, jedi language server, pyre, pyright, pylyzer, sourcery, pylsp, ruff?
Какой (или какую комбинацию) используете и почему? Почему ни🌶 не гуглится их сравнения хотя бы по скорости работы по размеру кодовой базы? В прошлый раз я взял pyright как с самым большим количеством звездочек на гитхабе, вроде норм (хотя не показывает доки по стандартной библиотеке), но вдруг есть что-то лучше.
Все говно, так как впервые слышу про весь список, кроме ruff. Бери pylance и не выебывайся
Использую pyright от майков, потому что корректно работает. Но тормозит потому что на ноде (typescript).
pylyzer быстрый на расте, но глючный и автор медленно пилит, если вообще не забросил
Ну и jedi тормозит больше пирайта, потому что пюре питон...
Но здесь же все мои друзья...
Подскажите кто может, ткните носом плс, посоветуйте форум где мне помогут
Использую селениум и андетект хромдрайвер
Короче надо сделать клик мышкой по кое какой кнопке на сайте
Перепробовал клик из стандартной библиотеки селена, клик с помощью инъекции JS скрипта, Клик с помощью Chrome Developer Protocol я тоже попробовал. С ним всё гораздо лучше, но сайт детектит что клик делается не человеком в 50% случаев
Добавляю и задержки и плавное движение мышью и т.п. - всё равно не получается.
Как кликнуть мышью чтобы сайт подумал что это человек а не бот?
child = parent.find_element(By.XPATH, '').find_element(By.XPATH, '').find_element(By.XPATH, '*')
child = parent.find_element(By.XPATH, '').find_element(By.XPATH, '').find_element(By.XPATH, '*')
блять, чота звездочки жрет, но там везде они подразумеваются.
Мне нужно вычислить её значения при разных параметрах. В голову пришла тебя закинуть в потоки.
Теперь беда: мне нужно, чтобы внутри потока рисовался и сохранялся график.
Как это сделать, если pyplot ругается на использование себя в дочерних потоках?
И как вообще в каждом потоке создавать свою картинку, чтобы не зарисовывать всеми потоками одну?
>в каждом потоке создавать свою картинку, чтобы не зарисовывать всеми потоками одну?
МУТЕКС
https://ru.wikipedia.org/wiki/%D0%9C%D1%8C%D1%8E%D1%82%D0%B5%D0%BA%D1%81
>И как вообще в каждом потоке создавать свою картинку, чтобы не зарисовывать всеми потоками одну?
Доку открой.
https://matplotlib.org/stable/users/explain/figure/api_interfaces.html?clckid=a105f184#the-explicit-axes-interface
имел я тк в aнуc за то, что 30 строк писать нужно, привязывать обработчики событий, и описание всего внешнего вида контрола портянкой. На пайсимпл-димпл - 2 строчки кода. Аккурат как принцип кис в питоне.
Всё в одном файле.
Это правильный подход? Что изучить чтобы писать правильно?
Вы когда нибудь писали иде пиотна на питоне?
Как реализовать дебагер который прокидывает результат в ide шную консоль.
Как вообе лучше выполнять код в subproces или exec? Собсна кто нибудь тут занимался подобными извращениями?
Сайт скорее всего (99%) палит бота по другим признакам нежели клик. Например фокуса нет на кнопке или ещё что-то. Впрочем я не собираюсь тебя в этом убеждать, ты сам поймешь со временем, что не в ту сторону дрочил.
Использую либы которые напрямую мышкой управляют через api ос или драйвер, такие как mause или pyautogui.
Можаш стварыць файл funkcyi.py і перанесці іх з галоўнага. У галоўным файле на версе дадай import funkcyi.
>пґышла цябя закынуц в патаке
Здаецца, ты памыліўся. Табе патрэбны не плыні, але працэсы, бо толькі яны працуюць на розных ядрах. (from multiprocessingimport ...)
Что за сайт?
Анон, ничего не имею против тебя, но цитаты ты зачем на белорусский переводишь?
мимо другой белорус
Очевидно, чтобы вызвать неприязнь к себе и таким образом к белорусам, мы же когда на форчанге пишем - пишем анлийском, на языке понятном местным, а не на русском, иначе это воспринимается как показательное неуважение. Надо быть дегенератом чтобы такое не понимать и этот петух явно всё понимает.
Так-то он давно тут срет и ответы его очень тупые, скорее всего он их в GPT забивает и просить бота отвечать на белоруском т.е. это какой-то сознательный политический дегенерат с пораши, ведущий свою БОРЬБУ в разделе /pr/.
Обычная вниманиеблядь, ничего особенного
норм. Можно пока ты мал и глуп.
Все советуют разное, и я никак не могу понять, как все все эти ебучие слои разделить так, чтобы это было красиво и масштабируемо.
Слой сервисов
И теперь вопрос. А где мне теперь по-настоящему учиться?
Я вот получил тестовое задание.
Первые пункты:
1.Запустить несихронный fastapi сервер
2 Написать роут, который принимает схему schemas.Schema
Мне дан файл database.db, а аткже файл с моделями и BaseModel.
Только поскольку это не обычное автосгенерированное django приложение, я уже не справляюсь - settings не сгенерированы.
Если я прописываю from django.conf import settings то все равно пишет ...AppRegistryNotReady: Apps aren't loaded yet.
Очевидно, я все делаю через жопу.
Может, я чего-то не понимаю и данные папки нужно было просто интегрировать в проект? Тогда как с этим связано fastapi?
Чтобы быть хорошим программистом просто необходимо самому себе уметь отвечать на подобные ламерские вопросы с помощью гуглежа, а я все еще этого не умею. Меня это бесит.
файл с моделями django, db
Задача:
Запустить fastapi сервер, где доступ к данным обеспечивается с помощью django ORM.
Какие были бы ваши действия?
Я должен создать новый django проект, подключить к нему имеющиеся данные а дальше прикрутить fast api?
白俄罗斯猴子,你来到俄国的板,用着你的狗语言打消息干啥?而且你们的狗语非常搞笑你知不知道?猪,用俄语还是英文,不会的话,给我们滚
Я помню в одной приложухе открывали файл и читали его до определенной точки в начале и из этого куска делали какой-то хэш, я так и не понял почему по мнению разработчика такой метод гарантированно должен возвращать уникальный хэш, или я что-то не знаю.
Какие ещё есть варианты и примудрости?
Как я понял, замыкания нужны, чтобы задать функции какой-то стейт, который она может сохранять между вызовами. Но при этом доступ к этому стейту будет иметь только сама функция.
В моем коде на пике замыкание считает, сколько раз его вызвали. Благодаря тому, что питон поддерживает замыкания, мы можем привязать к каждому объекту функции свои переменные и за счет этого считать, например, сколько раз вызвали функцию?
Бамп вопросу
Как правильно запускать код питона в питоне, чтобы потом пробросить его в импровизированую консоль самописной недо ideхи?
Popen хуйня потому что не позволяет нормально отлавливать inputы.
Пока вижу такой варик. Перехватить sys. stdout stdin stderr и хуячить их в типа консоль идехи
Чистый exec() хуйня потому что у такого скрипта внутри eval name это builtings а надо main
Есть runpy но там в всеравно при импорта в модуля pdb дебагер вылезает наружу кода. Как собсна сделать нормальный запуск скрипта и вывод куда надо?
В cmd написал python -v но мне вместо версии пиона вышло куча строчек с импортами-хуимпортами типо
import 'encodings.cp1251' # <_frozen_importlib_external.SourceFileLoader object at 0x0000021C4921B410>
и т.д.
Что я не так сделал?
ps удалил питон, ввел ту же команду - выводит просто "Python" без цифр.
я так понял лучше по названию файла делать хэш. И желательно в хэше учитывать каталог, время, и откуда получен. Или чего-то в принципе что может быть уникальное между этими файлами...
* если средствами ОС - попробуй хеш по местам записи на жёстьком диске и размером файлов. Вроде бы не должны быть коллизии...
не ставь питон!
Завали уже пиздак, грамазека
Я тестер и хочу запилить пет-проект, и написать автотесты на pytest для него.
На данный момент питон знаю максимально базово, типа создать функцию, которая принимает какое-то значение (целочисленное) и ведет отсчет до 0.
Какие книги вкуривать и тд? Потом джанго/фласк для веба (своего пет проекта)
Можно попросить нянечку в детсаду чтобы тебе поменяла ООП. По тестерам - только практика собеседований, каждый тварь хочет своего..
Ты чего несешь вообще? Шиз что ли?
Что я упускаю?
Только что в виртуальном окружении установил несколько библиотек из файла requirements.txt. Django установлен. Почему консоль его не признает?
Потому что django-admin startproject myproject, дебил
Lol, степик твой - срань недоджуновская. Твои преподы - говнокодеры полные, можешь им передать.
Рукалицо...... Автотеститрование.....учи скрижали с нуля, дебил
Огромное спасибо за шапку и коллекцию книг!
Есть ли в интернете подобным образом оформленные тематические сообщества? На любом языке. Гугл будет совать платные книги и курсы, реддит полагаю выпилит ссылки на книги, у SO формат вопрос-ответ.
Последнее время постоянно борюсь с желанием выкачать интересующие тематики просто на всякий случай.
Это копия, сохраненная 5 сентября в 18:03.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.