Python — функция форматирования format

Python 字符串Строка Python


Начиная с Python 2.6, была добавлена новая функция форматирования строкstr.format(), которая расширяет возможности форматирования строк.

Базовый синтаксис — использовать{}и:для замены предыдущего% 。

Функция format может принимать неограниченное количество аргументов, и их позиции не обязаны быть упорядоченными.

Пример

>>>"{} {}".format("hello", "world") # Без указания конкретной позиции используется порядок по умолчанию 'hello world' >>> "{0} {1}".format("hello", "world") # Установить указанную позицию 'hello world' >>> "{1} {0} {1}".format("hello", "world") # Установить указанную позицию 'world hello world'

Вы также можете задавать параметры:

Пример

#!/usr/bin/python # -*- coding: UTF-8 -*- print("Название сайта: {name}, Адрес {url}".format(name="Пример", url="www.example.com")) # Задать параметры через словарь site = {"name": "Example", "url": "www.example.com"} print("Название сайта: {name}, Адрес {url}".format(**site)) # Задать параметры по индексу списка my_list = ['Пример', 'www.example.com'] print("Название сайта: {0".format(my_list)) # Требуется "0"

Результат вывода:

网站名:Example, 地址 www.example.com
网站名:Example, 地址 www.example.com
网站名:Example, 地址 www.example.com

Вы также можете передатьstr.format()объект:

Пример

#!/usr/bin/python # -*- coding: UTF-8 -*- class AssignValue(object): def __init__(self, value): self.value = value my_value = AssignValue(6) print('значение: {0.value}'.format(my_value)) # "0" необязательно

Результат вывода:

value 为: 6

Форматирование чисел

В следующей таблице показаны различные методы форматирования чисел с помощью str.format():

>>> print("{:.2f}".format(3.1415926))
3.14
NumberФорматВыводОписание
3.1415926 {:.2f} 3.14 Оставлять два знака после запятой
3.1415926 {:+.2f} +3.14 Оставлять два знака после запятой со знаком
-1 {:-.2f} -1.00 Оставлять два знака после запятой со знаком
2.71828 {:.0f} 3 Без десятичных знаков
5 {:0>2d} 05 Дополнять число нулями (заполнение слева, ширина 2)
5 {:x<4d} 5xxx Дополнять число с помощью x (заполнение справа, ширина 4)
10 {:x<4d} 10xx Дополнять число с помощью x (заполнение справа, ширина 4)
1000000 {:,} 1,000,000 Формат числа с разделителями-запятыми
0.25 {:.2%} 25.00% Процентный формат
1000000000 {:.2e} 1.00e+09 Экспоненциальная запись
13 {:>10d}         13 Выравнивание по правому краю (по умолчанию, ширина 10)
13 {:<10d} 13 Выравнивание по левому краю (ширина 10)
13 {:^10d}     13 Выравнивание по центру (ширина 10)
11
'{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
1011
11
13
b
0xb
0XB
Система счисления

^, <, >Они означают выравнивание по центру, по левому и по правому краю соответственно, за которым следует ширина,:После знака идёт символ заполнения, который может быть только одним символом. Если он не указан, по умолчанию используются пробелы.

+означает отображать перед положительными числами+, а перед отрицательными числами-; (пробел) означает добавлять пробел перед положительными числами

b, d, o, x — это двоичный, десятичный, восьмеричный и шестнадцатеричный форматы соответственно.

Кроме того, мы можем использовать фигурные скобки{}чтобы экранировать фигурные скобки, как в следующем примере:

Пример

#!/usr/bin/python # -*- coding: UTF-8 -*- print ("Позиция, соответствующая {}, — {{0}}".format("пример"))

Результат вывода:

example 对应的位置是 {0}

Python 字符串Строка Python

Другие расширения