Рубрики
Без рубрики

Функция формата Python ()

Формат Python Format, Python Format () Функция, формат строки Python, объект формата Python для представления строки, Python STR.Format VS Format () Функциональный пример

Автор оригинала: Pankaj Kumar.

Функция Python Format () используется для преобразования приведенного объекта в строковое представление на основе предусмотренных спецификаций формата.

Формат Python ()

Функциональный синтаксис формата Python ():

format(value[, format_spec])

Эта функция вызывает __Format __ () метод ценность объект. Мы можем определить эту функцию для наших пользовательских классов для использования функции формата () с ними.

Некоторые варианты формата для номеров:

  • «+» – знак должен использоваться как с положительными, так и отрицательными числами.
  • «-» – знак следует использовать только с только отрицательными числами, это поведение по умолчанию.
  • % – умножено на 100 и показано в процентах
  • ‘b’, ‘o’, ‘x’, ‘x’ – конвертировать целое число в двоичный, восьмеричный и шестнадцатеричный формат. Строчные буквы будут использоваться для «X», тогда как заглавные буквы будут использоваться с «X». Они применимы только для целых чисел.
  • «E», «E», «F», «F» – используется с числами с плавающей точкой для знакомых и нотации с фиксированной точкой соответственно

Давайте посмотрим на некоторые примеры использования функции формата () с номерами.

# integers
print(format(10, '+'))
print(format(15, 'b'))

print(format(15, 'x'))
print(format(15, 'X'))

# float
print(format(.2, '%'))
print(format(10.5, 'e'))
print(format(10.5, 'e'))
print(format(10.5345678, 'f'))
print(format(10.5, 'F'))

Выход:

+10
1111
f
F
20.000000%
1.050000e+01
1.050000e+01
10.534568
10.500000

Функция Python Format () для пользовательского объекта

Давайте посмотрим, как мы можем использовать функцию формата () с пользовательским объектом. Мы создадим класс и определите функцию __Format __ () для него. Эта функция должна возвращать строку, в противном случае мы получим ошибку.

class Data:
    id = 0

    def __init__(self, i):
        self.id = i

    def __format__(self, format_spec):
        print('__format__ method called')
        if format_spec == 's':
            return "Data[id=%s]" % self.id
        if format_spec == 'i':
            return str(self.id)
        else:
            return 'invalid format spec'

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

d = Data(20)
print(format(d, 's'))
print(format(d, 'i'))
print(format(d, 'x'))

Выход:

__format__ method called
Data[id=20]
__format__ method called
20
__format__ method called
invalid format spec

Ссылка: Официальная документация