🐍 Укус питона 🐍
前往频道在 Telegram
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @tg_adminisrator 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython
显示更多2 334
订阅者
无数据24 小时
-117 天
-3730 天
帖子存档
2 334
✈️Модуль 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 раз и выводим результат2 334
✈️Метод 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.2 334
🎮Pyxel — это библиотека для создания ретро-игр на языке программирования Python. Она идеально подходит для разработчиков, которые хотят погрузиться в мир 8-битных игр, создавая собственные проекты с минимальными усилиями.
Почему Pyxel❔
➡️Простота использования
Одним из главных преимуществ Pyxel является её простота использования. Она предоставляет интуитивно понятный интерфейс и минимальный набор функций, необходимых для создания игр. Это позволяет сосредоточиться на творческом процессе, не отвлекаясь на сложные технические детали.
➡️Встроенные инструменты
Pyxel поставляется с набором встроенных инструментов, которые облегчают разработку игр. Среди них: редактор спрайтов, редактор звуков и редактор карт.
➡️Кроссплатформенность
Ещё одно важное преимущество Pyxel — это её кроссплатформенность. Библиотека поддерживает Windows, macOS и Linux, что позволяет разрабатывать игры на любой из этих платформ.
2 334
🖥 В чем разница между итератором и генератором?
В Python и итераторы, и генераторы позволяют перебирать элементы коллекций, но работают немного по-разному.
🔘Итераторы — это объекты, которые реализуют методы
iter() и next(). Метод iter() возвращает сам итератор, а next() — следующий элемент коллекции. Если элементы заканчиваются, next() должен вызвать исключение StopIteration. Итераторы позволяют явно перебирать элементы коллекции, не требуя, чтобы все элементы были доступны в памяти одновременно.
🔘Генераторы — это специальный способ реализации итераторов. Они создаются при помощи функций с ключевым словом yield. Главное отличие генератора заключается в том, что значения генерируются по требованию. Каждый раз, когда генератор достигает yield, он возвращает значение и «замирает», сохраняя своё состояние до следующего вызова. Это позволяет использовать меньше памяти при итерации по длинным последовательностям.2 334
Repost from N/a
✈️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]