Formátovanie reťazca Python – Ako formátovať reťazec?

Formátovanie reťazcov vám umožňuje vytvárať dynamické reťazce kombináciou premenných a hodnôt. V tomto článku budeme diskutovať o 5 spôsoboch formátovania reťazca.

Naučíte sa rôzne metódy formátovania reťazcov s príkladmi pre lepšie pochopenie. Pozrime sa na ne teraz!

Ako formátovať reťazce v Pythone

Existuje päť rôznych spôsobov, ako vykonať formátovanie reťazca Python

  • Formátovanie pomocou operátora %.
  • Formátovanie pomocou metódy reťazca format().
  • Formátovanie pomocou reťazcových literálov, nazývaných f-strings.
  • Formátovanie pomocou triedy šablóny reťazca
  • Formátovanie pomocou metódy reťazca center().

Uvidíme teda všetky vyššie uvedené spôsoby a zameriame sa aj na to, ktorá stratégia formátovania reťazcov je najlepšia.

1. Ako naformátovať reťazec pomocou operátora %

Je to najstarší spôsob formátovania reťazcov. Tu používame modulo % operátor . Modulo % je tiež známy ako operátor formátovania reťazca.

Reťazec formátu Pythonu pomocou operátora %

Vo výraze Vychudnutý, vychudnutý zatúlaný pes %s zhltol % ‚narýchlo‘, je zástupný znak %s v reťazci nahradený hodnotou ‚narýchlo‘.

Python3




print> (> 'The mangy, scrawny stray dog %s gobbled down'> %> 'hurriedly'> +> > 'the grain-free, organic dog food.'> )>

Výkon

The mangy, scrawny stray dog hurriedly gobbled downthe grain-free, organic dog food. 

Vloženie viacerých reťazcov pomocou operátora modulo

Tu vkladáme viacero reťazcov s operátorom %.

Python3




x> => 'looked'> print> (> 'Misha %s and %s around'> %> (> 'walked'> ,x))>

Výkon

Misha walked and looked around 

Precision Handling v Pythone pomocou operátora %

Čísla s pohyblivou rádovou čiarkou používajú formát %a.bf . Tu, a by bol minimálny počet číslic prítomných v reťazci; tieto môžu byť doplnené medzerou, ak celé číslo nemá toľko číslic.

v blízkosti tohto, bf predstavuje, koľko číslic sa má zobraziť za desatinnou čiarkou.

V tomto kóde reťazec „Hodnota pi je: %5.4f“ obsahuje špecifikátor formátu %5.4f. Špecifikátor formátu %5.4f sa používa na formátovanie čísla s pohyblivou rádovou čiarkou s minimálnou šírkou 5 a presnosťou na 4 desatinné miesta.

Python3




print> (> 'The value of pi is: %5.4f'> %> (> 3.141592> ))>

Výkon

The value of pi is: 3.1416 

Rôzne typy konverzií formátov

V danom kóde sa formátovací reťazec Python skonvertuje na celé číslo a plávajúcu desatinnú čiarku s %d,%f.

Python3




variable> => 12> string> => 'Variable as integer> => %> d > Variable as> float> => %> f'> %> (variable, variable)> print> (string)>

Výkon

Variable as integer = 12 Variable as float = 12.000000 

Poznámka: Ak sa chcete dozvedieť viac o %-formátovaní, pozrite si Formátovanie reťazca v Pythone pomocou %

2. Ako formátovať reťazec pomocou metódy format().

Metóda Format(). bol predstavený s Python3 na efektívnejšie spracovanie zložitého formátovania reťazcov.

Formátovače fungujú tak, že do reťazca vložia jedno alebo viacero náhradných polí a zástupných symbolov definovaných dvojicou zložených zátvoriek { } a zavolajú str.format() . Hodnota, ktorú chceme vložiť do zástupných symbolov a zreťaziť s reťazcom odovzdaným ako parametre do funkcie format.

Syntax: ‘Sem reťazec {} potom tiež {}’.format(‘niečo1′,‘niečo2‘)

Formátovanie reťazca Python pomocou metódy format().

Tento kód používa {} ako zástupný symbol a potom sme zavolali metódu.format() na „rovnakú“ zástupnému symbolu.

Python3




print> (> 'We all are {}.'> .> format> (> 'equal'> ))>

Výkon

We all are equal. 

Vkladanie na základe indexu

V tomto kóde sa v reťazci „{2} {1} {0}“ používajú zložené zátvorky {} s indexmi na označenie pozícií, kde budú umiestnené zodpovedajúce hodnoty.

Python3




print> (> '{2} {1} {0}'> .> format> (> 'directions'> ,> > 'the'> ,> 'Read'> ))>

Výkon

Read the directions 

Vložte objekt priradením kľúčových slov

V tomto kóde sa zložené zátvorky {} s pomenovanými zástupnými symbolmi ({a}, {b}, {c}) používajú v reťazci 'a: {a}, b: {b}, c: {c}' na označenie pozície, kde budú umiestnené zodpovedajúce pomenované argumenty.

Python3




print> (> 'a: {a}, b: {b}, c: {c}'> .> format> (a> => 1> ,> > b> => 'Two'> ,> > c> => 12.3> ))>

Výkon

a: 1, b: Two, c: 12.3 

Opätovne použite vložené objekty

V tomto kóde sú zložené zátvorky {} s pomenovanými zástupnými symbolmi ({p}) použité v reťazci 'Prvé {p} bolo v poriadku, ale {p} {p} bolo ťažké na označenie pozícií, kde je príslušný názov.' argument p bude umiestnený.

Python3




print> (> > 'The first {p} was alright, but the {p} {p} was tough.'> .> format> (p> => 'second'> ))>

Výkon

The first second was alright, but the second second was tough. 

Float Precision s metódou the.format().

Syntax: {[index]:[šírka][.presnosť][typ]}

Typ možno použiť s kódmi formátu:

  • „d“ pre celé čísla
  • „f“ pre čísla s pohyblivou rádovou čiarkou
  • „b“ pre binárne čísla
  • 'O' pre osmičkové čísla
  • 'X' pre osmičkové hexadecimálne čísla
  • „s“ pre reťazec
  • 'To je' pre plávajúcu desatinnú čiarku vo formáte exponentov

Príklad:

Oba kódy robia formátovanie reťazcov. Prvý reťazec je naformátovaný pomocou „%“ a druhý reťazec je naformátovaný pomocou .format().

Python3




print> (> 'The valueof pi is: %1.5f'> %> 3.141592> )> print> (> 'The valueof pi is: {0:1.5f}'> .> format> (> 3.141592> ))>

Výkon

The valueof pi is: 3.14159 The valueof pi is: 3.14159 

Poznámka: Ak sa chcete dozvedieť viac o str.format(), pozrite si format() v Pythone

3. Pochopenie f-reťazca Pythonu

PEP 498 zaviedol nový mechanizmus formátovania reťazcov známy ako doslovná interpolácia reťazcov alebo bežnejšie ako F-struny (kvôli úvodnému znaku f pred reťazcovým literálom). Myšlienkou f-String v Pythone je zjednodušiť interpoláciu reťazcov.

Ak chcete vytvoriť f-reťazec v Pythone, vložte pred reťazec písmeno f. Samotný reťazec môže byť naformátovaný v podstate rovnakým spôsobom ako vy str. formát() . F-reťazce poskytujú stručný a pohodlný spôsob, ako vložiť výrazy Pythonu do reťazcových literálov na formátovanie.

Formátovanie reťazcov pomocou F-Strings

V tomto kóde f-reťazec fMoje meno je {meno}. sa používa na interpoláciu hodnoty premennej názvu do reťazca.

Python3




name> => 'Ele'> print> (f> 'My name is {name}.'> )>

Výkon

My name is Ele. 

Táto nová syntax formátovania je veľmi výkonná a jednoduchá. Môžete tiež vkladať ľubovoľné výrazy Pythonu a dokonca v ňom môžete robiť aritmetické operácie.

Aritmetické operácie pomocou F-reťazcov

V tomto kóde f-reťazec f Povedal, že jeho vek je {2 * (a + b)}. sa používa na interpoláciu výsledku výrazu 2 * (a + b) do reťazca.

Python3




a> => 5> b> => 10> print> (f> 'He said his age is {2 * (a + b)}.'> )>

Výkon

He said his age is 30. 

Môžeme použiť aj lambda výrazy v f-string formátovanie.

Lambda výrazy pomocou F-reťazcov

V tomto kóde je anonymná funkcia lambda definovaná pomocou lambda x: x*2. Táto funkcia lambda vezme argument x a vráti jeho double.

Python3




print> (f> 'He said his age is {(lambda x: x*2)(3)}'> )>

Výkon

He said his age is 6 

Presnosť plaváka v metóde f-String

V tomto kóde sa formátovanie f-reťazca používa na interpoláciu hodnoty premennej num do reťazca.

  Syntax  : {value:{width}.{precision}} 

Python3




num> => 3.14159> print> (f> 'The valueof pi is: {num:{1}.{5}}'> )>

Výkon

The valueof pi is: 3.1416 

Poznámka: Ak sa chcete dozvedieť viac o f-strings, pozrite si f-strings v Pythone

4. Python String Template Class

V module String nám Template Class umožňuje vytvoriť zjednodušenú syntax pre špecifikáciu výstupu. Formát používa zástupné názvy tvorené znakom $ s platným jazykom Python identifikátory (alfanumerické znaky a podčiarkovníky). Obklopenie zástupného symbolu zloženými zátvorkami umožňuje, aby za ním nasledovalo viac alfanumerických písmen bez medzier. Zápis $$ vytvorí jeden kódovaný $:

Formátovanie reťazca Python pomocou triedy šablón

Tento kód importuje triedu Template z modulu string. Trieda Template nám umožňuje vytvoriť reťazec šablóny so zástupnými symbolmi, ktoré možno nahradiť skutočnými hodnotami. Tu dosadíme hodnoty n1 a n2 namiesto n3 a n4 v reťazci 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ýkon

Hello ! This is techcodeview.com. 

Poznámka: Ak sa chcete dozvedieť viac o triede String Template, pozrite si Trieda šablóny reťazca v Pythone

5. Ako formátovať reťazec pomocou metódy center().

Metóda center() je vstavaná metóda v triede str Pythonu, ktorá vracia nový reťazec, ktorý je vycentrovaný v rámci reťazca špecifikovanej šírky.

Formátovanie reťazca pomocou metódy center().

Tento kód vráti nový reťazec vyplnené medzerami na ľavej a pravej strane.

Python3




string> => 'GeeksForGeeks!'> width> => 30> centered_string> => string.center(width)> print> (centered_string)>

Výkon

 GeeksForGeeks! 

Python Format String: % vs. .format vs. f-string literal

f-struny sú rýchlejšie a lepšie ako obe %-formátovanie a str.format() . Výrazy f-strings sa vyhodnocujú za behu a výrazy môžeme vložiť aj do f-string pomocou veľmi jednoduchej a ľahkej syntaxe.

Výrazy vo zložených zátvorkách sa vyhodnotia za behu a potom sa spoja s reťazcovou časťou f-reťazca a potom sa vráti konečný reťazec.

Poznámka: Použite reťazec šablóny, ak je reťazec dodaný používateľom. Inak použite f-Strings, ak používate Python 3.6+ a. format() ak nie ste.

Pokryli sme všetkých 5 spôsobov formátovania reťazcov v Pythone. Pre každú metódu existuje veľa prípadov použitia a príkladov. Tieto metódy sme tiež porovnali, aby sme zistili, ktorá z nich je najefektívnejšia na použitie v reálnych projektoch.

Podobné čítanie:

  • Formátovanie reťazcov v Pythone
  • Ako používať formátovače reťazcov v Pythone
  • Ako naformátovať reťazec pomocou slovníka v Pythone