Python School
82.9K subscribers
2.38K photos
7 videos
558 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official

РКН: clck.ru/3G6pBb
加入频道
Как удалить дубликаты из списка, сохранив порядок? 🔄

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

Этот приём позволяет удалить дубликаты за одну строку: list(dict.fromkeys(list1)) создаёт словарь, где ключами становятся уникальные элементы в порядке их появления. 🚀

🎯 Итог
Удаляет дубликаты за одну строку.
Сохраняет порядок элементов.
Работает быстро и эффективно! 🚀
Как найти самое частое значение в списке? 📊

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

Этот приём позволяет найти самый частый элемент за одну строку: Counter(list1).most_common(1)[0][0] возвращает элемент с максимальной частотой. 🚀

🎯 Итог
Определяет самый частый элемент за одну строку.
Работает с числами, строками и любыми данными.
Удобно для анализа данных! 🚀
Как проверить, все ли элементы в списке одинаковые?

Иногда нужно убедиться, что все элементы в списке одинаковые. Новички могут использовать циклы, но Python предлагает элегантный способ — set и all().

Этот приём позволяет сделать проверку за одну строку:

len(set(list1)) == 1 — если в множестве только один элемент, значит, все элементы одинаковые.

all(x == list1[0] for x in list1) — проверяет, равны ли все элементы первому. 🚀

🎯 Итог
Проверяет список за одну строку.
Подходит для любых типов данных.
Упрощает валидацию данных! 🚀
Как объединить строки без цикла? 🔗

Когда нужно склеить несколько строк из списка в одну, новички часто используют цикл for и оператор +. Но в Python есть более быстрый и лаконичный способ — метод .join().

Метод join() принимает список строк и объединяет их через указанный разделитель. Это работает гораздо эффективнее циклов и особенно полезно при работе с большими объёмами текста. 🚀

🎯 Итог
.join() — лучший способ объединения строк.
Работает быстро и читаемо.
Подходит для любых итерируемых объектов со строками.
Как быстро получить уникальные значения из списка? 🎯

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

Множество (set) автоматически удаляет все повторяющиеся значения. А если нужно сохранить порядок, можно дополнительно применить dict.fromkeys(). Всё это делается буквально в одну строку! 🚀

🎯 Итог
set() — простой способ убрать дубликаты.
dict.fromkeys() сохраняет порядок элементов.
Отлично подходит для быстрой фильтрации!
Как быстро проверить, является ли строка числом? 🔍

При обработке пользовательского ввода важно понимать, содержит ли строка число. Новички могут пытаться использовать try-except или проверять вручную, но есть более элегантное решение — метод .isdigit().

Метод .isdigit() возвращает True, если строка состоит только из цифр. Это удобно, когда нужно, например, убедиться, что пользователь ввёл возраст или ID. 🚀

🎯 Итог
.isdigit() — простой способ проверить, состоит ли строка только из цифр.
Полезен при валидации ввода.
Работает только для положительных целых чисел.
Как удобно отформатировать строку с переменными?

Новички часто используют конкатенацию (+) для вставки переменных в строки. Это может быть неудобно и плохо читаемо. Вместо этого лучше использовать f-строки — современный и лаконичный способ форматирования строк в Python!

F-строки (или форматированные строки) позволяют вставлять переменные прямо внутрь строки с помощью фигурных скобок {}. Это и быстрее, и чище! 🚀

🎯 Итог
F-строки — самый читаемый и удобный способ форматирования.
Позволяют вставлять выражения прямо в строку.
Работают с любой версией Python 3.6+.
Использование defaultdict для работы со словарями

При работе со словарями часто возникает необходимость инициализировать значения по умолчанию, чтобы избежать ошибок при попытке доступа к несуществующим ключам. В таких случаях полезно использовать defaultdict из модуля collections.

Использование defaultdict упрощает код и избавляет от необходимости вручную проверять существование ключей в словаре, делая его более читаемым и эффективным.
Как замерить время выполнения кода в Python? ⏱️

Когда нужно понять, насколько быстро работает фрагмент кода, новички часто используют сторонние инструменты или пробуют измерять время "на глаз". Но в Python есть простой и встроенный способ — модуль time.

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

🎯 Итог
Используем time.time() для измерения скорости.
Удобно для профилирования и отладки.
Легко встроить в любой проект.
Как проверить, содержится ли подстрока в строке? 🔎

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

Оператор in возвращает True, если подстрока найдена в строке, и False — если нет. Это лаконично, читаемо и Python-идиоматично. 🚀

🎯 Итог
in — простой способ проверить наличие подстроки.
Удобно использовать в условиях (if) и циклах.
Повышает читаемость кода и сокращает количество строк.
Как округлить число до нужного знака после запятой? ✂️

Новички часто пытаются округлять числа вручную или с помощью форматирования строк. Однако в Python есть встроенная функция round(), которая делает это просто и понятно.

Функция round(число, знаки) округляет число до указанного количества знаков после запятой. Если не указывать второй аргумент — округлит до целого. Удобно для вывода результатов вычислений, цен или процентов. 🧮

🎯 Итог
round(x, n) — округление числа x до n знаков после запятой.
Без второго аргумента округляет до целого.
Полезно при работе с деньгами, метриками и графиками.
Как получить текущую дату и время в Python?

Работая над скриптами или логами, часто возникает необходимость узнать текущую дату и время. Новички могут не знать, как это сделать без сторонних библиотек, но стандартный модуль datetime всё уже умеет!

С помощью datetime.now() можно получить текущую дату и время, а затем при необходимости форматировать результат под свои нужды — например, вывести только дату или только время.

🎯 Итог
Используем datetime.now() для получения текущей даты и времени.
Работает без дополнительных библиотек.
Удобно для логирования, меток времени и отчётов.
Итерируемые объекты

В Python итерируемый объект — это объект, над которым производятся так называемые проходы (итерации). Например, как в цикле for.
Большинство наборных структур данных являются итерируемыми объектами. Это списки, кортежи, наборы. Например, ниже мы создаём список и проходимся по его элементам по очереди.
Конкатенация строк

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

Более эффективный подход к решению этой задачи заключается в использовании функции join()
Как элегантно обрабатывать ошибки в Python? ⚠️

При написании кода часто возникают ситуации, когда что-то может пойти не так: файл не найден, данные невалидны или пользователь ввёл что-то не то. Новички часто боятся ошибок или пишут громоздкие конструкции, но Python предлагает удобный способ — блок try-except.

С помощью try-except можно перехватить исключения и аккуратно обработать их без аварийного завершения программы. Это улучшает стабильность кода и делает поведение более предсказуемым.

🎯 Итог
try-except позволяет перехватывать ошибки.
Повышает надёжность и стабильность кода.
Удобно для пользовательского ввода, файлов, сетевых операций и др.
Как присвоить несколько переменных в одну строку? 🔄

Иногда нужно сразу задать значения нескольким переменным. Новички делают это в несколько строк, что выглядит громоздко. Но Python поддерживает удобную конструкцию множественного присваивания — коротко, читаемо и эффективно!

С помощью этой фичи можно сразу задать значения, поменять переменные местами или распаковать кортеж — всё в одной строке.

🎯 Итог
Множественное присваивание упрощает код.
Позволяет присваивать значения сразу нескольким переменным.
Удобно для обмена значениями и распаковки структур.
Как упростить условные выражения в одну строку?

Иногда нужно выбрать значение в зависимости от условия. Новички используют полные конструкции if-else, даже для простых проверок. Это громоздко и плохо читается. Вместо этого можно использовать тернарный оператор — компактный способ записать условие в одну строку.

Он работает по формуле: результат_если_True if условие else результат_если_False.

🎯 Итог
Тернарный оператор экономит место.
Упрощает простые условия.
Делает код чище и легче для чтения.
Как красиво подставлять переменные в строку?

Новички часто используют конкатенацию (+) или .format() для создания строк с переменными, но это может быть громоздко и неудобно. Python предлагает современный и удобный способ — f-строки (форматированные строки), которые позволяют подставлять значения прямо внутрь строки с минимальным синтаксисом.

Для этого перед строкой нужно поставить f, а переменные — обернуть в фигурные скобки {}.

🎯 Итог
f-строки — простой и читаемый способ форматирования.
Позволяют вставлять выражения прямо в строку.
Быстрее и удобнее, чем .format() или +.
🕵️‍♂️ Получаем имя текущей функции

Иногда при отладке или логировании нужно узнать, в какой функции мы находимся. Новички могут прописывать имя функции вручную, но Python позволяет получить его автоматически с помощью inspect.

Модуль inspect предоставляет функцию currentframe(), которая возвращает текущий стек вызовов. А f_code.co_name вытаскивает имя функции. Это особенно полезно для логов, когда хочется избежать ручного дублирования.

🎯 Итог
С помощью inspect можно автоматически получать имя текущей функции, что упрощает логирование и повышает читаемость кода.
🧪 Проверяем тип переменной

В процессе разработки важно понимать, с каким типом данных вы работаете. Многие новички используют print(type(x)), чтобы узнать тип переменной, но Python предлагает более универсальный способ — isinstance().

Функция isinstance() проверяет, принадлежит ли объект к определённому типу (или группе типов). Это особенно удобно при написании условий и обработке разных данных.

🎯 Итог
isinstance() — удобный инструмент для проверки типов, особенно когда нужно обрабатывать переменные разных типов в одном блоке кода.
🕵️‍♂️ Получаем путь к текущему файлу

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

Функция os.path.abspath(__file__) возвращает абсолютный путь к текущему файлу, а os.path.dirname() — директорию, в которой он находится.

🎯 Итог
С помощью os.path.abspath(__file__) и os.path.dirname() можно динамически определять путь к текущему файлу и его директории — это удобно для настройки путей и работы с файлами без хардкода.