byteofpython | Unsorted

Telegram-канал byteofpython - 🐍 Укус питона 🐍

2619

🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @it_dashka 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython

Subscribe to a channel

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

🔹 Итераторы в Python — пошаговый доступ к данным

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

➡️ Пример:

my_list = [1, 2, 3]
it = iter(my_list)

print(next(it)) # Вывод: 1
print(next(it)) # Вывод: 2


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

✔️ Используйте их в циклах и для последовательного доступа к данным.

Читать полностью…

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

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

Функция map() применяется для преобразования каждого элемента итерируемого объекта с помощью переданной функции. Это позволяет лаконично и эффективно обрабатывать коллекции данных.

✅ Пример:


numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # [1, 4, 9, 16]


📌 В этом примере функция map() применяет лямбда-функцию ко всем элементам списка, возвращая новый список с квадратами чисел.

map() удобно использовать, когда нужно преобразовать каждый элемент коллекции, например, при форматировании данных или проведении математических операций.

Читать полностью…

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

🔹 Списочные включения (List Comprehensions) в Python

Списочные включения позволяют компактно создавать списки на основе существующих.
Их удобно использовать для фильтрации, трансформации и создания новых списков.

➡️ Пример:

numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares) # Вывод: [1, 4, 9, 16, 25]


Быстро и лаконично: квадрат каждого элемента из исходного списка.

Используйте списочные включения для краткости и читаемости кода.

Читать полностью…

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

🔹 Генераторы в Python — ленивые итерации

Генераторы позволяют создавать последовательности без хранения всех элементов в памяти.

Они работают "лениво" — вычисляют значения по мере необходимости.

➡️ Пример:

def countdown(n):
while n > 0:
yield n
n -= 1

for num in countdown(5):
print(num)

5
4
3
2
1


🗣️ Генераторы экономят память и удобны для обработки больших данных.

Читать полностью…

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

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

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

Это полезно для создания пар значений из разных списков.


✅ Пример:

names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]

for name, age in zip(names, ages):
print(f"{name} — {age} лет")


📌 В этом примере функция zip() объединяет два списка в пары, создавая удобные кортежи для вывода.

zip() удобно использовать для обработки связанных данных, создания словарей из двух списков и итерации по нескольким коллекциям одновременно.

Читать полностью…

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

🔹 Декораторы в Python — обёртка для функций

Декораторы позволяют модифицировать поведение функции без изменения её кода.
Используются для логирования, проверки прав доступа, кеширования и других задач.

Декоратор — это функция, которая принимает другую функцию как аргумент и возвращает новую функцию.

➡️ Пример:

def my_decorator(func):
def wrapper():
print("Выполнение функции:")
func()
print("Завершено.")
return wrapper

@my_decorator
def say_hello():
print("Привет, мир!")

say_hello()

Выполнение функции:
Привет, мир!
Завершено.


🔍 Здесь декоратор @my_decorator оборачивает функцию say_hello(), добавляя вывод до и после её выполнения.

Это удобно для повторяющихся действий — логирование, проверка доступа и т.д.


Используйте декораторы для улучшения кода без дублирования логики.

Читать полностью…

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

🔹 if / elif / else — условные конструкции

Условные конструкции управляют логикой выполнения кода.

x = 10

if x > 0:
print("Положительное")
elif x == 0:
print("Ноль")
else:
print("Отрицательное")


Блок if проверяет условие. elif — альтернативные варианты. else — всё остальное.

❗️ Отступы обязательны.

Читать полностью…

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

Зачем нужен оператор walrus := в Python и когда его использовать?

Оператор присваивания :=, известный как walrus-оператор, позволяет одновременно присвоить значение переменной и использовать его в выражении. Это полезно для сокращения кода и повышения читаемости.

✅ Пример:

if (n := len([1, 2, 3, 4])) > 3:
print(f"Список длинный: {n} элемента(ов)")


📌 В этом примере длина списка сохраняется в переменную n прямо внутри условия if, без отдельной строки присваивания.

walrus-оператор удобно использовать в циклах, условиях и генераторах, где нужно сохранить значение и сразу же его проверить или использовать.

Читать полностью…

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

🔄 Циклы в Python: for и while

Циклы позволяют выполнять повторяющиеся действия без копирования кода.

for используется для перебора коллекций (списков, строк, множеств и т.д.):

fruits = ["apple", "banana", "cherry"]

for fruit in fruits:
print(fruit)


Проходится по каждому элементу коллекции один раз.

while выполняет код, пока условие истинно:
count = 0

while count < 3:
print(count)
count += 1


Подходит, когда заранее неизвестно, сколько раз нужно повторить действия.

Важно: следи за условиями выхода из цикла, иначе получится бесконечный цикл.

Читать полностью…

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

⚡️ Что такое списковые включения (list comprehensions) в Python?

Списковые включения позволяют создавать списки компактно и понятно, объединяя цикл и условие в одну строку.

➡️ Пример:

# Создаём список квадратов чисел от 0 до 4
squares = [x**2 for x in range(5)]
print(squares) # [0, 1, 4, 9, 16]


🗣 В этом примере используется одна строка вместо нескольких, чтобы получить новый список на основе преобразования элементов. Это делает код короче и чище.

Читать полностью…

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

Функция zip() в Python

zip() — встроенная функция, которая объединяет несколько итерируемых объектов в кортежи. Она позволяет удобно "сшивать" списки вместе.

⚡️ Пример:

names = ['Анна', 'Борис', 'Виктор']
scores = [85, 90, 78]

result = list(zip(names, scores))
print(result)
# [('Анна', 85), ('Борис', 90), ('Виктор', 78)]


zip() полезен для параллельной обработки данных и создания пар значений из разных коллекций.

Если длины списков разные, объединение остановится на самом коротком.

Читать полностью…

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

⚡️Анализируем продажи на Wildberries с помощью Python

С каждым днем все больше бизнесов выходят на маркетплейсы, а значит еще более ценными становятся аналитики, которые умеют с ними работать. Хотите за несколько часов собрать интересный кейс для своего портфолио?

Андрон Алексанян - эксперт по аналитике с 8 летним опытом и по совместительству CEO Simulative в прямом эфире проанализирует продажи на Wildberries с помощью Python.

Что будет на вебинаре:

🟠Напишем скрипт на Python, который каждый час собирает статистику о ранжировании карточки на WB по ключевым запросам;
🟠Построим наглядные визуализации для отслеживания динамики ранжирования.

Важно досмотреть вебинар до конца, чтобы узнать как упаковать этот кейс в портфолио своих проектов.

😶Зарегистрироваться на бесплатный вебинар

Читать полностью…

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

📌 Тип данных None в Python

None — это специальное значение, обозначающее «ничего» или «отсутствие значения». Часто используется как значение по умолчанию или чтобы показать, что результат не был вычислен.

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

def greet(name=None):
if name is None:
print("Привет, гость!")
else:
print(f"Привет, {name}!")

greet() # Привет, гость!
greet("Анна") # Привет, Анна!


None — это объект, у него свой тип NoneType. Сравнивать нужно через is, а не ==.

Читать полностью…

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

🧠 Словари в Python: быстрое хранение данных по ключу

Словарь (dict) — структура данных, где каждому уникальному ключу соответствует значение. Полезен, когда нужен быстрый доступ к данным по имени, ID и т.д.

user = {'name': 'Анна', 'age': 25}
print(user['name']) # Анна

# Добавление нового поля
user['email'] = 'anna@example.com'
print(user)


🔹 Ключи должны быть неизменяемыми (строки, числа, кортежи).
🔹 Доступ и изменение по ключу — за константное время.

📌 Используйте словари, когда нужен быстрый доступ к данным по метке.

Читать полностью…

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

👀 Типизация в Python

Python — динамически типизируемый язык, но с версии 3.5+ поддерживает аннотацию типов. Это не делает язык статически типизированным, но помогает с автодополнением, отладкой и документацией.

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

def greet(name: str, times: int) -> str:
return (f"Hello, {name}! " * times).strip()

print(greet("Alice", 2)) # Hello, Alice! Hello, Alice!


Аннотации не обязательны, но делают код чище и понятнее, особенно в больших проектах.

Читать полностью…

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

🔹 Кортежи в Python — неизменяемые последовательности

Кортежи (tuple) — это упорядоченные коллекции, которые нельзя изменить после создания.

Они занимают меньше памяти, чем списки, и подходят для хранения постоянных данных.

➡️ Пример:

coordinates = (10, 20)
print(coordinates[0]) # Вывод: 10


Кортежи полезны для данных, которые не должны изменяться, например, координаты, настройки или константы.

⚠️ Используйте их для оптимизации и защиты от случайного изменения.

Читать полностью…

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

🔹 Множества в Python — уникальные элементы

Множества (set) — неупорядоченные коллекции, содержащие только уникальные элементы.
Они быстро выполняют операции объединения, пересечения и разности.

➡️ Пример:

numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers) # Вывод: {1, 2, 3, 4, 5}


Множества автоматически удаляют дубликаты и подходят для работы с уникальными значениями.

Читать полностью…

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

🔹 Лямбда-функции в Python — компактные выражения

Лямбда-функции — это короткие анонимные функции, которые создаются с помощью ключевого слова lambda.

Они часто используются для простых операций и в качестве аргументов функций высшего порядка.

➡️ Пример:


square = lambda x: x ** 2
print(square(5)) # Вывод: 25


Лямбда-функции удобны для создания небольших одноразовых вычислений, когда полноценная функция избыточна.

Читать полностью…

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

🔹 Словари в Python — удобное хранение данных

Словарь (dict) — структура данных, хранящая пары "ключ: значение".

Ключи уникальны и неизменяемы (например, строки, числа), значения могут быть любыми.

➡️ Пример:

person = {
"name": "Анна",
"age": 25,
"city": "Москва"
}

print(person["name"]) # Вывод: Анна


Чтобы получить значение, указывайте ключ в квадратных скобках.

Используйте словари для структурированных данных и быстрого доступа по ключу.

Читать полностью…

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

🔹 Исключения в Python — обработка ошибок

Исключения помогают обрабатывать ошибки, не прерывая выполнение программы.

Для этого используются конструкции try, except и, при необходимости, finally.

➡️ Пример:

try:
x = int(input("Введите число: "))
result = 10 / x
print(f"Результат: {result}")
except ZeroDivisionError:
print("Ошибка: деление на ноль!")
except ValueError:
print("Ошибка: нужно ввести число.")


Если вводить некорректные данные (например, текст вместо числа или ноль), программа не завершится аварийно, а отработает с сообщением об ошибке.


Используйте исключения для безопасного выполнения кода.

Читать полностью…

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

🔹 Функции в Python — базовый синтаксис

Функции помогают структурировать код и избежать повторений.

Объявляются с помощью ключевого слова def.

➡️ Пример:


def greet(name):
return f"Привет, {name}!"

print(greet("Анна"))

Привет, Анна!


➡️ Используйте функции для повторяющихся операций и улучшения читаемости кода.

Читать полностью…

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

🔹 range() — генератор чисел

range() используется для генерации последовательностей чисел.
Часто применяется в циклах for.

Формат: range(start, stop, step)

➡️ Пример:

python
Копировать
Редактировать
for i in range(1, 6):
print(i)

1
2
3
4
5


range() не включает верхнюю границу (stop), работает быстро и не хранит все числа в памяти

Читать полностью…

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

Как сделать RAG для своей компании

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

Читать полностью…

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

⚙️ Python: Переменные и типы данных

В Python переменные создаются при первом присваивании значения. Тип данных определяется автоматически.

✔️ Основные типы:

int — целое число
float — число с плавающей точкой
str — строка
bool — логический тип (True или False)

➡️ Пример:

age = 25         # int
height = 1.75 # float
name = "Alice" # str
is_active = True # bool

print(type(age), type(name))


☝ Запомни: тип переменной можно проверить через type().

Читать полностью…

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

⚡️ Что такое функции высшего порядка в Python?

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

➡️ Пример:

def apply(func, value):
return func(value)

def square(x):
return x * x

result = apply(square, 5)
print(result) # 25


🗣 В этом примере apply принимает функцию square и значение, применяя функцию к значению. Это позволяет строить более гибкий и переиспользуемый код.

Читать полностью…

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

❓ Зачем нужен декоратор @classmethod в Python и когда его использовать?

Декоратор @classmethod позволяет создавать методы, которые получают в качестве первого аргумента сам класс (cls), а не экземпляр (self). Это полезно для создания альтернативных конструкторов и работы с атрибутами класса.

✅ Пример:

class Person:
def init(self, name):
self.name = name

@classmethod
def from_dict(cls, data):
return cls(data["name"])

data = {"name": "Alice"}
person = Person.from_dict(data)
print(person.name)


📌 В этом примере from_dict создает новый экземпляр класса Person, используя данные из словаря.

@classmethod удобно использовать, когда нужно создавать объекты разными способами или работать с классом напрямую, не привязываясь к конкретному экземпляру.

Читать полностью…

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

RAG-технология в действии: как создать интеллектуальную систему поиска по нормативным документам

Покажу, как я сделал RAG на Python для ответов по СНиПам, СП и ГОСТам. Всё работает в Telegram-боте с цитатами и ссылками на страницы. Подходит для любых текстовых баз знаний

Читать полностью…

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

🐍 Именованные аргументы в Python

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

📌 Используются в функциях с несколькими параметрами, особенно если есть значения по умолчанию.

def greet(name, greeting="Привет"):
print(f"{greeting}, {name}!")

greet("Анна") # Привет, Анна!
greet(name="Иван", greeting="Здравствуйте") # Здравствуйте, Иван!


✔️ Такой стиль помогает избежать ошибок и делает код само-документируемым.

Читать полностью…

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

Реальные проекты и отличная возможность для старта карьеры: Летняя школа бэкенд‑разработки Яндекса открыла набор

Начинающие бэкендеры, есть планы на лето? Летняя школа бэкенда — ваш шанс прокачаться в разработке, даже если вы обладаете базовыми знаниями в Python, Java или C++.

Как проходит обучение:
со 2 июня по 27 июля — онлайн-лекции, семинары и практические задания
с 28 июля по 24 августа — разработка реальных проектов офлайн или онлайн

Вас ждут:
— работа в фулстек-командах в коворкингах Яндекса
— лекции от специалистов компании в летнем лектории
возможность стать частью команды и получить офер: больше половины выпускников становятся стажерами или сотрудниками компании

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

Читать полностью…

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

⚙️ Циклы for с range()

В Python for часто используется вместе с range() для повторения действий. range(start, stop, step) создаёт последовательность чисел. Если указать только одно число — это будет stop, а start считается равным 0.

# Выводит числа от 0 до 4
for i in range(5):
print(i)

# Выводит чётные числа от 2 до 10
for i in range(2, 11, 2):
print(i)


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

Читать полностью…
Subscribe to a channel