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

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

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
🔥 Что такое slots в Python и зачем он нужен?

slots ограничивает список атрибутов у экземпляров класса, экономя память за счет отказа от dict.

Обычный класс без slots:
class Person:
def init(self, name, age):
self.name = name
self.age = age

p = Person("Alice", 25)
p.city = "New York" # Можно добавить новый атрибут


Класс с slots:
class Person:
slots = ("name", "age") # Разрешены только эти атрибуты

def init(self, name, age):
self.name = name
self.age = age

p = Person("Alice", 25)
p.city = "New York" # AttributeError: 'Person' object has no attribute 'city'


Плюсы slots

Экономит память (не создается dict)
Ускоряет доступ к атрибутам
Предотвращает создание лишних атрибутов

⚡️ Используйте slots, если нужно много однотипных объектов и важна производительность!
🐍 Форматированные строки (f-strings) в Python

F-строки — это самый лаконичный способ подставить переменные и выражения прямо внутрь строки. Они появились в Python 3.6 и с тех пор стали стандартом.

Синтаксис простой: перед строкой ставится f, а внутри фигурных скобок {} можно писать переменные или даже выражения.

name = "Анна"
age = 25

print(f"{name} — {age} лет")


Внутри скобок можно использовать любые валидные выражения:
print(f"{name.upper()} — {age + 5} лет")  # АННА — 30 лет


Преимущество f-строк — читаемость и производительность. Они короче и быстрее, чем .format() или конкатенация через +.
Что выведет следующий код?
Anonymous Quiz
86%
ront
0%
roen
14%
ronten
0%
rond
⚙️ Списковые включения (list comprehensions)

В Python можно создавать списки в одну строку — с помощью списковых включений. Это короче и читаемее, чем for-цикл.

squares = [x**2 for x in range(5)]
print(squares) # [0, 1, 4, 9, 16]


Можно добавить условие:
evens = [x for x in range(10) if x % 2 == 0]


Это базовый, но мощный инструмент в Python.
🐍 Множественное присваивание в Python

В Python можно сразу присвоить значения нескольким переменным в одной строке. Это удобно и делает код короче.

x, y, z = 1, 2, 3
print(x, y, z) # 1 2 3


Можно использовать для обмена значениями без временной переменной:
a, b = 5, 10
a, b = b, a
print(a, b) # 10 5


Это стандартный приём в Python, который экономит строки и делает код читаемым.
🐍 Функция range() в Python

range() — встроенная функция для генерации чисел. Используется для перебора в цикле.

Синтаксис:
range(начало, конец, шаг)


По умолчанию: начало = 0, шаг = 1.

Пример:

# Простой range от 0 до 2
for i in range(3):
print(i)

# Range с началом и шагом
for i in range(1, 10, 2):
print(i)

# Вывод:
# 0
# 1
# 2
# 1
# 3
# 5
# 7
# 9
⚙️ Мифы о байесовском А/Б тестировании

В статье сравнивают частотный и байесовский подходы к A/B тестам. Показывают, как учитывать априорные данные, разобраться с p-value и безопасно остановить эксперимент раньше времени.

#Полезное
Для чего используется функция enumerate() в Python и когда её применять?

Функция enumerate() позволяет перебрать элементы последовательности вместе с их индексами. Это удобно, когда нужен не только элемент, но и его позиция в коллекции.

Пример:
fruits = ["apple", "banana", "orange"]

for index, fruit in enumerate(fruits, start=1):
print(index, fruit)

1 apple
2 banana
3 orange


📌 В этом примере enumerate() вернёт кортежи с индексом и значением.

enumerate() удобно использовать вместо range(len()) для более чистого и читаемого кода при переборе списков, кортежей и других коллекций.
Что выведет следующий код?
Anonymous Quiz
55%
1, 2
12%
1, 3
12%
(1, 2)
21%
Ошибка выполнения
⚙️ Работа с множествами в Python

Множество (set) — это коллекция уникальных элементов без определённого порядка.

Главное применение set — быстро удалять дубликаты и проверять наличие элемента.

nums = [1, 2, 2, 3, 4, 4, 5]

unique_nums = set(nums)
print(unique_nums) # {1, 2, 3, 4, 5}

print(3 in unique_nums) # True
print(10 in unique_nums) # False


✔️ Множества полезны для оптимизации кода и быстрого поиска данных
⚙️ Работа с if-else в Python

if-else — это условная конструкция в Python для проверки условий.

Синтаксис:
x = 10

if x > 5:
print("Больше 5")
else:
print("Меньше или равно 5")


Можно добавлять elif (дополнительные условия):
x = 3

if x > 5:
print("Больше 5")
elif x == 5:
print("Равно 5")
else:
print("Меньше 5")


✔️ if-else помогает управлять логикой программы и выполнять код в зависимости от условий.
Списковые выражения (List Comprehensions)

Списковое выражение — это компактный способ создать список на основе другого и сразу применить к нему трансформацию или фильтр.

➡️ Пример:
# Квадраты чётных чисел от 0 до 9
squares = [x**2 for x in range(10) if x % 2 == 0]
print(squares) # [0, 4, 16, 36, 64]


✔️ Такой способ короче и читаемее, чем использование цикла for. Подходит для простых операций над списками.