Операции форматирования строк. Выражения форматирования строк. Бинарный оператор %
Содержание
- 1. Операции форматирования строк. Назначение
- 2. Выражения форматирования строк. Правила создания. Бинарный оператор %
- 3. Примеры форматирования целочисленных значений
- 4. Пример, демонстрирующий форматирование чисел с плавающей запятой
- 5. Пример, демонстрирующий форматирование строк и одиночных символов
- Связанные темы
Поиск на других ресурсах:
1. Операции форматирования строк. Назначение
Операции форматирования строк позволяют выполнять подстановку в строки значений различных типов за одно действие в нужном (форматированном виде). Таким образом, строка получает удобное представление.
Например, одним из полезных применений операций форматирования строк является вывод значений чисел с плавающей запятой с указанием фиксированной точности (заданного количества знаков после запятой).
Операции форматирования строк могут выполняться одним из двух способов:
- с помощью выражений форматирования строк. Эти выражения базируются на модели функции printf() языка C;
- с помощью метода format().
⇑
2. Выражения форматирования строк. Правила создания. Бинарный оператор %
Выражения форматирования строк используют модель функции printf() языка C. Чтобы создать выражение форматирования строки используется бинарный оператор %.
В наиболее общем случае выражение форматирования строки имеет вид:
format_string % (list_of_objects)
здесь
- format_string – строка форматирования;
- list_of_objects – список объектов.
Строка форматирования format_string может содержать:
- символы строки, которые не воспринимаются как спецификаторы формата. Такие символы представляются в том виде, в котором они есть;
- специальные символы или спецификаторы формата, перед которыми следует символ %. Иными словами, если в форматированной строке встречается символ %, то один или несколько символов следующих за ним воспринимаются как спецификаторы формата. Например: «%s», «%.2f».
Синтаксис использования спецификатора формата выглядит следующим образом:
%[(name)][flags][width][.precision]code
здесь
- name — ключ в словаре. Это случай, когда происходит форматирование строк из словаря;
- flags — перечень флажков. С помощью флажков можно задавать, например, выравнивание, наличие начальных нулей (0) и тому подобное;
- width — общая ширина поля для представления строки;
- .precision — количество знаков после десятичной запятой;
- code — символ спецификатора формата (смотрите таблицу ниже). Он определяет каким образом представлять данные из перечня list_of_objects.
Символ спецификатора формата может получать следующие значения:
- s — вывод строки. Здесь используется функция str(x), где x — объект из списка list_of_objects. Более подробно о работе функции str() можно прочитать здесь;
- r — так же как s, но используется функция repr(x). Работа функции repr() подробно описывается здесь;
- c — одиночный символ;
- d — десятичное целое число;
- i — целое число;
- u — то же, что и d;
- o — восьмеричное целое число;
- x — шестнадцатеричное целое число;
- X — то же, что и x, но шестнадцатеричные цифры возвращаются в верхнем регистре;
- e — вещественное число в экспоненциальной форме;
- E — то же, что и e. В этом случае алфавитные символы возвращаются в верхнем регистре;
- f, F — вещественное число в десятичном представлении;
- g, G — вещественное число e, E или f;
- % — символ %.
Например, чтобы вывести вещественное число с точностью 3 знака после запятой нужно указать следующий спецификатор формата
%.3f
здесь
- .3 – указание того, что выводится 3 знака после запятой;
- f – указание того, что выводится вещественное число в десятичном представлении.
⇑
3. Примеры форматирования целочисленных значений
Ниже приведен пример, демонстрирующий использование выражений форматирования строк, отображающих целые числа.
# Выражения форматирования строк # Форматирование целочисленных значений # 1. Задано целое число num = 234 # 2. Получить различные виды форматированных строк # 2.1. Представить число 234 как есть s1 = 'num=%d' % (num) # 234 print(s1) # 2.2. Представить число с шириной вывода 10 знаков s2 = 'num=%10d' % (num) # num= 234 print(s2) # 2.3. Представить число 234 в 16-й системе исчисления s3 = 'num=%x' % (num) # num=ea print(s3) s4 = 'num=%X' % (num) # num=EA print(s4) # 2.4. Представить число 234 в 8-й системе исчисления s5 = 'num=%o' % (num) # num=352 print(s5) # 3. Представить 2 числа с заданной шириной вывода a = -1702 b = 8833 s6 = '(a,b)=>%10d - %10d' % (a, b) # (a,b)=> -1702 - 8833 print(s6)
Результат выполнения программы
num=234 num= 234 num=ea num=EA num=352 (a,b)=> -1702 - 8833
⇑
4. Пример, демонстрирующий форматирование чисел с плавающей запятой
# Выражения форматирования строк # Форматирование вещественных значений # 1. Задано число с плавающей запятой num = 234.7298027 # 2. Получить разные виды форматированных строк # 2.1. Представить число num как целое s1 = 'num=%i' % (num) # num=234 print(s1) # 2.2. Представить число с точностью 2 знака после запятой s2 = 'num=%.2f' % (num) # num=234.73 print(s2) s2 = 'num=%0.2F' % (num) # num=234.73 print(s2) # 2.3. Представить число с точностью 4 знака после запятой # и шириной вывода 12 знаков s3 = 'num=%12.4f' % (num) # num= 234.7298 print(s3) # 2.4. Представить число в экспоненциальной форме s4 = 'num=%e' % (num) # num=2.347298e+02 print(s4) s5 = 'num=%E' % (num) # num=2.347298E+02 print(s5) # 2.5. Представить число в экспоненциальной форме с # точностью 3 знака после запятой и шириной вывода 15 знаков s6 = 'num=%15.3e' % (num) # num= 2.347e+02 print(s6) # 2.6. Представить число в формате e или f s7 = 'num=%g' % (num) # num=234.73 print(s7) num2 = 1.234567E-03 s8 = 'num2=%G' % (num2) # num2=0.00123457 print(s8)
Результат выполнения программы
num=234 num=234.73 num=234.73 num= 234.7298 num=2.347298e+02 num=2.347298E+02 num= 2.347e+02 num=234.73 num2=0.00123457
⇑
5. Пример, демонстрирующий форматирование строк и одиночных символов
В примере демонстрируется использование спецификаторов формата r, s, c при образовании выражений форматирования строк.
# Выражения форматирования строк # Форматирование строк # 1. Спецификатор формата s - использует функцию str() # 1.1. Конвертировать целое число d в строку s1 = 'str1=%s' % (235) # 'str1=235' print(s1) s2 = 'str2=%12s' % (1885) # 'str2= 1885' print(s2) s3 = '%-10s.' % (234) # '234 .' print(s3) # 1.2. Конвертировать вещественное число в строку s4 = 'str4=%s' % (-82.78234) # 'str4=-82.78234' print(s4) s5 = 'str5=%10s' % (-12.345) # 'str5= -12.345' print(s5) # 2. Спецификатор формата r - использует функцию repr() s6 = 'str6=%r' % (777) # 'str6=777' print(s6) s7 = 'str7=%10r' % (1.23) # 'str7= 1.23' print(s7) s8 = 'str8=%r' % ('Hello!') # "str8='Hello!'" print(s8) # 3. Конвертирование одиночных символов - спецификатор формата c symbol = '+' s9 = 'str9=%c' % (symbol) # 'str9=+' print(s9) # 4. Формирование строки на основе нескольких спецификаторов s10 = '%s%c%s' % ('bestprog', '.', 'net') # 'bestprog.net' print(s10) s11 = '%-10s%s' % ('Hello', 'world!') # 'Hello world!' print(s11)
Результат выполнения программы
str1=235 str2= 1885 234 . str4=-82.78234 str5= -12.345 str6=777 str7= 1.23 str8='Hello!' str9=+ bestprog.net Hello world!
⇑
Связанные темы
- Строки. Общие понятия. Объявление строки. Операции над строками. Примеры
- Экранированные последовательности. Неформатированные строки. Многострочные блоки текста
- Функции обработки строки в соответствии с форматом или правилом кодирования. Стили форматирования
⇑