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

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

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

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

РКН: clck.ru/3G6pBb
加入频道
Благодаря Python-разработчикам Spotify гордится рекомендациями, Uber ищет самые близкие машины, а Pinterest находит подходящие картинки.

Вы тоже можете разработать сервис!
На курсе «Профессия Python-разработчик» в Skillbox пишут приложения по доставке еды, проектируют интернет-магазины и настраивают поисковые движки. Вы получите опыт в Python и реализуете первые проекты. А после обучения сможете:
👌 создавать модульные программы;
👌 работать с базами данных;
👌 тестировать код приложения;
👌 работать с Django и другими фреймворками.

📌Понимаем, приобретение курса — дело ответственное. Поэтому даём Вам бесплатный доступ к первым 3 модулям. Вы учитесь совершенно бесплатно и решаете, стоит ли продолжать.

Оставьте заявку на курс сейчас: https://epic.st/MP4Ze и получите год английского в подарок!

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Оператор обратной импликации.

В Python есть недокументированный оператор обратной импликации.

Если вы замените False и True на 0 и 1 и выполните математические вычисления, таблица истинности эквивалентна оператору обратной импликации.
Оператор @

Поскольку мы говорим об операторах, есть также @ оператор для умножения матриц (не волнуйтесь, на этот раз все по-настоящему).

Оператор @ был добавлен в Python 3.5 с учетом интересов научного сообщества. Любой объект может перегрузить matmul магический метод, чтобы определить поведение для этого оператора.
Сколько может хранить переменных функция?

Python использует 2 байта для хранения локальных переменных в функциях. Теоретически это означает, что в функции может быть определено только 65536 переменных. Однако в python встроено удобное решение, которое можно использовать для хранения более 2 ^ 16 имен переменных. Следующий код демонстрирует, что происходит в стеке, когда определено более 65536 локальных переменных (Внимание: этот код печатает около 2 ^ 18 строк текста, так что будьте готовы!)
f-string

Начиная с Python 3.8, вы можете использовать типичный синтаксис f-string, например f'{some_var=}, для быстрой отладки
Python — один из самых популярных языков в мире, а разработчики на нём востребованы в разных IT-направлениях. Познакомьтесь с различными сферами применения языка, узнайте, какие навыки сейчас востребованы на фрилансе и как начать работать на удалёнке, на бесплатном онлайн-интенсиве: ▶️ https://goo.su/Ez8RzeZ

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

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

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

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

Ждём вас в прямых эфирах с 13 по 15 июля в 19:00 по московскому времени!

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Сколько может хранить переменных функция?

Python использует 2 байта для хранения локальных переменных в функциях. Теоретически это означает, что в функции может быть определено только 65536 переменных. Однако в python встроено удобное решение, которое можно использовать для хранения более 2 ^ 16 имен переменных. Следующий код демонстрирует, что происходит в стеке, когда определено более 65536 локальных переменных (Внимание: этот код печатает около 2 ^ 18 строк текста, так что будьте готовы!)
Print

Иногда print метод может выводить значения не сразу.

Это выведет wtfpython через 3 секунды из-за end аргумента, потому что выходной буфер очищается либо после обнаружения, \n либо когда программа завершает выполнение. Мы можем принудительно очистить буфер, передав flush=True аргумент.
Count

'abc'.count('') == 4. Вот приблизительная реализация count метода, которая сделала бы вещи более понятными.

Такое поведение обусловлено сопоставлением пустой подстроки ('') с фрагментами длины 0 в исходной строке.
generator expressions

Попробуем использовать генераторные выражения (для получения среза будем использовать функцию islice из itertools, которая возвращает итератор по срезу)
generator functions

Если предикатов фильтрации или обработчиков элементов списка много, то удобнее использовать генераторы. Они могут не дать прироста скорости, но помогут сэкономить память.

Генераторной фунцией в python называется функция, которая ведет себя как итератор. Для определения генераторной функции нужно использовать ключевое слово yield
Давно хотели попробовать свои силы в программировании? Отлично! Практический мини-курс по Python как раз для тех, кто хочет познакомиться сразу с несколькими направлениями Python-разработки и решить, что нравится больше 😉

Зарегистрируйтесь сейчас, получите гайд по профессии и узнайте, почему Python — идеальный язык для новичка: https://epic.st/88QiC

Много практики не бывает. На мини-курсе вы:
— создадите бота для Telegram, который умеет переводить голос в текст;
— «научите» бота обрабатывать фотографии;
— познакомитесь с парсингом данных;
— напишете сайт с помощью фреймворка Flask — инструмента, который помогает быстро создавать любые проекты: интернет-магазины, социальные сети, образовательные платформы и т. д.

После просмотра видеоматериалов вас ждёт онлайн-встреча со спикером — руководителем направления по исследованию данных в Сбере — Анастасией Борневой. В прямом эфире вы сможете обсудить практические работы и задать вопросы о профессии.

Все участники получат сертификат на скидку 10 000 рублей на любой курс Skillbox и электронную книгу издательства МИФ «Разум под контролем». Ах, да, самое важное — бессрочный доступ! Материалы курса будут доступны вам всегда — сможете вернуться к ним в любое время.

Участвуйте!

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Оператор walrus (:=)

В этом примере мы используем оператор walrus (:=) для одновременного присваивания значения переменной line и проверки условия внутри цикла while. Это позволяет нам сократить код, объединив операции присваивания и проверки в одну строку.
Функция partial

В этом примере мы используем функцию partial для создания новых функций double и triple на основе функции multiply, фиксируя аргумент y на значениях 2 и 3 соответственно. Теперь новые функции могут быть вызваны с одним аргументом, в то время как фиксированный аргумент уже задан.
Модуль asyncio

В этом примере мы используем модуль asyncio для создания асинхронной программы. Определяем асинхронную корутину my_coroutine, которая выполняет асинхронную операцию (в данном случае, ожидание 1 секунды). Затем определяем асинхронную функцию main, которая вызывает две корутины одновременно с помощью asyncio.gather. В конце мы используем asyncio.run для запуска основной функции main.
Контекстные менеджеры (with)

В
этом примере мы используем контекстный менеджер with для автоматического открытия и закрытия файла. В блоке with мы читаем содержимое файла и выводим его на экран. После выхода из блока with файл будет автоматически закрыт, независимо от того, произошло исключение или нет.
Декоратор @property

В этом примере мы определяем класс Circle с атрибутом radius и методом area, который вычисляет площадь окружности. Мы добавляем декоратор @property перед методом area, чтобы можно было обращаться к нему как к свойству объекта circle, без явного вызова метода.
Сортировка HTML-элементов по названию

С помощью метода find_all мы можем сортировать все элементы, которые соответствуют некоторым критериям.
Сортировка HTML-элементов по CSS-селектору

С помощью методов select и select_one мы можем использовать некоторые селекторы CSS для сортировки элементов.
Создания декораторов с помощью декоратора @wraps

В этом примере мы используем модуль functools и декоратор @wraps, чтобы создать декоратор my_decorator. Декоратор @wraps применяется к внутренней функции wrapper и копирует метаданные (имя функции, документацию и др.) из декорируемой функции func. Это полезно, чтобы сохранить исходные атрибуты функции и предотвратить их затирание. В примере мы декорируем функцию my_function с помощью @my_decorator и выполняем ее.