Операції форматування рядків. Вирази форматування рядків. Бінарний оператор %
Зміст
- 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!
⇑
Споріднені теми
- Рядки. Загальні поняття. Оголошення рядка. Операції над рядками. Приклади
- Екрановані послідовності. Неформатовані рядки. Багаторядкові блоки тексту
- Функції обробки рядка згідно з форматом чи правилом кодування. Стилі форматування
⇑