Formátování řetězce v Pythonu – Jak formátovat řetězec?

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




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.

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

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

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




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