logo

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

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