Python | Форматування виводу
У Python є кілька способів представити вихідні дані програми. Дані можуть бути надруковані у формі, зрозумілій людині, або записані у файл для подальшого використання, або навіть у іншій визначеній формі. Користувачі часто хочуть більше контролювати форматування виводу, ніж просто друкувати значення, розділені пробілами.
Форматування виводу в Python
Існує кілька способів форматування виводу за допомогою методу String Python .
- Використання оператора String Modulo (%)
- Використання методу форматування
- Використання методу рядків
- Правило перетворення формату Python
Форматування виводу за допомогою оператора String Modulo (%)
The Модуль оператора % також можна використовувати для форматування рядків. Він інтерпретує лівий аргумент так само, як формат у стилі printf(), як у рядках мови C, які застосовуються до правого аргументу. У Python немає функції printf(), але функціональність стародавнього printf міститься в Python . З цією метою оператор % перевантажується класом string для виконання форматування рядка. Тому його часто називають рядковим оператором модуля (або іноді навіть модулем). Рядковий модульний оператор ( % ) все ще доступний у Python(3.x) і широко використовується. Але нині старий стиль форматування вилучено з мови.
Python3
# Python program showing how to use string modulo operator(%)> print> (> 'Geeks : %2d, Portal : %5.2f'> %> (> 1> ,> 05.333> ))> print> (> 'Total students : %3d, Boys : %2d'> %> (> 240> ,> 120> ))> # print integer value> print> (> '%7.3o'> %> (> 25> ))> # print octal value> print> (> '%10.3E'> %> (> 356.08977> ))> # print exponential value> |
Вихід
Geeks : 1, Portal : 5.33 Total students : 240, Boys : 120 031 3.561E+02
Форматування виводу за допомогою оператора Modulo
У нашому прикладі їх два: %2d і %5.2f. Загальний синтаксис заповнювача формату:
%[flags][width][.precision]type
Давайте подивимося на заповнювачі в нашому прикладі.
- Перший покажчик місця заповнення «%2d» використовується для першого компонента нашого кортежу, тобто цілого числа 1. Воно буде надруковано з 2 символами, і оскільки 1 складається лише з однієї цифри, вихід доповнюється 1 пробілом на початку.
- Другий заповнювач «%5.2f» призначений для числа з плаваючою точкою. Як і інші заповнювачі, він представлений символом %. Він визначає загальну кількість цифр, які має містити рядок, включаючи десяткову крапку та всі цифри як до, так і після коми.
- Наше число з плаваючою речовиною 05.333 відформатовано з 5 символів і точністю 2, позначених числом після «.» у заповнювачі. Останній символ «f» вказує на те, що заповнювач представляє значення з плаваючою точкою.
Форматування виводу за допомогою методу форматування
Метод format() додано в Python(2.6). Метод форматування рядків вимагає більше ручних зусиль. Користувачі використовують {}, щоб позначити, де змінна буде замінена, і можуть надати детальні директиви форматування, але користувач також повинен надати інформацію для форматування. Цей метод дозволяє нам об’єднувати елементи в межах виводу за допомогою позиційного форматування. Наприклад -
Приклад 1: Код пояснює різні методи форматування рядків Python. Значення або надаються явно, або посилаються на порядок, у якому вони з’являються в процедурі format(). f-Strings дозволяють використовувати фігурні дужки та префікс f для вбудовування виразів у рядок літерали. Вирази f-рядків оцінюються, і замість них замінюються відповідні значення.
Python3
print> (> 'I love {} for '{}!''> .> format> (> 'Geeks'> ,> 'Geeks'> ))> # using format() method and referring a position of the object> print> (> '{0} and {1}'> .> format> (> 'Geeks'> ,> 'Portal'> ))> print> (> '{1} and {0}'> .> format> (> 'Geeks'> ,> 'Portal'> ))> print> (f> 'I love {'Geeks'} for '{'Geeks'}!''> )> # using format() method and referring a position of the object> print> (f> '{'Geeks'} and {'Portal'}'> )> |
Вихід
I love Geeks for 'Geeks!' Geeks and Portal Portal and Geeks I love Geeks for 'Geeks!' Geeks and Portal
Дужки та символи в них (так звані поля форматування ) замінюються об’єктами, переданими в метод format(). Число в дужках можна використовувати для позначення положення об’єкта, переданого в метод format().
приклад 2: За допомогою позиційних параметрів і іменованого аргументу ('other') у першому рядку значення 'Geeks', 'For' і 'Geeks' додаються до шаблону рядка. 'Geeks:12, Portal: 0.55′ друкується, причому перше значення відображається як 2-значне ціле число, а друге число має 2 знаки після коми та 8-бітну ширину. Іменовані аргументи методу format(), позначені спеціальними мітками («a» і «p») для чисел «453» і «59.058»,
Python3
# combining positional and keyword arguments> print> (> 'Number one portal is {0}, {1}, and {other}.'> > .> format> (> 'Geeks'> ,> 'For'> , other> => 'Geeks'> ))> # using format() method with number> print> (> 'Geeks :{0:2d}, Portal :{1:8.2f}'> .> > format> (> 12> ,> 00.546> ))> # Changing positional argument> print> (> 'Second argument: {1:3d}, first one: {0:7.2f}'> .> > format> (> 47.42> ,> 11> ))> print> (> 'Geeks: {a:5d}, Portal: {p:8.2f}'> .> > format> (a> => 453> , p> => 59.058> ))> |
Вихід
Number one portal is Geeks, For, and Geeks. Geeks :12, Portal : 0.55 Second argument: 11, first one: 47.42 Geeks: 453, Portal: 59.06
На наступній діаграмі з прикладом використання показано, як метод format працює для позиційних параметрів:
Форматування виводу за допомогою методу Format
приклад 3: Код показує, як використовувати словники з методом format() Python. «Вкладка» словника в першому прикладі містить ключі та пов’язані значення. Метод format() використовує індексування для розміщення значень у шаблоні рядка. У другому прикладі іменовані ключі в словнику використовуються як дані.
Python3
tab> => {> 'geeks'> :> 4127> ,> 'for'> :> 4098> ,> 'geek'> :> 8637678> }> # using format() in dictionary> print> (> 'Geeks: {0[geeks]:d}; For: {0[for]:d}; '> > 'Geeks: {0[geek]:d}'> .> format> (tab))> data> => dict> (fun> => 'GeeksForGeeks'> , adj> => 'Portal'> )> print> (> 'I love {fun} computer {adj}'> .> format> (> *> *> data))> |
Вихід
Geeks: 4127; For: 4098; Geeks: 8637678 I love GeeksForGeeks computer Portal
Форматування виводу за допомогою методу String
Цей вивід відформатовано за допомогою рядковий метод, тобто операції зрізання та конкатенації. Рядковий тип має кілька методів, які допомагають форматувати вивід у вигадливіший спосіб. Деякі методи, які допомагають у форматуванні виводу, є str.light() , str.rjust() , і str.centre()
Python3
cstr> => 'I love geeksforgeeks'> # Printing the center aligned string with fillchr> print> (> 'Center aligned string with fillchr: '> )> print> (cstr.center(> 40> ,> '#'> ))> # Printing the left aligned string with '-' padding> print> (> 'The left aligned string is : '> )> print> (cstr.ljust(> 40> ,> '-'> ))> # Printing the right aligned string with '-' padding> print> (> 'The right aligned string is : '> )> print> (cstr.rjust(> 40> ,> '-'> ))> |
Вихід
Center aligned string with fillchr: ##########I love geeksforgeeks########## The left aligned string is : I love geeksforgeeks-------------------- The right aligned string is : --------------------I love geeksforgeeks
Правило перетворення формату Python
У цій таблиці наведено вказівки щодо стандартного перетворення формату, які використовуються функцією Python format().
| Перетворення | Значення |
|---|---|
| d | Десяткове ціле число |
| b | Двійковий формат |
| О | вісімковий формат |
| в | Застаріле та еквівалентне «d» |
| x або X | Шістнадцятковий формат |
| e або E | Експоненціальний запис |
| f або F | Десяткове число з плаваючою комою |
| g або G | Загальний формат |
| в | Один символ |
| r | Формат рядка (з використанням repr()) |
| с | Формат рядка (з використанням str())) |
| % | Відсоток |