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%'