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 f
govori Pythonu da vrati vrijednost imena i varijable dva niza unutar zagrada ()
. Dakle, kad print
dobijemo 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 %s
specifikatora formata niza i dva niza Hello
te World
u zagradama ()
. Dobili smo Hello World
kao izlaz. %s
specifikator 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:
- %-format method is very old method for interpolation and is not recommended to use as it decrease the code readability.
- In str.format() method we pass the string object to the format() function for string interpolation.
- U metodi predloška izrađujemo predložak uvozom klase predloška iz ugrađenog modula niza.
- Metoda doslovne interpolacije niza je moćna metoda interpolacije koja je jednostavna za upotrebu i povećava čitljivost koda.