🐍 Укус питона 🐍
前往频道在 Telegram
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @tg_adminisrator 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython
显示更多2 334
订阅者
无数据24 小时
-117 天
-3730 天
帖子存档
2 334
👩💻 collections.namedtuple — удобные кортежи с именами
namedtuple из модуля collections создаёт кортежи, у которых есть имена полей.
Это делает код более читаемым по сравнению с обычными кортежами➡️ Пример:
from collections import namedtuple
Point = namedtuple("Point", ["x", "y"])
p = Point(2, 5)
print(p.x, p.y) # 2 5
📌 Такой объект лёгкий как кортеж, но использовать его удобнее, чем словарь или класс
2 334
❓ Зачем используется оператор
in в Python и когда его применять?
Оператор in проверяет, содержится ли элемент в последовательности (строке, списке, кортеже, множестве или словаре). Это удобный и читаемый способ выполнять проверки принадлежности.
✅Пример:
fruits = ["apple", "banana", "orange"]
print("apple" in fruits) # ➜ True
print("grape" in fruits) # ➜ False
📌В этом примере оператор in проверяет, есть ли элемент в списке.
in удобно использовать для поиска в коллекциях, фильтрации данных, проверки ключей в словарях и работы с текстом. Он делает код компактным и понятным, избавляя от явных циклов
2 334
👩💻 itertools.product — все комбинации элементов
itertools.product() создаёт декартово произведение — все возможные комбинации элементов из нескольких последовательностей
➡️ Пример:
from itertools import product
colors = ["red", "green"]
sizes = ["S", "M", "L"]
for combo in product(colors, sizes):
print(combo)
('red', 'S')
('red', 'M')
('red', 'L')
('green', 'S')
('green', 'M')
('green', 'L')
📌 Полезно при генерации вариантов, тестов или переборе параметров
2 334
👩💻 zip — объединение коллекций по элементам
Функция
zip() объединяет элементы нескольких последовательностей в кортежи по индексам.
Работает до конца самой короткой коллекции
➡️ Пример:
names = ["Анна", "Борис", "Вера"]
scores = [95, 88, 76]
for name, score in zip(names, scores):
print(f"{name}: {score}")
Анна: 95
Борис: 88
Вера: 76
📌 Удобно для параллельного перебора списков
2 334
👩💻 *args и kwargs — гибкие аргументы функций
В Python можно передавать переменное количество аргументов в функцию:
🟢
*args собирает позиционные аргументы в кортеж
🟢**kwargs собирает именованные аргументы в словарь
➡️ Пример:
def show_info(*args, **kwargs):
print("args:", args)
print("kwargs:", kwargs)
show_info(1, 2, 3, name="Анна", age=25)
args: (1, 2, 3)
kwargs: {'name': 'Анна', 'age': 25}
📌 Удобно для написания универсальных функций и работы с динамическими параметрами
2 334
👩💻 name == "main" — точка входа в программу
В Python каждый файл можно запускать напрямую или импортировать как модуль.
Переменная
__name__ помогает отличить эти случаи.
➡️ Пример:
def greet():
print("Привет!")
if __name__ == "__main__":
greet() # выполнится только при прямом запуске файла
📌 Это позволяет писать код, который работает и как самостоятельная программа, и как импортируемый модуль без лишних запусков
2 334
❓ Зачем используется метод
pop() в Python и когда его применять?
Метод pop() удаляет элемент из списка по индексу и возвращает его. По умолчанию убирается последний элемент. Это удобно, когда нужно извлечь и использовать данные, одновременно убрав их из коллекции.
✅Пример:
numbers = [10, 20, 30, 40]
last = numbers.pop()
print(last) # ➜ 40
print(numbers) # ➜ [10, 20, 30]
first = numbers.pop(0)
print(first) # ➜ 10
print(numbers) # ➜ [20, 30]
📌В этом примере pop() сначала удаляет последний элемент, затем — первый.
pop() удобно использовать при работе со стеками и очередями, а также когда нужно пошагово обрабатывать список, убирая уже использованные элементы
2 334
👩💻 isinstance vs type — как правильно проверять типы
В Python для проверки типа объекта есть два подхода:
•
type(obj) — строгая проверка на конкретный класс
• isinstance(obj, Class) — проверка с учётом наследования.
➡️ Пример:
class Animal: pass
class Dog(Animal): pass
d = Dog()
print(type(d) == Animal) # False
print(isinstance(d, Animal)) # True
📌 Обычно лучше использовать isinstance, так как он учитывает наследование и делает код гибче
