Python string interpolacija

U ovom ćemo članku naučiti o interpolaciji python nizova. Python podržava više načina formatiranja tekstualnih nizova, a to uključuje% -formatting, sys.format (), string.Template i f-stringove.

Interpolacija niza je postupak koji zamjenjuje vrijednosti varijabli u rezervirana mjesta u nizu. Na primjer, ako imate predložak za pozdrav s osobom poput "Zdravo (ime osobe), drago mi je!", Željeli biste zamijeniti rezervirano mjesto za ime osobe stvarnim imenom. Taj se postupak naziva interpolacija niza.

f-žice

Python 3.6 dodao je novu metodu interpolacije niza koja se naziva literalna interpolacija niza i uveo je novi literalni prefiks f. Ovaj novi način oblikovanja nizova moćan je i jednostavan za upotrebu. Pruža pristup ugrađenim Python izrazima unutar konstanti niza.

Primjer 1:

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

Kada pokrenemo gornji program, izlaz će biti

Pozdrav svijete! Ovo je Python

U gornjem primjeru doslovni prefiks fgovori Pythonu da vrati vrijednost imena i varijable dva niza unutar zagrada (). Dakle, kad printdobijemo gornji izlaz.

Ova nova interpolacija niza je snažna jer u nju možemo ugraditi proizvoljne Pythonove izraze, a možemo čak i uvrstiti aritmetiku u nju.

Primjer 2:

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

Kada pokrenemo gornji program, izlaz će biti

 12 pomnožiti 3 je 36.

U gornjem programu radili smo inline aritmetiku koja je moguća samo ovom metodom.

% -oblikovanje

Strune u Pythonu imaju jedinstvenu ugrađenu operaciju kojoj se može pristupiti s %operatorom. Pomoću toga %možemo vrlo jednostavno izvršiti jednostavnu interpolaciju niza.

Primjer 3:

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

Kada pokrenemo gornji program, izlaz će biti

 Pozdrav svijete

U gornjem primjeru koristili smo dva %sspecifikatora formata niza i dva niza Hellote Worldu zagradama (). Dobili smo Hello Worldkao izlaz. %sspecifikator formata niza govori Pythonu gdje zamijeniti vrijednost.

Sintaksa formatiranja niza neznatno se mijenja, ako želimo izvršiti više zamjena u jednom nizu, a kako %operator uzima samo jedan argument, trebamo omotati desnu stranu u tuple kao što je prikazano u donjem primjeru.

Primjer 4:

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

Kada pokrenemo gornji program, izlaz će biti

Pozdrav svijete! Ovo je python.

U gornjem primjeru koristili smo dvije varijable imena i programa. Obje smo varijable umotali u zagrade ().

Također je moguće pozvati se na zamjenske varijable po imenu u našem nizu formata, ako prenesemo mapiranje %operateru:

Primjer 5:

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

Kada pokrenemo gornji program, izlaz će biti

Pozdrav svijete! Ovo je python.

To čini naše formatirane nizove lakšim za održavanje i lakšim izmjenama u budućnosti. Ne moramo brinuti o redoslijedu vrijednosti koje prenosimo s redoslijedom vrijednosti na koje se upućuje u nizu formata.

Str.format ()

U ovom oblikovanju niza koristimo format()funkciju na objektu niza i zagradama (), objekt niza u format()funkciji zamjenjuje se umjesto zagrada (). format()Funkciju možemo koristiti za jednostavno oblikovanje položaja, baš kao i %formatiranje.

Primjer 6:

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

Kada pokrenemo gornji program, izlaz će biti

 Pozdrav svijete

U ovom smo primjeru koristili zagrade ()i format()funkciju za prosljeđivanje objekta imena. Dobili smo vrijednost name umjesto zagrada ()u izlazu.

Naše se varijabilne zamjene možemo pozivati ​​imenom i koristiti ih u bilo kojem redoslijedu koji želimo. Ovo je prilično moćna značajka jer omogućuje preuređivanje redoslijeda prikaza bez promjene argumenata proslijeđenih u funkciju formatiranja.

Primjer 7:

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

Kada pokrenemo gornji program, izlaz će biti

 Pozdrav svijete! Ovo 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. U metodi predloška izrađujemo predložak uvozom klase predloška iz ugrađenog modula niza.
  4. Metoda doslovne interpolacije niza je moćna metoda interpolacije koja je jednostavna za upotrebu i povećava čitljivost koda.

Zanimljivi članci...