Python академия
Открыть в Telegram
Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter
Больше7 092
Подписчики
-224 часа
-117 дней
-3530 дней
Архив постов
7 092
Заглушка в коде
В ходе исполнения оператора pass ничего не происходит, поэтому он может использоваться в качестве некой заглушки в тех местах, где это синтаксически необходимо.
Например, вам надо сделать несколько функций, вы написали def'ы и названия, но сам код еще не успели, однако программу надо запустить и проверить что-то другое. Вот тут и понадобится pass.
Или в конструкции try-except, чтобы просто проигнорировать и никак не обрабатывать ошибку в программе.
Подписывайтесь на канал 👉@pythonofff
7 092
kwargs в Python?
Обе звездочки () являются важным элементом, так как kwargs представляет собой общепринятую идиому, хотя она и не принуждается к использованию языком. Форма kwargs с двумя звездочками используется в качестве параметра для отправки в функции списка аргументов переменной длины без ключевого слова.
Подписывайтесь на канал 👉@pythonofff
7 092
Разделители для целых чисел
Трудно визуально различить целые числа подобные 10000000 и 100000000. Использовать запятые, как в английском языке, не получится.
Но Python позволяет использовать нижнее подчеркивание как разделитель для улучшения читабельности.
Например, 1_000_000 будет интерпретироваться как целое число 1000000.
Подписывайтесь на канал 👉@pythonofff
7 092
Выход пользователя из профиля
Пользователь успешно прошел процедуру аутентификации, но… как теперь выйти? Можно было бы зайти в админку и выйти оттуда, однако есть способ получше. Добавим ссылку выхода, которая будет перенаправлять человека на домашнюю страницу. Благодаря системе аутентификации Django, добиться такого сценария проще простого.
В файле шаблона base.html добавим ссылку {% url 'logout' %} для выхода сразу после приветствия пользователя.
Подписывайтесь на канал 👉@pythonofff
7 092
Атрибуты функций
Сейчас будет шок для новичков, но функции — это обычные объекты, у которых просто реализован метод __call__. Именно он и позволяет выполнять синтаксис с вызовом через круглые скобки.
И соотвественно у функций, как и у любых других объектов, можно устанавливать атрибуты и даже другие методы. Но сейчас затронем только атрибуты.
Как вариант, в примере я реализовал счетчик вызова функции, но без использования глобальных переменных — всё с помощью атрибута в объекте функции.
Вообще практического применения в продакшне я не припомню, но сам этот факт знать полезно для общего понимания структуры языка и устройства объектов.
Подписывайтесь на канал 👉@pythonofff
7 092
Синтаксис
Синтаксис представления списков обеспечивает простой и надежный способ для создания новых списков из уже существующих. Допустим, нам нужен новый список, в котором каждый элемент старого списка будет умножен на 3. При помощи цикла for мы можем это сделать.
Подписывайтесь на канал 👉@pythonofff
7 092
Подборка Telegram каналов для программистов🔥
Сохраняйте, чтоб не потерять.
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/xakep_1 Статьи из "Хакера"
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
CodePen 📌
https://t.me/codepen_1 Сообщество пользователей CodePen
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
https://t.me/arhitekturamira World Architecture
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика
Крипта 📌
https://t.me/bitkoinoff Новости криптовалют
Метавселенная, GameFi, Crypto 📌
https://t.me/metaverse360
DeepFake 📌
https://t.me/deepfakenow Публикуем deepfake видео
Мир технологий 📌
https://t.me/mir_teh Видео из мира технологий
Excel лайфхак📌
https://t.me/Excel_lifehack
7 092
Enum перечисления
Этот класс можно назвать удобным способом инкапсуляции списка констант, чтобы они не были разбросаны по всему коду без структуры.
Подписывайтесь на канал 👉@pythonofff
7 092
Отлавливаем ошибки с помощью assert
Инструкция assert принимает логическое выражение и необязательное сообщение. Она используется для проверки типов, значений аргумента и вывода функции, а также для отладки, поскольку останавливает программу в случае ошибки.
Если выполнить инструкцию assert с логическим выражением, результат которого равен True, ничего не произойдет. Но в случае с False будет сгенерировано исключение AssertionError.
Однако не нужно пытаться обработать исключение AssertionError блоком try-except. В таком случае assert теряет свой смысл.
В примере мы проверили, является ли переданный аргумент числовым типом данных. Если не является, то будет вызвано исключение и выведено указанное сообщение.
Подписывайтесь на канал 👉@pythonofff
7 092
Время учить Python. 7 декабря старт Подготовительного курса!
✅ Упражняемся в браузерном тренажере --- учимся понимать и писать код на Python.
✅ Погружаемся в реальный продакшен --- создаем конвертер валют вместе с наставником.
✅ Размещаем изменения на GitHub --- получаем основу для своего первого пет-проекта.
База по Python за 14 дней. На практике. За 990 рублей.
7 092
Как скопировать всё содержимое внешнего файла?
В большинстве случаев возникает необходимость скопировать содержимое вашей ячейки в скрипт python или текстовый файл непосредственно из вашего блокнота Jupyter.
Вместо того чтобы копировать все и создавать новый файл, вы можете напрямую экспортировать свои данные, добавив команду writefile в ячейку перед кодом.
Подписывайтесь на канал 👉@pythonofff
7 092
Узнаем кодировку текста
Думаю, у всех были ситуации, когда вы открыли файл или получили ответ от сервера, а внутри оказывался набор странных символов в непонятной кодировке.
Пакет chardet как раз был создан для работы с кодировкам. Его метод detect выдает предполагаемую кодировку с точностью от 0 до 1.
В примере на картинке мы получили ответ по запросу к серверу, взяли его содержимое и проверили кодировку через этот метод.
Подписывайтесь на канал 👉@pythonofff
7 092
❗️Сделайте первые шаги в автоматизации тестировании на Python!
⚡️Приглашаем 7 декабря в 20:00 мск на бесплатный вебинар «Подготовка инфраструктуры для автоматизированного тестирования».
На открытом уроке разберемся, что необходимо сделать для запуска автотестов на Python с использованием Selenium.
👉 Регистрация на вебинар: https://otus.pw/1V19/
Вебинар пройдет в рамках онлайн-курса «Python QA Engineer» от OTUS🦉
Присоединяйтесь!
7 092
IP-адрес
Вы можете менять IP-адрес каждые несколько секунд или для каждого запроса. Целевой сервер не может идентифицировать ваши запросы и не блокирует эти IP-адреса. Вы можете создать огромный список прокси и выбирать по одному для каждого запроса случайным образом. Или используйте вращающийся прокси, который сделает это за вас. После этого изменения шансы на правильную работу скрапера резко возрастают.
Подписывайтесь на канал 👉@pythonofff
7 092
Объект Ellipsis
В Python есть крайне интересный объект, который обозначается как ..., то есть многоточие. Этот объект называется Ellipsis, и используется он в основном как заготовка для чего-то еще не реализованного.
Применяется он зачастую при работе со срезами в Numpy, но и в обычном коде его тоже встретить можно. Например, ... периодически встречается в теле функции в качестве заглушки.
Если привести его к логическому типу данных, то увидим True — это важный момент, потому что похожий по своей сути None выдает False.
Подписывайтесь на канал 👉@pythonofff
7 092
User-Agent
Механизм защиты от скрапинга – User-Agent. UA – это заголовок, который браузеры отправляют в запросах для идентификации. Обычно он представляет собой длинную строку, в которой объявляется имя браузера, версия, платформа и многое другое.
Подписывайтесь на канал 👉@pythonofff
7 092
🔥 Хардкорный тест по Python (не для новичков), который проходит всего 30% разработчиков 🔥
Ответьте на 20 вопросов и проверьте, насколько вы готовы к обучению на курсе — «Python Developer. Professional»
На курсе поймете структуру современной разработки ПО, научитесь писать простой и идиоматичный код, за который не будет мучительно стыдно, сможете тестировать и поддерживать код, научитесь создавать высоконагруженные системы и многое другое.
Время прохождения теста ограниченно 30 минут
👉 Пройти вступительный тест — https://otus.pw/lT49j/
💣 Пройдите тест, чтобы записаться на курс по спец. цене, проверить свои знания и получить доступ к 2 открытым урокам курса.
7 092
Отправляем универсальные уведомления
Наткнулся на интересный пакет notifiers, который позволяет отправлять уведомления на почту, через Телеграм бота, в Слэк и еще много куда. Всего доступно 16 провайдеров, подробнее про них в документации.
В функцию get\_notifier передаем название провайдера в виде строки и получаем объект, с которым можно работать. Отправить уведомление можно с помощью универсального метода notify.
Если не уверены, какие аргументы нужно передать для отправки уведомления, то можете посмотреть их через атрибут required у созданного объекта.
Например, для Телеграма нужно передать токен бота, айди чата и само сообщение. В случае с почтой необходимо указать логин, пароль, адресата и также сообщение.
Подписывайтесь на канал 👉@pythonofff
7 092
Генераторы в Python
Вместо выражения return генераторы возвращают значения путем многократного применения выражения yield. При каждом новом вызове функции возвращается следующее значение итерируемой последовательности.
Генератор может быть вызван через функцию next(). При каждом вызове next() возвращается следующее значение генератора.
Подписывайтесь на канал 👉@pythonofff
7 092
Важное про цифры и Юникод
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 — не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры. Полный список находится здесь.
Это крайне важно знать, потому что эти символы влияют на такие функции, как int, unicode.isdecimal и даже re.match.
Думаю, в один момент это знание сэкономит вам время на исправление "бага" с такими странными символами. Предупрежден — значит вооружен.
Подписывайтесь на канал 👉@pythonofff
