Python академия
رفتن به کانال در Telegram
Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter
نمایش بیشتر7 288
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-17 روز
-3930 روز
آرشیو پست ها
7 287
Decimal и Fraction
Из-за того, что дробные числа с плавающей точкой хранятся в двоичном виде, мы обычно работаем с приблизительными значениями, как в первом варианте на скрине.
Для получения более точных результатов можно использовать класс Decimal, но и его может не хватить в некоторых случаях.
В данной связи, для идеальных вычислений лучше использовать класс Fraction, т.к. он работает с числами в виде рациональных дробей.
Подписывайтесь на канал 👉@pythonofff
7 287
Специальные переменные
Одна примечательная «особая» переменная, которую вы часто можете видеть в коде Python, — это _, то есть просто символ подчеркивания. По соглашению так именуют малозначимые переменные. Откуда же берутся такие переменные? Например, иногда надо недолго хранить значение, возвращаемое функцией. В примере ниже мы сканируем строки датафрейма из библиотеки pandas
Подписывайтесь на канал 👉@pythonofff
7 287
Использование комплексных чисел в Python
Никого здесь уже не удивить такими встроенными типами, как например int, float, и подобными. Но кроме них в Python существует еще один довольно интересный тип, а именно, complex.
В Python комплексные числа представлены в виде x + iy. А точнее говоря, вместо буквы i здесь используется буква j, во избежание некоторой путаницы, поскольку i чаще всего занята под циклы. Python преобразует реальные числа x и y (будь то int или float) в комплексное с помощью функции complex(x,y).
Комплексное число легко можно превратить в строку с помощью функции str или посчитать его модуль с помощью функции abs, а также для доступа к его реальной или мнимой частям можно воспользоваться методами real и imag.
Хотя complex и является встроенным типом, для более удобной работы с комплексными операциями рекомендуется импортировать модуль cmath.
Подписывайтесь на канал 👉@pythonofff
7 287
Как объединить словари в Python с помощью цикла for
Мы можем объединить два или более словарей, используя цикл for
Но проблема данного метода в том, что нам приходится запускать такой цикл для объединения словарей множество раз.
Подписывайтесь на канал 👉@pythonofff
7 287
Итерируемый счетчик
Еще один классный итератор из itertools — это count, который генерирует бесконечную последовательность чисел.
В аргументах можно задать значения start и step: первый отвечает за начальное значение, а второе за шаг, как и в range.
Обычно count редко используют с циклом for. Чаще можно встретить случаи с функциями типа zip или map.
Подписывайтесь на канал 👉@pythonofff
7 287
Как использовать функцию print() в Python
Чтобы вывести что-либо на экран, мы используем функцию print(). Пишем ключевое слово print, за которым следует пара круглых скобок (). Внутри этих скобок мы помещаем то, что хотим распечатать.
Подписывайтесь на канал 👉@pythonofff
7 287
Работаем с атрибутами объектов
Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции: getattr, setattr, delattr и hasattr.
По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет.
Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В setattr также нужно передать новое значение для атрибута.
На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение.
Подписывайтесь на канал 👉@pythonofff
7 287
Как вывести переменную и строку в Python, разделив их запятыми
Вы можете указать строку и переменную в качестве аргументов функции print(), просто перечислив их через запятую.
Подписывайтесь на канал 👉@pythonofff
7 287
Вывод текущей директории
Обработка файлов в Python с помощью модуля os включает создание, переименование, перемещение, удаление файлов и папок, а также получение списка всех файлов и каталогов и многое другое.
Подписывайтесь на канал 👉@pythonofff
7 287
Редирект вывода программы
В contextlib есть еще один прикольный контекстный менеджер — redirect_stdout, позволяющий перенаправить стандартный вывод программы.
Контекстный менеджер принимает аргумент, в котором мы можем указать, куда должен переправляться весь вывод в последующем блоке.
Таким образом, данные из print() в контекстом менеджере будут переправлены в открытый ранее файл, так как мы его передали в аргумент redirect_stdout.
Убедится в этом можем, открыв файл заново и прочитав оттуда данные.
Подписывайтесь на канал 👉@pythonofff
7 287
Неизвестное количество аргументов через *arguments
Если функция может принимать любое количество аргументов, то перед названием параметра добавьте *
Подписывайтесь на канал 👉@pythonofff
7 287
Создаем контекстный менеджер с помощью декоратора
Обычно протокол управления контекстом реализовывают с помощью класса и двух магических методов: __enter__ и __exit__. Но такой подход может показаться слегка сложным.
Так вот, помимо написания своего класса, есть еще один способ создать контекстный менеджер — использовать декоратор @contextmanager из встроенного пакета contextlib.
Первая часть функции tag, которая идёт до yield, выполняется при входе в блок with. Затем исполняется сам этот блок, а после этого завершается оставшаяся часть, которая идет после yield.
Подписывайтесь на канал 👉@pythonofff
7 287
Обмен значений переменных
Обмен значений двух переменных - это действие, в результате которого одна переменная принимает значение, равное второй переменной, а вторая - первой. Если попытаться сделать такой обмен, сначала присвоив первой переменной значение второй, а второй - значение первой, ничего не получится.
Подписывайтесь на канал 👉@pythonofff
7 287
Как работают арифметические операции
Если кто-то еще не знает, то в Python всё является объектами: числа в том числе. И при любых операциях, включая арифметические, у объектов вызываются магические методы.
Например, при сложении у объекта первого слагаемого вызывается соответствующий магический метод и в качестве аргумента передается объект второго слагаемого.
Еще стоит отметить, что у float поддерживается деление с остатком, то есть метод __div__. А int имеет только деление с округлением, реализованное в методе __floordiv__.
Подписывайтесь на канал 👉@pythonofff
7 287
Веб-парсинг
Вот некоторые популярные библиотеки для парсинга:
• Beautiful Soup
• Scrapy
Пример - получить значение валюты по сравнению с долларом США
Подписывайтесь на канал 👉@pythonofff
7 287
Получаем календарь
В модуле calendar есть функция month(), которая вернет календарь указанного месяца в виде строки, как показано в примере. А функция calendar() выдаст целый год.
Если строки строки не устраивают, то в модуле есть много методов для получения самых разных итераторов. А еще там можно даже получить календарь в виде HTML.
Кстати, модуль является встроенным, отдельно его устанавливать не нужно.
Подписывайтесь на канал 👉@pythonofff
7 287
Генераторы списков очень классная особенность
Ещё одна классная особенность Python, дающая возможность быстро создавать списки. Такие выражения позволяют легко писать чистый код, который читается почти как естественный язык
Подписывайтесь на канал 👉@pythonofff
7 287
Генерируем QR-код
Простой, но удобный и полезный пакет для создания QR-кодов. Для отрисовки картинок используется Pillow, так что убедитесь, что он у вас установлен.
Чтобы создать объект картинки с QR-кодом необходимо вызвать метод make() и передать данные в качестве аргумента. А для сохранения нужно применить метод save() к полученному объекту.
Еще пакет позволяет создавать QR-коды на основе картинок и в 6 разных стилях. Но про это все, а также про продвинутые примеры использования вы почитаете уже в их документации.
Подписывайтесь на канал 👉@pythonofff
7 287
__repr__
Метод repr() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки, а метод str() позволяет определять понятное пользователю строковое представление, которое можно отображать в интерфейсе программы.
Подписывайтесь на канал 👉@pythonofff
7 287
Возврат нескольких значений
Здесь возвращается кортеж. С тем же эффектом можно было бы написать return (name, birthdate).
Это нормально для ограниченного количества возвращаемых значений. Но все, что превышает 3 значения, должно быть помещено в класс (data)
Подписывайтесь на канал 👉@pythonofff
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
