Python академия
7.73K subscribers
2.31K photos
6 videos
268 links
Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Download Telegram
Несколько возможных типов возвращаемых значений

Если в вашей функции есть переменная, принимающая значения различных типов, можно использовать типы typing.Optional или typing.Union.

Используйте Optional, если значение будет либо определенного типа, либо исключительно None.

Подписывайтесь на канал 👉@pythonofff
👍2
🐍 Как улучшить читаемость кода в Python?

Читаемость кода — это не просто прихоть, а залог продуктивности. Чем понятнее код, тем проще его поддерживать и меньше багов он содержит. Сегодня я расскажу несколько простых, но мощных техник, которые помогут сделать код чище.

1. Используйте говорящие имена переменных и функций
Плохо:

def f(a, b):
return a + b

Хорошо:

def calculate_total_price(price: float, tax: float) -> float:
return price + tax

Название должно передавать суть, а не заставлять читателя гадать.

2. Разбивайте код на функции
Код должен быть модульным. Если в функции больше 20 строк — подумайте, можно ли её разбить.

Плохо (монолитная функция):

def process_order(order):
tax = order.price * 0.2
total = order.price + tax
print(f"Total price: {total}")
order.status = "processed"
save_to_db(order)

Хорошо (логично разнесённый код):

def calculate_tax(price):
return price * 0.2

def process_payment(order):
tax = calculate_tax(order.price)
total = order.price + tax
print(f"Total price: {total}")
return total

def finalize_order(order):
order.status = "processed"
save_to_db(order)


3. Избегайте "магических чисел"
Числа в коде без пояснений — зло. Лучше использовать именованные константы.

Плохо:

discounted_price = price * 0.9

Хорошо:

DISCOUNT_RATE = 0.1
discounted_price = price * (1 - DISCOUNT_RATE)


4. Следуйте PEP 8
Форматирование кода важно! Используйте линтеры, например black или flake8, чтобы соблюдать стандарт.

5. Документируйте код
Хороший код объясняет сам себя, но комментарии тоже нужны.

Плохо:

# Умножаем x на 2
x = x * 2

Хорошо:

# Удваиваем сумму для учёта бонусов
final_amount = amount * 2


Подписывайтесь на канал 👉@pythonofff
👍5
Абстракция словарей/множеств

С абстракциями списков (list comprehension) вы скорее всего сталкивались, но вот с абстракциями словарей/множеств (dict/set comprehension) — вряд ли. Они просты в использовании и так же эффективны.

Подписывайтесь на канал 👉@pythonofff
👍2
Преобразование списка строк

Допустим, у нас есть список, содержащий числа в строковом формате. Чтобы преобразовать все эти элементы в числа с плавающей запятой, мы перебираем список в цикле for. Каждый элемент мы преобразуем из строкового в вещественный. Делается это при помощи функции float().

Мы создаем пустой список number, куда добавим наши числа в формате float. Далее мы используем цикл for для добавления каждого элемента из исходного списка в список number. При этом перед добавлением мы передаем в функцию float() каждый элемент, чтобы преобразовать его из строки в число с плавающей запятой.

Подписывайтесь на канал 👉@pythonofff
👍31
Как перевернуть список в Python с помощью срезов

Срезы работают аналогично функции range(), которую мы разобрали ранее.

Срез также включает в себе три параметра: start, stop и step.

Синтаксис выглядит следующим образом: [start:end:step].

Если вы хотите вывести все элементы, вы можете использовать один из двух следующих способов

Подписывайтесь на канал 👉@pythonofff
👍21👎1
Используйте объекты, которые поддерживают оператор with

Открыть файл и заблокировать фрагмент кода можно с помощью оператора with, но можно ли сделать это, пользуясь собственным методом? Да, можно реализовать протокол context manager, используя методы enter и exit

Подписывайтесь на канал 👉@pythonofff
Сила «однострочников» (One-Liners)

Вы устали пробираться между строк кода и теряться в условных конструкциях? Тогда, однострочники Python — это то, что вам нужно.

Подписывайтесь на канал 👉@pythonofff
Как удалить пробелы из строки с помощью translate()

Функция translate() чем-то схожа с функцией replace(). Общая цель функций translate() и replace() – заменить определенный символ в заданной строке на другой символ. Однако определённые различия всё-таки есть.

Подписывайтесь на канал 👉@pythonofff
Как сделать POST-запрос

Мы используем запрос POST для добавления новых данных в REST API. Данные отправляются на сервер в формате JSON, который выглядит как словарь Python. Согласно документации Fake Store API, у продукта есть следующие атрибуты: title (название), price (цена), description (описание), image (изображение) и category.

Подписывайтесь на канал 👉@pythonofff
2
Как перевернуть список в Python с помощью метода .reverse()

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

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

Подписывайтесь на канал 👉@pythonofff
👍3
Создание таблиц

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

Работать с ней просто. Нужно лишь создать объект на основе PrettyTable и далее поместить в него название рядов и сами ряды.

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

Подписывайтесь на канал 👉@pythonofff
👍7
Красивая консоль

Зачастую вся информация в консоли - это скучный белый или же черный текст. Согласитесь, такое и читать не интересно. Благо в питоне есть библиотека TermColor.

За счет этой библиотеки мы быстро можем настроить какие именно стили будут применены к тексту в консоли

Подписывайтесь на канал 👉@pythonofff
👍6
Редактор видео

Все еще в поиске крутого видео редактора? Зачем что-то искать, когда есть Python и замечательная библиотека MoviePy :)

За счет MoviePy вы можете перевернуть видео, можете его обрезать, можете изменить количество FPS и можете выполнить ещё много других действий.

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

Подписывайтесь на канал 👉@pythonofff
👍3
Три открытых урока для Python-разработчиков

Если уже освоили базовый Python и хотите прокачаться в веб-разработке — не пропустите бесплатные занятия от OTUS.

📺 Web-фреймворк на Python за час | 26 марта в 20:00 (Мск)

Разберём, как работает WSGI, создадим минимальный фреймворк с маршрутизацией и поймём, что лежит в основе Django.

Записаться



📺 Знакомство с Django REST Framework: создание API на Django | 17 апреля в 20:00 (Мск)

Узнаете, как строить REST API на Django, сделаете первый шаг к полноценным бэкенд-сервисам.

Записаться



📺 Асинхронное Django-приложение: работа с асинхронными ORM и views | 23 апреля в 20:00 (Мск)

Освоите asyncio в Django, научитесь писать асинхронные представления и взаимодействовать с БД.

Записаться



Записывайтесь на открытые уроки и получите практические знания из первых рук. Все занятия проводятся онлайн, а ведут их опытные разработчики!

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Обработка ошибок во время выполнения

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

Подписывайтесь на канал 👉@pythonofff
👍31
Транспонирование 2d-массива

Этот лайфхак покажет, как выполнить транспонирование 2d-массива с помощью метода zip.

Подписывайтесь на канал 👉@pythonofff
4
Поиск подстроки

Этот пример будет полезен для поиска подстроки в строке. Я реализую его двумя способами, позволяющими не писать много кода.

Подписывайтесь на канал 👉@pythonofff
👍3
Список дат из диапазона

Этот код получает две даты (начальную и конечную) и создаёт список из дат между ними, включая начальную и исключая последнюю.

Для получения дней между начальной и конечной датой используется datetime.timedelta.days.

Подписывайтесь на канал 👉@pythonofff
👍3
Сжатие списка

Этот скрипт удаляет «ложные» значения (False, None, 0 и пустую строку ' ') из списка. Используется встроенная функция filter(): c параметром None на первом месте она удалит из списка lst все значения, которые не вернут True по умолчанию.

Проверить вручную какое-либо значение на True/False можно с помощью функции bool(): bool(0) вернёт False, но bool('0') уже будет True, так как это непустая строка.

Подписывайтесь на канал 👉@pythonofff
Как преобразовать строку в число (int) в Python

Чтобы преобразовать строку в целое число, можно использовать встроенную функцию int().

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

Общий синтаксис выглядит примерно следующим образом: int("str")

Подписывайтесь на канал 👉@pythonofff
🔥5