logo

Метод Python String format().

Theformat()>Метод — це потужний інструмент, який дозволяє розробникам створювати відформатовані рядки шляхом вбудовування змінних і значень у заповнювачі в рядку шаблону. Цей метод пропонує гнучкий і універсальний спосіб побудови текстового виводу для широкого діапазону програм. Python функція string format(). було введено для більш ефективної обробки складного форматування рядків. Іноді ми хочемо зробити узагальнені оператори друку в цьому випадку замість того, щоб писати оператори друку кожного разу, коли ми використовуємо концепцію форматування.

Синтаксис Python String Format().

Синтаксис: { }.format(значення)



Параметри:

  • значення: Це може бути ціле число, числова константа з плаваючою комою, рядок, символи або навіть змінні.

Тип повернення: Повертає відформатований рядок зі значенням, переданим як параметр у позиції заповнювача.

String Format() у прикладі Python

Проста демонстрація методу Python String format() у Python.



Python3






name>=> 'Ram'> age>=> 22> message>=> 'My name>is> {>0>}>and> I am {>1>} years> >old. {>1>}>is> my favorite> >number.'.>format>(name, age)> print>(message)>

>

>

Вихід

My name is Ram and I am 22 years old. 22 is my favorite number.>

Використання методу .Format().

Цей метод вбудованого класу рядків забезпечує функціональні можливості для складних замін змінних і форматування значень. Ця нова техніка форматування вважається більш елегантною. Загальний синтаксис методу format() такий: string.format(var1, var2,…). Тут ми спробуємо зрозуміти, як відформатувати рядок, який містить фігурні дужки Python .

Python3




txt>=> 'I have {an:.2f} Rupees!'> print>(txt.>format>(an>=> 4>))>

>

>

Вихід

I have 4.00 Rupees!>

Використання єдиного форматера

У цьому прикладі ми будемо використовувати позначення в дужках програма для демонстрації вул. метод format(). Засоби форматування працюють, розміщуючи одне або кілька полів заміни та заповнювачів, визначених парою фігурних дужок {} у рядок і виклик str.format() .

Python3




# using format option in a simple string> print>(>'{}, A computer science portal for geeks.'> >.>format>(>'techcodeview.com'>))> # using format option for a> # value stored in a variable> str> => 'This article is written in {}'> print>(>str>.>format>(>'Python'>))> # formatting a string using a numeric constant> print>(>'Hello, I am {} years old !'>.>format>(>18>))>

>

код фібоначчі java

>

Вихід

techcodeview.com, A computer science portal for geeks. This article is written in Python Hello, I am 18 years old!>

String format() із кількома заповнювачами

Під час форматування можна використовувати декілька пар фігурних дужок рядок у Python . Скажімо, у реченні потрібна інша заміна змінної, яку можна зробити, додавши другу пару фігурних дужок і передавши друге значення в метод. Python замінить заповнювачі значеннями в порядок.

Синтаксис: { } { } .format(значення1, значення2)

Параметри: (значення1, значення2) : Це можуть бути цілі числа, числові константи з плаваючою комою, рядки, символи та навіть змінні. Єдина відмінність полягає в тому, що кількість значень, переданих як параметри в методі format(), має дорівнювати кількості заповнювачів, створених у рядку.

Помилки та винятки:

IndexError: Трапляється, коли рядок має додатковий заповнювач, і ми не передали жодного значення для нього в методі format(). Python зазвичай призначає заповнювачі з індексом за замовчуванням у такому порядку 0, 1, 2, 3…. для доступу до значень, переданих як параметри. Отже, коли він зустрічає заповнювач, індекс якого не має жодного значення, переданого як параметр, він викидає IndexError.

Програма Python використовує кілька заповнювачів для демонстрації методу str.format().

Python3




# Multiple placeholders in format() function> my_string>=> '{}, is a {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))> # different datatypes can be used in formatting> print>(>'Hi ! My name is {} and I am {} years old'> >.>format>(>'User'>,>19>))> # The values passed as parameters> # are replaced in order of their entry> print>(>'This is {} {} {} {}'> >.>format>(>'one'>,>'two'>,>'three'>,>'four'>))>

>

>

Вихід

techcodeview.com, is a computer science portal for geeks Hi! My name is User and I am 19 years old This is one two three four>

String format() IndexError

Програма Python, яка демонструє помилку індексу, число заповнювачів становить чотири, але передано лише три значення.

Python3




# parameters in format function.> my_string>=> '{}, is a {} {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))>

>

>

Вихід

IndexError: tuple index out of range>

Форматування рядків за допомогою керуючих послідовностей

Ви можете використовувати два або більше спеціально призначених символів у рядку для форматування рядка або виконання команди. Ці символи називаються керуючими послідовностями. Ан Екран-послідовність у Python починається зі зворотної косої риски (). Наприклад, — це керуюча послідовність, у якій загальне значення літери n буквально екранується та отримує альтернативне значення — новий рядок.

Послідовність втечі опис приклад
Розбиває рядок на новий рядок print(‘Я створив цю риму, щоб пояснити свого часу Усе, що я знаю’)
Додає горизонтальну вкладку print(‘Час — цінна річ’)
Друкує зворотну косу риску print(‘Дивіться, як він пролітаєяк коливається маятник’)
Друкує одну цитату print(‘Це навіть не має значення, як сильно ви намагаєтеся’)
Друкує подвійні лапки print('Це такнереально')
a видає звук, схожий на дзвін print('a')

Форматувальники з позиційними аргументами та ключовими словами

Коли заповнювачі {} порожні, Python замінить значення, передані через str.format(), у порядку. Значення, які існують у методі str.format(), по суті, є кортеж типи даних і кожне окреме значення, що міститься в кортежі, можна викликати за його номером індексу, який починається з номера індексу 0. Ці номери індексів можна передати у фігурні дужки, які служать заповнювачами у вихідному рядку.

Синтаксис: {0} {1}.format(позиційний_аргумент, ключовий_аргумент)

Параметри: (позиційний_аргумент, ключовий_аргумент)

  • Позиційний_аргумент можуть бути цілими числами, числовими константами з плаваючою комою, рядками, символами та навіть змінними.
  • Аргумент_ключового_слова це по суті змінна, що зберігає деяке значення, яке передається як параметр.

приклад: Продемонструвати використання засобів форматування з позиційними ключовими аргументами.

Python3




# Positional arguments> # are placed in order> print>(>'{0} love {1}!!'>.>format>(>'techcodeview.com'>,> >'Geeks'>))> # Reverse the index numbers with the> # parameters of the placeholders> print>(>'{1} love {0}!!'>.>format>(>'techcodeview.com'>,> >'Geeks'>))> print>(>'Every {} should know the use of {} {} programming and {}'> >.>format>(>'programmer'>,>'Open'>,>'Source'>,> >'Operating Systems'>))> # Use the index numbers of the> # values to change the order that> # they appear in the string> print>(>'Every {3} should know the use of {2} {1} programming and {0}'> >.>format>(>'programmer'>,>'Open'>,>'Source'>,>'Operating Systems'>))> # Keyword arguments are called> # by their keyword name> print>(>'{gfg} is a {0} science portal for {1}'> >.>format>(>'computer'>,>'geeks'>, gfg>=>'techcodeview.com'>))>

>

>

Вихід

techcodeview.com love Geeks!!  Geeks love techcodeview.com!!  Every programmer should know the use of Open Source programming and Operating Systems  Every Operating Systems should know the use of Source Open programming and programmer  techcodeview.com is a computer science portal for geeks>

Вказівка ​​типу в Python

Більше параметрів можна включити у фігурні дужки нашого синтаксису. Використовуйте синтаксис коду формату {field_name: перетворення} , де ім'я поля вказує номер індексу аргументу методу str.format(), а перетворення посилається на код перетворення типу даних.

Використання %s – перетворення рядків через str() перед форматуванням

Python3




print>(>'%20s'> %> (>'geeksforgeeks'>, ))> print>(>'%-20s'> %> (>'Interngeeks'>, ))> print>(>'%.5s'> %> (>'Interngeeks'>, ))>

>

>

Вихід

geeksforgeeks Interngeeks  Inter>

Використання %c – характер перед форматуванням

Python3




type> => 'bug'> result>=> 'troubling'> print>('I wondered why the program was>%>s me. Then> it dawned on me it was a>%>s .'>%> >(result,>type>))>

>

>

Вихід

I wondered why the program was troubling me. Thenit dawned on me it was a bug .>

Використання %i десяткове ціле число зі знаком і %d десяткове ціле число зі знаком (основа-10) перед форматуванням

Python3




match>=> 12000> site>=> 'Amazon'> print>('>%>s>is> so useful. I tried to look> up mobile>and> they had a nice one that cost>%>d rupees.'>%> (site, match))>

>

>

Вихід

Amazon is so useful. I tried to lookup mobile and they had a nice one that cost 12000 rupees.>

Ще одне корисне визначення типу

  • % дюймів десяткове ціле число без знака
  • %O вісімкове ціле число
  • f – відображення з плаваючою комою
  • b – двійкове число
  • О – вісімкове число
  • %x – шістнадцяткове з малими літерами після 9
  • %X – шістнадцяткове з великими літерами після 9
  • Це є – запис степеня

Ви також можете вказати символи форматування . Єдина зміна полягає в використанні двокрапки (:) замість %.

Наприклад, замість %s використовуйте {:s}, а замість %d використовуйте (:d}

Синтаксис: Рядок {field_name:conversion} Example.format(value)
Помилки та винятки:
ValueError : Під час перетворення типу в цьому методі виникає помилка.

Перетворіть десяткові цілі числа з основою 10 на числові константи з плаваючою комою

Python3




print>(>'This site is {0:f}% securely {1}!!'>.> >format>(>100>,>'encrypted'>))> # To limit the precision> print>(>'My average of this {0} was {1:.2f}%'> >.>format>(>'semester'>,>78.234876>))> # For no decimal places> print>(>'My average of this {0} was {1:.0f}%'> >.>format>(>'semester'>,>78.234876>))> # Convert an integer to its binary or> # with other different converted bases.> print>(>'The {0} of 100 is {1:b}'> >.>format>(>'binary'>,>100>))> print>(>'The {0} of 100 is {1:o}'> >.>format>(>'octal'>,>100>))>

>

замінити рядок у рядку java

>

Вихід

This site is 100.000000% securely encrypted!! My average of this semester was 78.23% My average of this semester was 78% The binary of 100 is 1100100 The octal of 100 is 144>

Помилки визначення типу

Продемонструйте ValueError під час примусового виконання перетворення типів

Python3




# When explicitly converted floating-point> # values to decimal with base-10 by 'd'> # type conversion we encounter Value-Error.> print>(>'The temperature today is {0:d} degrees outside !'> >.>format>(>35.567>))> # Instead write this to avoid value-errors> ''' print('The temperature today is {0:.0f} degrees outside !'> >.format(35.567))'''>

>

>

Вихід

ValueError: Unknown format code 'd' for object of type 'float'>

Заміщення відступів або створення пробілів

Демонстрація інтервалів, коли рядки передаються як параметри

За замовчуванням рядки в полі вирівнюються за лівим краєм, а числа – за правим. Ми можемо змінити це, розмістивши код вирівнювання відразу після двокрапки.

  <   : left-align text in the field   ^   : center text in the field>: вирівнювання тексту в полі>'> по правому краю 

Python3




# To demonstrate spacing when> # strings are passed as parameters> print>(>'{0:4}, is the computer science portal for {1:8}!'> >.>format>(>'techcodeview.com'>,>'geeks'>))> # To demonstrate spacing when numeric> # constants are passed as parameters.> print>(>'It is {0:5} degrees outside !'> >.>format>(>40>))> # To demonstrate both string and numeric> # constants passed as parameters> print>(>'{0:4} was founded in {1:16}!'> >.>format>(>'techcodeview.com'>,>2009>))> # To demonstrate aligning of spaces> print>(>'{0:^16} was founded in {1:<4}!'> >.>format>(>'techcodeview.com'>,>2009>))> print>(>'{:*^20s}'>.>format>(>'Geeks'>))>

>

Вихід:

techcodeview.com, is the computer science portal for geeks ! It is 40 degrees outside! techcodeview.com was founded in 2009!  techcodeview.com was founded in 2009 ! *******Geeks********>

Додатки

Форматери зазвичай використовуються для впорядкування даних. Форматувальники можна побачити в найкращому світлі, коли вони використовуються для організації великої кількості даних у візуальний спосіб. Якщо ми показуємо користувачам бази даних, використання засобів форматування для збільшення розміру поля та зміни вирівнювання може зробити вивід більш читабельним.

Приклад: щоб продемонструвати організацію великих даних за допомогою format()

Python3




# which prints out i, i ^ 2, i ^ 3,> # i ^ 4 in the given range> # Function prints out values> # in an unorganized manner> def> unorganized(a, b):> >for> i>in> range>(a, b):> >print>(i, i>*>*>2>, i>*>*>3>, i>*>*>4>)> # Function prints the organized set of values> def> organized(a, b):> >for> i>in> range>(a, b):> ># Using formatters to give 6> ># spaces to each set of values> >print>(>'{:6d} {:6d} {:6d} {:6d}'> >.>format>(i, i>*>*> 2>, i>*>*> 3>, i>*>*> 4>))> # Driver Code> n1>=> int>(>input>(>'Enter lower range :- '>))> n2>=> int>(>input>(>'Enter upper range :- '>))> print>(>'------Before Using Formatters-------'>)> # Calling function without formatters> unorganized(n1, n2)> print>()> print>(>'-------After Using Formatters---------'>)> print>()> # Calling function that contains> # formatters to organize the data> organized(n1, n2)>

>

>

Вихід:

Enter lower range :- 3 Enter upper range :- 10 ------Before Using Formatters------- 3 9 27 81 4 16 64 256 5 25 125 625 6 36 216 1296 7 49 343 2401 8 64 512 4096 9 81 729 6561 -------After Using Formatters---------  3 9 27 81  4 16 64 256  5 25 125 625  6 36 216 1296  7 49 343 2401  8 64 512 4096  9 81 729 6561>

Використання словника для форматування рядків

Використання словника, щоб розпакувати значення в заповнювачі в рядку, який потрібно відформатувати. В основному використовуємо ** щоб розпакувати значення. Цей метод може бути корисним у підстановці рядка під час підготовки SQL-запиту.

Python3




introduction>=> 'My name is {first_name} {middle_name} {last_name} AKA the {aka}.'> full_name>=> {> >'first_name'>:>'Tony'>,> >'middle_name'>:>'Howard'>,> >'last_name'>:>'Stark'>,> >'aka'>:>'Iron Man'>,> }> # Notice the use of '**' operator to unpack the values.> print>(introduction.>format>(>*>*>full_name))>

>

>

Вихід:

My name is Tony Howard Stark AKA the Iron Man.>

Python format() зі списком

Маючи список значень з плаваючою речовиною, завдання полягає в тому, щоб скоротити всі значення з плаваючою точкою до 2 десяткових цифр. Давайте розглянемо різні способи виконання завдання.

Python3




# Python code to truncate float> # values to 2 decimal digits.> > # List initialization> Input> => [>100.7689454>,>17.232999>,>60.98867>,>300.83748789>]> > # Using format> Output>=> [>'{:.2f}'>.>format>(elem)>for> elem>in> Input>]> > # Print output> print>(Output)>

>

>

Вихід

['100.77', '17.23', '60.99', '300.84']>