2619
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @it_dashka 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython
👩💻 slice — продвинутая нарезка последовательностей
Объект slice позволяет создавать диапазоны с шагом, которые можно применять к спискам, строкам и другим последовательностям.
➡️ Пример:
text = "Программирование"
s = slice(0, 10, 2)
print(text[s]) # Погрмр
slice(start, stop, step) — аналог среза text[0:10:2], но его можно передавать как переменную.Полезно, когда срез нужно вычислять динамически или передавать в функциюЧитать полностью…
👩💻 collections.Counter — быстрый подсчёт элементов
Класс Counter из модуля collections — это удобный способ посчитать, сколько раз каждый элемент встречается в последовательности.
➡️ Пример:
from collections import Counter
words = ["яблоко", "банан", "яблоко", "вишня", "банан", "банан"]
counted = Counter(words)
print(counted)
Counter({'банан': 3, 'яблоко': 2, 'вишня': 1})
.most_common(), сложение/вычитание счётчиков и другие операции.
👩💻 walrus оператор := — присваивание внутри выражений
Оператор :=, прозванный "моржовым" (walrus operator), позволяет присваивать значение переменной прямо внутри выражения — например, в условии if или while.
➡️ Пример:
data = input("Введите имя (или leave): ")
while (name := data) != "leave":
print(f"Привет, {name}!")
data = input("Введите имя (или leave): ")
👩💻 enumerate() — индексы и значения в одном цикле
Функция enumerate() позволяет перебрать элементы последовательности вместе с их индексами.
Это чище и безопаснее, чем range(len(...)).
names = ["Анна", "Борис", "Вера"]
for i, name in enumerate(names):
print(f"{i}: {name}")
0: Анна
1: Борис
2: Вера
👩💻 id() — уникальный идентификатор объекта
Функция id() возвращает уникальный идентификатор объекта в памяти во время его жизни.
Это полезно для понимания ссылочной природы переменных.
b = a
print(id(a)) # Например: 140712695187008
print(id(b)) # Тот же самый ID
👩💻 globals() и locals() — доступ к пространству имён
В Python функции globals() и locals() возвращают словари с текущими переменными — глобальными и локальными соответственно. Это даёт прямой доступ к пространству имён программы.
➡️ Пример:
x = 10
def demo():
y = 5
print("Локальные:", locals())
print("Глобальные:", globals()["x"])
demo()
Локальные: {'y': 5}
Глобальные: 10
🟢Отладка и инспекция переменных
🟢Динамическое выполнение кода (eval, exec)
🟢Построение интерактивных сред (например, REPL или дебаггеры)
🔹 dict.keys(), values(), items() — перебор словаря
Методы keys(), values() и items() позволяют удобно перебирать словарь.
➡️ Пример:
user = {"name": "Анна", "age": 28}
for key, value in user.items():
print(f"{key}: {value}")
name: Анна
age: 28items() возвращает пары ключ–значение, keys() — только ключи, values() — только значения.
🔹 isinstance() — проверка типа объектаisinstance() используется для проверки, принадлежит ли объект к определённому типу (или нескольким типам).
➡️ Пример:
x = 3.14
if isinstance(x, (int, float)):
print("Это число")
Это число
Полезно для валидации входных данных и написания гибких функций.
🔹 zip() + unpacking — параллельный перебор списков
С помощью zip() можно перебирать несколько списков одновременно.
А с распаковкой (*) удобно разъединять обратно.
➡️ Пример:
names = ["Анна", "Борис", "Вера"]
scores = [90, 85, 78]
for name, score in zip(names, scores):
print(f"{name}: {score}")
Анна: 90
Борис: 85
Вера: 78
zip() помогает работать с данными построчно и синхронно.zip(*iterable) делает обратное — трансформирует строки в колонки.
Читать полностью…
🔹 list comprehension — создание списков в одну строку
Списковые включения позволяют создавать списки на основе других коллекций кратко и читаемо.
➡️ Пример:
squares = [x**2 for x in range(1, 6)]
print(squares)
[1, 4, 9, 16, 25]
Подходит для фильтрации, преобразования и генерации данных без лишнего кода.Читать полностью…
🔹 lambda — анонимные функции в одну строку
lambda позволяет создавать небольшие функции без имени. Полезно для простых операций, особенно в сочетании с map(), filter() и sorted().
➡️ Пример:
square = lambda x: x ** 2
print(square(5)) # Вывод: 25
Такая функция не требует def и может быть использована сразу, "на месте". Подходит для одноразовых действий, когда обычная функция — избыточна.Читать полностью…
❓ Зачем используется функция filter() в Python и когда её применять?
Функция filter() возвращает итератор, содержащий только те элементы из итерируемого объекта, для которых заданная функция возвращает True. Это удобно, когда нужно отфильтровать данные по условию, не создавая лишних списков вручную.
✅ Пример:
users = [
{"name": "Alice", "active": True},
{"name": "Bob", "active": False},
{"name": "Charlie", "active": True}
]
active_users = list(filter(lambda u: u["active"], users))
print(active_users)
# ➜ [{'name': 'Alice', 'active': True}, {'name': 'Charlie', 'active': True}]
filter() возвращает только активных пользователей.filter() удобно использовать для очистки данных, предобработки перед ML, фильтрации списков, словарей и генераторов. Это делает код компактным и избавляет от явных циклов, особенно в функциональном стиле.Читать полностью…
🔹 dict.get() — безопасное получение значения по ключу
Метод get() возвращает значение из словаря по ключу. Если ключа нет — возвращает None или значение по умолчанию.
➡️ Пример:
user = {"name": "Анна", "age": 28}
print(user.get("name")) # Анна
print(user.get("email")) # None
print(user.get("email", "-")) # -Удобно, когда не уверен, что ключ точно есть в словаре — исключения не будет.Читать полностью…
👩💻 setdefault() — безопасное добавление в словарь
Метод setdefault() используется для получения значения по ключу из словаря, одновременно создавая его, если ключа ещё нет.
➡️ Пример:
data = {}
data.setdefault("users", []).append("Анна")
data.setdefault("users", []).append("Борис")
print(data)
{'users': ['Анна', 'Борис']}if key not in dict.
Читать полностью…
❓ Зачем используется метод strip() в Python и когда его применять?
Метод strip() удаляет начальные и конечные пробелы (а также другие переданные символы) из строки. Это удобно для очистки ввода, сравнения данных и предобработки текста.
✅Пример:
user_input = " hello world "
cleaned = user_input.strip()
print(cleaned)
# ➜ "hello world"
strip() убирает лишние пробелы по краям строки, оставляя только значимый текст.strip() удобно использовать при чтении из файлов, работе с формами, разборе CSV/JSON и валидации пользовательского ввода. Также существуют .lstrip() и .rstrip() — для удаления только слева или справа. Метод делает работу с текстом точной и предсказуемойЧитать полностью…
👩💻 any() и all() — проверка условий для коллекций
Функции any() и all() позволяют проверить, соответствуют ли элементы коллекции какому-либо условию.
🟢any() возвращает True, если хотя бы один элемент — истинный
🟢all() возвращает True, если все элементы — истинные
scores = [80, 90, 75, 0]
print(any(scores)) # True — есть хотя бы одно ненулевое значение
print(all(scores)) # False — есть 0
👩💻 lambda — анонимные функции в одну строкуlambda в Python позволяет создавать короткие безымянные функции "на лету".
🗣️ Полезно для простых операций, особенно при работе с функциями высшего порядка (map, filter, sorted и др).
nums = [3, 1, 5, 2, 4]
# Сортируем по убыванию с помощью lambda
sorted_nums = sorted(nums, key=lambda x: -x)
print(sorted_nums) # [5, 4, 3, 2, 1]
❓ Зачем используется функция set() в Python и когда её применять?
Функция set() создаёт множество — неупорядоченную коллекцию уникальных элементов. Это удобно, когда нужно удалить дубликаты или быстро проверять наличие значения.
✅Пример:
items = ["apple", "banana", "apple", "orange", "banana"]
unique_items = list(set(items))
print(unique_items)
# ➜ ['orange', 'banana', 'apple']
set() удаляет повторы из списка, возвращая только уникальные элементы.set() удобно использовать для фильтрации, проверки пересечений (&), объединения (|) и вычитания множеств. Это особенно полезно при обработке данных, проверке прав доступа, поиске уникальных значений или сравнении коллекцийЧитать полностью…
Как сказать рутине STOP?
Ускорьте рабочие процессы и освободите время для более интересных дел — с помощью курса Слёрма «Python для инженеров» 👈
Это обучение, заточенное на инженеров — в нём нет ничего лишнего, только то, что необходимо именно вам.
На курсе вы научитесь:
🔹 писать эффективный и поддерживаемый код;
🔹 писать Kubernetes-операторы и модули для Ansible;
🔹 создавать, использовать и тестировать свои API;
🔹 взаимодействовать с инструментами CI/CD, CVS и DevOps системами.
Есть бесплатный демодоступ.
Старт 11 августа. Занять своё место на курсе — по ссылке.
🔹 try-except — обработка ошибок в Python
Конструкция try-except позволяет перехватывать ошибки во время выполнения и избегать падения программы.
➡️ Пример:
user_input = "42a"
try:
number = int(user_input)
print("Число:", number)
except ValueError:
print("Ошибка: это не целое число")
Ошибка: это не целое число
Можно добавить else и finally для дополнительной логики.Читать полностью…
🔹 range + len — индексы без enumerate
Если нужен доступ к элементам списка и их индексам, но без enumerate(), можно использовать range(len(...)).
➡️ Пример:
fruits = ["яблоко", "банан", "груша"]
for i in range(len(fruits)):
print(f"{i}: {fruits[i]}")
0: яблоко
1: банан
2: груша
Такой способ часто используется, если нужно изменять элементы списка по индексу.Читать полностью…
🔹 set() — быстрое удаление дубликатов
Множество (set) хранит только уникальные значения.
Используется для удаления повторов и быстрой проверки принадлежности.
➡️ Пример:
numbers = [1, 2, 2, 3, 4, 4, 5]
unique = list(set(numbers))
print(unique)
[1, 2, 3, 4, 5]
❓ Зачем используется функция zip() в Python и когда её применять
Функция zip() объединяет несколько итерируемых объектов, возвращая итератор кортежей, где каждый кортеж содержит элементы с одинаковым индексом из всех коллекций.
Это удобно для синхронной обработки данных из разных источников.
✅ Пример:
names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]
for name, score in zip(names, scores):
print(f"{name}: {score}")
# ➜ Alice: 85
# ➜ Bob: 92
# ➜ Charlie: 78
zip() удобно использовать при работе с таблицами, конфигурациями, CSV-данными, векторными операциями и в ML — когда нужно синхронно итерироваться по признакам и меткам. Код получается чище и безопаснее, чем ручной перебор с индексами.Читать полностью…
🔹 Тернарный оператор — короткий if в одну строку
В Python можно записать простое условие в одну строку с помощью тернарного оператора.
Формат: a if условие else b
➡️ Пример:
age = 18
status = "взрослый" if age >= 18 else "несовершеннолетний"
print(status)
взрослый
Удобно для присваивания значений на основе условий без многострочного if.Читать полностью…
🔹 Что делает *
Распаковывает позиционные значения — элементы из списка, кортежа, строки и т.д.
Пример:
numbers = [1, 2, 3]
print(*numbers) # Вывод: 1 2 3
a = [1, 2]
b = [3, 4]
combined = [*a, *b] # [1, 2, 3, 4]
Также *args используется в функциях для сбора неограниченного числа аргументов.
**def greet(name, age):
print(f"{name}, {age} лет")
data = {"name": "Анна", "age": 30}
greet(**data) # Эквивалентно greet(name="Анна", age=30)
Также **kwargs используется для сбора именованных аргументов внутри функций.
• Удобно передавать аргументы из коллекцийЧитать полностью…
• Компактно объединять и копировать структуры
• Повышает читаемость и гибкость кода
🔹 enumerate() — индексы в цикле for
Функция enumerate() позволяет перебирать элементы вместе с их индексами.
Удобна при работе со списками, когда нужен и элемент, и его позиция.
➡️ Пример:
fruits = ["яблоко", "банан", "вишня"]
for index, fruit in enumerate(fruits):
print(index, fruit)
0 яблоко
1 банан
2 вишня
enumerate() делает код чище и заменяет ручной счётчик.Читать полностью…
🔹 set() — создание множества в Pythonset() создаёт коллекцию уникальных элементов. Повторяющиеся значения автоматически удаляются.
➡️ Пример:
numbers = [1, 2, 2, 3, 3, 3]
unique = set(numbers)
print(unique)
{1, 2, 3}
Множества полезны для удаления дубликатов, математических операций (пересечение, объединение) и быстрых проверок принадлежности.Читать полностью…