Interpolácia reťazcov v Pythone

V tomto článku sa dozvieme o interpolácii reťazcov python. Python podporuje viac spôsobov formátovania textových reťazcov, medzi ktoré patrí% -formatting, sys.format (), string.Template a f-struny.

Reťazcová interpolácia je proces, ktorý dosadzuje hodnoty premenných na zástupné symboly v reťazci. Napríklad, ak máte šablónu na pozdravenie osoby ako „Dobrý deň (meno osoby), rád vás poznávam!“, Chceli by ste nahradiť zástupný symbol pre meno osoby skutočným menom. Tento proces sa nazýva reťazcová interpolácia.

f-struny

Python 3.6 pridal novú metódu interpolácie reťazcov nazvanú doslovná interpolácia reťazcov a zaviedol novú doslovnú predponu f. Tento nový spôsob formátovania reťazcov je výkonný a ľahko použiteľný. Poskytuje prístup k vloženým výrazom Pythonu vo vnútri reťazcových konštant.

Príklad 1:

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

Keď spustíme vyššie uvedený program, výstup bude

Ahoj Svet! Toto je Python

Vo vyššie uvedenom príklade doslovná predpona fhovorí Pythonu, aby obnovil hodnotu dvoch reťazcových premenných a program vo vnútri zložených zátvoriek (). Takže, keď printdostaneme vyššie uvedený výstup.

Táto nová interpolácia reťazcov je výkonná, pretože do nej môžeme vložiť ľubovoľné výrazy v jazyku Python, ktoré s ňou dokonca umožňujú riadkovú aritmetiku.

Príklad 2:

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

Keď spustíme vyššie uvedený program, výstup bude

 12 násobenie 3 je 36.

Vo vyššie uvedenom programe sme vykonali vloženú aritmetiku, ktorá je možná iba pomocou tejto metódy.

% -formátovanie

Reťazce v Pythone majú jedinečnú zabudovanú operáciu, ku ktorej je možné získať prístup pomocou %operátora. Pomocou toho %môžeme veľmi ľahko vykonať jednoduchú interpoláciu reťazcov.

Príklad 3:

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

Keď spustíme vyššie uvedený program, výstup bude

 Ahoj svet

Vo vyššie uvedenom príklade sme použili dve %sformát reťazec Špecifikátor a dva reťazce Helloa Worldv zátvorkách (). Dostali sme sa Hello Worldako výstup. %sšpecifikátor formátu reťazca povedzte Pythonu, kde má nahradiť hodnotu.

Syntax formátovania reťazca sa mierne mení, ak chceme vykonať viac substitúcií v jednom reťazci a keďže %operátor zaberie iba jeden argument, je potrebné zabaliť pravú stranu do n-tice, ako je to znázornené v príklade nižšie.

Príklad 4:

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

Keď spustíme vyššie uvedený program, výstup bude

Ahoj svet! Toto je python.

Vo vyššie uvedenom príklade sme použili dvojreťazcový názov premennej a program. Obe premenné sme zabalili do zátvoriek ().

Je tiež možné odkazovať na premenné substitúcie menom v našom formátovacom reťazci, ak %operátorovi odovzdáme mapovanie :

Príklad 5:

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

Keď spustíme vyššie uvedený program, výstup bude

Ahoj svet! Toto je python.

Vďaka tomu sa naše reťazce formátu ľahšie udržiavajú a ľahšie sa upravujú v budúcnosti. Nemusíme sa báť poradia hodnôt, ktoré prechádzame, s poradím hodnôt, na ktoré sa odkazuje vo formátovacom reťazci.

Str.formát ()

V tomto formátovaní reťazca používame format()funkciu na reťazcový objekt a zložené zátvorky (), format()namiesto zložených zátvoriek je nahradený reťazcový objekt vo funkcii (). Pomocou tejto format()funkcie môžeme robiť jednoduché pozičné formátovanie, rovnako ako %formátovanie.

Príklad 6:

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

Keď spustíme vyššie uvedený program, výstup bude

 Ahoj svet

V tomto príklade sme na odovzdanie objektu názvu použili zložené zátvorky ()a format()funkciu. Hodnotu názvu sme dostali namiesto zložených zátvoriek ()na výstupe.

Na naše premenné substitúcie môžeme odkazovať podľa názvu a používať ich v ľubovoľnom poradí. Toto je veľmi silná funkcia, pretože umožňuje zmeniť usporiadanie poradia zobrazenia bez zmeny argumentov odovzdaných funkcii formátovania.

Príklad 7:

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

Keď spustíme vyššie uvedený program, výstup bude

 Ahoj svet! 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 metóde šablóny vytvoríme šablónu importom triedy šablón z integrovaného modulu reťazca.
  4. Metóda literálnej reťazcovej interpolácie je výkonná metóda interpolácie, ktorá sa ľahko používa a zvyšuje čitateľnosť kódu.

Zaujímavé články...