Python.Примеры.Форматирование строк

Python.Примеры.Форматирование строк

https://t.me/HotCheatSheet

Немного примеров и синтаксиса по работе с методом format. Всё подробно, кратко. Настало время приключений =)


Примеры использования:

"Hello, {}!".format('world')


"{}, {}, {}".format('x', 'y', 'z') #выведет "x, y, z"
"{0}, {1}, {2}".format('x', 'y', 'z') #выведет "x, y, z"
"{2}, {1}, {0}".format('x', 'y', 'z') #выведет "z, y, x"
"{2}, {1}, {0}".format(*'xyz') #выведет "z, y, x"
"{0} {1} {0}".format('mann', 'gegen') #выведет "mann gegen mann"

"My name is {name} and i'm {years} years old".format(years=35, name="Peter") #выведет "My name is Peter and i'm 35 years old"

var = {"years":"35", "name":"Peter"}
"My name is {name} and i'm {years} years old".format(**var) #выведет "My name is Peter and i'm 35 years old"
Синтаксис метода format

поле замены — "{" [имя поля] ["!" преобразование] [":" спецификация] "}"

имя поля — число | строка ("." имя атрибута | "[" индекс "]")*

преобразование — "r" | "s" | "a"

спецификация — [[запонитель]выравнивание][знак][#][0][ширина][,][.точность][тип]

заполнитель — символ кроме '{' или '}'

выравнивание — "<" | ">" | "=" | "^"

знак — "+" | "-" | " "

ширина — число

точность — число

тип — "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"


Выравнивание:

'<' — символы-заполнители будут справа (выравнивание объекта по левому краю) (по умолчанию).

'>' — выравнивание объекта по правому краю.

'=' — заполнитель будет после знака, но перед цифрами. Работает только с числовыми типами.

'^' — выравнивание по центру.

Знак:

'+' — знак должен быть использован для всех чисел.

'-' — '-' для отрицательных, ничего для положительных.

'Пробел' — '-' для отрицательных, пробел для положительных.

Тип:

'd', 'i', 'u' — десятичное число.

'b' — число в двоичной системе счисления.

'o' — число в восьмеричной системе счисления.

'x' — число в шестнадцатеричной системе счисления (буквы в нижнем регистре).

'X' — число в шестнадцатеричной системе счисления (буквы в верхнем регистре).

'e' — число с плавающей точкой с экспонентой (экспонента в нижнем регистре).

'E' — число с плавающей точкой с экспонентой (экспонента в верхнем регистре).

'f', 'F' — число с плавающей точкой (обычный формат).

'g' — число с плавающей точкой. с экспонентой (экспонента в нижнем регистре), если она меньше, чем -4 или точности, иначе обычный формат.

'G' — число с плавающей точкой. с экспонентой (экспонента в верхнем регистре), если она меньше, чем -4 или точности, иначе обычный формат.

'c' — символ (строка из одного символа или число - код символа).

's' — строка.

'%' — число умножается на 100, отображается число с плавающей точкой, а за ним знак %.


Примеры
coord = (3, 5)
'X: {0[0]};  Y: {0[1]}'.format(coord)
#выведет 'X: 3;  Y: 5'

"repr() shows quotes: {!r}; str() doesn't: {!s}".format('test1', 'test2')
#выведет "repr() shows quotes: 'test1'; str() doesn't: test2"

'{:<30}'.format('left aligned')
#выведет 'left aligned                  '

'{:>30}'.format('right aligned')
#выведет '                 right aligned'

'{:^30}'.format('centered')
#выведет '           centered           '

'{:*^30}'.format('centered')
#выведет '***********centered***********'

'{:+f}; {:+f}'.format(3.14, -3.14)
#выведет '+3.140000; -3.140000'

'{: f}; {: f}'.format(3.14, -3.14)
#выведет ' 3.140000; -3.140000'

'{:-f}; {:-f}'.format(3.14, -3.14)
#выведет '3.140000; -3.140000'

# примеры типов данных
"int: {0:d};  hex: {0:x};  oct: {0:o};  bin: {0:b}".format(42)
#выведет 'int: 42;  hex: 2a;  oct: 52;  bin: 101010'

# примеры типов данных с префиксами
"int: {0:d};  hex: {0:#x};  oct: {0:#o};  bin: {0:#b}".format(42)
#выведет 'int: 42;  hex: 0x2a;  oct: 0o52;  bin: 0b101010'

points = 19.5
total = 22
'Correct answers: {:.2%}'.format(points/total)
#выведет 'Correct answers: 88.64%'