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

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

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Что выведет следующий код?
Anonymous Quiz
14%
10
19%
5
62%
15
5%
Ошибка выполнения
⚙️ Циклы 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)


➡️ Такой способ помогает легко перебирать индексы, повторять действия заданное число раз или строить простые циклы без списков.
👀 Типизация в 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!


Аннотации не обязательны, но делают код чище и понятнее, особенно в больших проектах.
Что выведет следующий код?
Anonymous Quiz
26%
Hello
60%
Before, Hello, After
7%
Before, After
7%
Ошибка выполнения
🧠 Словари в Python: быстрое хранение данных по ключу

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

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

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


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

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

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

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

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

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


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

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

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

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

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


None — это объект, у него свой тип NoneType. Сравнивать нужно через is, а не ==.
RAG-технология в действии: как создать интеллектуальную систему поиска по нормативным документам

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

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

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

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

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

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

😶Зарегистрироваться на бесплатный вебинар
Зачем нужен декоратор @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 удобно использовать, когда нужно создавать объекты разными способами или работать с классом напрямую, не привязываясь к конкретному экземпляру.
Функция zip() в Python

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

⚡️ Пример:

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

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


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

Если длины списков разные, объединение остановится на самом коротком.
⚡️ Что такое функции высшего порядка в Python?

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

➡️ Пример:

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

def square(x):
return x * x

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


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