🐍 Укус питона 🐍 @byteofpython Channel on Telegram

🐍 Укус питона 🐍

@byteofpython


🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

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

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython

🐍 Укус питона 🐍 (Russian)

🐍 Укус питона 🐍 - это канал, посвященный программированию на языке Python. Здесь вы найдете тематические уроки, лайфхаки и много полезной информации для всех, кто интересуется этим языком программирования. Администратор канала - @it_dashka, который делится своими знаниями и опытом в этой области. Если вы хотите купить рекламу или узнать больше о канале, вы можете посетить ссылку: https://telega.in/c/byteofpython. Также у нас есть чат, где вы можете общаться с другими участниками и делиться своими успехами и вопросами - @abyteofpython. Присоединяйтесь к нам, узнавайте новое и развивайтесь вместе с нами! 🐍👽🔊👉

🐍 Укус питона 🐍

20 Nov, 08:59


Хотите стать востребованным Python-разработчиком? Пройдите курс от Hexlet!

Начните с основ и за 10 месяцев освоите один из самых популярных языков для бэкенда, научитесь создавать полноценные сайты и веб-приложения и реализовать внутреннюю логику работы программ на фреймворке Django. 

🎁 🎃 Бонусы к Черной пятнице! Вас ждет специальное предложение - скидка до 81 000 ₽. на обучение и второй курс в подарок!

Вас ждут сотни упражнений, 4 проекта для портфолио на GitHub, а во время обучения вы также поучаствуете в Карьерном треке чтобы найти свою первую работу в IT.

Пройдите 5 бесплатных уроков и откройте для себя увлекательный процесс обучения. Поймите, насколько интересен и перспективен этот путь, и получите уникальную возможность продолжить обучение на полном курсе со скидкой!

🐍 Укус питона 🐍

17 Nov, 09:00


➡️"Чистая" функция - это функция, которая при выполнении одного и того же входного значения всегда возвращает одинаковый результат и не имеет побочных эффектов.

➡️Пример чистой функции

Давайте рассмотрим пример простой чистой функции на языке Python. Предположим, у нас есть функция double, которая удваивает переданное число:

def double(number):
return number * 2


⬆️Эта функция является "чистой", потому что она всегда возвращает удвоенное значение переданного числа и не имеет побочных эффектов.

➡️Пример нечистой функции

Рассмотрим теперь пример нечистой функции на языке Python. Предположим, у нас есть функция add_to_list, которая добавляет переданное значение в глобальный список:

my_list = []

def add_to_list(value):
my_list.append(value)


⬆️Эта функция не является "чистой", потому что она изменяет состояние программы путем добавления значения в глобальный список my_list.

🐍 Укус питона 🐍

14 Nov, 15:00


Message_effect_id - это идентификатор, используемый в Telegram Bot API для определения конкретного визуального эффекта, который можно применить к сообщению.

➡️Основные характеристики message_effect_id:

Уникальность: Каждый эффект имеет свой уникальный числовой идентификатор.Формат: Идентификаторы представлены в виде строк, содержащих длинные числовые значения.Связь с эмодзи: Каждый message_effect_id соответствует определенному эмодзи, которое визуально представляет эффект.

➡️Примеры message_effect_id:

{
'🔥': "5104841245755180586",
'👍': "5107584321108051014",
'👎': "5104858069142078462",
'❤️': "5044134455711629726",
'🎉': "5046509860389126442",
'💩': "5046589136895476101"
}


➡️Использование в Telegram Bot API:

Применение эффектов: Боты могут использовать эти идентификаторы для добавления анимированных реакций к сообщениям.Интерактивность: Позволяет создавать более динамичные и интерактивные взаимодействия в чатах

🐍 Укус питона 🐍

13 Nov, 15:00


#junior

🐍 Укус питона 🐍

10 Nov, 09:00


✈️Модуль timeit в Python используется для измерения времени выполнения вашего кода. У него есть как интерфейс командной строки, так и вызываемый интерфейс. Модуль выполнит оператор определенное количество раз (по умолчанию - один миллион) и затем вернет время, затраченное на выполнение. Вот простой пример:

import timeit
print(timeit.timeit('"-".join(str(n) for n in range(100))', number=10000))


⬆️Этот код выполнит оператор "-".join(str(n) for n in range(100)) 10 000 раз и выведет затраченное на это время.

➡️Использование Timeit с функциями

Вы также можете использовать модуль timeit для измерения времени выполнения функций. Вот пример:

import timeit
def my_function():
return "-".join(str(n) for n in range(100))
print(timeit.timeit(my_function, number=10000))


⬆️В этом примере мы сначала определяем функцию с именем my_function. Затем мы измеряем время выполнения этой функции 10 000 раз и выводим результат

🐍 Укус питона 🐍

08 Nov, 15:00


✈️Метод subclasshook используется для определения, является ли один класс подклассом другого. Он вызывается при проверке isinstance() и issubclass() для определения отношения наследования между классами.

⬆️Этот метод позволяет настроить поведение этих функций для пользовательских классов.

➡️Пример:
class A:
def init(self, value):
self.value = value

class B:
def init(self, value):
self.value = value

def subclasshook(cls, subclass):
return (hasattr(subclass, 'value') and
callable(subclass.value) and
subclacc.value.name == 'print_value')

class C:
def init(self, value):
self.value = value

def print_value(self):
print(self.value)

a = A(5)
b = B(10)
c = C(15)

# Проверка
print(issubclass(C, B)) # True
print(issubclass(A, B)) # False


⬆️В примере метод subclasshook класса B проверяет, есть ли у подкласса метод print_value. Если да, то возвращает True, что позволяет считать его подклассом B.

🐍 Укус питона 🐍

06 Nov, 09:21


🎮Pyxel — это библиотека для создания ретро-игр на языке программирования Python. Она идеально подходит для разработчиков, которые хотят погрузиться в мир 8-битных игр, создавая собственные проекты с минимальными усилиями.

Почему Pyxel

➡️Простота использования


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

➡️Встроенные инструменты


Pyxel поставляется с набором встроенных инструментов, которые облегчают разработку игр. Среди них: редактор спрайтов, редактор звуков и редактор карт.

➡️Кроссплатформенность

Ещё одно важное преимущество Pyxel — это её кроссплатформенность. Библиотека поддерживает Windows, macOS и Linux, что позволяет разрабатывать игры на любой из этих платформ.

🐍 Укус питона 🐍

03 Nov, 09:00


🖥 В чем разница между итератором и генератором?

В
Python и итераторы, и генераторы позволяют перебирать элементы коллекций, но работают немного по-разному.

🔘Итераторы — это объекты, которые реализуют методы iter() и next(). Метод iter() возвращает сам итератор, а next() — следующий элемент коллекции. Если элементы заканчиваются, next() должен вызвать исключение StopIteration. Итераторы позволяют явно перебирать элементы коллекции, не требуя, чтобы все элементы были доступны в памяти одновременно.

🔘Генераторы — это специальный способ реализации итераторов. Они создаются при помощи функций с ключевым словом yield. Главное отличие генератора заключается в том, что значения генерируются по требованию. Каждый раз, когда генератор достигает yield, он возвращает значение и «замирает», сохраняя своё состояние до следующего вызова. Это позволяет использовать меньше памяти при итерации по длинным последовательностям.

🐍 Укус питона 🐍

01 Nov, 15:00


✈️itertools — Это удивительный инструмент, который помогает работать с итерациями (повторениями) в Python более эффективно.

➡️Основные функции itertools:

1. count(start, step): Генерирует бесконечную арифметическую прогрессию, начиная с start, с шагом step.

2. cycle(iterable): Бесконечно повторяет элементы из iterable.

3. chain(*iterables): Объединяет несколько итерируемых объектов в один последовательный поток.

4. zip_longest(*iterables, fillvalue=None):
Объединяет элементы из разных итерируемых объектов, даже если их длины различаются, то недостающее количество елментом заполнится заполнителем fillvalue.

➡️Пример использования:

import itertools

# Создаем бесконечную последовательность с шагом 2
counter = itertools.count(start=10, step=2)
for _ in range(5):
print(next(counter)) # Выведет числа: 10, 12, 14, 16, 18

# Объединяем несколько списков в один последовательный поток
letters = ['a', 'b', 'c']
numbers = [1, 2, 3]
combined = itertools.chain(letters, numbers)
print(list(combined)) # Выведет: ['a', 'b', 'c', 1, 2, 3]

🐍 Укус питона 🐍

30 Oct, 15:26


➡️GeoPy — это популярная библиотека в языке программирования Python, которая используется для выполнения различных геокодинговых операций. Она позволяет разработчикам легко преобразовывать адреса в географические координаты (широта и долгота) и обратно

➡️Геокодирование и обратное геокодирование

Одна из основных функций библиотеки GeoPy — это геокодирование. Геокодирование позволяет преобразовывать текстовые адреса в географические координаты. Это может быть полезно для создания карт, отслеживания местоположения или анализа данных, связанных с конкретными локациями.

➡️Расчет расстояний и маршрутов

Еще одна полезная функция GeoPy — это возможность расчета расстояний между двумя точками на карте. Это может быть полезно для множества приложений, включая логистику, планирование маршрутов и анализ местоположения.

🐍 Укус питона 🐍

27 Oct, 12:15


Что такое Meta в классах Django?

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

🪅Например, мы можем перезаписать имя таблицы, используя db_table в классе Meta. А ещё изменить порядок полей нашей модели.
from django.db import models

class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=10, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)

class Meta:
db_table = 'product_table'
ordering = ['-created_at']

🐍 Укус питона 🐍

24 Oct, 11:01


Погрузитесь в мир Python с нашим бесплатным курсом!

🎓 Включено 45 уроков, 56 упражнений в тренажере и 163 проверочных теста. Узнаете, как создавать программы, работать с условиями и функциями.

Что вы освоите:
— Составление программ из нескольких модулей.
— Анализ ошибок в коде с использованием отладочной печати.

📚 Курс охватывает основы Python: синтаксис, условия, циклы, типы данных и библиотеки. Практика на каждом шаге поможет вам уверенно использовать язык.

Начните свое обучение с бесплатного базового курса Python и вы сможете создавать несложные программы, а так же анализировать ошибки в коде!

🐍 Укус питона 🐍

23 Oct, 07:00


✈️В современном мире разработки программного обеспечения все больше и больше акцент делается на создании API (Application Programming Interface) для обмена данными между различными приложениями. Когда дело доходит до тестирования и отладки этих API, инструменты, такие как POSTMAN, становятся незаменимыми.

➡️Основные возможности POSTMAN

POSTMAN - это инструмент для тестирования и отладки API, который предоставляет разработчикам простой и удобный способ отправки HTTP-запросов и получения ответов. Он имеет интуитивно понятный пользовательский интерфейс, который позволяет легко создавать и отправлять запросы различных типов, таких как GET, POST, PUT и DELETE.

➡️POSTMAN также обладает возможностью автоматизации тестирования API. С помощью коллекций запросов и сценариев, вы можете создавать наборы тестовых сценариев и запускать их в автоматическом режиме. Это особенно полезно при разработке и поддержке сложных API, где необходимо проверить множество различных запросов и ответов.

🐍 Укус питона 🐍

20 Oct, 09:00


🖥 В чем разница между итератором и генератором?

В
Python и итераторы, и генераторы позволяют перебирать элементы коллекций, но работают немного по-разному.

🔘Итераторы — это объекты, которые реализуют методы iter() и next(). Метод iter() возвращает сам итератор, а next() — следующий элемент коллекции. Если элементы заканчиваются, next() должен вызвать исключение StopIteration. Итераторы позволяют явно перебирать элементы коллекции, не требуя, чтобы все элементы были доступны в памяти одновременно.

🔘Генераторы — это специальный способ реализации итераторов. Они создаются при помощи функций с ключевым словом yield. Главное отличие генератора заключается в том, что значения генерируются по требованию. Каждый раз, когда генератор достигает yield, он возвращает значение и «замирает», сохраняя своё состояние до следующего вызова. Это позволяет использовать меньше памяти при итерации по длинным последовательностям.

🐍 Укус питона 🐍

19 Oct, 09:58


➡️Описание функции help

Функция help в Python используется для получения справочной информации о встроенных функциях, методах, модулях, классах и объектах Python. Эта функция является очень полезным инструментом для изучения новых методов и библиотек, а также для получения помощи в решении проблем.

Чтобы использовать функцию help, просто вызовите ее и передайте объект, для которого вы хотите получить справочную информацию. Например, если вы хотите получить справочную информацию о функции print, вы можете вызвать функцию help следующим образом:

help(print)


Это приведет к выводу документации о функции print в вашем интерпретаторе Python.

🐍 Укус питона 🐍

17 Oct, 15:00


🔎LoginManager - это класс во Flask, который обрабатывает аутентификацию пользователей. Он предоставляет возможность работы с аутентификацией: проверка правильности введенных учетных данных, установка и удаление сеансов пользователя, проверка доступа к защищенным страницам.

➡️Использование LoginManager

Сначала необходимо создать экземпляр LoginManager и привязать его к приложению Flask. Затем можно определить функцию загрузки пользователя с помощью декоратора @login_manager.user_loader. Эта функция должна принимать идентификатор пользователя в качестве параметра и возвращать объект пользователя.

После настройки LoginManager можно использовать его для защиты определенных страниц и контролировать доступ к ним только для аутентифицированных пользователей. Для этого можно использовать декоратор @login_required, который применяется к функции представления и автоматически проверяет статус аутентификации пользователя перед выполнением функции.

🐍 Укус питона 🐍

13 Oct, 09:00


💩 Какова разница между методами getattr и getattribute?

Оба этих метода являются магическими.

🔘getattr

class Missing:
attr = 42

def getattr(self, name):
print(f"In getattr, asked for {name}")
return 73

m = Missing()
print(m.attr) # 42
print(m.xyz) # In getattr, asked for xyz; 73

Пример кода выше показывает, как метод используется для обработки запроса несуществующего атрибута xyz.

🔘getattribute

class Always:
attr = 42

def getattribute(self, name):
print(f"In getattribute, asked for {name}")
return 73

a = Always()
print(a.attr) # In getattribute, asked for attr; 73
print(a.xyz) # In getattribute, asked for xyz; 73

Здесь же можно увидеть, что метод используется для обработки запросов всех атрибутов, как существующих (attr), так и несуществующих (xyz).

Таким образом, getattribute — это метод, который управляет всеми запросами атрибутов, тогда как getattr вызывается, когда getattribute не находит атрибут.

🐍 Укус питона 🐍

11 Oct, 07:00


🕔Один из самых простых способов измерения времени выполнения кода в Python – использование модуля time. Этот модуль предоставляет функцию time(), которая возвращает текущее время в секундах с момента начала эпохи. Вы можете использовать эту функцию до и после куска кода, скорость выполнения которого вы хотите измерить, а затем вычесть одно значение из другого, чтобы получить общее время выполнения.

➡️Пример использования модуля time:

import time

start_time = time.time()

# Код, скорость выполнения которого вы хотите измерить
for i in range(0, 10000):
pass

end_time = time.time()

execution_time = end_time - start_time
print(f"Время выполнения: {execution_time} секунд")