Theformat()>
metoda je výkonný nástroj, který umožňuje vývojářům vytvářet formátované řetězce vkládáním proměnných a hodnot do zástupných symbolů v řetězci šablony. Tato metoda nabízí flexibilní a všestranný způsob vytváření textového výstupu pro širokou škálu aplikací. Krajta funkce string format(). byl zaveden pro efektivnější zpracování složitého formátování řetězců. Někdy chceme v takovém případě vytvořit zobecněné tiskové příkazy namísto psaní tiskových příkazů pokaždé, když použijeme koncept formátování.
Syntaxe Python String Format().
Syntax: { }.formát(hodnota)
Parametry:
- hodnota: Může to být celé číslo, číselná konstanta s plovoucí desetinnou čárkou, řetězec, znaky nebo dokonce proměnné.
Návratový typ: Vrátí formátovaný řetězec s hodnotou předanou jako parametr na pozici zástupného symbolu.
String Format() v příkladu Pythonu
Jednoduchá ukázka metody Python String format() v Krajta.
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ýstup
My name is Ram and I am 22 years old. 22 is my favorite number.>
Použití metody .Format().
Tato metoda vestavěné třídy řetězců poskytuje funkce pro komplexní substituce proměnných a formátování hodnot. Tato nová technika formátování je považována za elegantnější. Obecná syntaxe metody format() je string.format(var1, var2,…). Zde se pokusíme pochopit, jak naformátovat řetězec, který obsahuje složené závorky Krajta .
Python3
txt> => 'I have {an:.2f} Rupees!'> print> (txt.> format> (an> => 4> ))> |
>
>
Výstup
I have 4.00 Rupees!>
Použití jednoho formátovače
V tomto příkladu použijeme strunová závorka notace program pro demonstraci str. metoda format(). Formátovače fungují tak, že vloží jedno nebo více náhradních polí a zástupných symbolů definovaných dvojicí složených závorek { } do řetězce a volání 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 číslo na řetězec
>
Výstup
techcodeview.com, A computer science portal for geeks. This article is written in Python Hello, I am 18 years old!>
String format() s více zástupnými symboly
Při formátování lze použít více párů složených závorek řetězec v Pythonu . Řekněme, že ve větě je potřeba další substituce proměnné, kterou lze provést přidáním druhého páru složených závorek a předáním druhé hodnoty do metody. Python nahradí zástupné symboly hodnotami v objednat.
Syntaxe: { } { } .format(hodnota1, hodnota2)
Parametry: (hodnota1, hodnota2): Mohou to být celá čísla, číselné konstanty s plovoucí desetinnou čárkou, řetězce, znaky a dokonce i proměnné. Jediný rozdíl je v tom, že počet hodnot předávaných jako parametry v metodě format() se musí rovnat počtu zástupných symbolů vytvořených v řetězci.
Chyby a výjimky:
IndexError: Vyskytuje se, když má řetězec další zástupný symbol a my jsme mu v metodě format() nepředali žádnou hodnotu. Python obvykle přiřadí zástupné symboly s výchozím indexem v pořadí jako 0, 1, 2, 3…. pro přístup k hodnotám předávaným jako parametry. Takže když narazí na zástupný symbol, jehož index nemá žádnou hodnotu předávanou uvnitř jako parametr, vyvolá IndexError.
Program Python používající více zástupných symbolů k demonstraci metody 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ýstup
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 demonstrující počet zástupných symbolů chyby indexu je čtyři, ale jsou předány pouze tři hodnoty.
Python3
# parameters in format function.> my_string> => '{}, is a {} {} science portal for {}'> print> (my_string.> format> (> 'techcodeview.com'> ,> 'computer'> ,> 'geeks'> ))> |
>
>
Výstup
IndexError: tuple index out of range>
Formátování řetězců pomocí únikových sekvencí
K formátování řetězce nebo provádění příkazu můžete v řetězci použít dva nebo více speciálně určených znaků. Tyto znaky se nazývají escape sekvence. An Escape sekvence v Pythonu začíná zpětným lomítkem (). Například je escape sekvence, ve které je běžný význam písmene n doslova escapován a je mu přiřazen alternativní význam – nový řádek.
Úniková sekvence | Popis | Příklad |
---|---|---|
Rozdělí řetězec na nový řádek | print(‘Navrhl jsem tento rým, abych vysvětlil včas Vše, co vím‘) | |
Přidá vodorovnou záložku | print(‚Čas je cenná věc‘) | |
Vytiskne zpětné lomítko | print(‘Sleduj, jak letí, jak se kyvadlo houpe‘) | |
' | Vytiskne jeden citát | tisknout („Nezáleží ani na tom, jak moc se snažíš“) |
Vytiskne dvojitou nabídku | tisknout('Je to tak eskutečné') | |
A | vydává zvuk jako zvon | tisknout ('a') |
Formátovače s pozičními a klíčovými argumenty
Když zástupné symboly { } jsou prázdné, Python nahradí hodnoty předané přes str.format() v pořadí. Hodnoty, které existují v rámci metody str.format() jsou v podstatě tuple typy dat a každou jednotlivou hodnotu obsaženou v n-tici lze volat jejím indexovým číslem, které začíná číslem indexu 0. Tato čísla indexu lze předat do složených závorek, které slouží jako zástupné symboly v původním řetězci.
Syntaxe: {0} {1}.format(poziční_argument, klíčové_argumenty)
Parametry: (poziční_argument, klíčové_argumenty)
- Poziční_argument mohou být celá čísla, číselné konstanty s plovoucí desetinnou čárkou, řetězce, znaky a dokonce i proměnné.
- Klíčové_argumenty je v podstatě proměnná uchovávající nějakou hodnotu, která se předává jako parametr.
Příklad: Demonstrovat použití formátovačů s pozičními klíčovými argumenty.
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ýstup
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>
Určení typu v Pythonu
Více parametrů lze zahrnout do složených závorek naší syntaxe. Použijte syntaxi formátovacího kódu {field_name: konverze} , kde název_pole udává indexové číslo argumentu metody str.format() a konverze se týká převodního kódu datového typu.
Pomocí %s – převod řetězce pomocí str() před formátováním
Python3
print> (> '%20s'> %> (> 'geeksforgeeks'> , ))> print> (> '%-20s'> %> (> 'Interngeeks'> , ))> print> (> '%.5s'> %> (> 'Interngeeks'> , ))> |
>
>
Výstup
geeksforgeeks Interngeeks Inter>
Pomocí %c – charakter před formátováním
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> ))> |
>
>
Výstup
I wondered why the program was troubling me. Thenit dawned on me it was a bug .>
Pomocí %i dekadické celé číslo se znaménkem a %d dekadické celé číslo se znaménkem (základ-10) před formátování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ýstup
Amazon is so useful. I tried to lookup mobile and they had a nice one that cost 12000 rupees.>
Další užitečná specifikace typu
- %v dekadické celé číslo bez znaménka
- %Ó osmičkové celé číslo
- F – zobrazení s plovoucí desetinnou čárkou
- b – binární číslo
- Ó – osmičkové číslo
- %X – hexadecimální s malými písmeny po 9
- %X – hexadecimální s velkými písmeny po 9
- to je – zápis exponentů
Můžete také určit formátovací symboly . Jedinou změnou je použití dvojtečky (:) místo %.
Například místo %s použijte {:s} a místo %d použijte (:d}
Syntaxe: Řetězec {field_name:conversion} Example.format(value)
Chyby a výjimky:
ValueError: Při převodu typu v této metodě dojde k chybě.
Převeďte desetinná celá čísla se základnou 10 na číselné konstanty s plovoucí desetinnou čárkou
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ýstup
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 určující chyby
Demonstrujte ValueError při vynucení typové konverze
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ýstup
ValueError: Unknown format code 'd' for object of type 'float'>
Výplňové substituce nebo generování mezer
Ukázka mezer při předávání řetězců jako parametrů
Ve výchozím nastavení jsou řetězce v poli zarovnány doleva a čísla jsou zarovnána doprava. Můžeme to upravit umístěním kódu zarovnání hned za dvojtečku.
< : left-align text in the field ^ : center text in the field>: text zarovnat 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ýstup :
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********>
Aplikace
Formátovače se obecně používají k organizaci dat. Formátovače lze vidět v jejich nejlepším světle, když jsou používány k uspořádání velkého množství dat vizuálním způsobem. Pokud uživatelům zobrazujeme databáze, pomocí formátovačů ke zvětšení velikosti pole a úpravě zarovnání může být výstup čitelnější.
Příklad: Demonstrace organizace velkých dat pomocí 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ýstup :
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žití slovníku pro formátování řetězců
Použití slovníku k rozbalení hodnot do zástupných symbolů v řetězci, který je třeba naformátovat. V zásadě používáme ** k rozbalení hodnot. Tato metoda může být užitečná při substituci řetězců při přípravě SQL dotazu.
Python3
vlastnosti java
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ýstup:
My name is Tony Howard Stark AKA the Iron Man.>
Python format() se seznamem
Vzhledem k seznamu plovoucích hodnot je úkolem zkrátit všechny plovoucí hodnoty na 2 desetinná místa. Podívejme se na různé způsoby provedení úkolu.
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ýstup
['100.77', '17.23', '60.99', '300.84']>