Interpolace řetězců v Pythonu

V tomto článku se dozvíme o interpolaci řetězců pythonu. Python podporuje více způsobů formátování textových řetězců a zahrnuje% -formatting, sys.format (), string.Template a f-strings.

Řetězcová interpolace je proces nahrazující hodnoty proměnných do zástupných symbolů v řetězci. Máte-li například šablonu pro pozdravení osoby jako „Dobrý den (jméno osoby), rád vás poznávám!“, Chtěli byste zástupný symbol jména osoby nahradit skutečným jménem. Tento proces se nazývá interpolace řetězců.

f-řetězce

Python 3.6 přidal novou metodu interpolace řetězců nazvanou literální řetězcová interpolace a zavedl novou doslovnou předponu f. Tento nový způsob formátování řetězců je výkonný a snadno použitelný. Poskytuje přístup k vloženým výrazům Pythonu uvnitř řetězcových konstant.

Příklad 1:

 name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')

Když spustíme výše uvedený program, výstup bude

Ahoj světe! Toto je Python

Ve výše uvedeném příkladu doslovná předpona fříká Pythonu, aby obnovil hodnotu dvou řetězcových proměnných a program uvnitř složených závorek (). Takže, když printdostaneme výše uvedený výstup.

Tato nová interpolace řetězců je mocná, protože do ní můžeme vložit libovolné výrazy Pythonu, s nimiž můžeme dokonce provádět inline aritmetiku.

Příklad 2:

 a = 12 b = 3 print(f'12 multiply 3 is (a * b).')

Když spustíme výše uvedený program, výstup bude

 12 násobení 3 je 36.

Ve výše uvedeném programu jsme provedli inline aritmetiku, která je možná pouze u této metody.

% formátování

Řetězce v Pythonu mají jedinečnou integrovanou operaci, ke které lze přistupovat pomocí %operátoru. Pomocí toho %můžeme velmi snadno provést jednoduchou interpolaci řetězců.

Příklad 3:

 print("%s %s" %('Hello','World',))

Když spustíme výše uvedený program, výstup bude

 Ahoj světe

Ve výše uvedeném příkladu jsme použili dva %sspecifikátory formátu řetězce a dva řetězce Helloa Worldv závorkách (). Dostali jsme se Hello Worldjako výstup. %sspecifikátor formátu řetězce řekněte Pythonu, kde má nahradit hodnotu.

Syntaxe formátování řetězce se mírně změní, pokud chceme provést více substitucí v jednom řetězci a protože %operátor vezme pouze jeden argument, musíme zabalit pravou stranu do n-tice, jak je znázorněno v následujícím příkladu.

Příklad 4:

 name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))

Když spustíme výše uvedený program, výstup bude

Ahoj světe! Toto je python.

Ve výše uvedeném příkladu jsme použili název dvou proměnné řetězce a program. Obě proměnné jsme zabalili do závorek ().

Je také možné odkazovat na proměnné substituce podle jména v našem řetězci formátu, pokud předáme %operátorovi mapování :

Příklad 5:

 name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))

Když spustíme výše uvedený program, výstup bude

Ahoj světe! Toto je python.

To usnadňuje údržbu našich formátovacích řetězců a jejich snadnější úpravy v budoucnu. Nemusíme se starat o pořadí hodnot, které předáváme, s pořadím hodnot, na které se odkazuje ve formátovacím řetězci.

Str.format ()

V tomto formátování řetězce používáme format()funkci na objekt řetězce a závorky (), objekt řetězce ve format()funkci je nahrazen místo závorek (). Pomocí této format()funkce můžeme provádět jednoduché poziční formátování, stejně jako %formátování.

Příklad 6:

 name = 'world' print('Hello, ()'.format(name))

Když spustíme výše uvedený program, výstup bude

 Ahoj světe

V tomto příkladu jsme použili složené závorky ()a format()funkci k předání názvu objektu. Získali jsme hodnotu jména namísto složených závorek ()ve výstupu.

Můžeme odkazovat na naše variabilní substituce podle názvu a používat je v jakémkoli pořadí, které chceme. Jedná se o docela výkonnou funkci, protože umožňuje přeuspořádat pořadí zobrazení beze změny argumentů předaných funkci formátu.

Příklad 7:

 name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))

Když spustíme výše uvedený program, výstup bude

 Ahoj světe! Toto je python.

In this example we specified the variable substitutions place using the name of variable and pass the variable in format().

Template Strings

Template Strings is simpler and less powerful mechanism of string interpolation. We need to import Template class from Python’s built-in string module to use it.

Example 8:

 from string import Template name = 'world' program ='python' new = Template('Hello $name! This is $program.') print(new.substitute(name= name,program=program))

When we run the above program, the output will be

 Hello world! This is python.

In this example we import Template class from built-in string module and made a template which we used to pass two variable.

Key Points to Remember:

  1. %-format method is very old method for interpolation and is not recommended to use as it decrease the code readability.
  2. In str.format() method we pass the string object to the format() function for string interpolation.
  3. V metodě šablony vytvoříme šablonu importováním třídy šablony z integrovaného modulu řetězce.
  4. Literal String Interpolation method je výkonná interpolační metoda, která se snadno používá a zvyšuje čitelnost kódu.

Zajímavé články...