logo

Metóda Python String format().

Theformat()>metóda je výkonný nástroj, ktorý umožňuje vývojárom vytvárať formátované reťazce vložením premenných a hodnôt do zástupných symbolov v rámci reťazca šablóny. Táto metóda ponúka flexibilný a všestranný spôsob vytvárania textového výstupu pre širokú škálu aplikácií. Python funkcia string format(). bol zavedený na efektívnejšie spracovanie zložitého formátovania reťazcov. Niekedy chceme v tomto prípade vytvoriť zovšeobecnené tlačové vyhlásenia namiesto písania tlačových vyhlásení zakaždým, keď použijeme koncept formátovania.

Syntax Python String Format().

Syntax: { }.format(hodnota)



Parametre:

  • hodnota: Môže to byť celé číslo, číselná konštanta s pohyblivou rádovou čiarkou, reťazec, znaky alebo dokonca premenné.

Návratový typ: Vráti naformátovaný reťazec s hodnotou odovzdanou ako parameter na pozícii zástupného symbolu.

String Format() v príklade Pythonu

Jednoduchá ukážka metódy Python String format() v 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)>

>

>

Výkon

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

Použitie metódy .Format().

Táto metóda vstavanej triedy reťazcov poskytuje funkčnosť pre komplexné substitúcie premenných a formátovanie hodnôt. Táto nová technika formátovania sa považuje za elegantnejšiu. Všeobecná syntax metódy format() je string.format(var1, var2,…). Tu sa pokúsime pochopiť, ako naformátovať reťazec, ktorý obsahuje zložené zátvorky Python .

Python3




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

>

>

Výkon

I have 4.00 Rupees!>

Použitie jedného formátovača

V tomto príklade použijeme strunový zátvorkový zápis program na demonštráciu str. metóda format(). Formátovače fungujú tak, že vkladajú jedno alebo viacero náhradných polí a zástupných symbolov definovaných párom zložených zátvoriek { } do reťazca a volanie 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>))>

>

linux mint škorica vs mate

>

Výkon

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

String format() s viacerými zástupnými symbolmi

Pri formátovaní je možné použiť viacero párov zložených zátvoriek reťazec v Pythone . Povedzme, že vo vete je potrebná ďalšia premenná substitúcia, ktorú možno vykonať pridaním druhého páru zložených zátvoriek a odovzdaním druhej hodnoty do metódy. Python nahradí zástupné symboly hodnotami v objednať.

Syntax: { } { } .format(hodnota1, hodnota2)

parametre: (hodnota1, hodnota2): Môžu to byť celé čísla, číselné konštanty s pohyblivou rádovou čiarkou, reťazce, znaky a dokonca aj premenné. Jediný rozdiel je v tom, že počet hodnôt odovzdaných ako parametre v metóde format() sa musí rovnať počtu zástupných symbolov vytvorených v reťazci.

Chyby a výnimky:

IndexError: Vyskytuje sa, keď má reťazec ďalší zástupný symbol a my sme mu neodovzdali žiadnu hodnotu v metóde format(). Python zvyčajne priraďuje zástupné symboly s predvoleným indexom v poradí ako 0, 1, 2, 3…. pre prístup k hodnotám odovzdaným ako parametre. Takže keď narazí na zástupný symbol, ktorého index nemá žiadnu hodnotu odovzdanú ako parameter, vyvolá IndexError.

Program Python používajúci viacero zástupných symbolov na demonštráciu metódy 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'>))>

>

>

Výkon

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

Program Python demonštrujúci počet zástupných symbolov chyby indexu je štyri, ale odovzdané sú iba tri hodnoty.

Python3




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

>

>

Výkon

IndexError: tuple index out of range>

Formátovanie reťazcov pomocou únikových sekvencií

Na formátovanie reťazca alebo vykonanie príkazu môžete použiť dva alebo viac špeciálne určených znakov v reťazci. Tieto znaky sa nazývajú escape sekvencie. An Úniková sekvencia v Pythone začína opačnou lomkou (). Napríklad je úniková sekvencia, v ktorej je bežný význam písmena n doslovne escapovaný a má alternatívny význam – nový riadok.

Úniková sekvencia Popis Príklad
Rozbije reťazec na nový riadok print(‘Navrhol som tento rým, aby som to včas vysvetlil Všetko, čo viem‘)
Pridá vodorovnú kartu print (‚Čas je cenná vec‘)
Vytlačí opačnú lomku print(‘Pozor, ako letí,keď sa kyvadlo hojdá‘)
' Vytlačí jeden citát vytlačiť („Nezáleží ani na tom, ako veľmi sa snažíš“)
Vytlačí dvojitú ponuku vytlačiť (‚Je to také eskutočné‘)
a vydáva zvuk ako zvon vytlačiť ('a')

Formátovače s pozičnými argumentmi a argumentmi pre kľúčové slová

Keď zástupné symboly { } sú prázdne, Python nahradí hodnoty odovzdané cez str.format() v poradí. Hodnoty, ktoré existujú v rámci metódy str.format() sú v podstate násobný dátové typy a každú jednotlivú hodnotu obsiahnutú v n-tici možno volať jej indexovým číslom, ktoré začína indexovým číslom 0. Tieto indexové čísla možno odovzdať do zložených zátvoriek, ktoré slúžia ako zástupné symboly v pôvodnom reťazci.

Syntax: {0} {1}.format(pozičný_argument, kľúčové_argumenty)

parametre: (pozičný_argument, kľúčové_argumenty)

  • Pozičný_argument môžu to byť celé čísla, číselné konštanty s pohyblivou rádovou čiarkou, reťazce, znaky a dokonca aj premenné.
  • Kľúčové slovo_argument je v podstate premenná uchovávajúca nejakú hodnotu, ktorá sa odovzdáva ako parameter.

Príklad: Demonštrovať použitie formátovačov s pozičnými kľúčovými argumentmi.

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'>))>

>

>

Výkon

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>

Špecifikácia typu v Pythone

Do zložených zátvoriek našej syntaxe možno zahrnúť viac parametrov. Použite syntax formátovacieho kódu {názov poľa: konverzia} , kde názov poľa určuje indexové číslo argumentu metódy str.format() a konverzia sa vzťahuje na konverzný kód typu údajov.

Pomocou %s – konverzia reťazca cez str() pred formátovaním

Python3




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

>

>

Výkon

geeksforgeeks Interngeeks  Inter>

Pomocou %c – charakter pred formátovaním

Python3

čo robí ravel v pythone




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

>

>

Výkon

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

Pomocou %i celé desiatkové číslo so znamienkom a %d desiatkové celé číslo so znamienkom (základ-10) pred formátovaním

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))>

>

>

Výkon

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

Ďalšia užitočná špecifikácia typu

  • %in desiatkové celé číslo bez znamienka
  • %O osmičkové celé číslo
  • f – zobrazenie s pohyblivou rádovou čiarkou
  • b – binárne číslo
  • O – osmičkové číslo
  • %X – hexadecimálne s malými písmenami po 9
  • %X – hexadecimálne s veľkými písmenami po 9
  • to je – zápis exponentov

Môžete tiež špecifikovať formátovacie symboly . Jedinou zmenou je použitie dvojbodky (:) namiesto %.

Napríklad namiesto %s použite {:s} a namiesto %d použite (:d}

Syntax: Reťazec {field_name:conversion} Example.format(value)
Chyby a výnimky:
ValueError: Počas konverzie typu v tejto metóde sa vyskytne chyba.

Preveďte základné 10 desatinné celé čísla na číselné konštanty s pohyblivou rádovou čiarkou

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>))>

>

>

Výkon

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>

Typ špecifikujúce chyby

Ukážte hodnotu ValueError pri vynútení typové konverzie

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))'''>

>

>

Výkon

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

Výplňové substitúcie alebo generovanie medzier

Ukážka medzier pri odovzdávaní reťazcov ako parametrov

V predvolenom nastavení sú reťazce v poli zarovnané doľava a čísla sú zarovnané doprava. Môžeme to upraviť umiestnením kódu zarovnania hneď za dvojbodku.

  <   : left-align text in the field   ^   : center text in the field>: text zarovnaný vpravo v poli>

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'>))>

>

>

Výkon :

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********>

Aplikácie

Formátovače sa vo všeobecnosti používajú na organizáciu údajov. Formátovače je možné vidieť v ich najlepšom svetle, keď sa používajú na organizáciu množstva údajov vizuálnym spôsobom. Ak používateľom zobrazujeme databázy, pomocou formátovačov na zväčšenie veľkosti poľa a úpravu zarovnania môže byť výstup čitateľnejší.

Príklad: Na demonštráciu organizácie veľkých údajov pomocou 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)>

>

>

Výkon :

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>

Použitie slovníka na formátovanie reťazcov

Použitie slovníka na rozbalenie hodnôt do zástupných symbolov v reťazci, ktorý je potrebné naformátovať. V podstate používame ** rozbaliť hodnoty. Táto metóda môže byť užitočná pri nahrádzaní reťazcov pri príprave dotazu 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))>

>

>

Výkon:

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

Python format() so zoznamom

Vzhľadom na zoznam pohyblivých hodnôt je úlohou skrátiť všetky pohyblivé hodnoty na 2 desatinné miesta. Pozrime sa na rôzne spôsoby vykonania úlohy.

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)>

>

>

Výkon

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