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