Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
>>1818007 Ubuntu перешла на 3.8, а окружения лучше в docker собирать, как мне кажется. Тогда у тебя априори свежие сборки всего. Ubuntu все же от корпоративщиков, а Elementary от васянов. При переходе на docker ваще похуй должно быть. А так pipenv или poetry используй.
>>1818007 Юзаю xubuntu, pyenv, poetry, docker. Вся разработка и тестирование в докерк, ведь потом в докерк идёт доставка на сервер. Мелкие скрипты и какие-то тестовые запуски через pyenv. Ну и pycharm/vscode по настроению.
Кто зарабатывал на фрилансе или в конарах, подскажите плис. Вот я задрочил scrapy. Как можно на нем поднять бабла? Например, на фрилансе. Если будет задание, то что обычно просят сделать, ясно что отпарсить. Но какие бывают извращения, чтобы как можно быстрее и точнее сделать парсинг под хотелку заказчика, если таковой вообще будет.
А вообще, пилите стори, кто что делал на фрилансе по питону.
>>1818197 генератор qr кодов, тебе надо загуглить принцип и алгоритм и саому их реализовать, использовать PIL или matplotlib для создания картинки разрешаю, Написать обертку над готовым генератором нет, это не то, реализовывай сам
Имеется непрерывное поступление данных типа: False + время False + время False + время True + время True + время False + время False + время False + время True + время False + время False + время Мне нужно при появлении первого True, записать время начала события. Потом ждать появления False и записать время конца события создавая пару [начало, конец]. Не могу понять логику как это реализовать.
Пытаюсь авторизоваться на сайте через либу requests. Сайт использует "Set-Cookie". Запросы отправляю через созданную сессию: requests.Session(), добавив после этого нужные заголовки.
В связке build_opener, HTTPCookieProcessor в urllib и Cookie, LWPCookieJar в http всё работает и куки подхватываются. Хотел переписать, сделав на либе requests, но почему-то куки не подхватываются, следовательно последующие запросы по прежнему идут лица гостевого пользователя.
Буду благодарен, если кто знает как такое пофиксить и сделать чтобы куки нормально цеплялись.
Анонче, чет встрял на регулярках, помогите, пожалуйста. Дано строчное месиво, из которого нужно вычленить объект, например: {1:'raz'},{2:'dva'},{'python':'sila','1488':'drugoy_yazik'},{3:'tri'}
Болдом выделил то, что нужно найти при помощи регулярки. Проблема в том, что там могут быть разные букво-знаковые значения разной длины, например java_script, haskell (у меня итерация по куче таких стрингов). Предшествующая и последующая часть там всегда одинаковая, поэтому я понял, что мне нужно присосаться к тому, что перед началом объекта (1488':'), тому, что после его окончания ('},), и соответственно взять то, что между. Но как мне учесть разное количество символов в искомом объекте?
>>1818554 как понимаю, примерно так: находим такую часть строки где следуют символы '1488':' а за ними любое количество (от 0 и более) любых символов, после которых должна быть одинарная кавычка. сохраняем все эти символы до первой встречной кавычки
Аноны, поясните за sql, вроде во многхи вакансиях требуют, насколько какой-нибудь постгре отличается от простого? Насколько долго и сложно учить конкретный вид, это как новый язык погромирования, или там минимальные различия? Ну и какой вид по-вашему мнению более актуален и популярен (хотя ясен хуй, что от работодателя зависит конечно, но хоть прикинуть, куда ориентироваться)
>>1818573 > насколько какой-нибудь постгре отличается от простого В пределах базовых случаев никак от стандартного не отличается. А если и отличается, то как правило, незначительно.
> Насколько долго и сложно учить конкретный вид Это никто не учит, просто идёшь в гугл как тебе в такой-то БД сделать такую-то операцию, там будет описание синтаксиса. Есть основы, общие для всех БД, вот здесь очень много нужно узнать. В основном это касается внутреннего устройства БД и производительности. Ещё непросто понять джойны, подзапросы, хотя бы в плане что они делают и какие бывают.
>>1818579 >> Насколько долго и сложно учить конкретный вид >Это никто не учит, просто идёшь в гугл,,. Бля, а какой-нибудь кайфовый курс на степике про это дерьмо есть? А то хочу начать пытаться тыкаться на собесы, но там везде какой-нибудь вид эскуэля указан
>>1818588 > быть вообще не в состоянии нихуя сделать Такое может быть только если ты совсем мало знаешь о базах данных. Подтягивай общую базу. Можешь тот же постгре задрочить. 90% знаний между реляционными базами пересекается.
Твой изначальный вопрос был о 10% различий. Так вот, повторюсь, там сами собеседующие скорее всего не сильно в курсе, и никто (вменяемый) у тебя про различия в диалектах sql спрашивать не будет.
>>1818478 А что там считать? Вот у тебя задача, что-то сделать с N элементами. Если ты по ним проходишь циклом ровно один раз, то это O(n), если у тебя даже цикла нет и операция не зависит от размерности N, то это O(1). Если два вложенных цикла O(n^2), если три O(n^3), итд. Если у тебя бинарный поиск, то O(log n). Большинство эффективных сортировок O(n log n).
Ну и да, линукс, любой, это как запорожец - больше чинить, нежели ездить. Если ты не готов первую неделю пердолить консольку вместо непосредственной работы, то он не для тебя.
>>1818710 >Если ты не готов первую неделю пердолить консольку вместо непосредственной работы, то он не для тебя. Зачем ему ставить пердольный дистр? Завел какую нибудь каляску типа убунты и все
Меня тут разморозили и я очень удивляюсь новым фичам языка, вроде тайп-хинтинга, нового оператора сравнения, тому что createvirtualenv был вытеснен poetry, а autopep8 black, что какой-то mypy проверяет корректность типов... Можете ещё рассказать, что ещё нового в питоне в 2020?
>>1818710 Что там пердолить? Я же не буду компилить ядро как в какой-нибудь генто. Понимаю, что плюс минус везде все одинаковое, спросил на всякий случай, мало ли
Блять, неделю уже читаю отзывы, смотрю видосы и не могу понять, какую IDE использовать. Кто говорит использовать обычный sublime, кто говорит использовать ванильный вим, кто jupiter, кто говорит что у 90% разрабов стоит pycharm. IDE - действительно настолько субьективная хуйня или все такие есть объективные причины использовать ту или иную?
>>1818766 Блокнот. А если серьёзно, напердолить до некоторого уровня комфорта можно во всех этих редакторах. Просто установи и попробуй каждую, вместо того чтобы читать холивары.
У меня два вопроса по парсингу Как быстро вкатиться в xpath и css локаторы, мб у кого есть шпаргалки. И как быстро искать на стр код хтмл, показывают примеры, у них все развернуто. Начинаешь просматривать сайт, хуй пойи что где. Полюбому есть секерты как делать быстро и правильно. Про просмотр кода знаю.
>>1818860 > isinstance(tag, bs4.element.Tag) Так пробовал, выдаёт: File "C:\Users\........py", line 18, in <module> if isinstance(tag, bs4.element.Tag): NameError: name 'bs4' is not defined
>>1818858 Мне же нужно чтоб таг был из определённого класса.
>>1818867 У меня таги двух типов - bs4.element.Tag и bs4.element.NavigableString. Мне нужно получить только те что bs4.element.Tag. Тут же >>1818858 просто выдаёт ошибку так как type(tag) не выдаёт True/False для if, a class, или я настолько тупой что не вижу что-то очевидное?
>>1819086 Не совсем, я сейчас вместе с еще одной командой специалистов всемирного уровня разработки, создаем на протяжении полу года браузер который сможет поддерживать скрипты из других языков. Пока особо ничего сказать не могу дабы не нарушать нда, но через пару тройку лет в основном будут лидировать либо веб асембли либо наш продукт, но скорее всего нас просто купит какой нибудь гугл и встроит себе куда нибудь
До сих пор не въезжаю: хрен ли недоразрабы пистона не могут выкатить полноценные лямбды? Многострочную лямбду уже давно можно замутить через круглые скобки, так что дело не в этом, хер ли я не могу делать assignment внутри нее?
for eachObject in detections: print(eachObject["name"] , " : " , eachObject["percentage_probability"] )
Есть такой мини код. И оба питона(Двойка и тройка) выдают одинаковую ошибку. Че он от меня хочет бля? Какой еще аргумент он хочет? Я заебался уже. На винде под кондой все охуенно работает. А на расбиане уебывается. Ну ебаный хуй.
>>1819292 >Че он от меня хочет бля? Сдается мне, ты хуячишь код из интернета, не умея вообще программировать. В стек трейсе все написано - и место с ошибкой, и что конкретно произошло. Тебе остается только подключить отладчик и посмотреть, почему у тебя None вместо числа, и откуда это пошло.
>>1819294 Ну да, но на винде работает. Тут нечему не работать ибо все остальные трейсы это библиотеки\зависимости\meh которые заведомо правильные Где место с ошибкой?
>>1819296 >Тут нечему не работать Я тебе еще раз говорю - запусти дебагер и посмотри, что именно не работает. Экстрасенсов тут нет, и никто тебе не найдет ошибку, не имея полного доступа к коду и окружению питона со всеми библиотеками. Ты сам сказал что на винде все работает, значит проблема скорее всего в несовместимости версий библиотек или их корявой имплементации на линуксе.
>>1819147 Обычно такие проекты покупают просто так, чтобы умертвить. А ещё чаще они просто закрываются, инвесторы кончаются.
Мне кажется сомнительная затея, не потому что сложно реализовать адекватно (тут я бы на твоём месте об идеях не говорил даже здесь, прилетит легко), а потому, что главная ценность в поддержке консорциума, в кроссплатформенности.
Никому не нужно решение, которое поддерживается только одним браузером.
Привет, есть проект на фласке( флас миграции соответственно) есть модель алхмии в ней. Пытаюсь добавить еще одн столбец. Миграция создается, а при апгрейде зависает навсегда. Для другой модели вроде бы все норм работает. В чем может быть проблемма? и есть ли идеи как фиксить?
>>1819297 Я поклацал библиотеки и привел некоторые к одинаковым версиям виндовых. Вроде запустилась. Но система киллует процесс. С чем это может быть связано. Жрет дохуя, и расбиан не хочет обслуживать ее?
Сап, недавно вкатился в этого вашего питона. Вроде теоретические знания какие-никакие есть, но на практике их проверить негде. Можете подкинуть пару сайтов с задачами или что-то типа того
for eachVideoObject in detections: print(eachObject["name"] , " : " , eachObject["percentage_probability"] )
Вроде запустил, но нихуя не распознает. Тупо записывает видео, хотя на ноуте вполне работает. Какой то интересный ворнинг. В инете пишут что-то изменить в обучении модели, но блджать у меня претрейнед модель, что я ей изменю. И при этом вариант программы для картинок оно распознает, я доделал. >>1819292
Хотя прогресс, да. Никто не занимался такой хуетой? Помогите пожалуйста.
>>1819185 Пройдись по каждому пикселю и вычисли его цвет, если цвет больше чем цвет бекграунда то это точка, считаешь количество пикселей больше цвета бекграунда, потом всю эту сумму делишь на количество пикселей в 1 точке, получишь кол-во точек
Всем привет. Изучаю тут Джангу, мечтаю сделать свою админку для отеля. Типа пикрл. Как это отрисовать я ещё подумаю, сейчас я думаю, как следить за тем, занят номер или нет. Я так понимаю нужно создать таблицу в бд, где тупо будет написано для каждого номера на каждый день в году, занят он или нет? Ну или для каждой категории номера на каждый день, сколько свободных. Типа каждая строка - дата, каждый столбец категория. То есть энивей придется иметь таблицу размером количество категорий * количество дней на которые я разрешаю вперед бронировать. И нужно будет периодически заходить туда и добавлять квоты для будущих дат. Типа на год вперед итд. Или есть получше идея?
Анон, а есть годные фреймворки для написания апи? DRF кажется дрисней поверх Джанго и дока паршивая, фласк слишком микрофреймворк, насчёт фалкон хз, что годного есть?
Аноны, в какой момент QeuerySet выберет данные из базы при использовании его с стандартным Джанговским Пагинатором? В момент когда я примею пагинатор к objects.all() или в момент, кода я попробую выбрать данные уже из пагинатора?
>>1820031 Ну насколько я понял, это ты предложил способ как можно быстро заполнить таблицу кучей дат с квотами? Но сама суть правильная, да? Нужно иметь строку на каждый день в отдельной таблице. Или мб можно просто по таблице броней проверять, не превышает ли количество бронирований на данную дату допустимого? Ну типа человек ввел там двухместный номер с 1 по 3 октября. Я просматирваю, сколько у меня уже забронировано на 1-е, на 2-е, на 3-е и если их не больше, чем номеров в отеле, то значит разрешаю забронировать. И типа и не нужна отдельная таблица?
>создать таблицу в бд, где тупо будет написано для каждого номера на каждый день в году, занят он или нет Лучше просто таблицу со бронью, то есть ид_номера, дата_заселения, дата_выселения. И связать ее с таблицей номеров. Тогда ты сможешь делать выборки уровня "дай меня только двухместные номера, у которые нет записи о бронировании с такого по такое число".
>>1817742 (OP) Появилась идея проскрапить hh.ru чтобы найти данные по вакансиям: средняя зп, медианная зп и гистограмма общего распределения зарплат. Для начала только по Москве и Питеру, вне зависимости от сферы, чтобы посмотреть насколько правдивы кулстори про "среднюю зп в 90к" Кто занимался скрапингом hh.ru? Какие подводные?
>>1820235 На самом деле нет, я тебе совсем другое предложил. Но так как ты предлагаешь, вероятно тоже сработает, главное проверяй что UPDATE обновил все строчки именно так как ты ожидал и будь готов словить дедлок.
Может кто-нибудь пояснить этот opencvшный ворнинг? OpenCV(4.4.0) /tmp/pip-wheel-frffvd08/opencv-python/opencv/modules/videoio/src/cap_images.cpp:293: error: (-215:Assertion failed) !_filename.empty() in function 'open'
>>1819809 Советую edabit: он лаконичен и прост в сравнении с тем же громоздким codewars. Обязательно смотри топовые ответы после решения: там очень много синтаксического сахара, который может быть не очевиден, но его нужно знать и даже иногда использовать.
>>1820662 Неплохо. А что если эксепшн не рейзится (что случается в 99% случаев)? У меня стоит обычный вызов: logger.warning("Attention!") logger это экземпляр logging.getLogger()
>>1820229 Дело не в print, а в самой процедуре логирования. Покури, как перехватывать ошибки с помощью кастомной функции и заменять ею встроенный в интерпретатор sys.excepthook. В нем ты будешь скрывать данные по регулярке или еще как вздумается.
Двач, начал изучать pandas для небольших операций с данными по работе и построения простейших графиков. Прилетела задача построить несколько статистик на данных формата: Колонка в датафрейме пандуса содержит данные формата: [11, 23, 45, 33] от одного до множества элементов Как обработать эту колонку и уметь вытягивать из нее количество элементов/отдельные элементы.
Помогите написать код для проверки числа цукермана и цикл чтоб число увеличивалось на 11 с каждым ходом и закончился когда данное число будет делиться на 2020 без остатка
> цикл чтоб число увеличивалось на 11 с каждым ходом и закончился когда данное число будет делиться на 2020 без остатка нихуя не понял, чтобы какое число увеличивалось на 11?
Анонсы, помогите нормально разобраться с итераторами и генераторами. Где можно о них почитать, чтоб с примерами. А то в теории вроде понятно, че это, но на практике нихуя. Лутца по этой теме читал, но как то там мало именно практической части.
>>1821033 Повсеместный range это генератор. Всё что может работать цикле for и есть итератор или генератор.
Конечно ты можешь проходить по ним и без цикла: r = range(10) print(next(r)) print(next(r)) Но нужно самостоятельно ловить экзепшен StopIteration
Свои итераторы можно создавать с помощью магического метода --next--. Это по сути то что вызовет встроенная функция next(). Но с циклом for всё немного сложнее, он не просто берёт итератор и дёргает ему --next--, а сначала создаёт итератор из объекта который ему дали через магический метод --iter--. Чтобы запутать ещё сильнее, довольно часто там return self. Но по фэншую нужно возвращать отдельный объект. То есть коллекция это отдельный класс, а итератор по ней это отдельный. Чтобы уже созданный итератор был совместим с циклом for ему нужно добавить метод --iter-- с return self, чтобы цикл продолжил работать с уже существующим объектом, а не пытался создать новый. Кстати встроенная фукнция для вызова --iter--, так и называется iter().
>>> iter([]) <list_iterator object at 0x7fa5be6a4d30> >>> iter({}) <dict_keyiterator object at 0x7fa5be619360> >>> iter(iter(iter([]))) # здесь отрабатывает return self на итераторе <list_iterator object at 0x7fa5be6a4d30>
Собственно нахера return self в методе --iter-- итератора? Вот пример:
it = iter(list(range(100))) for x in it: ..break for x in it: ..break for x in it: ..break
Мы можем переиспользовать тот же самый итератор несколько раз. На каждом вызовется сначала --iter-- чтобы убедиться что у нас итератор а не какой-то другой объект, а потом --next--.
Генератор это такая хитрая прерываемая функция, с помощью которой очень удобно создавать итераторы.
По сути часть состояния сохраняется как место выполнения генератора (какой из yield вызван), часть как локальные переменные. Всё это крайне удобно ложится на объектную модель, ты можешь метод --iter-- любого класса выполнить как генератор, и тебе не придётся создавать дополнительный класс итератора, при этом будет по фэншую, итератор отличается от самой коллекции.
Генераторы бывают ещё в виде экспрешенов, без всяких yield:
(i for i in range(20_000_000))
Важно что скобки круглые. Здесь точно так же, можно повызывать next на таком объекте, и точно так же лениво вычисляются значения, что может здорово сэкономить оперативку: попробуй заменить скобки на квадратные и посмотри потребление памяти. Либо внутри скобок метода, это тоже будет генератор экспрешеном:
Посоветуйет как составлять css и xpath выражения. Начитался, сижу тыкаю, не получается самому. Ужи и плагины юзал, не помогает. Скрапи освоил, написал простенький парсер на ихнем варике сайта. Но там сайт какой-то до жути простой и код страницы - читаем. Открываю алик или вайлдберис - там пиздец. Не получается норм составить либо css либо xpath выражение. Гдя я что-то упустил?
>>1821153 Нет. Там какие-то пустые общие слова, а в тексте указаны ссылки, которые мертвы.
>>1821144 Вот этот гайд тоже устарел, поскольку 2015 всё-таки, и тогда не факт, что актуальным был.
Сам питон поменялся, всякие там asyncio, format-fstring, 2x окончательно потерял актуальность, другие фреймворки и веб-разработка, django в чистом виде меньше актуален, с дополнениями нужен, flask вообще ВСЁ, появились новые важные фреймворки. Окружение сменилось. Всякие open-cv, расцвели и т.п.
Нужно какое-то новое обзорное пособие. Может где-нибудь есть, а может и всем лень заниматься.
>>1817742 (OP) Я решил использовать pandas для обработки табличных данных, и у меня возник вопрос организационного характера, даже не касательно конкретно pandas, а вообще насчет места сторонних библиотек в своем проекте. Как принято у серьезных ребят обращаться со сторонними библиотеками: 1. Без задней мысли пихать везде классы и функции из сторонней библиотеки, писать свои функции, которые принимают и/или возвращают объекты из этой сторонней библиотеки, то есть делать так, чтобы код был гвоздями прибит к этой конкретной сторонней библиотеке. 2. Показывать всем, какой ты крутой архитектор и знаток паттеренов, например, написать класс-обертку, и везде в своем коде использовать эту обертку, чтобы при желании легко заменить эту стороннюю библиотеку на любую другую, достаточно написать обертку для этой другой библиотеки.
Пока мне кажется, что второй вариант если и используют в разработке на питоне, то только в каких-нибудь гигантских корпоративных системах, которые будут существовать десятки лет, где-нибудь в гуглах и фейсбуках, то есть в большинстве случаев целесообразней использовать первый вариант, потому что кода не так уж и много, а питон такой весь гибкий и динамичный, что если изменения будут действительно нужны, их будет несложно сделать. Как вообще в питоне с архитектурой и внедрением зависимостей?
Всем привет. Я чет туплю с созданием полей формы в джанго. В модели у меня есть таблица, к примеру "заказы", в которой содержится информация о заказе и информация о клиенте, который этот заказ сделал. Соответственно всю информацию о клиенте я вынес в отдельную таблицу "клиенты", а в "заказах" у меня внешний ключ с айди клиента. Но вот поля для заполнения информации о клиенте и о заказе у меня должны быть на одной странице. Ну и собственно надо чтобы все это создало запись в "заказах". То есть человек заполняет ФИО, телефон, емейл итд, выбирает товар (и ещё пару других параметров) и нажимает кнопку отправить. Я нашел, что джанго сам сделает селект, если у меня есть, например, "категория товара" какая-нибудь в отдельной таблице, где есть только айди категории и список категорий. Но как сделать, чтобы он рендерил поля из связанной таблицы, когда их там несколько и это не селекты? Мне нужно создавать две формы, для информации о клиенте и для информации о заказе и просто рядом их рендерить, как я понимаю. Но как я тогда сделаю, чтобы в бд в таблицу заказов попал соответствующий айди клиента? Ну типа у меня просто заполнится строка в таблице "клиенты" из полей с данными о клиенте и поля с информацией о заказе в "заказах", но как айди клиента попадет в строку с информацией о заказе?
>>1821574 Учи что такое SOLID. Работа с зависимостями это D - Dependency inversion. Это правило говорит что твой код должен полагаться на интерфейсы, а не конкретные реализации.
Про архитектуру читай книги cosmic python и clean architecture. Там же найдешь ссылки на распространенные практики, такие как TDD, BDD, DDD https://github.com/cosmicpython/book
>>1821574 смотри сам. если это какой-нибудь прикладной скрипт, который ты побыстрому слепил, чтобы решить какую-то прикладную хуйню, то можешь хуевертить что пожелаешь. упарываться по паттернам в этом случае стоит только в образовательных целях.
>>1821874 >>1821835 Ну, в общем, все так, как я и думал. Маленькие программы приемлемо писать как бог на душу положит, а каноничные архитектуры больших еще только формируются. >>1821858 Я представляю, что такое DI, просто, думаю, техники, например, из джавы, будут в питоне смотртся не очень, хочется знасть про DI именно в контексте питона и его специфики. Вот за конкретную литературу спасибо.
>>1821317 > Вот этот гайд тоже устарел, поскольку 2015 всё-таки, и тогда не факт, что актуальным был. Гайд вполне актуален. > Сам питон поменялся, всякие там asyncio, format-fstring Для этого стоит глянуть changelog новых версий питона. Или ты предлагаешь каждые пол года переписывать/дописывать гайд? > другие фреймворки и веб-разработка Например какие? Для твоих пет проектов подойдут старые добрые. В питоне не так уж и много живых и активно юзающихся фреймворков. > django в чистом виде меньше актуален Что имеешь ввиду под чистым видом? Без доп. плагинов? Так без них ни один фреймворк не подходит полноценно для реальной работы. > flask вообще ВСЁ А вот и нет, вполне активно юзается и для новых проектов тоже. Сам его на проекте использую и очень доволен, все таки его возраст и комъюнити идут ему на пользу. > появились новые важные фреймворки Перечисли пжлст, только без asyncio, ибо он вполне давно уже существует. > Окружение сменилось. Вот по этой теме гайд бы обновить, да. > Всякие open-cv, расцвели и т.п. Расцвели они давно, то что ты их сейчас заметил - другое дело. > Нужно какое-то новое обзорное пособие. Может где-нибудь есть, а может и всем лень заниматься. Лично я узнаю про всякие плюшки из статей, а гайд, должен ввести человека в мир питона просто и легко, дать базовые знания, дальше уже можно улучшаться и развиваться, узнавая что-то новое. + Есть охуенный и актуальный, вполне, укус питона.
Здравствуйте, помогите ньюфану, пишу программу-игру типо блек-джека, получаю рандомно числа и записываю их в массив.Скрипт зацикливаю.Вопрос, как при зацикливании скрипта сделать так, что бы при окончании скрипта инфа из массива не удалялась? На пыхе бы скажем записал бы в сессию или в куку, но тут интерпритатор без сервера,поэтому интересно как на питоне решаются такие проблемы
>>1822080 >Перечисли пжлст, только без asyncio, ибо он вполне давно уже существует. Так же модели представления данных сильно прогрессируют, тот же pydantic чего стоит fastapi, aiohttp, starlette, vibora мимо
возможно ли вкатиться в бэк с django без опыта? 18 лвл, время и желание есть, но терзают сомнения, потому что часто читал, что без опыта сразу в бэк мега сложно вкатиться, но фронт учить желания вообще нет, знаю основы html, css и чутка js, больше не хочется туда лезть. изучаю python, django, sql. пока все нравится.
>>1822510 А как тогда ждунами-бэкэндерами становятся? Все это пиздеж и хуйня, учи и всё будет збс. Но кроме Джанни ещё глянь асинхронные фреймворки, типа aiohttp и fastapi.
Кто-нибудь может подсказать почему когда нажиаешь кнопку "два", то лямбда вызывает метод anyButton с аргументов "два", а когда первую, то передает boolean False
>>1821917 Ты можешь использовать практики джавы в питоне, если они физически применимы. "Смотрятся не очень" не звучит как нормальное обоснование. Думаю эффектиней будет разбирать конкретные сомнения на примерах.
Анонсы, нужен ли ООП?, чет на всех видосах его юзают полтора красноглазика, все в основном просто через скрипты работают включая всякие ролики от googl'а и прочеого фейсбука мимо гуманитарий вкатывальщик
>>1822871 Понимать базу ООП нужно. На самом деле ООП очень активно используется, в куче библиотек и фреймворков тебе нужно свои объекты наследовать от библиотечных, либо ты просто пользуешься чужими классами-объектами.
В питоне от ООП одно название, учить там и нечего.
Впрочем всё зависит от твоих задач. Если надо лабу сдать или для себя примитивный скрипт написать, то может и не нужно.
Необходимо написать функцию, даны первый (first) и последний (last) символ строки, а также массив pairs. Если “xy” в pairs, значит в результате y должен следовать за x. Каждая пара может использоваться только один раз. Необходимо выдать все возможные результаты.
Пример: first = “b”, last = “r”, pairs = [“ar”, “an”, “an”, “ab”, “ba”, “ba”, “na”, “na”]
Функция должна выдать:
“banabanar” (ba + an + na + ab + ba + an + na + ar)
“bananabar” (ba + an + na + an + na + ab + ba + ar)
“babananar” (ba + ab + ba + an + na + an + na + ar)
>>1823344 Вроде бы понял. Вопрос один: гарантированно ли, что из данных пар можно подобным образом составить слово? Если да, то решается она довольно просто - пикрил.
>>1823367 >Притом, что это один из способов реализации полиморфизма? Перегрузка при которой меняются только типы данных в питоне попросту не нужна - достаточно одного метода. Ну а если меняется и количество параметров, то это уже не полиморфизм.
>>1817742 (OP) Почему нельзя замутить питоновский код, который компилится в С/С++? Вот нахуярил ты питоновского кода (по особым конвенциям канешн, с принудительным тайпингом например), запустил внешний компилятор и имеешь на выходе С++ файлы? Тайпскрипт же могет (ну он в жс-ваниллу компилит, но тем не менее)
>>1823421 там то компилится в текст, а ты из интерпритируемого в готовые файлы хочешь? тут скорее нужен другой язык с синтаксисом как у питона, и чтоб на выходе выдавал цпп текст и его уже потом компилить
>>1823402 >Перегрузка методов относится к одному из способов реализации полиморфизма >а если меняется и количество параметров, то это уже не полиморфизм Правда-правда? >>1823412 Нет.
>>1823144 >Никогда не понимал таких заявлений, типо у вас ООП не ООП. Тупо нет такого понятия, как интерфейс. В том виде, в каком он есть в C++/Java.
А интерфейс это ключевая сущность ООП, а именно задекларированный механизм общения с объектом.
В питоне всё нестрого и на уровне джентльменских договорённостей. И не только с интерфейсами так. Жить можно, но это совсем не то, что в полноценных ООП языках.
Хотя на самом деле чистое ООП питону не очень нужно.
>>1823686 - В плюсах интерфейсов в строгом понимании нет - АРЯЯ ПУК-СРЕНЬК ВРЕТИ - Чекай что сам же Страуструп на этот счет говорит - ДА КОМУ ОН НУЖОН! ПИДОР СТАРЫЙ! НЕТ ИНТЕРФЕЙСОВ ЗНАЧИТ НЕ ООП! ЯСКОЗАЛ!
>>1823712 Ну полностью абстрактные классы конечно плюс минус замена интерфейсам, но мозги в жаваооп думают про интерфейсы, а у питонооп получается все равно от реализации, потому что полностью абстрактные классы небось мало кто будет городить везде где в жаве или пхп интерфейс
Привет всем. Если я хочу в Джанге реализовать регистрацию с помощью email с заделом на то, что у юзера будет возможность восстанавливать с его помощью пароль и так далее (и затем по почте логиниться), то мне, получается, всё равно придётся лезть в батарейки типа django-allauth, или всё более-менее реализовывается стандартными Джанговыми средствами?
Ребята, может поможете советом Вот думал я вкатываться, после айосов всяких пару лет назад(подучился, но работу не нашел) вот недавно начал пробовать джаву Пробовал, пробовал, дальше кора не пошёл, думаю пробовать питон В отличие от джавы дополнительно привлекает возможность фрилансить как никак (скорее всего хуй отсосу с таким рынком нынче, но мало ли) Сейчас трогаю основы, так вот Каким путём двигаться, чтобы выйти на фриланс/джун уровень, чтобы уже можно было полностью профессию поменять (эникей-полусисадмин сейчас) Заранее спасибо
Всем привет, есть, как мне кажется, гениальная, но в то же время звиздецки муторная идея. Как-то раз будучи на очередной встрече друзей и друзей друзей, в голове промелькнула мысль не искать тяночку и не ждать её, а сделать самому, но только в виде ассистента-нейросети типо джарвиса. Проштудировав не одну книжку и статью встала проблема, нужна огромная выборка из диалогов разных тян, при чём ОГРОМНОГО количества тян, иначе это будет похоже на франкенштейна. Поэтому ищу помощи и советов, как это лучше сделать, может кто-то же этим занимался, либо знает в какой книжке хотя бы примерно описано как сделать, чтобы нейросетка помнила каждое написанное юзером сообщение, реагировала на него и запоминала свою же реакцию, хотя бы какое-то подобие разума. Если это нереализуемо в наше время, то можете послать искать работу...
>>1823864 Если для себя, то ты даун Потому что эта нейросеть это Альберт Эйнштейнты, доунич Во-вторых нахуя тебе тяночка, от них один головняк А ещё лучше не так делать Нейросеть тебе позволит только узко атаковать пиздячий фронт, тогда как тупой лайкобот тендера и надпись привет в матчи дадут больше Сиди дрочи, питон учи
Но, запоминать она будет только на неокторый контекст назад, вроде 5-6 сообщений. Запониманать навсегда - это уже нереализуемая хуйня, хотя можно попробовать что-то вроде MemoryNetworks использовать, но это прям спекуляция и не заработает.
>>1823738 Фактической разницы в результате нет Абстрактный класс тот же контракт, а множественное наследование позволяет делать то для чего в других языках нужны интерфейсы К тому же есть протоколы.
>>1823880 Необязательно навсегда, человек же не может запомнить что говорил его отец/мать 5 дней назад в определённое время, какие-то важные вещи надолго, а простой разговор ну на пару дней максимум, но спасибо за инфу про Мину
This is the first version of Python to default to the 64-bit installer on Windows. The installer now also actively disallows installation on Windows 7. Python 3.9 is incompatible with this unsupported version of Windows.
>>1817742 (OP) сап харкач, в вузике учил асемблер и си, решил поучить питона и не понял как дебагать, нарыл инфу что делается через функцию breakpoint(), но это пиздец как не удобно, есть ли простой способ чтоб как в вижуале строчку за строчкой смотреть?
>>1823928 >захотел оттестировать либу с pywin32 Сама Микрософт для разработчиков некоторых игр делает инструкцию, как впердолить DX12 в игру, чтобы работало на W7, а тут такой удар он опеншорша...
>>1823928 >либу с uvloop >uvloop is a fast, drop-in replacement of the built-in asyncio event loop То есть заменить назад на asyncio - дело пяти минут.
>>1823914 Сам сталкивался с проблемами сетевой карты, совместимости автозагрузок ебунты и шиндоус на одном жд, артефакты видеокарты интегральной ноутбучной ншидиа, у знакомого убунта не стала на новом ноутбуке за 1к$.
Большинство проблем решается проприетарными драйверами или гуглингом.
Секса с линухом все равно много.
И даже с всяким сексом линух все равно лучше и стабильнее чем шиндовс, плюс очень удобный терминал
Кто-нибудь пробовал собирать апк для андроида? Что юзали, бульдозер? Если да, то юзали из под виртуалки иди докера, как полет вообще, есть гайды по этому поводу. Или никто не пилит прилки для андроида на питоне?
Коданы, дана матрица пикселей RGB (трехмерный массив, кароч, где пиксель - трехэлементный массив) Как в питоне можно ЭЛЕГАНТНО (кроме как вложенными for-ами) найти координаты тех пикселей, где сумма значений для RGB минимальна и максимальна всю жизнь писал на похапе и js
>>1823977 >>1823988 Ну ок, я не нашел на оф сайте киви ссыль на скачивание бульдозера для виртуал бокс. Они потерли образ, или нет, или перенесли разработку в докер?
Пацаны, однажды изучал пистон, но уже еихуя не помню. Хочу научиться скраперы делать, есть гайд подробный для долбоебов? А то в гугле чет ёбань одну нахожу
>>1824030 Да я и так юзаю линух, там просто хуева туча зависимостей для бульдозера. Но юзаю я ни убунту. Вопрос то простой. Как лучше заюзать бульдозер, на виртуалке или в докере? Или вообще емго можно как-то накатить в моем дистре.
>>1824442 Ну ок, у меня тоже линух. Если я поставлю бульдозер pipом в виртенв, работать будет? Там же все зависимости подтянутся так? Я читал на хабре что долго компилится апк очень.
>>1824473 Не думаю, что такой подход сработает. Лучше установить билдозеровские зависимости самостоятельно, актуальный список сейчас не найду, у меня был примерно такой https://dumpz.org/cdb6b7rFXzsF Ну а после установить сам buildozer с помошью setup.py (см. ссыль выше).
Компиляция вообще не быстрый процесс, а ещё и требовательный к объёму дискового пространства.
балуюсь с декораторами. вот хотел узнать, можно ли как то из этого же модуля где вызывается функция изменить параметр декоратора (в коде по умолчанию dargs=10)
И если нельзя, то как лучше его менять? есть у кого в загашнике статейка либо кто помнит, книжку, где современная практика этого описывается. НУ или личный боевой опыт в коммерческой разработке.
>>1824855 Все что тебе нужно знать. Есть переменные. И есть структруы данных, массивы там всякие и прочая ебулда. И есть флоу, то есть логика. Всякие ифы, вайлы, и тд. Почитай. Далее, все это собирается в блоки, те в функции, чтобы не писать одно и тоже по сто раз. Все. Можно расходиться. Ах да, есть еще и ооп, всякие классы. Это чтобы еще меньше писать кода и чтобы было еще быстрее. Ах, да, и чтобы совсем было просто - фреймворки, чтобы не только просто, но и быстро. Читай укус питона. Думаю этого хватит. У меня трудности были только с ооп. С декораторами. И недавно допонял про генераторы. Ну и да, оф сайт и оф доки. Могу еще посоветовать эту няшу https://www.fullstackpython.com/ там про бек про фронт про деплой и про девоп.
>>1824609 Дело не в библиотеках, а в машине интерпретатора. На самом деле так просто транслировать скриптовый язык в бинарный код нельзя, много ограничений и подводных камней.
Вместо Cython лучше посмотри на Nuitka. Хотя я сам на практике его пока не использовал.
>>1824609 Между твоими утверждениями нет никакой связи. Ну и что что там сишный код под капотом? Тебе же всё равно придётся реализовать PyObject и перекладывать их туда-сюда. И так как PyObject непрозрачен, так как сам язык тебе не гарантирует ничего о его содержании и какие можно ограничения наложить читай оптимизировать под железо, ты придёшь всё равно к тому что есть стандартные питонячий байткод и виртуалочка. То есть, лучшее что ты можешь сделать это зашить в исполняемый бинарь и интерпретатор, и байткод приложения.
> Желательно оптимизированный, без вороха лишних зависимостей. Где связь между оптимизацией и зависимостями? Тебе надо быстро чтоб работало или минимальный размер бинарника? Так вот, эти вещи обычно никак между собой не связаны.
>>1823421 Теоретически можно. Но объектная модель питона кардинально отличается от объектной модели C/C++. Внутри всё равно придётся создавать dict для полей, слоты и прочее питонячее, чтобы оно работало. Выигрыш в скорости совсем не оправдает затрат. Скорее всего, придётся изобрести отдельный язык, но это уже за тебя сделали, называется cython.
>>1824528 В общем случае, единственный вариант это применить декоратор заново, на исходную функцию. Если же там применение через собачку, то всё, отковырять исходную функцию нельзя.
>>1824297 У меня плохой опыт со скрапперами. Их хотят чуть ли не за бесплатно. При том что часто всё закрыто капчами и требует пул проксей. Ещё часто приходят поехавшие, которые хотят чтобы ты отскраппил мобильное приложение. Не то чтобы это было совсем невозможно, но перехват и реверс протокола приложения, это удовольствие не из дешёвых. Не говоря уже о том, что с твоего базового аккаунта большая часть информации будет недоступна. Ещё часто хотят не просто результат скраппинга, а программу в виде exe под винду блядь, чтобы заказчик мог сам запускать скраппинг когда ему нравится.
>>1824101 Scrapy бери. Он вроде бы дефакто стандарт. Но вообще это всё на коленке можно наколхозить за пару дней. import requests, import bs4 и запиздил писать чо куда тебе сложить. Читай что такое xpath, css селекторы, да в целом вебстандарты нужно хорошо знать. Уровень 2 это освоить селениум.
>>1823864 У тебя постановка задачи хуёвая. Что твой ассистент должен делать? Какие требования? Как ты будешь измерять насколько ты достиг цели?
Зачем тебе диалоги тянок? Хотя безусловно, если поизучать бигдату из диалогов тян, то можно найти интересные закономерности. Но от такого изучения до полноценного ИИ как до луны раком.
>>1823837 Фриланс это не просто знание языка, это даже не просто программирование, это даже не постановка задач, архитектурка и ведение проектов, это даже не просто железная самодисциплина, это ты ещё сам себе гендиректор, продажник, маркетолог, переговорщик с клиентами, по совместительству человек-пароход и оркестр в одном лице. Мой тебе совет, начни с работы на дядю, но на релевантном месте. Питонист так питонист, а не чистильщик сортиров в конторе где есть питонисты.
>>1824923 У него там внутри суп или аналог. Скрэпи это скорее фреймворк, где конвейер уже поставили за тебя, добавили асинхронность и возможность установить готовые части этого конвейера.
>>1824945 Нинужнитка. Хоспаде, сколько нейронов ньюфажики тратят на покраску сарая для велосипеда. Нет бы программы писать, нет, хочу пердолиться и запаковать всё в один exe с красивой иконочкой.
>>1824913 >Их хотят чуть ли не за бесплатно. Мне кажется, это общая проблема всех массовых заказчиков. Они хотят продукт за копейки, не понимают, что за этим стоит большая и сложная работа. Плюс заходят на фриланс сайты, видят непонятные объявления о заказах за 500 рублей, когда кто-то заказывает, и получает предложения на исполнение, и искренне считают, что вот столько это и стоит. Ну может если в два раза больше заплатить, то точно.
При этом какие-то услуги так за копейки возможно получить, школьникам-студентам, живущим за счёт родителей, хочется попробовать чего-нибудь заработать, кому-то хочется влезть вот фриланс и они ради этого что-то почти бесплатно готовы делать.
В итоге у одних возникает моральный настрой на копеечность и отношение к исполнителю как ко дну, они не готовы платить даже за сложные вещи, которые за копейки не сделают (но могут пускать пыль в глаза, что сделают), а другие быстро бросают занятие за бесперспективностью, уступают место другим.
>>1824956 Бдять, чет через пип ставить начал, под конец высралось все красным и там одни ошибки. Почитал, пишут мол надо накатывать на 2.7, с остальными тип ебано, а я 3.9 скачал вот только и 3.8 стоит старая. Ну и бля в другом месте вообще пишут мол надо в виртуальном окружении это делать. Попробовал virtualenv поставить, потом хуй знает че делать. Нихуя не могу разобраться чет, скачал книгу про скрапинг, но она 16 года. Полистаю бдядь
>>1824528 Ты хочешь изменить после применения декоратора? Тогда, наверное, только если вот так https://ideone.com/f7xgzl но это наркомания какая-то. А если просто добавить дополнительный параметр к декорируемой функции, то, наверное, вот так: https://ideone.com/H4Qsiv
>>1825066 Пробежался то я пробежался. Я книжку понял. Я не понял питон.
Скучно читается только вводная часть, а потом уже идёт конкретика. Очень подробная и дельная. Я из тех людей, кого больше обламывает чувство неопределённости, а не объём информации. Лутц не оставляет вопросов, которые не знаешь как задать. Если чего-то не понял, то знаешь что не понял и куда гуглить. Но он конечно заебал объяснять что 2+2=4 и повторять это 3 раза чтоб я не забыл. На третий раз уже сомневаешься что понял. Ведь такую простую вещь три раза повторять не будут? Будут. Ещё четвёртый раз объяснит падла такая. Ещё про питон 2.хуйморжа расскажет, как они в 40е годы писали это не так как сейчас. Но мне по кайфу.
>>1825069 вот то что он везде пистон 2 вставляет, ет да бесит в книге. А так то что нужно для понимания всего базиса. Дальше уже К вершинам мастерства читать и Книгу рецептов питона. А потом все это смазать алгоритмами Кормена. Дальше уже в специализацию можно уходить.
>>1825209 А что ты хочешь обсудить? Одно дело если ты хочешь вкатиться в ботописатели, другое если тебе надо по-быстрому бота написать, чтобы одноклассников удивить. Опиши задачу, чтобы знать куда тебя посылать.
>>1825221 Я хочу, чтобы бот подписался на каналы на Ютуб и присылал мне не видео, а аудио с них, например. Ещё хочу ленту из нескольких рсс источников с instant view.
>>1825231 Я сунул в свою группу бота, который присылает видео из каналов на Ютуб, и бота, который по ссылке на видео присылает аудио, но второй бот не реагирует на сообщения первого и мире нужно переслать сообщение первого в ту же группу, тогда второй пришлёт аудио. Ну хоть так, хотя хотелось бы лучше.
>>1825229 Тебе нужно будет примерно следующее: - Любая библиотека для написания бота >чтобы бот подписался на каналы на Ютуб - Любая библиотека для общения с youtube api >присылал мне не видео, а аудио с них youtube-dl такое умеет, например. Если раньше не программировал, то будет сложно, да и не стоит оно того, ради одного бота страдать. Проще найти готового. >>1825232 Они и не должен реагировать https://tlgrm.ru/docs/bots/faq#pocemu-moj-bot-ne-vidit-soobsenij-ot-drugih-boto Если эти боты на гитхабе валяются, то можно попробовать их объединить.
Может кто-нибудь обьяснить мемес? Если написать "python iebalmamash.py", то все библиотеки запустятся, но судошные права программа не не получит. А если написать "sudo python iebalmamash.py", то питон не найдет библиотеки. Почему? Как дать судошные права проге?
(В общем то м.б. это XY проблема. У меня ардуина с большой вероятностью шлет нахуй при попытке подключиться к ней. Малина говорит что порт занят.)
Умоляю, помогите. Нужно создать .exe из кода. Делал по инструкции через pyinstaller --onefile main.py А по итогу такая залупа. Как сделать .exe из .py? Пользуюсь Anaconda. Pyinstaller до последней версии обновил
>>1825280 Тогда непонятно. Видимо питончик устанавливает библиотеки куда-то в домашнюю директорию пользователя. Гугл говорит, что надо sudo с ключом -E запускать.
Посоны, а знает кто-то таких ботов? - репост из тг-канала в мой канал с вайтлистом либо блеклистом содержимого - подписка на ветку форума 4пда с вайтлистом парсинг
>>1825280 Посмотри что внутри этого /usr/bin/python Уверен там йобаскрипт, который выбирает нужный питон через такую-то матерь. И ещё, запусти каждый из питонов и напечатай sys.path
>>1825059 А какую книгу Лутца ты прочел? Только не говори что "Изучаем Python" Том 1 и 2 Марка Лутца. Я только что пытался ЭТО читать - и более занудной, неудобной для чтения и восприятия написанного книги я не встречал.
>>1825066 >>1825069 >а с лутца обзмеился и засыпал блять пока читал >Скучно читается только вводная часть, а потом уже идёт конкретика. Очень подробная и дельная. Я из тех людей, кого больше обламывает чувство неопределённости, а не объём информации. Лутц не оставляет вопросов, которые не знаешь как задать. Если чего-то не понял, то знаешь что не понял и куда гуглить. Но он конечно заебал объяснять что 2+2=4 и повторять это 3 раза чтоб я не забыл. На третий раз уже сомневаешься что понял. Ведь такую простую вещь три раза повторять не будут? Будут. Ещё четвёртый раз объяснит падла такая. Ещё про питон 2.хуйморжа расскажет, как они в 40е годы писали это не так как сейчас. Наверное придется эту занудную книгу прочесть... Но я наверное с ума сойду пока буду читать это...
>>1825391 >Наверное придется эту занудную книгу прочесть... >Но я наверное с ума сойду пока буду читать это... Мне кажется, что такие книги ещё более-менее можно читать с нуля. А когда уже что-то знаешь и умеешь, читать их невозможно.
>>1825406 Мы с тобой точно про одну и ту же книгу говорим?
Цитата из "Изучаем Python" том 1, Часть II. Глава 4. "Введение в типы объектов Python":
"В настоящей главе начинается наше путешествие по языку Python. Неформально в Python мы делаем дела с помощью оснащения. “Дела” принимают форму операций, подобных сложению и конкатенации, а “оснащение” относится к объектам, на которых мы выполняем такие операции. В этой части книги внимание будет сосредоточено на оснащении и на делах, которые наши программы могут делать с его помощью. Простите за формальность. Я специалист в области компьютерных наук. Выражаясь чуть более формально, данные в Python имеют форму объектов — либо встроенных объектов, предоставляемых Python, либо объектов, которые мы создаем с применением классов Python или внешних языковых инструментов, таких как библиотеки расширений С." Просто. Вчитайся. В. ЭТО. Это ж постараться надо, чтоб такое написать. У Лутца была цель чтоб никто ничего не понял? Если да - то он справился.
>>1825495 Ну хуй знает, я все понял и написано не так уж плохо. Сейчас читаю Фрэнка Герберта в переводе, вот там такой мафндфак иной раз. Почему я техническую литературу читаю так неохотно, пиздец.((
>>1825343 Да седня гляну. Кст еще вопрос, стоит ли накатывать анаконду? Я прост когда учил пистон, хуярил тупо в идле и в нотепад++. Про анаконду в книгах чет нихуя не было, а в треды не залазил чет
>>1825391 >>1825495 Да нахуй, в пизду. Обзмеитесь же. Ну либо бегло пробегать всю эту воду и останавливаться только на примерах. Я вот учил помню по укусу и потом 17 года эрик метис чтоли. Там просто и понятно и дохуя интересных примеров, даже галагу создавать например.
>>1825570 Анаконда это набор научных пакетов, которые бережно скомпилировали, добавили все нужные зависимости, которые через пип не ставятся, чтобы всякие машинные обучатели не ходили не форумы и не спрашивали почему у меня пип инсталл упал с ошибкой. Конечно же там далеко не всё, и выборка пакетов именно научная. Тебе оно скорее всего не нужно.
>>1825495 >Просто. Вчитайся. В. ЭТО. >Это ж постараться надо, чтоб такое написать.
Это переводчики такие. Переводить книги давно уже разучились, была хорошая советская и постсоветская культура, когда переводили действительно хорошо, книги не уступали оригиналам. А сейчас говно, тяп-ляп, похоже на автопереводчики, надо в уме переводить обратно, чтобы смысл был ясен. В оригинале же всё лучше: ======== This chapter begins our tour of the Python language. In an informal sense, in Python, we do things with stuff. “Things” take the form of operations like addition and concatenation, and “stuff” refers to the objects on which we perform those operations. In this part of the book, our focus is on that stuff, and the things our programs can do with it.
Somewhat more formally, in Python, data takes the form of objects — either built-in objects that Python provides, or objects we create using Python or external language tools such as C extension libraries. =========== Мой беглый перевод: В этой главе мы начинаем наше путешествие в мир Питона. Неформально говоря, в Питоне мы "делаем что-то" с какими-то "вещами". "Что-то" это разного рода манипуляции, вроде сложения чисел или слияния строк, а "вещи" это объекты, над которыми мы производим эти манипуляции. В этой части книги мы сфокусируемся на этих "вещах" и на том, что наши программы могут с ними делать.
Более формально, в Питоне данные представляются в виде объектов — как тех, что предоставляет сам Питон, так и тех, что мы создаём сами на языке Питон или с помощью расширений, например на языке Си. =========== Мой вариант тоже далёк от высокой культуры перевода, но ИМХО уже более понятен. Если переводить так или чуть лучше, то читать уже можно. Ну или надо читать оригинал.
Просто правило для любой технической или научной литературы. Нужно или читать ХОРОШИЙ перевод, или читать оригинал. С хорошими переводами сейчас тяжело. Какие-то индустриальные вещи иногда хорошо переведены, скажем по Postgres документация (несколько тысяч страниц!), но в основном переводы говно никуда не годное.
>>1825636 Да, перевод плохой. Есть даже термины, которые в таком контексте у нас никто не использует. Не вспомню примеры. Так что при любом затруднении надо открывать оригинал и смотреть что там было за слово.
Аноны, сейчас пишу фронт на JS'е, но хочу пересесть на иглу бекэнда и тут выбор на какой стул сесть: 1) питон и джанго 2) шарп и дотнет к обоим язык отношусь хорошо. Шарп привлекает чуть больше тем, что у него статическая типизация и по субъктивному моему мнение, он лучше для бекэнда заходит Но на питоне вариант вкатиться прям на текущей работе, потому что стек в беке питон + го
Привет, двач, есть у кого пет проект какой-нибудь или что-то такое, где помощь нужна, хотел бы получить опыт в командной разработке. Стек: python, django, posgresql, telegram api, могу написать вебсервис или протестировать что-то, знаком с rest, версткой, git и более мелкими вещами. Если проект интересный, то готов углубится в новую технологию Tg @yellowpearl
Опытные книголюбы и другие любители своего дела. Подскажите актуальность книги Марка Лутца Программирование на Python русс версия 2011 года выпуска вроде en 2013. На сколько информация в данной книге актуальна? Или это золотая классика питониста? Возможно есть более свежие, упитанные тома по питон(версии 3.6+) Если читали и то и другое, то реквест-мнением поделитесь .
>>1825947 Ну такое. Старое форматирование строк времён py2, ospath вместо pathlib, всякие технологии древних вроде CGI под апачем, tkinter вместо нормального тулкита, вместо PIL надо Pillow. Мне конечно нечего предложить взамен, я не спец по книгам для начинающих, в целом наверное даже всё что есть в этой книге сработает на современном питоне, но будет местами устаревшее.
Подскажите, пожалуйста, как взаимодействовать с mysql другого человека через shh? Как приконектиться и делать апдейты в базе на его localhost? Ничего путного что-то не нагуглил. В pycharme через datasource в базу зайти удалось, но на большее меня не хватило.
>>1826048 >tkinter вместо нормального тулкита Идеально подходит для простых прог.>>1825388 А разве "Изучаем Питон" не в 1 томе? Там дальше идёт Программируем на Python.
>>1826164 [z for z in list123 if z in list 345] У подобной конструкциии линейная временная сложность? Алсо, всякие условия вроде if добавляют сложнотсь к циклам?
>>1826248 >[z for z in list123 if z in list 345] >У подобной конструкциии линейная временная сложность? O(mn), где m и n - размер первого и второго списка. В общем, можешь считать что квадратичная. Проверка есть ли элемент в списке сама по себе имеет линейную сложность. Хочешь быстрее - преобразуй второй список в сет - тогда будет O(m + n), то есть линейная.
А вообще, твою хуйню лучше переписать вот так: set(list123) & set(list345). >>1826248 >Алсо, всякие условия вроде if добавляют сложнотсь к циклам? Зависит от того, что находится в этих условиях.
>>1826257 Спасибо. >Зависит от того, что находится в этих условиях. Ну, если дргой список, о вроде выяснили, что квадратичная. А если константа - линейная? Какую книжку по алгоритмам и их сложности почитать?
>>1825947 >>1825964 >>1826048 >>1826156 Байтите вы меня ЭТО говно прочитать. Придется продираться сквозь эту дристню. А как вам "Изучаем программирование на Python" от Пола Бэрри? Сейчас на 72 странице (из 611) - вроде понятно изъясняет, и простым языком.
>>1826279 >А если константа - линейная? Не понял вопроса. Проверка элемента в сете - константа, поэтому если второй список заменить на сет, то сложность изменится на линейную. >Какую книжку по алгоритмам и их сложности почитать? Гугли туториалы. Сложность алгоритмов без ненужных изъебов можно понять за один вечер, книги не нужны.
>>1826320 Из этих книг есть смысл читать что-то одно, и то, если ты совсем плохой в программировании. Заходит нормально — читай дальше. Те у кого уже есть опыт с другими языками, обычно читают docs.python.org и им всё понятно.
>>1826279 Я тебе могу предложить довольно трудоёмкий, но такой чтобы наверняка, метод. Напиши тестовый стенд для анализа алгоритмов. Попробуй бенчмаркать всякую хуйню увеличивая N, и с помощью matplotlib строить график как много времени занимал бенчмарк в зависимости от N. Построй на одной картинке несколько графиков разной реализации задачи. Вот самое простое: item in list против item in set против бинарного поиска в сортированном массиве. Будет очень наглядно и интересно. Если помнишь школьную матешу, то легко там найдёшь линейную, константную и логарифмическую сложности.
Нужна такая хуйня - будет бд с задачами, в фоне нужны несколько воркеров, которые будут подбирать новые задачи, обрабатывать и складывать результаты обратно. Для моей задачи достаточно обычной sql базы, чтобы не ебаться с очередями. А вот как спавнить этих воркеров и управлять ими?
>>1826349 Это немного не то. Это можно интерактивно там спавнить себе процессы. Я имею в виду что-то типа демона, т.е. чтобы сторонний софт управлял их запуском, количеством и т.д.
>>1825765 >>1825335 Спасибо за советы, с этим разобрался, но дальше еще хуже, пиздец. Все отлично запускается и даже работает, но когда скрипт доходит до момента img = ImageGrab.grab() Перезапускает приложение. Нагуглил, что проблема в том, что виндовс не имеет команды spawn и нужно использовать multiprocessing.freeze_support() , но я блять везде уже этот кусок кинул и не помогает.
Сап пишу линкед-лист. и тут встал вопрос по методу __iter__. Собственно есть 2 пути решения через класс ListIterator(в котором __next__) и через yield. Так собственно вопрос, что лучше и почему? и что больше по питонячи?
>>1826725 Приняли на работу в автоматизацию бизнес процессов на 192р/ч, после прохождения курсов по rpa, но когда прислал сертификаты мне сказали что у них проблемы и мне ответят к концу недели, так что даже не факт что работать буду, а остальные 100 откликов отказ, либо не просмотрели, либо тестовое сделай но отказ
>>1826795 Здесь же у тебя две звёздочки перед target в первом вызове? Всё дело в том, что в первом случае переменные распаковываются из словаря аналогично bigger(a=2, b=1) и ключи словаря должны соответствовать именам переменных в теле функции bigger, а во втором случае ты просто передаёшь словарь в качестве первого аргумента x, а второй аргумент y оставляешь пустым.
>>1818007 Мимо бекенд разработчик стек Python/Django. Перепробовал много дистрибьютивов, остановился на Linux mint - это что касается ос для разработки, а для деплоя CentOS или Ubuntu server. Для работы с виртуальным окружением использую pipenv.
>>1827185 В чем космический эффект именованного параметра "a" с рандомным значением по умолчанию? Используй a = random() в теле функции, а из ее параметра убери его нахер.
Вопрос по относительному импорту. Он используется только среди модулей?(не скриптов) Например есть такая схема project- --tuilet- ----__init__.py ----mo4a.py ----govno.py --main.py
Я могу использовать относительный импорт из мочи в говно вида: from . import mo4a
И вроде интерпретатор это сьест. А вот если я попытаюсь запустить говно, он выблевывает ошибку : ImportError: attempted relative import with no known parent package
Так же пытаюсь через относительный импорт импортировать мочу в main from .tuilet import mo4a по идее должен сработать ведь оба на верхнем уровне проекта, но хуй. он опять сыпет ту же самую ошибку. Но как только точку убрать, он это проглатывает.
Так вот, что за хуита с относительном импортом в питоне? Его вообще хоть кто-то сейчас использует? До него все кристально понятно было с импортами. Как только прочитал, решил как тру-кодер сразу использовать и все смешалось к хуям.
>>1827218 Мне тоже вот казалось что все понял пока сам с этим не столкнулся, импорты в питоне для новичка это какая-то неведомая хуйня, которая работает по непонятным правилам
помогите пожалуйста понять, почему не работает код... на второй картинке кода, в функции ClickButton2 есть строчка wayToFile = os.path.abspath(k), которая должна сохранять абсолютный путь к файлу, обрабатываемому циклом. Но загвоздка в том, что если скрипт пайтона не в той же директории(у меня это диск Д), то выбивает ошибку, в которой абсолютный путь к файлу определяется как директория скрипта + название обрабатываемого файла. Из-за этого скрипт не может найти файл. Если скрипт в той же папке, то все робит...
Какие есть библиотеки для создания GUI в виде веб-страницы? В смысле, чтобы он был написан на HTML/CSS/JS, но браузерный движок был завернут в десктопное приложение, как на электроне. Пока нашел pywebview. Вроде бы подходит, но вдруг есть варианты получше.
Прохожу курс по питону на курсере. Проверку почти прошло, однако почти. Никак не могу понять почему не проходит. Помогите, аноны x = int(input()) y = int(input()) x1 = int(input()) y1 = int(input()) if x == x1 and y1 == y + 1 or y1 == y - 1: print("YES") elif y == y1 and x1 == x + 1 or x1 == x - 1: print("YES") elif x1 == x - 1 or x1 == x + 1 and y1 == y + 1 or y1 == y - 1: print("YES") else: print("NO")
>>1827569 У тебя operator precedence сломан. or выполняется после and. Да и вообще if (x, y) == (x1, y1): ..print("NO") elif max(abs(x - x1), abs(y - y1)) <= 1: ..print("YES") else: ..print("NO")
>>1827567 Лучше написать на JS. Но можно ещё соорудить гибрид, где JS отвечает за представление и ввод, а headless процесс на питоне управляет состоянием и логикой. Общение с питоном по stdin/stdout какими-нибудь жсонами.
>>1827218 Есть модуль, а есть пакадж. Пакаджи это такой маппинг имя→каталог. К примеру sqlalchemy превратится в /usr/local/lib/python/site-packages/sqlalchemy/.
Естественно, относительные пути возможны только внутри пакаджа, чтобы ты не делал всяких import ....etc.passwd. За пределы пакаджа ходить нельзя. А внутри пакаджа, таки да, всё почти как путь к файлам, и вниз и вверх и куда угодно.
>>1827543 пацаны, решил проблему гениально: wayToFile = folder_selected +'\\\\' + os.path.basename(k) сделал переменную ""выбранная папка"" глобальной + добавил к ней \\(чтоб не было экранирования, надо еще \\) + добавил просто имя файла все заработало
>>1827623 Единственное, что на ум пришло, это писать тесты внутри мода, потом этот мод импортировать за пределы пакета и его запускать через if __name__ == "имя мода" Но больше похоже на кастыль.
>>1827615 Да хоспаде, че там переползать. Вкатывальщик разницу между тройками не увидит. А когда увидит - будет уже уметь перекатываться между разными версиями за минуту. Единственное, наверное, не стоит изучать на версии ниже 3.6.
Ребят, есть модель 1 и модель 2. В модели 1 я загружаю zip файл, а методом save я его разархивирую и все файлы из него с помощью bulk_create записываю в модель 2. Все вроде бы ок, если в админке посмотреть все созданные записи во второй моделе, то там видно адрес файла и его можно поменять. Но когда я запускаю проект и захожу на страницу, где должны выводится эти файлы с bulk_create они просто белые, пустые и я могу их выделить. в коде страницы видны файлы(картинки), но они имеют размер 0x0. А сама джанга пишет, что объект не найден
настройки медиа сделал. Единственное, что в bulk_create я указываю расположение файла "ChapterImg.objects.bulk_create([ChapterImg (img=c.extract(d, path=img_directory_path)" где img_directory_path это сохранение файла в папке media
за месяц поднял овер 1000 хонора, с 4 куя добрался почти до 2го (80%), решил 36 4ых куев и 6 3их. Ответ — никаких особенных знаний языка не нужно, я даже с классами не умею обращаться (self, init — шта?). Не использую никаких библиотек (кроме мб math), никаких вышеупомянутых zip, map и прочих лямбд. Так что там действительно все стандартными средствами решается.
Знаю я, естественно, больше, чем месяц назад. Какие-то методы, алгоритмы узнал и применил. Думаю поднять 1 куй на этой дрочильне и начинать писать свой проект.
Не имею ровно нихуя опыта в программировании, решил вкатиться в Питон, начал с книги "Python для детей" из здешнего списка, подумав, что выбрав книжку для детей точно не прогадаю. Большая часть книги читалась нормально, я без особых проблем решал задачки в конце и делал себе пометочки, в целом, изучение шло довольно гладко
Потом дело дошло до создания двух игр в конце книги - и на этом моменте всё пошло по пизде. Я перестал до конца понимать что нахуй делает автор, а уж задачки в конце это вообще забудьте. При этом нельзя сказать что я учил на похуе или без энтузиазма, наоборот - мне вполне доставляло. Вопрос такой: стоит ли мне бросать это дело, если я даже детскую книжку не в состоянии целиком осилить? Есть ли тут те, кто тоже эту книгу читал, были ли у вас похожие проблемы? Я совсем даун, или только олигофрен?
>>1828282 если у тебя встает член от правильной логики и от решения задачек на них и ты готов гнаться и поглощать новые зания до конца жизни, то программач это твое. Если этого нет, ты выгоришь к хуям. Так что можешь сразу пиздовать асфальт укладывать
как найти в тексте все слова начинающиеся с символа @? я так понимаю нужно какое-то регулярное выражение, но именно этот символ не знаю как загуглить и в целом только начал изучать это дело
>>1828282 Попробуй "Изучаем программирование на Python", Пол Бэрри. Я тоже очень мало понимаю из тех книжек, которые читаю. Прочел "Грохаем Алгоритмы" - понял только что такое бинарный поиск, все остальное - непонятно и сложно. Прочел "Укус Питона" - понял что такое переменные и еще немного. Прочел "Делаем игры на Python" (точно не помню как книга назывались) - вроде первые 20% книги понял, но когда пошли сами игры (Виселица, Угадай слово и др.) - нихрена не понял. А Пол Бэрри вроде неплохо объясняет.
А вообще, не сдаваясь и не бросая это дело, я постепенно начинаю понимать что есть что в Python. Постепенно. Главное не сдаваться.
Пытаюсь въехать в питон. Можно ли изучать ООП, скипнув функциональщину? И если да, то посоветуйте какие-нибудь туторы. С написанием самого класса вроде проблем нет, а вот как при помощи ООП описать бизнес-логику, я вообще не понял.
>>1828615 можно, даже больше скажу, можно изучить ООП даже пропустив переменные, циклы, условия, и основные типы данных, Гляди чичас быстренько пробегаешься глазками по SOLID'у дальше начинаешь изучать основные паттерны, такие как фабрика синглтон команда и тд. ну и можно подавать резюме на джуниор систем архитектор, алсо и сам питон нахуй тоже скипнуть можешь, можешь не благодарить
>>1828622 ну я серьезно по большей части ответил, ты написал что хочешь писать бизнес логигу через ООП только П в данном случае про проектирование, а не про программирование
>>1828633 Не, я говорил именно про программирование. Бизнес-логикой я называю структуру программы. В функциональщине все просто - функция обрабатывает ввод, через ретурн опционально отправляет результат обработки в другую функцию и так, пока информация не будет готова к выводу. А как этот пайплайн выглядит в ООП - я вообще нихуя не понимаю. Т.е. вот я создал класс хуман, вызвал конкретный инстанс. И что?
>>1828665 >вот я создал класс хуман, вызвал конкретный инстанс. И что? и все, поздравляю вы освоили ООП а уж если писать ООП структуры извольте освоить типы данных, и прочую патерную солидохуйню на уровне чуть побольше чем просто глазками пробежаться Или найди какой нибудь фреймворк который все за тебя сделает
>>1828665 БЛ это, что должна делать прога по мнению её заказчика. Это не всегда выглядит как переработка исходных данных в результат. Например управление псарней. Есть псы, будки, миски, корма и проч, и задача описана в этих терминах. Тогда создаёш классы пёс, будка и проч. Потом пишешь БЛ на Питоне так, какк она задана, используя объекты этих классов.
>>1828841 У меня складывается впечатление, что солиды и паттерны кодеры пытаются изучать гораздо раньше, чем они им реально потребуются. Если вообще потребуются.
a = input(int()) b = 427 c = 12000000 d = ((a b) + c) / 100 3) e = (a 427 / 10) print(d) print(e)
Ошибка Traceback (most recent call last): File "D:/Python/pythonProject3/main.py", line 4, in <module> d = ((a b) + c) / 100 * 3 TypeError: can only concatenate str (not "int") to str
Посовутуйте среду для пайтона. Работаю с керас, как только проект становится достаточно большим - вижуал студио код начинает жестко тормозить. Пишу вызов метода, открываю скобку - ничего, никаких подсказок. Навожу мышкой на имя метода - Loading.... Нажимаю контрол-эс, через десять секунд он мне красным наконец-то подчеркнул что у меня вместо аргумента n_epochs= стоит epochs=. Отладка вообще через жопу работает. Иногда нажимаешь на паузу - и просто всё виснет, ни на консоль отладки не реагирует, вообще ни на что. Нажимаю на треугольничек, типа продолжить, ноль реакции, прихоидится завершать отладку, а там долго работало и жалко всё. Вобщем посоветуйте среду для пайтон + керас которая не говно.
>>1829044 >Он правда лучше, чем вижуал студио код? Да. Вскод это вообще текстовые редактор на тормозном электроне, а не IDE. >Пользовался им? А ты как думаешь? >Расскажи про него пожалуйста. Что именно рассказывать? Конкретно по твоим вопросам - производительность во много раз лучше, чем у вскода, но моментального отклика все равно не ожидай. Если в классе пара сотен больших методов, то подсказка появится только через секунду. Аналогично с проверкой синтаксиса - некоторые вещи не моментальны, но по сравнению с вскодом вполне терпимо. Отладочные инструменты тоже намного лучше.
>>1829289 Ну если с анонами хочешь - есть вариант. Правда я сейчас немного не в состоянии его пилить, уже 2 месяца как. Если ты вообще спрашивал - ищи либы/приложения какие питоновские на гитхабе, по близкой тебе тематике и читай как в них контрибутить.
>>1829095 Ссылочку бы. С первыми двумя я работал в проде, ибо один еблан их туда притянул. Это пиздец и нахуй. Gino - ебаное поделие от китайца, никогда не связывайся с китайцами, они скам хуже индусов, ибо производительней и более цпертые, документация, примеры и решение issues страдает. Pewee - давно юзал, но тоже не зашло ибо были проблемы с пулом конектов и тоже проблемы с инфой о ней и доками. В этом плане алхимия топчик, ибо ей уже хулиард лет и всё возможные и невозможные грабли она прошла. По асинхронным НЕорм могу подсказать - asyncpg, использовал именно ее когда это надо было.
Ребят, есть модель 1 и модель 2. В модели 1 я загружаю zip файл, а методом save я его разархивирую и все файлы из него с помощью bulk_create записываю в модель 2. Все вроде бы ок, если в админке посмотреть все созданные записи во второй моделе, то там видно адрес файла и его можно поменять. Но когда я запускаю проект и захожу на страницу, где должны выводится эти файлы с bulk_create они просто белые, пустые и я могу их выделить. в коде страницы видны файлы(картинки), но они имеют размер 0x0. А сама джанга пишет, что объект не найден
настройки медиа сделал. Единственное, что в bulk_create я указываю расположение файла "ChapterImg.objects.bulk_create([ChapterImg (img=c.extract(d, path=img_directory_path)" где img_directory_path это сохранение файла в папке media
Товарищи. Обьясните дауну. Почему данный код отправляет двоечку на ардуино. ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1) ser.write('2')
А этот код отправляет мое очко в зрительный зал? В общем, он ноль отправляет. machinki = 0 machinki = output_count.get('car') print("Car =", machinki) // вот здесь я вывожу значение листа и значение есть. Ноль перезаписывается. ser.write('machinki') // отправляется аж нихуя, но целый ноль
У меня вопрос по os.walk Почему там именно три переменные, типа root, dirs, files Так сделали разрабы? Можно свои переменные, и важна ли последовательность обхода? root - это путь как я понял, остальное и так ясно.
if os.listdir() == []: print('Trash is empty') else: for root, dirs, files in os.walk('.'): for d in dirs: shutil.rmtree(os.path.join(root, d)) for f in files: os.unlink(os.path.join(root, f)) print('Now trash is empty')
>>1829432 За ардуины в жизни не держался, но у меня есть подозрение, что в последовательный порт можно только байты пихать, а содержимое твоей переменной machinki не сериализовано. Я бы попробовал в байты перевести. >>1829539 Разве rmtree не удаляет и файлы тоже?
Попалась реклама книжки Leaving the Rat Race with Python. О том, как умело фрилансить питоном. Полистал оглавление - заинтересовался. Но где скачать pdf? $12 за файл блять!
>>1830048 Так я у тебя и спрашиваю :3 Я кворке и фл ру встречал только парсер, сайт, еще odoo. И все. На хх ру надо уже знать фреймы типо фласка и джнаги. На ангельских смущает то что тз будет на ангельском. Да еще может и не понравится результат. И тд и тп. Я бы поработал чисто за еду, тк есть возможность пока. Чтобы тупо научиться.
Человечки, какой вы language server для питона используете в vscode? Я раньше пробовал jedi, но он уж очень медленный и с ним все питон-дополнение отваливалось время от времени, приходилось перезагружать окно. Сейчас вскод предложил pylance от майкрософта, быстрый, модный, молодежный, но у него глубина автодополнения короче чем у джедая. На каком стуле сидите? И вдогонку подскажите, поставил в вскод дополнение batisteo.vscode-django для джанги, оно подсказываетджанговские теги, но убивает все автодолнение хтмл, так и должно быть? Приходится для одного файла переключаться в разные language mode.
>>1829828 > Разве rmtree не удаляет и файлы тоже? тащемта вроде только папки. Открыл для себя pathlib и влюбился. Намного круче чем os, globe, shutil и прочее. Все в одном флаконе.
>>1828282 Предполагаю, что в книге, когда начинают делать игру, используют библиотеки, а осознание что такое методы, поля, классы придет позже. Я тоже не понимал, когда читал укус питона, что вообще происходит, когда автор начинает использовать непонятные методы строк и почему это так работает, так что просто повторяй и вникай в самые базовые понятия
вообще плюсую, сам сижу на шарпах и дико заглядываюсь на питон (на первых двух работал юзал его, но для внутренних утилит всяких). Насколько сложно сменить специальность на него? Что с ним пилится (кроме дата саенса), что нужно знать? У самого опыт работы 3 года
Пацаны, че лучше писать скрипты пайтона на винде 10 или на убунту? собираюсь освоить django, написать парсер, на какой ОС будет удобнее/проще? или нет разницы?
Я конечно и на винде писал хуйню, но мне не понравилось. Куда она там устанавливает говно, какие команды прописаны, ебал рот просто. Хотя если ты собираешься писать скрипты рисования хуя в консоли, то можешь выбирать что хочешь. Хоть вышеупомянутый болген ос.
>>1830710 >Линух. >Удобнее. Не вводи людей в заблуждение. С точки зрения удобства один хуй на чем писать - работает одинаково. Разница лишь в том, что винда не поддерживает 0.1% библиотек, с которыми вкатывальщик никогда не столкнется. Ну и в некоторых деталях имплементации питона, влияющими на производительность, которые ты тоже скорее всего никогда не узнаешь.
>>1830304 >а осознание что такое методы, поля, классы придет позже Я их осознал, когда почитал книжку по Джаве, лол. А до этого хуярил десктопные аппы на PyQt5 по методичке без понимания, нахуя классы, инстансы, селфы - вот это все.
>>1817742 (OP) Что почитать для общего технического развития? Я уже работаю питонистом и хочу развиваться дальше. Есть смысл читать всякие "Идеальный код" и прочее?
>>1831573 Не знаю, честно говоря. Я просто codewars сборники решал в свое время, там были задачки на набивание руки, алгоритмические тренажеры и прочее.
Можно ли во время генерации списка за одну итнрацию запихивать сразу 2 элемента? Например создать список [1, -1, 2, -2, 3, -3, ... , n, -n] при помощи чего-то типа [ i, -i for i in range(n)]
>>1831575 А есть ли практическая польза от решения таких задач? Что это может дать, кроме как того же что и решение задачек по шахматам. В реальной жизни это пригодится? И как лучше юзать, выбирать по тегам, по ку, или задрачивать что-то одно? Я даже хз как подступиться к этому. Сам сайт понравился, сделан круто, воодушевлялет. Я вот изучил питон, и не знаю как это применить на практике, а уж тем более как заработать на этом, ко всему же, нету профильного, наподобии высшего математического, я пробовал пару раз вылаживать на хх ру, но видимо мое резюме, и образование не привлекают работодателя. Хз что делать, но знания есть и руки чешутся, ну и чет поверил в себя.
>>1831643 Ну, это вроде и ответ на вопрос, но ответ мне не нравится. Если уж юзать костыли, то лучше [i//2 if i%2==0 else -(i-1)//2 for i in range(2*n)]
>>1831644 самое лучше в таких сервисах это смотреть самые топовые решение.
И перенимать стилистику написания у них.
Например если нужно выполнить некое кол-во действий, в задаче, имеет смысл ее разбивать на функции. а уж темболее если твой код дублируется 2 и более раз, то сам боженька велел. Так же и с ООП если строишь дерево, то делай так, чтобы если тебе пришлось сопроваждать код, то для изменения его всей логики, тебе бы пришлось код править в одном месте. а не бегать по всем классам и исправлять ручками.
>>1831648 чтобы получить плоский массив, то нужно писать функцию.(добавлять через .append или срез) а во включении ты вложенный список получишь. тк генерируется один объект и это елемент списка.
>>1831833 Этика написания кода. pep8 для петона, например, а pep7 для c. Заучишь как надо, совместно с упражнениями codewars и пет проектами, до автоматизма, считай что ты лучше многих джунов.
Как создается взаимодействие браузера и программы? Например программе нужно произвести некоторые действия с функционалом сайта, что-то отправить сайту, что-то скачать и тд. Как это сделать без графического интерфейса? Можно ли параллельно? Для этого vpn наверное нужен?
>>1831944 >программе нужно произвести некоторые действия с функционалом сайта, что-то отправить сайту, что-то скачать Гугли например Flask и изучай ну или Django.
>>1831944 Так-с, блэт, для начала поставь конечную цель, что тебе надо. А то один фласк советует, лол, а второй - селениум. Вообще две разные степи. Если ты создаешь веб-сервис И сайт к нему, то фласк/джанго, да. Если тебе нужно автоматикой прокликать формочку на сайте, то селениум. Это именно графическое (т.е. UI) взаимодейтсвие. Если достаточно просто получать данные с сайта посредством REST-запросов, то requests. Если нужно аж прям невъебись как распарсить этот сайт на молекулы, то Beautiful_Soup.
Если все настолько просто, чтобы просто залогиниться и скачать что-то по ссылке, то достаточно requests.
Аноны, у меня есть файлы в которых миллионы символов, тексты, мне нужно найти в них самые часто встреающиеся слова, чем быстрее, тем лучше и желательно самому велосипед не писать, кто-нибдь может подсказать название алгоритма или чего-то подобного
>>1832011 Нужно чтобы по нажатию 1 кнопки на форуме "двач" создавался аккаунт и в темке зарплатотреда писалось "300к нс программист". Это Beautiful_Soup получается.
>>1832090 Спасибо огромное, друг, я раньше в collections не залезал, думал придется свой алгоритм писать, а тут и слово и каунтер есть и все дико просто
Скажите аноны, есть у меня несколько текстовых файлов(условно, сам парсил, можно и json и словарь) с отсортированными словами с hh.ru по вакансии, мне нужно сделать, чтобы наглядно это представить похожую на пик ебалу, куда мне обращаться, смотреть в питоне чт-то типа pyqt или к джээсерам идти, нужно просто чтобы слова красиво рандомно раскиданы были и шрифт от количества вхождений увличивался
Create a function (or write a script in Shell) that takes an integer as an argument and returns "Even" for even numbers or "Odd" for odd numbers.
Я решил ее так
even = range(-1500,1500,2) odd = range(-1501,1500,2)
def even_or_odd(n):
if n in even: print('Even') elif n in odd: print('Odd')
even_or_odd(-539)
Я даун? Посмотрел решения, там меньше строчек и как-то проще. Но у меня получилось. Но вот проблема будет если ввести 5236. Так что хз решил я или нет. Что думаете?
Ты не решил, подумай как можно математически проверить четное ли число. Минусы твоего решения по сравнению со стандартным: отсутствие универсальности (работает не для всех целых чисел), очень медленное (у тебя может быть перебрано 3000 вариантов)
Почему может не отвечать тестовый сервер flask на ubuntu? app.run(debug=True) Всё нормально, ошибок нет, но страница не грузится, сервер не отвечает вообще (в режиме разработчика). Если сервер остановить, то говорит что попытка соединения не удалась, а иначе просто крутится загрузка, типа оджидание ответа сервера. Как победить?
Двач, ни разу ничего в прод не делал, только на гитхаб, вот задача, есть плагин, который может делать http запросы, у сервер с вебсервисом находится у нас на другой машине, локально не соединен, что гуглить, чтобы разобраться в том как можно передавать http запросы, просто ip вбить? а как это работает тогда? Или провайдеры хранят все ipшники и к любому можно подкючится, просто если он чт-нибудь в консоли откроет?
У меня есть такая задача, а я, в свою очередь, не знаю, как к ней правильно подойти.
Дано: hex-массив переменной ЧЁТНОЙ длины. Примерный вид такой: DD120134A1A2B3E588 и тд, в среднем len() в районе 200.
Каждый блок из двух символов на фиксированном месте что-то означает. Например, первый блок DD всегда должен быть DD, означает начало пакета. Следующий блок, он же байт, 12, означает номер версии ПО (шестнадцатеричная) Следующие два байта 0134 означают в шестнадцатеричной номер запроса Следующий байт 1A означает статус операции (возможны три варианта: 1A - принято, 2A - исполняется, 3А - отвергнуто) И так далее
Вот это всё дело надо расшифровывать, разворачивать из этого пакета в осмысленный текст. Помоги советом, как это лучше реализовать, как вообще называется правильно эта операция? Это парсинг или что это вообще?
>Что ты сделал сам? На данный момент у меня несколько словарей, в которые забиты значения каждого байта, соответственно, я сплит по 2 символа делаю, каждый разбираю подряд.
Но код УЖАСНО громоздкий, выглядит так, что моё чувство прекрасного говорит мне, что я долбоёб и всё делаю неправильно. Отдельно хреново то, что некоторые байты не имеют расшифровки, как у статуса операции, а несут собой просто тупо число. Вот на этом я особенно завис.
Питоняши, как лучше организовать работу вот с такими данными? Спасибо:з
>>1832805 Короче скорее всего понадобиться у провайдера подключить услугу белый IP. Это значит, что адрес твоего наверное роутера будет доступен из внешней сети. На роутера тоже нужно будет прокинуть порты, типа чтобы кода приходили пакеты на 80 порты, они уходили на сервер
Вот, короче, так ужасно выглядит фрагмент работы с первым небольшим количеством символов. Учитывая, что их будет в районе 100+, этих полей, чувствую, что код будет ещё большим говном, чем есть сейчас
>>1832474 >>1832476 вы вот угораете, а я считаю, что это нахуй гениально просто ебануть от минус бесконечность до плюс (1500, ЛОЛ) и искать перебором ептвою мать, это либо тролинг, либо парень непризнаный гений если тролинг - то жирно если рил - то спасибо, такие как ты обеспечивают меньшую конкуренцию)
>>1832447 да все ок, есть два замечания предлагаю генерировать рандомное число, проверять равны ли числа между собой, и, если равны, то смореть в каком из массивов число вот ну и -1500 до 1500 маловато, хорош. Ты ведь в питоне: напиши 1e+100 и не парься
>>1833269 И я вот так и не понял, то ли меня похвалили то ли меня обосрали. Но у меня уже на кодворзе получается, юзаю уже методики феншуйные, меньше от сеябтиные, больше лупа, лист компрхеншена, и генераторов.
Первый раз в треде. Написал свой первый скрипт на питоне. Идея простая как пять копеек но если бы знал как долго буду с этим ебаться, то не начинал бы. Суть в том что у меня есть эксел файл куда я вписываю каждый месяц сколько у меня денег в трёх разных заначках. Решил сделать телеграм бота, который делает тоже самое.
У меня нет второго акка в телене, так что не знаю на сколько успешно бот работает с несколькими юзерами, возможно он сразу упадёт, сам он подниматься не умеет, обработчик исключений я не осилил. По идеи в консоле увижу что его свалило
>>1833446 Нет, стоп. Я только начал и освоил синтаксис. Решаю как могу, я не математик и нету профильного.
Я знаю свои слабые стороны. Не силен в математике. Но стараюсь и с знакомлюсь с алгоритмами, математику еще буду качать.
И все таки, хотелось бы конструктива. У меня получается, но я решаю не так как дургие аноны. Больше текста получается.
Например.
Create a function that checks if a number n is divisible by two numbers x AND y. All inputs are positive, non-zero digits.
ZЯ сильно не углялябся в математику питона и как ведут себя операторы и числа. Но решил так. На основе базвоых знаний.
def is_divisible(n, x, y):
res1 = n / x res2 = n / y
if res1.is_integer() and res2.is_integer(): return True else: return False
result = is_divisible(48, 3, 4) print(result)
HРешение зачли. Посмотрел у других, и понял на какой логике делали они. Туоп надо больше изучать как ведут себя всякие % и что дают. Жду дельных советов все таки. Я нюфаня.
Аноны, подскажите, пишу бота для дискорда и возникла проблема - модуль для работы с дискордом написан на aiohttp, а я не особо разбираюсь вообще в асинхронности. Проблема в том, что мне нужно написать функцию, которая опрашивает урл на предмет json response, опрашивать она должна асинхронно, каждые условно несколько секунд, все что я понял мне нужно создать асинхронную функцию, которая будет опрашивать, обернуть ее в таск и засунуть в инвет луп, но как именно обернуть функцию в таск и добавить в луп я хз, луп реализован в модуле дискорда, поэтому я его не могу поменять, может можно в какой-то список аппендить таски? Подскажите, прошу
Опять же, как обойтись без range и тупого перебора?
The first century spans from the year 1 up to and including the year 100, The second - from the year 101 up to and including the year 200, etc. Given a year, return the century it is in.
Надо ввести год, а получить - век из функции. Ну ок, аноны решили элегантно. Но здесь range - оправдан, что не так много прошло тысячелетий например. Всего 2000. Остальное - задача других прогеров. Те - нахуй выебваться если есть rang и брутфорс?
Решил так
r = range(0, 5000, 100)
def centyry(year): if year in r: return year // 100 else: return year // 100 + 1
result = centyry(1705) print(result)
Заапрувили и дали хоноры. Изучаю более элегантные решения но они подвязаны на модулях, математике и тд и тп. Я еще пробовал всоввть четные и нечетные. Остановлися на переборе. Как то так.
Your task is to create a function that does four basic mathematical operations.
The function should take three arguments - operation(string/char), value1(number), value2(number). The function should return result of numbers after applying the chosen operation.
Я решил сам. Но много строчек, юзал лямбду. Потом посмотрел, пиздец как же просто решили это другие. Но получилось. Код распидарасило. Но в целом, остальные решали также, те логика такая же что радует.
Сап, аноны, я пытался вкатиться в фронтенд html css js вот это всё, но меня вымораживает это двигание пикселей по pixel perfect или типа того да и вообще верстать как-то не заходит, так что подумал что это все-таки не мое. Можете пояснить за бэкенд? Читаю, некоторые пишут что тот же макакинг, что и во фронте с однотипными задачами?
Стоит ли рефакторить код после решения? Получилось. Но я посмотрел у других и понял что я даун. Что можно было решить в разы быстрей. Но если я перепишу, то это будет считаться что решил после того как увидел решения дургих? И вообще, как лучше, много текста - верное решение, мало текста - верное решение, или вообще похуй. Прилагаю задачу и решение.
Write a function to convert a name into initials. This kata strictly takes two words with one space in between them.
The output should be two capital letters with a dot separating them.
>>1834834 Да именно, я уже посмотрел у других. Щас так бы и решил. Для себя уже вывели пару правил на подобные вещи. Но все равно решил же. Буду стараться в меньше строк решать. Но в целом, логика думаю была верная, даже методы брал верные. Спс.
аноны, дико извияюсь, тк мб не по теме, но все же я короче веду пары у детей 12-13 лет по питону. Наш ебанутый директор просто мечтает включить pygame в программу. Начал, значит, смореть я какие-нибудь простые игры А там пиздец Классы, хуяссы, ивент луп, скрипты по 300 строк они нахуй научились у меня только недавно while писать без подливы У вас ни у кого нет примеров каких-нибудь реально простых игор на пайгейме?
>>1834794 В бэке нужно минимум знать работу с базами данных, писать алгоритмы несложные и знать работу с вебом(протколы, заголовки, mvc), начни изучать что-то из этого и подумай зайдет ли
>>1834794 да на самом то деле вся работа в конечном итоге рутина. Новомодные свежие задачи не так часто падают на голову: я вот работаю в супер пупер молодежном стартапе и также периодически заебываюсь рутину ебашить как это относится к беку? ну на мой взгляд это более программирование, чем фронт, но будь готов к тому, что и он может подзаебать своей однообразностью
Прошаренные аноны, предположим есть вебсервис, который отдает json в зависимости от праметров запроса, либо стандарт, либо ошибка, если ошибка, то мне нужо вывести одно сообщение, если все ок, то другое, как обрабатывать оба варианта? Первое что приходит в голову это траи использовать, но такое ощущение, что это не правильно, подскажите бестпрактис
>>1835029 Это смотря как тебе ошибку отдаёт. Если код состояния http при ошибке отличается, то смотри по нему. Если при ошибке тоже 200 возвращает, то наличие ошибки должно быть обозначено в теле ответа.
Здравствуй анонимус. Только начал изучение питонадо этого накодил пару простых программ на си и хотел написать простую программу которая бы делала 2 скриншота, сравнивала и выводила ответ. Как мне проще всего это сделать? Пикрлейтед мое творчество и оно не работает. Через библиотеку дифф или через контрольную сумму, может как-то еще? Спасибо.