🐍 Укус питона 🐍
2.49K subscribers
1.05K photos
23 videos
285 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Цветной вывод в консоли

Colorama - самая популярная библиотека для цветного вывода в консоль. Благодаря ей, не нужно запоминать ANSI коды, ведь они вшиты в библиотеку

Для начала работы с библиотекой необходимо её установить (pip install colorama), импортировать (import colorama) и инициализировать с помощью метода init()

С помощью библиотеки можно менять цвета, фон и стиль текста. В первом примере с помощью склеивания строки с объектом цвета Fore.GREEN мы перекрасили строку в зеленый цвет. Также можно склеивать сразу несколько объектов, например добавить цвет фона на белый с помощью объекта Back.WHITE

#гайды #консоль #цветной_вывод

Подробнее...
👍6
Разработка Telegram ботов: Базовый шаблон

В настоящее время Telegram активно набирает обороты, а специалисты по разработке чат-ботов становятся востребованы на рынке фриланса. В связи с этим мы подготовили небольшую серию постов по разработке Telegram ботов на Python + aiogram.

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

Для примера, мы подготовили базовый шаблон, который можно использовать при написании своего бота. Он содержит обработчики команд и текстовых сообщений. Для начала работы необходимо установить библиотеку aiogram (pip install aiogram) и создать объект бота, передав в него токен, который мы получили.

Вызвав функцию executor.start_polling(), скрипт начинает постоянно запрашивать обновления на серверах Telegram-а и при их наличии, вызывает необходимый обработчик, передав в него объект message, который содержит в себе подробную информацию о полученном сообщении.

В нашем примере, для удобства работы мы сразу записываем основную информацию в переменные user_id (уникальный id пользователя в Telegram), username (уникальный логин пользователя) и text (текст сообщения) и сразу выводим их в консоль вместе с временем получения сообщения.

Далее в примере, мы проверяем присутствует ли сообщение в заготовленных списках и отвечаем по необходимости пользователю с помощью функции bot.send_message(), которая принимает на вход id пользователя и текст сообщения.

Как этот бот выглядит со стороны пользователя можно увидеть на экране телефона в обложке этого поста. В следующих постах, мы рассмотрим сценарии и ветки сообщений, а пока можете задавать вопросы в чате ниже.
👍8
Что в результате выведет в консоль данный код?
Anonymous Quiz
8%
[0, 4]
30%
[5, 7, 3, 1]
15%
SyntaxError
36%
[False, True, True, True, False, True]
11%
[True, False, False, False, True, False]
🤯7👍3
Разработка Telegram ботов: Reply кнопки

Продолжаем серию постов по разработке Telegram ботов, по просьбам наших подписчиков, мы переходим на библиотеку aiogram. Прошлый пост был также переписан под aiogram.

В этом посте мы разберём как создавать и обрабатывать reply кнопки. Их вы видите сразу под строкой ввода сообщения. Чтоб создать кнопки, надо вначале создать объект клавиатуры - types.ReplyKeyboardMarkup(), она принимает на вход аргументы: resize_keyboard - булевый тип, подгоняет высоту клавиатуры до минимума и one_time_keyboard - булевый тип, скрывает клавиатуру после нажатия на её кнопку.

Для удобства работы в будущем, сделаем функцию send_main_keyboard() которая будет принимать на вход текст сообщения и отправлять главную клавиатуру с ней

Чтоб добавить кнопку в клавиатуру, воспользуемся методом keyboard.add(), передав в него текст кнопки. Кнопки можно размещать в один ряд, для этого нужно передать их текста, через запятую.

При нажатии на reply кнопку, Telegram отправляет её текст как обычное сообщение, поэтому нажатия на неё обрабатываем в обработчике сообщений.

Как этот бот выглядит со стороны пользователя можно увидеть на экране телефона в обложке этого поста. В следующих постах, мы реализуем процесс жалобы, а пока можете писать в чате, что вы хотите видеть дальше.
👍12🔥2
Что в результате выведет в консоль данный код?
Anonymous Quiz
2%
NameError
18%
SyntaxError
71%
3
2%
None
7%
FormatError
🤯16👍42
Тип данных - множества (set)

Множества в python - это структура данных, которые содержат неупорядоченные элементы. В отличие от строк элементы в множествах не индексируемые, а значит к ним нельзя обращаться по индексу и проводить операцию среза.

Также множества не содержат дубликаты элементов. Как показано на картинке, если создать множества с повторяющимися элементами, лишние автоматически удалится.

Множества задаются с помощью ключевого слова set или перечисления элементов в фигурных скобках. Добавить элемент в него можно с помощью метода add().

Элементы в множествах находятся в произвольном порядке, если запустить код с примера ещё раз, элементы могут напечататься в другом порядке.

#теория #множества #set #типы_данных

Подробнее...
👍24🤯3
Что в результате выведет в консоль данный код?
Anonymous Quiz
41%
[1, 2, 3]
12%
TypeError
3%
[1, 2]
44%
[2, 3]
👍22🤯141
Копирование объектов

В опросе выше ~ 55% ответило неправильно, теперь объясним почему.
В этом посте мы рассмотрим определение глубокого и поверхностного копирования, а также их реализации на языке Python.

В первом примере мы копируем объект лишь поверхностно, при таком копировании дочерние элементы не копируются в новый объект, оно просто копирует ссылки на их адреса памяти. Следовательно, при изменении нового объекта, изменяется и старый.

Во втором примере с помощью функции copy, мы делаем глубокое копирование, копируем сам объект и все его дочерние элементы в новые ячейки памяти, поэтому изменения на старом объекте не отражаются.

#теория #копирование
👍26🤯6😁1
Что в результате выведет в консоль данный код?
Anonymous Quiz
12%
10
13%
1
25%
False
36%
True
14%
SyntaxError
👍13🤯12🔥1🎉1
Функция count

Метод count, принимая в качестве аргумента объект, возвращает количество вхождений этого объекта в список. В первом примере, мы получаем количество вхождений нулей и единиц в список.

Также метод count позволяет получить количество вхождений подстроки в строку. Во втором примере мы получаем количество запятых в строке ‘Hello, world!’. Если объект в списке/строке не присутствует, функция вернёт 0.

#теория #функции #методы #списки #строки

Подробнее...
👍27🔥3🤯1
Что в результате выведет в консоль данный код?
Anonymous Quiz
29%
0 и 2
47%
4 и 2
6%
4 и 0
13%
SyntaxError
5%
FindError
🤯2712
Дзен питона

В 1999 году Тим Петерс разработал и предложил свой свод правил по улучшению языка python. The Zen of Python состоит из 20 пунктов, последний из которых не дописан.

Найти этот свод правил можно на официальном сайте python или импортировав модуль this (import this)

#пасхалки #дзен
🔥12👍3🤯31
Что выведет данный код?
Anonymous Quiz
38%
{1, 2, 3, 4}
38%
{1, 2, 3, 4, 3, 2, 1}
19%
[1, 2, 3, 4, 3, 2, 1]
6%
[1, 2, 3, 4]
🤯16🔥103👍1