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

Формат строки Python ()

Python String Format, Python String Andex на основе форматирования на основе ключевых слов, форматирование номеров для строки в Python, Python 3 Format () Функциональные примеры.

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

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

Формат строки Python ()

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

str.format(*args, **kwargs)
  • Строка шаблона может быть строковым литералом, или она может содержать замену поля, используя {} как разделитель.
  • Поле замены может быть числовым индексом предусмотренных аргументов, или они могут быть аргументами на основе ключевых слов.
  • Если поля замены не имеют значения или значения ключевого слова или ключевого слова, то они заменяются на основе индекса и в порядке I.e. 0,1, …, n.
  • Мы можем предоставить последовательности, такие как кортеж и Список в качестве аргумента для замены на основе индекса.
  • Мы можем предоставить Словарь в качестве аргумента для замены на основе ключевых слов.
  • Аргумент функциональной функции формата также может быть объектом, мы можем получить доступ к его атрибутам с использованием оператора DOT для замены поля.
  • Мы можем создать указанную строку длины с использованием функции формата () со строковым литералом правой, левой или выровненной в центре. Мы также можем указать символ для использования для прокладки, по умолчанию – это белое пространство.
  • Функция Формата String () предоставляет множество функций для форматирования чисел. Например, базовое преобразование из десятичных к восьмерированию, шестнадцатеричном и т. Д. Мы также можем выполнить процент, прокладку и т. Д.
  • Есть ярлыки для звонка __STR __ () и __REPR __ () функций в аргументе, используя ! S и ! R Отказ

Примеры формата строки Python ()

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

Простое форматирование на основе индекса

print("My Name is {0}".format("Pankaj"))

print("I like {0} and {1}".format("Java", "Python"))
# same as above
print("I like {} and {}".format("Java", "Python"))

# index can be in any order
print("I like {1} and {0}".format("Java", "Python"))

Выход:

My Name is Pankaj
I like Java and Python
I like Java and Python
I like Python and Java

Последовательности как формат () аргумент

# unpacking from sequences
t = ("Java", "Python")
print("I like {1} and {0}".format(*t))

l = ["Java", "Python"]
print("I like {} and {}".format(*t))

Выход:

I like Python and Java
I like Java and Python

Аргументы ключевых слов в формате ()

print("{name} is the {job} of {company}".format(name="Pankaj", job="CEO", company="JournalDev"))

Выход: Pankaj - генеральный директор JouroneDev

Словарь как формат () аргумент

Мы можем использовать словарь в формате () аргументе функции для замены поля на основе ключевых слов.

d = {"name": "Pankaj", "job": "CEO", "company": "JournalDev"}
print("{company} {job} is {name}".format(**d))

Выход: Генеральный директор JouroneDev - Pankaj

Доступ к атрибутам объекта для замены поля

Мы можем передавать объект в формате () и использовать оператор DOT для доступа к его атрибутам для замены поля.

class Data:
    id = 0
    name = ''

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


dt = Data(1, 'Test')

print("{obj_name} id is {obj.id} and name is {obj.name}".format(obj_name="Data", obj=dt))

Выход: Идентификатор данных 1 и имя тестирует

Форматированная строка с прокладкой и выравниванием

Мы можем создать строку указанной длины, используя метод формата (). По умолчанию его будут выровнены и белые пробелы будут использоваться для прокладки. Однако мы можем указать символ для использования для прокладки и выравнивания для исходной строки.

>>> "{:^30}".format("data center aligned")
'     data center aligned      '

>>> "{:30}".format("data without align")
'data without align            '

>>> "{:<30}".format("data left aligned")
'data left aligned             '

>>> "{:>30}".format("data right aligned")
'            data right aligned'

>>> "{:^30}".format("data center aligned")
'     data center aligned      '

>>> "{:|^30}".format("data with fill character")
'|||data with fill character|||'

Я использую Python Console для этого примера, чтобы вы могли видеть прокладку белых пробелов в строке. Если мы будем использовать функцию Print () здесь, цитаты вокруг строки не будут отображаться, и длина строки не будет понятной.

Формат строки () с числами

Есть много вариантов форматирования цифр, давайте посмотрим на некоторые из них.

Указание знака (+, -) для форматированной строки

print('{:+f}; {:+f}'.format(1.23, -1.23))
print('{: f}; {: f}'.format(1.23, -1.23))
print('{:-f}; {:-f}'.format(1.23, -1.23))

Выход:

+1.230000; -1.230000
 1.230000; -1.230000
1.230000; -1.230000

Обратите внимание, что во втором утверждении пробел используется в качестве префикса для числа. Для отрицательных чисел, знак минус (-) используется всегда.

Формат целых чисел разным основаниям

Мы можем легко преобразовать int на разные основания, такие как шестнадцатеричные, восьмеричные, двоичные двоичные и т. Д. Мы также можем указать, будет ли форматированная строка будет содержать префиксы для базы или нет.

print("int: {0:d};  hex: {0:x};  oct: {0:o};  bin: {0:b}".format(28))
print("int: {0:d};  hex: {0:x};  oct: {0:o};  bin: {0:b}".format(0x1c))
print("int: {0:d};  hex: {0:#x};  oct: {0:#o};  bin: {0:#b}".format(28))

Выход:

int: 28;  hex: 1c;  oct: 34;  bin: 11100
int: 28;  hex: 1c;  oct: 34;  bin: 11100
int: 28;  hex: 0x1c;  oct: 0o34;  bin: 0b11100

формат () со сложным числом

complex_number = 4 + 2j
print("Real: {0.real}, Imaginary: {0.imag}".format(complex_number))

Выход: Real: 4.0, воображаемый: 2.0

Это просто как доступ к атрибутам объекта.

Номера форматирования с использованием запятой в качестве тысяч сепаратор

print('{:,}'.format(1234567890))

Выход: 1,234 567 890

Процент, прокладки и округление

print('Percentage: {:.3%}'.format(19 / 28))
print('{0:7.2f}'.format(2.344))
print('{0:10.2f}'.format(22222.346))

Выход:

Percentage: 67.857%
   2.34
  22222.35

Обратите внимание, что округление после десятичных знаков выполняется в соответствии с правилами округления по умолчанию. Кроме того, прокладка выполняется перед числом.

Функции STR () и ROP ()

Мы можем легко вызовить функции STR () и ROP () для объекта, используя ! S и ! R соответственно.

print("With Quotes: {0!r}, Without Quotes: {0!s}".format("Data"))


class Test:

    def __str__(self):
        return 'test str'

    def __repr__(self):
        return 'test repr'


print("Test Representation: {0!r}, Test String Representation: {0!s}".format(Test()))

Выход:

With Quotes: 'Data', Without Quotes: Data
Test Representation: test repr, Test String Representation: test str

Резюме

Формат String () Python String () очень мощный при создании строки из различных видов входных источников и применяет правила форматирования. Это гораздо лучше, чем ранее% на основе форматирования и строки шаблона. Однако, если вы используете Python 3.6+, вы также должны посмотреть на форматирование F-String (PEP 498 – литеральная строка интерполяции).

Ссылка: API док