🐍 Укус питона 🐍
2.95K subscribers
659 photos
3 videos
276 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Методы __repr__ и __str__

Метод __repr__ выдает текстовое или строковое представление сущности или объекта. Этот процесс вызывается всякий раз при вызове функции repr для какой-то сущности.

Метод __str__ делает то же самое, но ее поведение всё же немного отличается. Она предназначена для создания удобочитаемой версии, полезной для отслеживания или отображения информации об объекте. А метод __repr__ предназначен для предоставления «официального» текстового образа объекта, который можно использовать для воссоздания этого объекта.

🐍 Укус питона // 💬 Чат // #теория #функции #методы #__repr__ #__str__
Поиск в строке

Для поиска подстроки в строке в Python применяется метод find(), который возвращает индекс первого вхождения подстроки в строку и имеет три формы:

• find(str): поиск подстроки str ведется с начала строки до ее конца
• find(str, start): параметр start задает начальный индекс, с которого будет производиться поиск
• find(str, start, end): параметр end задает конечный индекс, до которого будет идти поиск

Если подстрока не найдена, метод возвращает -1, смотрим код:

🐍 Укус питона // 💬 Чат // #теория #строки
Объединение строк

Одной из самых распространенных операций со строками является их объединение или конкатенация. Для объединения строк применяется операция сложения, первый пример 👀:

С объединением двух строк все просто, но что, если нам надо сложить строку и число? В этом случае необходимо привести число к строке с помощью функции str(), внимание на второй пример:

🐍 Укус питона // 💬 Чат // #теория #строки
Явные преобразования

В некоторых случаях возникает необходимость вручную выполнить преобразование типов. Например, пусть у нас будет следующий код:

Мы ожидаем, что "2" + 3 будет равно 5. Однако этот код сгенерирует исключение, так как первое число на самом деле представляет строку. И мы увидим при выполнении кода что-то наподобие примера во второй части кода:

Для преобразования типов Python предоставляет ряд встроенных функций:
• int(): преобразует значение в целое число
• float(): преобразует значение в число с плавающей точкой
str(): преобразует значение в строку

🐍 Укус питона // 💬 Чат // #теория #преобразование #типы #int #float #str
Str

Функция str() преобразует значение в строку, первый пример:

Функция str() может быть актуальна, например, при добавлении к строке значения другого типа. Например, в следующем случае мы получим ошибку, вторая часть кода:

Если число складывается с число, то это стандартная операция сложения чисел. Если строка складывается со строкой, то это операция объединения строк. Но каким образом выполнить операцию сложения по отношение к строке и числу, Python не знает. И если мы в данном случае мы хотим выполнить операцию объединения строк, то число можно привести к строке с помощью функции str(), третья часть кода:

🐍 Укус питона // 💬 Чат // #теория #преобразование #типы #str
Класс object. Строковое представление объекта

Начиная с 3-й версии в языке программирования Python все классы неявно имеют один общий суперкласс - object и все классы по умолчанию наследуют его методы.

Одним из наиболее используемых методов класса object является метод str(). Когда необходимо получить строковое представление объекта или вывести объект в виде строки, то Python как раз вызывает этот метод. И при определении класса хорошей практикой считается переопределение этого метода.

К примеру, возьмем класс Person и выведем его строковое представление, смотрим пример:

При запуске программа выведет что-то наподобие следующего, вторая часть кода:

Это не очень информативная информация об объекте. Мы, конечно, можем выйти из положения, определив в классе Person дополнительный метод, который выводит данные объекта - в примере выше это метод display_info.

🐍 Укус питона // 💬 Чат // #теория #классы #object
Класс object. Строковое представление. Продолжение.

Рассмотрим другой выход решения проблемы недостаточной информации об объекте - определим в классе Person метод str() (по два подчеркивания с каждой стороны), смотрим код:

Метод str должен возвращать строку. И в данном случае мы возвращаем базовую информацию о человеке. Если нам потребуется использовать эту информацию в других методах класса, то мы можем использовать выражение self.str()

И теперь консольный вывод будет другим, нижняя часть примера:

🐍 Укус питона // 💬 Чат // #теория #классы #object
Модуль locale. Продолжение.

Непосредственно для форматирования чисел и валют модуль locale предоставляет две функции:
• currency(num): форматирует валюту
• format_string(str, num): подставляет число num вместо плейсхолдера в строку str

Применяются следующие плейсхолдеры:
• d: для целых чисел
• f: для чисел с плавающей точкой
• e: для экспоненциальной записи чисел

Перед каждым плейсхолдером ставится знак процента %, например, первый пример:

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

🐍 Укус питона // 💬 Чат // #теория #модули #locale