Python School
82.3K subscribers
2.4K photos
8 videos
572 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official

РКН: clck.ru/3G6pBb
加入频道
Нейросети сейчас — как интернет в 1990 году. Тот, кто первым в них разберется — сможет что угодно и сорвёт куш.

Сами посмотрите: MidJourney рисует кручего любого дизайнера, ChatGPT сделает всю работу за вас, а DeepMind умеет лечить как врач.

А чтобы разобраться уже сегодня — держите в подписках Киллер-фича. Это лучший канал про технологии, ИИ и нейросети.

Там на пальцах рассказывают, как заставить нейронки работать на вас, как использовать ChatGPT и что не так с новым ИИ от Google.

Подписывайтесь, такие знания в 2023 году — на вес золота: Киллер-фича.
Проблема с куриным яйцом (ч.2)

Среди object и type нет реального базового класса. Путаница в приведенных выше фрагментах возникает из-за того, что мы думаем об этих взаимосвязях (issubclass и isinstance) в терминах классов Python. Связь между object и type не может быть воспроизведена в чистом python.
Проблема с куриным яйцом (ч.3)

Чтобы быть более точным, следующие взаимосвязи не могут быть воспроизведены в чистом Python:

Класс A является экземпляром класса B, а класс B является экземпляром класса A.
Класс A является экземпляром самого себя.

Эти отношения между object и type (оба являются экземплярами друг друга, а также самих себя)
Отношения подклассов

Отношения подклассов не обязательно являются транзитивными в Python. Любому разрешено определять свой собственный, произвольный subclasscheck в метаклассе.

Когда issubclass(cls, Hashable) вызывается, он просто ищет не ложный "hash" метод в cls или что-либо, от чего он наследуется.

Поскольку object является хешируемым, но list не является хешируемым, это нарушает отношение транзитивности.
Равенство методов и идентичность (ч.1)

Функции - это дескрипторы. Всякий раз, когда к функции обращаются как к атрибуту, вызывается дескриптор, создающий объект метода, который "связывает" функцию с объектом, владеющим атрибутом. При вызове метод вызывает функцию, неявно передавая связанный объект в качестве первого аргумента (именно так мы получаем self в качестве первого аргумента, несмотря на то, что не передаем его явно).
Равенство методов и идентичность (ч.2)

Обращаясь classm дважды, мы получаем одинаковый объект, но не тот же? Давайте посмотрим, что происходит с экземплярами SomeClass

Обращение к classm or method дважды создает одинаковые, но не одинаковые объекты для одного и того же экземпляра SomeClass.
Python — один из самых популярных языков в мире, а разработчики на нём востребованы в самых разных IT-направлениях. Познакомьтесь с различными сферами применения языка, узнайте, какие навыки сейчас востребованы на фрилансе и как начать работать на удалёнке, на бесплатном онлайн-интенсиве: ▶️https://epic.st/X_We7

Вы научитесь:
📍 Получать данные с сайтов, которые помогают аналитикам и владельцам бизнеса изучать рынок, конкурентов и динамику цен.
📍 Работать с API — специальными программными инструкциями, с помощью которых можно получить данные с сайтов.
📍 Парсить HTML. Узнаете, как автоматизировать сбор информации прямо из HTML-кода сайта.
📍 Автоматически выделять важное из огромных массивов данных с помощью Python.
📍 Писать программы для автоматической отправки важных писем по расписанию, тем самым автоматизировать email-рассылки.
📍 Разбираться в рынке фриланса на Python.

Спикером выступит руководитель направления по исследованию данных в Сбере Анастасия Борнева. Она с 2018 года занимается автоматизацией процессов с помощью искусственного интеллекта.

🎁 Всем участникам, прошедшим интенсив, подарим электронную книгу Роджера Сайпа и Робба Збиерски «Разум под контролем» издательства МИФ. А каждый, кто оставит заявку на участие в интенсиве, получит материал с подборкой коротких и полезных программ на Python.

Подключайтесь, задавайте вопросы и получите сертификат на скидку 10 000 рублей на любой курс Skillbox.

Ждём вас в прямых эфирах с 15 по 17 мая в 19:00 по московскому времени!
Методы: classmethod (ч.1)

Обращение к атрибуту несколько раз каждый раз создает объект метода! Поэтому o1.method is o1.method никогда не бывает правдивым. Доступ к функциям как атрибутам класса (в отличие от экземпляра), однако, не создает методы; так SomeClass.method is SomeClass.method и есть на самом деле.
Методы: classm (ч.2)

Объект метода сравнивается равным, когда обе функции равны, а связанные объекты одинаковы. Так o1.method == o1.method это правдиво, хотя и не тот же объект в памяти.

staticmethod преобразует функции в дескриптор "no-op", который возвращает функцию как есть. Объекты метода никогда не создаются, поэтому сравнение с is является правдивым.
involta - международная IT - компания, которая выпустила свой бренд одежды и аксессуаров специально для тебя!

Разрабатывая принты, ребята уделяли внимание деталям. Качество, стиль, упаковка, все доведено до высокого уровня. Продукты бренда involta будут радовать тебя каждый день!

Вот тебе твои любимые принты, заходи в магазин и выбирай товары уже сейчас: https://www.wildberries.ru/brands/involta
Методы: staticm

Необходимость создавать новые объекты "метода" каждый раз, когда Python вызывает методы экземпляра, и необходимость каждый раз изменять аргументы для вставки self сильно повлияла на производительность. CPython 3.7 решил это, введя новые коды операций, которые имеют дело с вызывающими методами без создания объектов временных методов. Это используется только тогда, когда фактически вызывается доступная функция, поэтому фрагменты здесь не затрагиваются и по-прежнему генерируют методы :)
Абсолютная правда

Реализация all функции эквивалентна.
all([]) возвращает True, поскольку итерируемый элемент пуст.

all([[]]) возвращает, False потому что переданный массив содержит один элемент, [] а в python пустой список является ложным.

all([[[]]]) и более высокие рекурсивные варианты всегда есть True. Это потому, что единственный элемент переданного массива ([[...]]) больше не является пустым, а списки со значениями соответствуют действительности.
Удивительная запятая

Запятая в конце не всегда допустима в списке формальных параметров функции Python.

В Python список аргументов определяется частично с помощью начальных и частично завершающих запятых. Этот конфликт приводит к ситуациям, когда запятая оказывается запертой посередине, и ни одно правило ее не принимает.

Примечание: Проблема с запятыми в конце исправлена в Python 3.6. Замечания в этом посте кратко обсуждают различные варианты использования запятых в конце в Python.
Хотите изменить жизнь и приобрести новую высокооплачиваемую профессию?

Специально для вас мы разработали бесплатный курс, посвящённый IT-специальностям.

Вы узнаете:

– чем занимаются фронтэнд-разработчики;
– кто обеспечивает безопасность данных и приложений;
– зачем проводить ручное и автоматические тестирование ПО;
– как создаются мобильные приложения для iOS и Android;
– кто такой дата-сайентист и как им стать, где применяются алгоритмы машинного обучения и чем они полезны в бизнесе — и это ещё не всё!

Вы сможете попробовать себя в самых популярных профессиях, выполнив задания к каждому из восьми модулей. А в конце программы вы пройдёте небольшой тест на профориентацию. По его результатам мы подберём для вас наиболее подходящее направление и подскажем, какая профессия станет идеальным стартом для вашей IT-карьеры.

Майские скидки до 60% по промокоду «Python School» по ссылке https://epic.st/epcvpM
Строки и обратная косая черта (ч.1)

В обычной строке python обратная косая черта используется для экранирования символов, которые могут иметь особое значение (например, одинарная кавычка, двойная кавычка и сама обратная косая черта).
Строки и обратная косая черта (ч.2)

В необработанном строковом литерале (на что указывает префикс r) обратная косая черта передается как есть вместе с поведением экранирования следующего символа.

Это означает, что когда анализатор обнаруживает обратную косую черту в необработанной строке, он ожидает, что за ней последует другой символ. И в нашем случае (print(r"\")) обратная косая черта экранировала завершающую кавычку, оставляя анализатор без завершающей кавычки (отсюда SyntaxError). Вот почему обратная косая черта не работает в конце необработанной строки.
Совет для всех: займитесь бизнесом

Целое поколение молодых людей без дипломов и трудовых уже зарабатывают на собственном деле — они не боятся рисковать и лучше будут перебиваться мелочью, чем вернутся в офис или на завод.

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

〰️ А чтобы не гуглить, не читать древние форумы и быть в курсе всего, что сейчас в тренде — подписывайтесь на канал «О бизнесе».

Там найдете бизнес-идеи, которые работают в 2023 году, важные тематические новости, гайд, куда вкладывать деньги, чтобы они работали.

Короче, подписывайтесь и изучайте, потом сами себе спасибо скажете: «О бизнесе»
Не узел!

Приоритет оператора влияет на то, как вычисляется выражение, и == operator имеет более высокий приоритет, чем not operator в Python.

Таким образом, not x == y эквивалентноnot (x == y), что эквивалентно not (True == False) окончательной оценке True.

Но x == not y вызывает SyntaxError вопрос, потому что его можно считать эквивалентным, (x == not) y а не x == (not y) тем, что вы могли ожидать на первый взгляд.

Анализатор ожидал, что not токен будет частью not in оператора (потому что оба оператора == и not in имеют одинаковый приоритет), но после того, как не смог найти in токен, следующий за not токеном, он выдает SyntaxError.
Ты разработчик, который только учиться или уже хорошо владеет Python? Хочешь развиваться среди единомышленников и работать на интересных проектах? 

Подписывайся на канал Лиги Цифровой Экономики, каждую неделю мы публикуем самые актуальные вакансии и стажировки в сфере ИТ.

https://yangx.top/digitalleague
Половина строк в тройных кавычках

Python поддерживает неявную конкатенацию строковых литералов.

''' и """ также являются разделителями строк в Python, которые вызывают ошибку SyntaxError, потому что интерпретатор Python ожидал, что в качестве разделителя будет заключена тройная кавычка при сканировании текущего строкового литерала в тройных кавычках.
💳 Друзья, Тинькофф выпустил карту с самым топовым дизайном, созданным нейросетью. Дебетовая карта Тинькофф Black в стиле карты-мультипаспорта.

Заказать карту можно по специальной ссылке, в открытом доступе ее нет. Кроме того, по карте доступны:
— До 15% кэшбэка в 4 категориях на выбор
— До 30% кэшбэка у партнеров
— Переводы и снятие наличных без комиссии
— 12 стикеров для смены аватара
— 3 дизайна карты на выбор

👽 Количество карт в данной коллекции лимитировано. Если вам понравился дизайн, то оформляйте карту сейчас. Позже их может уже не быть — оформить карту.