Formátování řetězců umožňuje vytvářet dynamické řetězce kombinací proměnných a hodnot. V tomto článku probereme asi 5 způsobů formátování řetězce.
Naučíte se různé metody formátování řetězců s příklady pro lepší pochopení. Pojďme se na ně nyní podívat!
Jak formátovat řetězce v Pythonu
Existuje pět různých způsobů, jak provést formátování řetězce Krajta
- Formátování s operátorem %.
- Formátování pomocí řetězcové metody format().
- Formátování pomocí řetězcových literálů, nazývaných f-strings.
- Formátování pomocí String Template Class
- Formátování pomocí řetězcové metody center().
Uvidíme tedy všechny výše uvedené způsoby a zaměříme se také na to, která strategie formátování řetězců je nejlepší.
1. Jak formátovat řetězec pomocí operátoru %
Je to nejstarší metoda formátování řetězců. Zde používáme modulo % operátor . Modulo % je také známý jako operátor formátování řetězce.
Řetězec formátu Pythonu pomocí operátoru %
Ve výrazu Vychrtlý, vychrtlý toulavý pes %s sežral % ‚spěchaně‘, je zástupný symbol %s v řetězci nahrazen hodnotou ‚spěchal‘.
Python3
C#
print> (> 'The mangy, scrawny stray dog %s gobbled down'> %> 'hurriedly'> +> > 'the grain-free, organic dog food.'> )> |
>
>Výstup
The mangy, scrawny stray dog hurriedly gobbled downthe grain-free, organic dog food.>
Vložení více řetězců pomocí operátoru modulo
Zde vkládáme více řetězců s operátorem %.
Python3
x> => 'looked'> print> (> 'Misha %s and %s around'> %> (> 'walked'> ,x))> |
>
>Výstup
Misha walked and looked around>
Přesné zpracování v Pythonu pomocí operátoru %
Čísla s plovoucí desetinnou čárkou používají formát %a.bf . Tady, A by byl minimální počet číslic v řetězci; tyto mohou být doplněny mezerami, pokud celé číslo nemá tolik číslic.
blízko tomu, bf představuje, kolik číslic se má zobrazit za desetinnou čárkou.
V tomto kódu řetězec ‚Hodnota pi je: %5.4f‘ obsahuje specifikátor formátu %5.4f. Specifikátor formátu %5.4f se používá k formátování čísla s plovoucí desetinnou čárkou s minimální šířkou 5 a přesností na 4 desetinná místa.
Python3
print> (> 'The value of pi is: %5.4f'> %> (> 3.141592> ))> |
>
>Výstup
The value of pi is: 3.1416>
Více typů převodu formátů
V daném kódu je formátovací řetězec Python převeden na Integer a plovoucí desetinnou čárku pomocí %d,%f.
nohy vs noha
Python3
variable> => 12> string> => 'Variable as integer> => %> d
> Variable as> float> => %> f'> %> (variable, variable)> print> (string)> |
>
>Výstup
Variable as integer = 12 Variable as float = 12.000000>
Poznámka: Chcete-li se dozvědět více o %-formátování, viz Formátování řetězce v Pythonu pomocí %
2. Jak formátovat řetězec pomocí metody format().
Metoda Format(). byl představen s Python3 pro efektivnější zpracování složitého formátování řetězců.
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 zavolají str.format() . Hodnota, kterou chceme vložit do zástupných symbolů a zřetězit s řetězcem předaným jako parametry do funkce format.
Syntax: ‘Sem řetězec {} a poté také {}’.format(‘něco1′,‘něco2‘)
Formátování String Pythonu pomocí metody format().
Tento kód používá jako zástupný symbol {} a pak jsme zavolali metodu.format() na „rovno“ se zástupným symbolem.
Python3
print> (> 'We all are {}.'> .> format> (> 'equal'> ))> |
>
>Výstup
We all are equal.>
Vkládání na základě indexu
V tomto kódu jsou složené závorky {} s indexy použity v řetězci ‚{2} {1} {0}‘ k označení pozic, kam budou umístěny odpovídající hodnoty.
Python3
print> (> '{2} {1} {0}'> .> format> (> 'directions'> ,> > 'the'> ,> 'Read'> ))> |
>
>Výstup
Read the directions>
Vložit objekt přiřazením klíčových slov
V tomto kódu se složené závorky {} s pojmenovanými zástupnými symboly ({a}, {b}, {c}) používají v řetězci 'a: {a}, b: {b}, c: {c}' k označení pozice, kde budou umístěny odpovídající pojmenované argumenty.
Python3
print> (> 'a: {a}, b: {b}, c: {c}'> .> format> (a> => 1> ,> > b> => 'Two'> ,> > c> => 12.3> ))> |
>
>Výstup
a: 1, b: Two, c: 12.3>
Znovu použijte vložené objekty
V tomto kódu jsou složené závorky {} s pojmenovanými zástupnými symboly ({p}) použity v řetězci 'První {p} bylo v pořádku, ale {p} {p} bylo těžké k označení pozic, kde je odpovídající jméno.' argument p bude umístěn.
Python3
print> (> > 'The first {p} was alright, but the {p} {p} was tough.'> .> format> (p> => 'second'> ))> |
bash pro smyčku 1 až 10
>
>Výstup
The first second was alright, but the second second was tough.>
Plovoucí přesnost s metodou the.format().
Syntax: {[index]:[šířka][.precision][typ]}
Typ lze použít s kódy formátu:
- 'd' pro celá čísla
- 'F' pro čísla s plovoucí desetinnou čárkou
- 'b' pro binární čísla
- 'Ó' pro osmičkové číslice
- 'X' pro osmičková hexadecimální čísla
- ‚s‘ pro řetězec
- 'To je' pro plovoucí desetinnou čárku ve formátu exponentu
Příklad:
Oba kódy provádějí formátování řetězce. První řetězec je formátován pomocí „%“ a druhý řetězec je formátován pomocí .format().
Python3
print> (> 'The valueof pi is: %1.5f'> %> 3.141592> )> print> (> 'The valueof pi is: {0:1.5f}'> .> format> (> 3.141592> ))> |
>
>Výstup
The valueof pi is: 3.14159 The valueof pi is: 3.14159>
Poznámka: Chcete-li se dozvědět více o str.format(), viz funkce format() v Pythonu
3. Porozumění f-řetězci Pythonu
PEP 498 zavedl nový mechanismus formátování řetězců známý jako doslovná řetězcová interpolace nebo běžněji jako F-struny (kvůli úvodnímu znaku f před řetězcovým literálem). Myšlenkou f-String v Pythonu je zjednodušit interpolaci řetězců.
Chcete-li vytvořit f-řetězec v Pythonu, přidejte před řetězec písmeno f. Samotný řetězec lze naformátovat v podstatě stejným způsobem, jakým byste to udělali str. formát() . F-řetězce poskytují stručný a pohodlný způsob, jak vložit výrazy Pythonu do řetězcových literálů pro formátování.
Formátování řetězců pomocí F-řetězců
V tomto kódu f-řetězec fJmenuji se {jméno}. se používá k interpolaci hodnoty proměnné name do řetězce.
Python3
name> => 'Ele'> print> (f> 'My name is {name}.'> )> |
>
>Výstup
My name is Ele.>
Tato nová syntaxe formátování je velmi výkonná a snadná. Můžete také vkládat libovolné výrazy Pythonu a dokonce v něm můžete provádět aritmetické operace.
Aritmetické operace pomocí F-řetězců
V tomto kódu f-řetězec f Řekl, že jeho věk je {2 * (a + b)}. se používá k interpolaci výsledku výrazu 2 * (a + b) do řetězce.
Python3
a> => 5> b> => 10> print> (f> 'He said his age is {2 * (a + b)}.'> )> |
>
string split java
>Výstup
He said his age is 30.>
Můžeme také použít lambda výrazy v f-string formátování.
Lambda výrazy pomocí F-řetězců
V tomto kódu je anonymní funkce lambda definována pomocí lambda x: x*2. Tato funkce lambda přebírá argument x a vrací jeho double.
Python3
print> (f> 'He said his age is {(lambda x: x*2)(3)}'> )> |
>
>Výstup
He said his age is 6>
Přesnost plováku v metodě f-String
V tomto kódu se formátování f-řetězce používá k interpolaci hodnoty proměnné num do řetězce.
Syntax : {value:{width}.{precision}}>
Python3
nohy vs noha
num> => 3.14159> print> (f> 'The valueof pi is: {num:{1}.{5}}'> )> |
>
>Výstup
The valueof pi is: 3.1416>
Poznámka: Chcete-li se dozvědět více o f-strunách, viz f-strings v Pythonu
4. Třída šablony řetězce Python
V modulu String nám Template Class umožňuje vytvořit zjednodušenou syntaxi pro specifikaci výstupu. Formát používá zástupné názvy tvořené $ s platným Pythonem identifikátory (alfanumerické znaky a podtržítka). Obklopení zástupného symbolu složenými závorkami umožňuje, aby za ním následovalo více alfanumerických písmen bez mezer. Zápis $$ vytvoří jeden kódovaný $:
Formátování řetězce Python pomocí třídy šablon
Tento kód importuje třídu Template z modulu string. Třída Template nám umožňuje vytvořit řetězec šablony se zástupnými symboly, které lze nahradit skutečnými hodnotami. Zde dosazujeme hodnoty n1 a n2 místo n3 a n4 v řetězci n.
Python3
from> string> import> Template> n1> => 'Hello'> n2> => 'techcodeview.com'> n> => Template(> '$n3 ! This is $n4.'> )> # and pass the parameters into the> # template string.> print> (n.substitute(n3> => n1, n4> => n2))> |
>
>Výstup
Hello ! This is techcodeview.com.>
Poznámka: Chcete-li se dozvědět více o třídě String Template, viz Třída šablony řetězce v Pythonu
5. Jak formátovat řetězec pomocí metody center().
Metoda center() je vestavěná metoda ve třídě str Pythonu, která vrací nový řetězec, který je vycentrován v řetězci zadané šířky.
Formátování řetězce pomocí metody center().
Tento kód vrátí nový tětiva polstrované mezerami na levé a pravé straně.
Python3
string> => 'GeeksForGeeks!'> width> => 30> centered_string> => string.center(width)> print> (centered_string)> |
>
>Výstup
GeeksForGeeks!>
Řetězec formátu Pythonu: % vs. .format vs. literál f-string
f-struny jsou rychlejší a lepší než oba %-formátování a str.format() . Výrazy f-strings jsou vyhodnocovány za běhu a můžeme také vkládat výrazy do f-string pomocí velmi jednoduché a snadné syntaxe.
Výrazy uvnitř složených závorek jsou vyhodnoceny za běhu a poté jsou spojeny s řetězcovou částí f-řetězce a poté je vrácen konečný řetězec.
Poznámka: Použijte řetězec šablony, pokud je řetězec uživatelem dodaný řetězec. Jinak použijte f-Strings, pokud používáte Python 3.6+ a. format() pokud nejste.
Pokryli jsme všech 5 způsobů formátování řetězců v Pythonu. Pro každou metodu existuje mnoho případů použití a příkladů. Tyto metody jsme také porovnali, abychom zjistili, která z nich je nejefektivnější pro použití v reálných projektech.
Podobné čtení:
- Formátování řetězců v Pythonu
- Jak používat formátovače řetězců v Pythonu
- Jak formátovat řetězec pomocí slovníku v Pythonu