⚡ Try, except, finally
В python мы довольно часто встречаемся с ошибками: деление на ноль, IndexError или, например, не правильное преобразование.
В таких случаях поможет конструкция try. Первым делом вы пишем действия внутри, которые собираемся выполнить. В случае, если возникнет ошибка, то except «поймает» её и выполнит указанные действия.
Блок finally выполняется всегда, независимо от того, возникло исключение или нет. Его часто используют для закрытия файлов или соединений.
В python мы довольно часто встречаемся с ошибками: деление на ноль, IndexError или, например, не правильное преобразование.
В таких случаях поможет конструкция try. Первым делом вы пишем действия внутри, которые собираемся выполнить. В случае, если возникнет ошибка, то except «поймает» её и выполнит указанные действия.
Блок finally выполняется всегда, независимо от того, возникло исключение или нет. Его часто используют для закрытия файлов или соединений.
May 11, 2021
⚡ JSON в python
JSON — JavaScript Object Notation. Это структурированные данные, понятные человеку.
Они, также называемые «словарём» часто используются при создании сайтов и игр.
Этот формат позволяет функциям «общаться» друг с другом, сохранять какие-то значения или представлять Настройки или любые другие данные, понятные пользователю.
Создать словарь можно используя фигурные скобки. Для работы с ними используют модуль json, а метод dumps превращает словарь в строку и позволяет сохранить в файл.
Также, метод load используется для декодирования и позволяет считывать значения с файла напрямую.
JSON — JavaScript Object Notation. Это структурированные данные, понятные человеку.
Они, также называемые «словарём» часто используются при создании сайтов и игр.
Этот формат позволяет функциям «общаться» друг с другом, сохранять какие-то значения или представлять Настройки или любые другие данные, понятные пользователю.
Создать словарь можно используя фигурные скобки. Для работы с ними используют модуль json, а метод dumps превращает словарь в строку и позволяет сохранить в файл.
Также, метод load используется для декодирования и позволяет считывать значения с файла напрямую.
May 11, 2021
⚡️ Пример бота на Telebot.
В одном из предыдущих постов мы упоминали про эту библиотеку. Поэтому, сейчас мы покажем пример очень просто бота, созданного с её помощью.
Начнём с того, что у нас есть файл с названием my_token.py. Внутри него хранится переменная с токеном бота, которую мы и импортируем.
Метод TeleBot() уведомляет библиотеку о создании бота, после чего можно начать создавать функции, используя декораторы.
• start_message() — отправляет сообщение стартовое сообщение с кнопками внизу
• how_message() — выбирает случайное настроение и отвечает пользователю на его основе
• bot.pooling() — приостанавливает поток и ожидает сообщения от пользователя
В одном из предыдущих постов мы упоминали про эту библиотеку. Поэтому, сейчас мы покажем пример очень просто бота, созданного с её помощью.
Начнём с того, что у нас есть файл с названием my_token.py. Внутри него хранится переменная с токеном бота, которую мы и импортируем.
Метод TeleBot() уведомляет библиотеку о создании бота, после чего можно начать создавать функции, используя декораторы.
• start_message() — отправляет сообщение стартовое сообщение с кнопками внизу
• how_message() — выбирает случайное настроение и отвечает пользователю на его основе
• bot.pooling() — приостанавливает поток и ожидает сообщения от пользователя
May 12, 2021
⚡️ Кортеж, список, множество или словарь?
В Python часто встречаются эти понятия, но не все понимают, что это такое и чем они отличаются. Поэтому...
• Список — набор элементов, который может изменяться и индексироваться.
• Кортеж — набор элементов, которые не меняются, но также индексируется. Чаще всего его используют в функциях, которые возвращают какие-то значения, но их нельзя менять.
• Множество — набор элементов, которые могут меняться (зависит от способа создания). Он не индексируется, но его отличие в том, что все элементы ни разу не повторяются.
• Словарь — набор элементов типа ключ — значение. Ключи не могут меняться и являются "индексами", также они не должны повторятся. Значения могут и меняться, и повторятся.
В Python часто встречаются эти понятия, но не все понимают, что это такое и чем они отличаются. Поэтому...
• Список — набор элементов, который может изменяться и индексироваться.
• Кортеж — набор элементов, которые не меняются, но также индексируется. Чаще всего его используют в функциях, которые возвращают какие-то значения, но их нельзя менять.
• Множество — набор элементов, которые могут меняться (зависит от способа создания). Он не индексируется, но его отличие в том, что все элементы ни разу не повторяются.
• Словарь — набор элементов типа ключ — значение. Ключи не могут меняться и являются "индексами", также они не должны повторятся. Значения могут и меняться, и повторятся.
May 12, 2021
⚡️ Классы и особые методы
Каждый раз, когда вы создаёте какой-либо класс, он наследуется от object.
Object имеет особые методы:
__init — инициализатор класса. Он вызывается тогда, когда класс создаётся.
str, repr__— возвращает класс в виде строки. Разница между ними в том, что str должен вернуть боле «красивый» вывод.
__getatribute, setattr__ — вызывается методами getattr и setattr. Позволяют получать и задавать значения переменных классов.
__doc__ — документация для пользования классом. Также её можно создать используя многострочную строку после создания класса.
Каждый раз, когда вы создаёте какой-либо класс, он наследуется от object.
Object имеет особые методы:
__init — инициализатор класса. Он вызывается тогда, когда класс создаётся.
str, repr__— возвращает класс в виде строки. Разница между ними в том, что str должен вернуть боле «красивый» вывод.
__getatribute, setattr__ — вызывается методами getattr и setattr. Позволяют получать и задавать значения переменных классов.
__doc__ — документация для пользования классом. Также её можно создать используя многострочную строку после создания класса.
May 13, 2021
⚡️ Модули в Python
Практически не существует сложных программ, написанных без использования модулей.
Модулем в Python можно считать любой файл программы, который имеет то же название, что и имя файла.
Импортировать его можно используя import, а если нужно взять какие-то определённые атрибуты — from module import attribute.
Также, если требуется создать псевдоним, стоит использовать ключевое слово as.
Для лучшего понимания, в одном из наших примеров мы уже импортировали собственные модули.
Практически не существует сложных программ, написанных без использования модулей.
Модулем в Python можно считать любой файл программы, который имеет то же название, что и имя файла.
Импортировать его можно используя import, а если нужно взять какие-то определённые атрибуты — from module import attribute.
Также, если требуется создать псевдоним, стоит использовать ключевое слово as.
Для лучшего понимания, в одном из наших примеров мы уже импортировали собственные модули.
May 14, 2021
⚡️ Использование декораторов
Декораторы — это «обёртки» для функций, которые позволяют изменить поведение функции, при этом не меняя её код.
Создаются они очень просто:
По сути, это обычные функции, которые определяют внутри себя другую функцию и возвращают только что созданный код.
Их можно использовать, например, в библиотеке Telethon, о чём мы писали тут.
Стоит отметить, что декораторы немного замедляют вызов функции, запрещают её задекорировать и слегка ухудшают отладку.
Декораторы — это «обёртки» для функций, которые позволяют изменить поведение функции, при этом не меняя её код.
Создаются они очень просто:
По сути, это обычные функции, которые определяют внутри себя другую функцию и возвращают только что созданный код.
Их можно использовать, например, в библиотеке Telethon, о чём мы писали тут.
Стоит отметить, что декораторы немного замедляют вызов функции, запрещают её задекорировать и слегка ухудшают отладку.
May 14, 2021
⚡️ Сетевые подключения в Python
На самом деле, всё проще, чем может показаться на первый взгляд. Первым делом нам надо импортировать модуль socket. Сделать это и сохранить его можно с помощью
После этого ожидаем подключения командой listen(count).
• count — это количество подключений одновременно.
• accept() — метод, который возвращает кортеж с классом соединения и адресом
Теперь нужно просто сделать клиент, используя connect(("ip", 9999)), чтобы подключиться к IP по порту 9999.
На самом деле, всё проще, чем может показаться на первый взгляд. Первым делом нам надо импортировать модуль socket. Сделать это и сохранить его можно с помощью
socket = socket.socket()
Также, для создания сервера, нужно привязать к нему порт. Воспользуемся bind(("ip", 9999)), который принимает запросы с IP. Его можно оставить пустым, если нужно пропускать любые IP. После этого ожидаем подключения командой listen(count).
• count — это количество подключений одновременно.
• accept() — метод, который возвращает кортеж с классом соединения и адресом
Теперь нужно просто сделать клиент, используя connect(("ip", 9999)), чтобы подключиться к IP по порту 9999.
May 15, 2021
May 15, 2021
Что выведет этот код?
Anonymous Quiz
5%
Hello, World
4%
"Hello", "World"
34%
"Hello, world!" -", world!"
58%
Ошибку
May 15, 2021
⚡️ Типы функций
Всего в python можно выделить три функции: статические, функции класса (методы) и обычные.
• Обычные — те, что мы создаём, используя обычный def. Они ничем особым не выделяются.
• Методы — создаются внутри классов с помощью того же def. Их особенностью является то, что первым параметром они принимают свой класс. Чаще всего можно заметить их в виде self.
• Статические функции — обычные методы, которые просто относятся к какому либо классу. Они не принимают self или что-то подобное. Определяются используя staticmethod.
Всего в python можно выделить три функции: статические, функции класса (методы) и обычные.
• Обычные — те, что мы создаём, используя обычный def. Они ничем особым не выделяются.
• Методы — создаются внутри классов с помощью того же def. Их особенностью является то, что первым параметром они принимают свой класс. Чаще всего можно заметить их в виде self.
• Статические функции — обычные методы, которые просто относятся к какому либо классу. Они не принимают self или что-то подобное. Определяются используя staticmethod.
May 16, 2021
⚡️ Простой пример бота на Python Telegram Bot
Ранее уже упоминалась эта библиотека как самая хорошая для новичков, ведь освоить её сможет практически каждый.
Этот пример выполняет те же функции, что и бот на telebot, но здесь вместо декораторов используются обычные методы.
Так, в библиотеке есть некий updater, который контролирует бота.
dispatcher позволяет настроить события и реакции на них, а selector — выбирает, какую функцию нужно вызывать на основе нажатой кнопки.
💾 Скачать пример бота
Ранее уже упоминалась эта библиотека как самая хорошая для новичков, ведь освоить её сможет практически каждый.
Этот пример выполняет те же функции, что и бот на telebot, но здесь вместо декораторов используются обычные методы.
Так, в библиотеке есть некий updater, который контролирует бота.
dispatcher позволяет настроить события и реакции на них, а selector — выбирает, какую функцию нужно вызывать на основе нажатой кнопки.
💾 Скачать пример бота
May 17, 2021
⚡️ Модуль logging
Без багов в жизни программиста — никуда, поэтому важно уметь их вовремя находить и исправлять.
Для этого существует много способов, но самый удобный из них — логирование. В python с этим поможет модуль logging.
По умолчанию, библиотека выводит все записи в консоль, но можно настроить вывод и в файл.
Для этого воспользуйтесь logging.basicConfig(filename="sample.log", level=logging.INFO).
Теперь, с помощью getLogger("name") можно выделить логи для специальных приложений/действий.
Также, команда logger.setLevel(type) позволяет настроить уровень записи, например logging.DEBUG.
Без багов в жизни программиста — никуда, поэтому важно уметь их вовремя находить и исправлять.
Для этого существует много способов, но самый удобный из них — логирование. В python с этим поможет модуль logging.
По умолчанию, библиотека выводит все записи в консоль, но можно настроить вывод и в файл.
Для этого воспользуйтесь logging.basicConfig(filename="sample.log", level=logging.INFO).
Теперь, с помощью getLogger("name") можно выделить логи для специальных приложений/действий.
Также, команда logger.setLevel(type) позволяет настроить уровень записи, например logging.DEBUG.
May 18, 2021
⚡️ Взаимодействие с окружением
Довольно часто при работе над проектами у нас используются секретные данные, которым лучше не попадать в интернет.
Мы воспользовались импортированием собственного модуля, но есть ещё один интересный способ — environment.
• Environment — это окружение ОС, внутри которого находятся различные данные. Используется при настройке программ и передачи каких либо значений.
Для получения значений окружения используют os.environ.
Это словарь, из которого можно получить данные с помощью ['some_value'].
Также, вы можете воспользоваться методом os.getenv(key, default), позволяющий настроить значение по умолчанию.
Довольно часто при работе над проектами у нас используются секретные данные, которым лучше не попадать в интернет.
Мы воспользовались импортированием собственного модуля, но есть ещё один интересный способ — environment.
• Environment — это окружение ОС, внутри которого находятся различные данные. Используется при настройке программ и передачи каких либо значений.
Для получения значений окружения используют os.environ.
Это словарь, из которого можно получить данные с помощью ['some_value'].
Также, вы можете воспользоваться методом os.getenv(key, default), позволяющий настроить значение по умолчанию.
May 19, 2021
⚡️ Flask — простой веб-фреймворк
Flask является очень популярным фреймворком, который даже обгоняет Django по количеству использований.
Его преимущество в том, что он позволяет легко и быстро начать работу без дополнительных настроек, не говоря уже об огромном количестве расширений, которые существуют для него.
Код, доступный по ссылке ниже создаёт небольшую страницу с просьбой перейти на /hi, которая выводит Hello world.
Для запуска приложения нужно вписать в консоль
Скачать фреймворк можно с помощью
💾 Скачать пример кода
Flask является очень популярным фреймворком, который даже обгоняет Django по количеству использований.
Его преимущество в том, что он позволяет легко и быстро начать работу без дополнительных настроек, не говоря уже об огромном количестве расширений, которые существуют для него.
Код, доступный по ссылке ниже создаёт небольшую страницу с просьбой перейти на /hi, которая выводит Hello world.
Для запуска приложения нужно вписать в консоль
flask run
, не забыв выставить FLASK_APP с названием файла. Скачать фреймворк можно с помощью
pip3 install flask
.💾 Скачать пример кода
May 19, 2021
⚡️ Регулярные выражения
regex (или — Regular expressions) — это строка, которая задаёт шаблон поиска подстрок в тексте.
Её очень часто используют для проверки почт, номеров, ip-адресов и т.д.
Немного про синтаксис регулярных выражений:
\d — любая цифра, а \D — любой символ, кроме цифры.
\s — пробел, \w — любая буква и цифра, а _. [...] — выбор одного из символов внутри квадратных скобок или диапазона.
regex (или — Regular expressions) — это строка, которая задаёт шаблон поиска подстрок в тексте.
Её очень часто используют для проверки почт, номеров, ip-адресов и т.д.
Немного про синтаксис регулярных выражений:
\d — любая цифра, а \D — любой символ, кроме цифры.
\s — пробел, \w — любая буква и цифра, а _. [...] — выбор одного из символов внутри квадратных скобок или диапазона.
May 20, 2021
⚡️ Хэширование и с чем его едят
Хэш функция нужна для того, чтобы с помощью специального алгоритма превратить массив любого размера в строку на основе элементов.
Например, его довольно часто можно встретить при скачивании файлов или просмотре баз данных.
Также, эту возможность можно использовать для хранения паролей или, например, для быстрого сравнения двух массивов.
| В общем, возможностей — масса.
Одной из таких функций является md5. Выходная строка равна 128 битам или 16 символам, но чаще всего хэши отображаются в шестнадцатеричной системе исчисления, так что вы увидите 32 символа.
Для работы с хэшированием используйте библиотеку hashlib, которая, помимо md5, поддерживает и SHA.
Хэш функция нужна для того, чтобы с помощью специального алгоритма превратить массив любого размера в строку на основе элементов.
Например, его довольно часто можно встретить при скачивании файлов или просмотре баз данных.
Также, эту возможность можно использовать для хранения паролей или, например, для быстрого сравнения двух массивов.
| В общем, возможностей — масса.
Одной из таких функций является md5. Выходная строка равна 128 битам или 16 символам, но чаще всего хэши отображаются в шестнадцатеричной системе исчисления, так что вы увидите 32 символа.
Для работы с хэшированием используйте библиотеку hashlib, которая, помимо md5, поддерживает и SHA.
May 20, 2021
⚡️ База данных MySql
Если вкратце, то данные с базы данных записываются на диск, а значит — они сохраняются даже после перезагрузки устройства.
Поэтому, чтобы ей воспользоваться, первым делом необходимо установить модуль:
Теперь нужно создать соединение с помощью connect (host, user, password ).
Вы также можете создать пул соединений с помощью pooling.MySQLConnectionPool(), что позволит базе данных работать с многопоточным приложением.
Для взаимодействия с базой данных потребуется использовать курсор: conn.cursor, а выполнение следующих команд выполняется с помощью execute ("Команда")
Если вкратце, то данные с базы данных записываются на диск, а значит — они сохраняются даже после перезагрузки устройства.
Поэтому, чтобы ей воспользоваться, первым делом необходимо установить модуль:
pip install mysql-connector-python
Несмотря на на название библиотеки, импортировать мы будем mysql.connectorТеперь нужно создать соединение с помощью connect (host, user, password ).
Вы также можете создать пул соединений с помощью pooling.MySQLConnectionPool(), что позволит базе данных работать с многопоточным приложением.
Для взаимодействия с базой данных потребуется использовать курсор: conn.cursor, а выполнение следующих команд выполняется с помощью execute ("Команда")
May 21, 2021
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Модуль progress
Показать пользователю, что программа выполняет работу и сколько ещё осталось до конца — жизненно необходимо.
Сделать это можно с помощью строк прогресса, и в Python есть для этого целая библиотека — progress.
Чтобы её установить, нужно выполнить эту команду:
Показать пользователю, что программа выполняет работу и сколько ещё осталось до конца — жизненно необходимо.
Сделать это можно с помощью строк прогресса, и в Python есть для этого целая библиотека — progress.
Чтобы её установить, нужно выполнить эту команду:
pip install progress
Сам модуль очень легко настраивается, так что вы, при желании, сможете настроить собственную строку прогресса.May 22, 2021
⚡️ Графики в консоле
Это очень полезно для тех, кто хочет изучать нейронные сети. К примеру, вы можете использовать консоль для построения графика ошибки.
В этом нам поможет библиотека bashplotlib, установив её с помощью этой команды:
• plot_scatter — создаёт двухмерный график. То есть, он принимает x и y. Также эти два метода могут принимать путь к файлу для получения данных
Не стоит забывать и про консольные команды этой библиотеки — scatter и hist. Они очень помогут в поиске ошибки.
Это очень полезно для тех, кто хочет изучать нейронные сети. К примеру, вы можете использовать консоль для построения графика ошибки.
В этом нам поможет библиотека bashplotlib, установив её с помощью этой команды:
pip install bashplotlib
• plot_hist — позволит создать одномерный график. Принимает в себя массив значений. • plot_scatter — создаёт двухмерный график. То есть, он принимает x и y. Также эти два метода могут принимать путь к файлу для получения данных
Не стоит забывать и про консольные команды этой библиотеки — scatter и hist. Они очень помогут в поиске ошибки.
May 22, 2021
⚡️ Модуль inspect
Всегда было интересно, что происходит «за кулисами» в python? Тогда эта библиотека вам поможет.
Модуль уже установлен в вашей системе, так что его достаточно просто импортировать, без дополнительной установки.
Самые интересные методы в этой библиотеке:
getsource(object) — возвращает исходный код преданного элемента или, если это невозможно, выбрасывает IOError.
signature(object) — возвращает класс Signature, с помощью которого можно исследовать объект. Если перевести его в строку, то можно увидеть аргументы переданного элемента.
ismodule, isclass, etc... — позволяет проверить объект и уточнить, модуль это, класс или что либо другое.
Всегда было интересно, что происходит «за кулисами» в python? Тогда эта библиотека вам поможет.
Модуль уже установлен в вашей системе, так что его достаточно просто импортировать, без дополнительной установки.
Самые интересные методы в этой библиотеке:
getsource(object) — возвращает исходный код преданного элемента или, если это невозможно, выбрасывает IOError.
signature(object) — возвращает класс Signature, с помощью которого можно исследовать объект. Если перевести его в строку, то можно увидеть аргументы переданного элемента.
ismodule, isclass, etc... — позволяет проверить объект и уточнить, модуль это, класс или что либо другое.
May 23, 2021