Узнаем информацию о стране
В нашем примере мы узнаем население, официальный язык и столицу Испании.
Документацию пакета можно найти здесь.
countryinfo — модуль Python для возврата данных о странах, информации ISO и штатах/провинциях внутри них. Установка пакета — pip install countryinfo.В нашем примере мы узнаем население, официальный язык и столицу Испании.
Документацию пакета можно найти здесь.
Узнаем погоду с помощью Python
PyOWM — это клиентская библиотека-оболочка Python для веб-API OpenWeatherMap (OWM). Это позволяет быстро и легко использовать данные OWM из приложений Python с помощью простой объектной модели и удобным для человека способом. Установка библиотеки —
Для того, чтобы воспользоваться данной библиотекой, нужно зарегистрироваться на данном сайте (очень быстрая регистрация) и получить токен на почту.
В нашем примере мы узнаем погоду в данный момент в городе Мадрид (Испания). Документацию пакета можно найти здесь.
PyOWM — это клиентская библиотека-оболочка Python для веб-API OpenWeatherMap (OWM). Это позволяет быстро и легко использовать данные OWM из приложений Python с помощью простой объектной модели и удобным для человека способом. Установка библиотеки —
pip установить pyowm.Для того, чтобы воспользоваться данной библиотекой, нужно зарегистрироваться на данном сайте (очень быстрая регистрация) и получить токен на почту.
В нашем примере мы узнаем погоду в данный момент в городе Мадрид (Испания). Документацию пакета можно найти здесь.
#вопросы_с_собеседований
Что плохого в следующем коде?
Ответ:
В Python нет объявлений переменных, поэтому он должен сам определить их область действия. Если внутри функции имеется обращение к переменной, то она считается локальной. Переменная count выше является глобальной, поэтому код выбрасывает ошибку.
Что плохого в следующем коде?
Ответ:
Форматируемые шаблоны строк
Модуль
Такой способ появился ещё в Python 2.4, как замена %-форматированию, но популярным так и не стал. Поддерживает передачу значений по имени и использует $-синтаксис как в PHP.
Модуль
string из стандартной библиотеки содержит интересный класс Template, который позволяет вполне удобно создавать шаблоны строк для дальнейшего форматирования.Такой способ появился ещё в Python 2.4, как замена %-форматированию, но популярным так и не стал. Поддерживает передачу значений по имени и использует $-синтаксис как в PHP.
Обрезаем видео в Python
MoviePy — это модуль Python для редактирования видео, который можно использовать для основных операций с видео и GIF.
Установка пакета —
MoviePy — это модуль Python для редактирования видео, который можно использовать для основных операций с видео и GIF.
Установка пакета —
pip install moviepy. Подробнее с данным примером можно ознакомиться здесь.Фронтенд и Python
Brython предназначен для замены Javascript в качестве языка сценариев для веб-страниц. Таким образом, это по сути Python 3, адаптированный к среде HTML5, то есть с интерфейсом к объектам и событиям DOM.
На картинке можете посмотреть простую HTML страницу со вставкой скрипта на Brython. Больше примеров можно найти в их галерее.
Проект интересный, но лично я бы не стал использовать его в продакшне. В любом случае можете ознакомиться с их документацией.
Brython предназначен для замены Javascript в качестве языка сценариев для веб-страниц. Таким образом, это по сути Python 3, адаптированный к среде HTML5, то есть с интерфейсом к объектам и событиям DOM.
На картинке можете посмотреть простую HTML страницу со вставкой скрипта на Brython. Больше примеров можно найти в их галерее.
Проект интересный, но лично я бы не стал использовать его в продакшне. В любом случае можете ознакомиться с их документацией.
Обрабатываем номера телефонов
Пакет phonenumbers основан на библиотеке libphonenumber от Google, которая позволяет форматировать, парсить и проверять номера телефонов.
Основным классом, который представляет номер, является PhoneNumber. Объект можно создать, вызвав метод parse() и передав в аргументы номер телефона в виде строки. Вторым аргументом также можно указать страну.
В целом, пакет использовать достаточно просто, базовые примеры есть на картинке. Также можете посмотреть документацию для более продвинутого использования.
Пакет phonenumbers основан на библиотеке libphonenumber от Google, которая позволяет форматировать, парсить и проверять номера телефонов.
Основным классом, который представляет номер, является PhoneNumber. Объект можно создать, вызвав метод parse() и передав в аргументы номер телефона в виде строки. Вторым аргументом также можно указать страну.
В целом, пакет использовать достаточно просто, базовые примеры есть на картинке. Также можете посмотреть документацию для более продвинутого использования.
Проверка истинности объекта класса
Для того, чтобы определить поведение при проверке на истинность объектов классов в python3 есть "магический" метод
Если данный метод определен в классе, то он будет вызываться при каждой проверке объекта на истинность а также с помощью функции
Если
Для того, чтобы определить поведение при проверке на истинность объектов классов в python3 есть "магический" метод
__bool__(), который был добавлен на замену устаревшему __nonzero__() в python2.Если данный метод определен в классе, то он будет вызываться при каждой проверке объекта на истинность а также с помощью функции
bool(). Метод должен возвращать False или True. Если
__bool__() не определен, будет вызываться метод __len__(), если он определен, и, соответственно, объект будет считаться истинным, если результат __len__() не будет равен нулю. Если в классе не определены ни __len__(), ни __bool__(), все его экземпляры будут истинными.
Senior Python Developer
🐍🚀 Создаем рекрутинговый портал на Django: часть 1 Разрабатываем портал, на котором каждый рекрутер сможет найти своего разработчика :). Система поиска позволяет подобрать нужного специалиста по резюме, портфолио или описанию проектов; рейтинг проекта поможет…
🐍🚀 Создаем рекрутинговый портал на Django: часть 2
В этой части: добавление обложек проектов с фронтенда, создание системы авторизации, разработка основной функциональности приложения «Пользователи» и связь проектов с профилями.
https://proglib.io/sh/xIKeRrpQgC
В этой части: добавление обложек проектов с фронтенда, создание системы авторизации, разработка основной функциональности приложения «Пользователи» и связь проектов с профилями.
https://proglib.io/sh/xIKeRrpQgC
Библиотека программиста
🐍🚀 Создаем рекрутинговый портал на Django: часть 2
В этой части: добавление обложек проектов с фронтенда, создание системы авторизации, разработка основной функциональности приложения «Пользователи» и связь проектов с профилями.
Метод Counter.subtract()
Метод Counter.subtract() вычитает элементы текущего счетчика cnt и итерируемой последовательности или другого словаря или другого счетчика Counter(). Подобно методу словаря dict.update(), но вычитает количество (значения ключей), а не заменяет их.
Значения ключей как у счетчика так и у словаря могут быть нулевыми или отрицательными.
Метод Counter.subtract() вычитает элементы текущего счетчика cnt и итерируемой последовательности или другого словаря или другого счетчика Counter(). Подобно методу словаря dict.update(), но вычитает количество (значения ключей), а не заменяет их.
Значения ключей как у счетчика так и у словаря могут быть нулевыми или отрицательными.
Хеширование паролей Python
Для Python 3.x
Здесь пароли будут хешироваться для последующего сохранения в базе данных.
Тут мы будем использовать salt. salt является случайной последовательностью, добавленной к строке пароля перед использованием хеш-функции.
salt используется для предотвращения перебора по словарю (dictionary attack) и атак радужной таблицы (rainbow tables attacks).
Для Python 3.x
Здесь пароли будут хешироваться для последующего сохранения в базе данных.
Тут мы будем использовать salt. salt является случайной последовательностью, добавленной к строке пароля перед использованием хеш-функции.
salt используется для предотвращения перебора по словарю (dictionary attack) и атак радужной таблицы (rainbow tables attacks).
Пишем 5 простых Telegram-ботов на Python
В этой статье мы реализуем простой, но крайне полезный проект на Python — бота для Telegram. Боты — это небольшие скрипты, которые могут взаимодействовать с API, чтобы получать сообщения от пользователя и отправлять информацию в разные чаты и каналы.
https://xakep.ru/2021/11/28/python-telegram-bots/
В этой статье мы реализуем простой, но крайне полезный проект на Python — бота для Telegram. Боты — это небольшие скрипты, которые могут взаимодействовать с API, чтобы получать сообщения от пользователя и отправлять информацию в разные чаты и каналы.
https://xakep.ru/2021/11/28/python-telegram-bots/
XAKEP
Питоном по телеграму! Пишем пять простых Telegram-ботов на Python
В этой статье мы реализуем простой, но крайне полезный проект на Python — бота для Telegram. Боты — это небольшие скрипты, которые могут взаимодействовать с API, чтобы получать сообщения от пользователя и отправлять информацию в разные чаты и каналы.
Сохраняем бинарные данные
Модуль
Но классы, функции и методы сохранить не получится. Здесь также важно понимать, что при сохранении объекта сохраняется строка, указывающая, к какому классу относится этот объект.
Однако будьте осторожнее,
Модуль
pickle реализует двоичные протоколы для сериализации и десериализации объектов. Вы можете сохранить любой объект, если возможно перевести каждый его атрибут в двоичный вид. Но классы, функции и методы сохранить не получится. Здесь также важно понимать, что при сохранении объекта сохраняется строка, указывающая, к какому классу относится этот объект.
Однако будьте осторожнее,
pickle не защищен от ошибочных или вредоносных данных. Никогда не извлекайте данные, полученные из ненадежных или не прошедших проверку подлинности источников.Список импортов по умолчанию
Для ограничения импорта переменных, функций и классов по умолчанию можно использовать список
Таким образом, при импорте вида
Тем не менее, в примере выше импортировать функцию
Для ограничения импорта переменных, функций и классов по умолчанию можно использовать список
__all__, в который записываются названия объектов, которые будут подключены.Таким образом, при импорте вида
from module import * из модуля c подобной записью подключатся только объекты с названиями из списка __all__.Тем не менее, в примере выше импортировать функцию
foo из такого модуля всё ещё можно, например, с помощью записи from module import foo.