Python академия
7.73K subscribers
2.32K photos
5 videos
269 links
Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Download Telegram
🐍 Как улучшить читаемость кода в 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
Все циклы for в Python используют итераторы

В Python нет циклов for в стиле C. А циклы for в Python-стиле напоминают циклы for each в других языках. Это тип цикла, в котором используются итераторы. То есть каждый цикл for, который вы пишете на Python, должен использовать итератор.

Если вы внимательно посмотрите на пример на JavaScript, вы увидите, что мы сообщаем циклу, когда нужно завершить (i < numbers.length), а также — как инкременировать (i++).

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