Python Map | Обучение
247 subscribers
196 photos
4 videos
1 file
85 links
Образовательный канал для программистов на Python 🐍

Сотрудничество – @HackingIP
Download Telegram
Метод str.zfill()

Метод zfill используется для дополнения строки нулями слева до заданной длины. Это особенно полезно при форматировании чисел, чтобы обеспечить одинаковую длину и выравнивание.

Синтаксис:
str.zfill(width)


Параметры:
- width: Длина результирующей строки. Если строка уже длиннее указанной длины, zfill() не изменяет её.

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

num = "42"
print(num.zfill(5)) # Вывод: 00042

neg_num = "-3"
print(neg_num.zfill(4)) # Вывод: -003

pos_num = "+5"
print(pos_num.zfill(4)) # Вывод: +005

big_num = "1234"
print(big_num.zfill(3)) # Вывод: 1234


Основные моменты:
- Метод добавляет нули только слева от строки.
- Если строка содержит знак '-' или '+', он будет расположен перед нулями.
- Это полезно для форматирования строк чисел, например, в табличных данных или выводе.

🐍 Python Map | Обучение
Модуль functools: декоратор singledispatch

singledispatch — это декоратор из модуля functools в Python, который позволяет создавать функции с перегрузкой на основе типа аргумента. Он позволяет определить одну и ту же функцию для разных типов данных, что делает код более чистым.

Особенности:

1. Основное предназначение: Создание базовой функции с различными реализациями для разных типов аргументов.
2. Применение: Декоратор применяется к функции, с помощью метода .register() можно добавлять реализации для других типов.
3. Использование с пользовательскими классами: Можно регистрировать функции для собственных типов и классов.
4. Преимущества:
- Избегает множества условий if и elif.
- Упрощает поддержку кода при добавлении новых типов.

Таким образом, singledispatch является мощным инструментом для реализации полиморфизма в Python, позволяя элегантно обрабатывать различные типы данных в одной функции.


🐍 Python Map | Обучение
🔥3
Модуль Pydantic

Pydantic — библиотека для Python, предназначенная для создания и валидации данных. Она позволяет определять схемы данных с помощью классов и аннотаций типов, что делает код более читаемым и надежным.

📝 Особенности:

1. Валидация данных
2. Аннотации типов
3. Поддержка вложенных моделей
4. Автоматическое преобразование типов
5. Поддержка JSON

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

from pydantic import BaseModel

class User(BaseModel):
id: int
name: str
email: str

user = User(id=1, name="Иван", email="[email protected]")
print(user)


⬇️ Установка библиотеки:

pip install pydantic


Pydantic особенно полезен в приложениях, требующих строгой валидации данных, таких как веб-приложения с API.


🐍 Python Map | Обучение
2
Генераторы

Генераторы — это итераторы, которые создают последовательности значений на лету с помощью ключевого слова yield, обеспечивая эффективное использование памяти и упрощая работу с большими объемами данных.

🔍 Основные особенности:

1. Генератор — функция, возвращающая объект-генератор. Вместо return используется yield для поочередного возвращения значений, сохраняя состояние между вызовами.

2. При вызове генератора выполнение начинается с первой строки. При yield функция возвращает значение и приостанавливает выполнение, продолжая с этой строки при следующем вызове.

3. Генераторы можно использовать в циклах for для удобной итерации по значениям.

🎯 Преимущества генераторов:

- Экономия памяти: Генераторы создают значения по мере необходимости, не храня их в памяти.
- Упрощение кода: Позволяют писать более чистый и понятный код, особенно с большими данными или бесконечными последовательностями.

🐍 Python Map | Обучение
🔥2
Функция locals()

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

👀 Смотрите также: nonlocal, global

Когда это полезно?

* Отладка: locals() помогает инспектировать состояние локальных переменных в определённой точке выполнения кода.

* Динамическое создание кода: Может использоваться для генерации имен переменных во время выполнения, хотя это не лучший стиль программирования из-за сложности и снижения читаемости.

* Проверка состояния: Позволяет проверить, какие переменные существуют в определённой области видимости.

🐍 Python Map | Обучение
2
Модуль sys: функция intern

Функция sys.intern оптимизирует хранение строк в памяти, сохраняя только одну копию строки. Это снижает потребление памяти, особенно при работе с множеством одинаковых строк.

👀 Смотрите также: is vs ==

Как работает sys.intern?


При вызове sys.intern(string) Python проверяет, существует ли уже интернированная версия строки. Если да, возвращается ссылка на неё; если нет, строка интернируется, и создаётся новая ссылка. Все интернированные строки с одинаковым содержимым будут ссылаться на одну область памяти.

Когда использовать sys.intern?

* При обработке больших наборов данных с повторяющимися строками для снижения потребления памяти.

* При частом сравнении строк для ускорения процесса, так как сравнение ссылок быстрее, чем сравнение содержимого.

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

🐍 Python Map | Обучение
🔥3
Отладка кода вдвое сложнее, чем его написание

#юмор
💯3
Python Map | Обучение
Photo
Сложная сортировка

В Python сортировка по нескольким критериям осуществляется с помощью функции sorted() или метода sort() с параметром key, который принимает функцию.
Переданная функция вычисляет результат для каждого элемента последовательности, который используется для сравнения элементов при сортировке.

Например, у вас есть список кортежей с информацией о людях:

people = [
('Bob', 30, 'New York'),
('Alice', 25, 'Los Angeles'),
('Charlie', 30, 'Chicago'),
('David', 25, 'New York')
]


Чтобы отсортировать по возрасту (возрастание) и затем по имени (алфавитно), используйте:

sorted(people, key=lambda person: (person[1], person[0]))


В этом примере lambda person: (person[1], person[0])анонимная функция, возвращающая кортежи (возраст, имя) для сортировки. Сначала сравниваются возрасты, затем при равных возрастах — имена.

Для сортировки по возрасту (убывание) и имени (алфавитно):

sorted(people, key=lambda person: (-person[1], person[0]))


Знак - перед person[1] обеспечивает сортировку по возрасту в убывающем порядке.

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


🐍 Python Map | Обучение
👍3🤝1
Моржовый оператор

Моржовый оператор (walrus operator) в Python — это синтаксическая конструкция :=, которая позволяет присваивать значения переменным внутри выражений. Он был добавлен в Python 3.8.

Его основное преимущество — сокращение кода, особенно полезное в циклах while и условных выражениях, где требуется проверка условия и одновременное присваивание значения.

👀 Смотрите также: деструктурирующее присваивание

Пример 1:

# Без моржового оператора
length = len(some_str)
if length > 10:
print('Строка длиннее 10 символов')

# С моржовым оператором
if (length := len(some_str)) > 10:
print('Строка длиннее 10 символов')


Пример 2:

# Без моржового оператора
total, num = 0, input('Введите число "#" для завершения: ')
while num != '#':
total += int(num)
num = input('Введите число "#" для завершения: ')
print(f'Сумма введенных чисел: {total}')

# С моржовым оператором
total = 0
while (num := input('Введите число "#" для завершения: ')) != '#':
total += int(num)
print(f'Сумма введенных чисел: {total}')


🐍 Python Map | Обучение
Рисуем ёлочку в терминале

Накануне Нового года не хочется углубляться в сложные вещи, поэтому сегодня — легкий контент: елочка в терминале. Давайте разберем, как создать то, что вы видите на прикрепленном фото, чтобы поднять новогоднее настроение! 🎄

⚙️ Реализация

Для начала, необходимо установить библиотеку Colorama, для работы с цветом в терминале

pip install colorama


После этого, импортируем необходимые модули:

import os
import time
import random
from colorama import Fore, Style, init


И инициализируем colorama:

init(autoreset=True)


Функция для рисования ёлочки

def draw_tree(height=10):
symbols = [Fore.RED + "o", Fore.YELLOW +
"x", Fore.GREEN + "*", Fore.BLUE + "+"]
tree = []
for i in range(height):
# Гирлянды и пробелы
garlands = ''.join(
random.choice(symbols) for _ in range(2 * i + 1)
)
spaces = ' ' * (height - i - 1)
tree.append(spaces + garlands)
# Cтвол
trunk = " " * (height - 2) + "|||"
tree.append(trunk)
return tree


Функция отображения ёлочки

def show_tree(tree):
os.system("cls" if os.name == "nt" else "clear")
print("\n".join(tree))


Запуск

if __name__ == "__main__":
try:
while True: # Бесконечный цикл
tree = draw_tree() # Высота ёлочки
show_tree(tree)
time.sleep(0.5)
except KeyboardInterrupt:
print("\nС Новым Годом! 🎄")


С Наступающим Новым Годом, дорогие друзья! 🎄


🐍 Python Map | Обучение
🎄5
🎄 Дорогие подписчики, с Новым годом! 🎄

Спасибо, что читаете, ставите реакции и комментируете наш канал! 🥰

Помните, что следующий год откроет перед вами множество возможностей для роста. Наш информационный канал поможет вам стать лучше и достичь всех ваших целей. Желаем всего наилучшего в новом 2025 году!
🔥5
Python шпаргалки.pdf
350.1 KB
Шпаргалка по Python

Она включает всё, что нужно: от основ до продвинутых тем, с примерами кода и практическими советами.

📌 Что внутри:

> Переменные и типы данных
> Структуры данных: списки, словари, множества
> Функции и аргументы
> Условия и циклы
> Обработка ошибок
> Работа с файлами
> Классы и ООП
> И т.д.

Сохраняем и пользуемся


🐍 Python Map | Обучение
5👍3
Флаги интерпретатора Python

При вызове скрипта Python можно указать различные параметры/флаги для большей гибкости. Вот наиболее часто используемые варианты:

* -h или --help: Выводит справку по доступным флагам.

* -V или --version: Выводит номер версии Python.

* -m <module>: Запускает модуль как скрипт (например, python -m venv venv).

* -c <command>: Выполняет указанную команду Python (например, python -c "print('Hello, World!')").

* -i: Включает интерактивный режим REPL после выполнения скрипта.

* -O: Включает оптимизацию байт-кода (удаляет операторы assert и любой код, зависящий от значения __debug__).

* -OO: Более агрессивная оптимизация, удаляющая docstrings.

* -B: Отключает создание файлов .pyc (с компилированным байт-кодом).

* -W: Контролировать частоту вывода предупреждений.

Это лишь некоторые из наиболее распространенных флагов.
👉 Читать подробнее


🐍 Python Map | Обучение
👍4🔥2
Функция vs метод

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

Метод всегда является функцией, но не наоборот.


➡️ Что такое функция?

Функция в Python — это самостоятельный блок кода, выполняющий определенную задачу. Представьте её как отдельный инструмент, который можно использовать в любой части программы. Функции создаются с помощью ключевого слова def и могут принимать аргументы для обработки.

def calculate_area(length, width):
return length * width

# Использование функции
room_area = calculate_area(5, 4)
print(f"Площадь комнаты: {room_area} кв.м.")


➡️ Что такое метод?

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

class BankAccount:
def __init__(self, balance):
self.balance = balance

def deposit(self, amount):
self.balance += amount
return f"Новый баланс: {self.balance}"

# Использование метода
account = BankAccount(1000)
account.deposit(500) # Вызов метода через объект


🔎 Ключевые различия

1. Область видимости:
- Функции работают с переданными им аргументами.
- Методы имеют доступ к данным объекта через self.

2. Способ вызова:
- Функции вызываются напрямую: function_name().
- Методы вызываются через объект: object.iss.onethod().

3. Контекст выполнения:
- Функции независимы от контекста.
- Методы всегда работают в контексте своего класса.

➡️ Когда использовать функции:
- Для операций, не требующих доступа к состоянию объекта.
- При работе с независимыми данными.
- Для создания утилитарных операций.

➡️ Когда использовать методы:
- При работе с данными объекта.
- Когда логика тесно связана с классом.
- Для реализации поведения объекта.

🐍 Python Map | Обучение
🔥1