Python String format() Vysvětlete pomocí PŘÍKLADŮ
Co je to Python Formát řetězce ()?
Python Formát řetězce() je funkce používaná k nahrazení, nahrazení nebo převedení řetězce zástupnými symboly s platnými hodnotami v konečném řetězci. Jedná se o vestavěnou funkci Python string class, která vrací naformátovaný řetězec jako výstup. Zástupné symboly uvnitř řetězce jsou definovány ve složených závorkách.
Například “Welcome to Guru99 {}”.format('value here').
Syntaxe funkce format() in Python
templatestring.format(val1, val2...)
parametry
val1, val2 …: Hodnoty, které je třeba nahradit v daném řetězci šablony, který má zástupné symboly ve formě složených závorek {}. Zástupnými symboly mohou být řetězec, pár klíč/hodnota, celá čísla, čísla s plovoucí desetinnou čárkou, znaky atd.
Návratová hodnota
Vrátí konečný řetězec s platnými hodnotami nahrazenými namísto zástupných symbolů uvedených ve složených závorkách.
Zástupné symboly
Zástupné symboly v řetězci šablony jsou reprezentovány složenými závorkami, např. {}. Zástupný symbol může být prázdný {} nebo může mít proměnnou např. {jméno} nebo může mít číselný index, např. {0}, {1} atd.
Jak funguje string format()?
Jedno Python Formát řetězce() metoda prohledá původní řetězce pro zástupné symboly. Zástupnými symboly mohou být prázdné složené závorky ({}), poziční argumenty, tj. řetězec může mít zástupné symboly s indexem 0, 1 pro např. {0}, {1} atd.
U argumentů klíčových slov bude název proměnné uveden ve složených závorkách pro např. {jméno}, {věk}. V případě prázdných složených závorek budou hodnoty z formátu postupně nahrazeny uvnitř složených závorek.
První hodnota bude nahrazena první prázdnou složenou závorkou, následovanou další. U pozičních argumentů bude index začínat od 0 a tak dále. Hodnoty budou dostupné ve formátu odděleném čárkami a 0th hodnota bude ukazovat na první hodnotu ve formátu a tak dále.
Pro argumenty klíčových slov, tj. když používáte proměnnou uvnitř svých zástupných symbolů, můžete mít pořadí hodnot uvnitř formátu, jak potřebujete.
Na pořadí zde nezáleží, protože hodnoty budou nahrazeny na základě názvu proměnné přítomného ve format(). Zde je několik příkladů, jak používat zástupné symboly uvnitř řetězce jako prázdné, poziční a používající klíčová slova nebo proměnné.
Příklad: Prázdný zástupný symbol byl nahrazen řetězcovou hodnotou
V níže uvedeném příkladu má řetězec prázdné složené závorky ({}). Hodnota daná formátu bude nahrazena ve složených závorkách ({}).
Hodnota, kterou chceme nahradit, je řetězec.
Příklad:
Použití formátování řetězce v Python, chceme, aby byly složené závorky ({}) nahrazeny řetězcovou hodnotou. Hodnota je dána formátu („Guru99“). Při spuštění jsou složené závorky {} nahrazeny textem Guru99 a konečný řetězec získáte jako výukové programy Vítejte v Guru99.
print ("Welcome to {} tutorials".format("Guru99"))
Výstup:
Welcome to Guru99 tutorials
Příklad: Prázdný zástupný symbol byl nahrazen číselnou hodnotou
V níže uvedeném příkladu chceme, aby byla číselná hodnota nahrazena uvnitř původního řetězce. Složené závorky ({}) se přidají na místo, kde potřebujete číselnou hodnotu. Při jeho spuštění jsou prázdné složené závorky ({}) nahrazeny číselnou hodnotou.
Příklad:
Pro vložení čísel do řetězce můžete také použít format(). Příklad ukáže, jak nahradit prázdný zástupný symbol {} číslem 99 přítomným uvnitř format().
print ("Welcome to Guru{} Tutorials".format("99"))
Výstup:
Welcome to Guru99 Tutorials
Příklad: Použití argumentů proměnných nebo klíčových slov uvnitř zástupného symbolu
Je také možné použít proměnné uvnitř složených závorek, jak ukazuje příklad níže. Proměnné jsou definovány uvnitř format(). Proto při jeho spuštění je hodnota přiřazená proměnné nahrazena uvnitř původního řetězce.
Příklad:
Můžete použít proměnné ve složených závorkách, například {name} {num}. Hodnoty pro name a num variable jsou dostupné ve formátu, tj. format(name=”Guru”, num=”99″). Hodnoty zadané pro name a num budou nahrazeny uvnitř {name} a {num}.
print ("Welcome to {name}{num} Tutorials".format(name="Guru", num="99"))
Výstup:
Welcome to Guru99 Tutorials
Příklad: Použití indexu nebo pozičních argumentů uvnitř zástupného symbolu
Hodnoty lze nahradit pomocí indexů jako 0, 1, 2 uvnitř zástupných symbolů. Hodnota bude vybrána v pořadí z format(), jak je znázorněno v příkladu níže.
Příklad:
print ("Welcome to {0}{1} Tutorials".format("Guru","99"))
Výstup:
Welcome to Guru99 Tutorials
Příklad: Použití více zástupných symbolů uvnitř řetězce
V tomto příkladu použijeme více prázdných zástupných symbolů.
Příklad:
Řetězec použitý v příkladu má více prázdných zástupných symbolů a každý zástupný symbol bude odkazovat na hodnotu uvnitř format() . První hodnota bude nahrazena prvním zástupným symbolem a tak dále.
print ("{} is {} new kind of {} experience!".format("Guru99", "totally","learning"))
Výstup:
Guru99 is totally new kind of learning experience!
Formátování uvnitř zástupných symbolů
Viděli jste, že je možné mít zástupný symbol prázdný, s proměnnou nebo indexem. Je také možné, že se můžete přihlásit Python Formátování řetězce uvnitř zástupného symbolu.
Zde je seznam formátů
Formát | Description | Příklad |
---|---|---|
:d |
Při použití uvnitř zástupného symbolu poskytne výstup v desítkovém formátu | print("The binary to decimal value is : {:d}".format(0b0011))
Výstup: The binary to decimal value is : 3 |
:b |
Při použití uvnitř zástupného symbolu poskytne výstup v binárním formátu | print("The binary value is : {:b}".format(500))
Výstup: The binary value is : 111110100 |
:e |
Při použití uvnitř zástupného symbolu poskytne výstup ve vědeckém formátu, exponent e ve výstupu bude malými písmeny. | print("The scientific value is : {:e}".format(40))
Výstup: The scientific format value is : 4.000000e+01 |
:E |
Při použití uvnitř zástupného symbolu poskytne výstup ve vědeckém formátu, exponent E ve výstupu bude velkými písmeny | print("The scientific value is : {:E}".format(40))
Výstup: The scientific value is : 4.000000E+01 |
:f |
Výsledkem bude formát čísel s pevnou desetinnou čárkou. Ve výchozím nastavení získáte výstup libovolného čísla se šesti desetinnými místy. V případě, že potřebujete až 2 desetinná místa, použijte jako. 2f tzn. tečka (.) před 2f | print("The value is : {:f}".format(40))
Výstup: The value is : 40.000000 Příklad: Zobrazení výstupu až na 2 desetinná místa.
Výstup: The value is: 40.00 |
:o |
Výsledkem bude osmičkový formát | print("The value is : {:o}".format(500))
Výstup: The value is : 764 |
:x |
Tím se zobrazí hexadecimální formát s malými písmeny | print("The value is : {:x}".format(500))
Výstup: The value is : 1f4 |
:X |
Tím se zobrazí hexadecimální formát s velkými písmeny. | print("The value is : {:X}".format(500))
Výstup: The value is : 1F4 |
:n |
Tím se vypíše formát čísla. | print("The value is : {:n}".format(500.00))
Výstup: The value is : 500 |
:% |
Tím získáte výstup v procentuálním formátu. Ve výchozím nastavení bude dávat 6 desetinných míst pro výstup v procentech, v případě, že nechcete žádnou desetinnou hodnotu, můžete použít tečku s 0, tj. (:.0%). |
print("The value is : {:%}".format(0.80))
Výstup: The value is : 80.000000% Tento příklad ukazuje, jak přeskočit desetinná místa pomocí {:.0%} uvnitř zástupného symbolu.
The value is: 80% |
:_ |
Výsledkem bude podtržítko jako oddělovač tisíců. Je k dispozici od pythonu 3.6+. | print("The value is {:_}".format(1000000))
Výstup: The value is : 1_000_000 |
:, |
Výsledkem bude čárka jako oddělovač tisíců | print("The value is : {:,}".format(1000000))
Výstup: The value is : 1,000,000 Přidá se čárka(,) jako oddělovač tisíců, jak je znázorněno na výstupu. |
: |
Tím se před kladná čísla přidá mezera | Tento příklad ukazuje, jak přidat mezeru nebo výplň před dané číslo. Číslo 5 označuje počet mezer, které chcete před číslem.
Výstup: The value is: 40 |
:- |
Tím se před záporná čísla přidá znaménko mínus | Příklad ukazuje, jak získat výstup se znaménkem mínus (-) před číslem pomocí {:-}.
Výstup: The value is: -40 |
:+ |
K označení kladného čísla můžete použít znaménko plus | Příklad ukazuje, jak získat výstup se znaménkem plus (+) před číslem pomocí {:+}.
Výstup: The value is: +40 |
:= |
Rovno se používá k umístění znaménka +/- na levou stranu. | Příklad ukazuje, jak získat výstup se znaménkem plus (+/-) před znaménkem rovná se pomocí {:=}.
Výstup: The value is -40 |
:^ |
Tím se konečný výsledek zarovná na střed | Příklad ukazuje použití {:^} k zarovnání textu na střed. Číslo 10 se používá k přidání 10 mezer pro zobrazení zarovnání na střed, když je hodnota nahrazena.
Výstup: The value 40 is a positive value Zde můžete použít 10, která přidá 10 mezer do konečného textu a hodnota, která má být nahrazena, bude zarovnána na střed mezi 10 mezerami. Mezery 10 jsou přidány pouze pro zobrazení zarovnání na střed nahrazené hodnoty. |
:> |
Tím se konečný výsledek zarovná vpravo | Mezera 10 se přidá pomocí (:>10) a nahrazená hodnota je zarovnána doprava.
Výstup: The value 40 is positive value |
:< |
Tím se zarovná doleva konečný výsledek | Mezera 10 je přidána pomocí (:<10) a hodnota nahrazuje je zarovnána doleva.
Výstup: The value 40 is positive value |
Použití třídy s format()
V tomto příkladu vytváříme třídu a používáme objekt třídy uvnitř formátu Python metoda. Zástupné symboly budou odkazovat na vlastnosti třídy nebo členy používající objekt třídy.
Příklad:
Třída je volána uvnitř format(c=MyClass()). Objekt c bude mít odkaz na vlastnosti a metody uvnitř třídy MyClass().
class MyClass: msg1="Guru" msg2="Tutorials" print("Welcome to {c.msg1}99 {c.msg2}!".format(c=MyClass()))
Výstup:
Welcome to Guru99 Tutorials!
Použití slovníku s format()
Je také možné použít slovník uvnitř format(), jak je znázorněno v příkladu níže:
my_dict = {'msg1': "Welcome", 'msg2': 'Guru99'} print("{m[msg1]} to {m[msg2]} Tutorials!".format(m=my_dict))
Výstup:
Welcome to Guru99 Tutorials!
Výplňové proměnné substituce
Pomocí metody string.format() můžete přidat výplň, mezeru pomocí zástupných symbolů uvnitř řetězce.
Příklad:
V níže uvedeném příkladu přidá prostor do zástupného symbolu pomocí format(). Chcete-li přidat mezeru, musíte zadat počet mezer ve složených závorkách za dvojtečkou (:). Zástupný symbol tedy bude vypadat jako {:5}.
print("I have {:5} dogs and {:5} cat".format(2,1))
Výstup:
I have 2 dogs and 1 cat
Můžete také zadat index uvnitř zástupného symbolu, například: {0:5}, kde 0 bude odkazovat na první hodnotu ve formátu.
print("I have {0:5} dogs and {1:5} cat".format(2,1))
Výstup:
I have 2 dogs and 1 cat
Shrnutí
- Python string class nám poskytuje důležitý vestavěný příkaz nazvaný format(), který nám pomáhá nahradit, nahradit nebo převést řetězec zástupnými symboly s platnými hodnotami v konečném řetězci.
- Zástupné symboly uvnitř modulu řetězce Python jsou definovány ve složených závorkách, např. “Welcome to Guru99 {}”.format('value here').
- Zástupný symbol může být prázdný {} nebo může mít proměnnou např. {jméno} , nebo může mít číselný index např. {0} , {1} atd.
- Můžete použít formátování řetězců v Python uvnitř zástupných symbolů, které mohou pomoci přidat odsazení, zarovnat na střed a také pomoci s formátováním čísel.