V tem članku bomo spoznali interpolacijo niza python. Python podpira več načinov formatiranja besedilnih nizov, ki vključujejo% -formatting, sys.format (), string.Template in f-stringe.
Interpolacija nizov je postopek, ki vrednosti spremenljivk nadomesti z ogradami v nizu. Če imate na primer predlogo za pozdrav z osebo, na primer »Pozdravljeni (ime osebe), lepo vas je spoznati!«, Bi radi zamenjali ogradnico za ime osebe z dejanskim imenom. Ta postopek se imenuje interpolacija nizov.
f-strune
Python 3.6 je dodal novo metodo interpolacije nizov, imenovano dobesedna interpolacija nizov, in uvedel novo dobesedno predpono f
. Ta nov način oblikovanja nizov je zmogljiv in enostaven za uporabo. Omogoča dostop do vdelanih izrazov Python znotraj nizov konstant.
Primer 1:
name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')
Ko zaženemo zgornji program, bo rezultat
Pozdravljen, svet! To je Python
V zgornjem primeru dobesedna predpona f
Pythonu pove, naj obnovi vrednost imena in spremenljivke dveh nizov v oklepajih ()
. Torej, ko print
dobimo zgornji izhod.
Ta nova interpolacija nizov je zmogljiva, saj lahko v nje vstavimo poljubne izraze Pythona, z njo lahko naredimo celo vstavljeno aritmetiko.
2. primer:
a = 12 b = 3 print(f'12 multiply 3 is (a * b).')
Ko zaženemo zgornji program, bo rezultat
12 pomnožite 3 je 36.
V zgornjem programu smo naredili všteto aritmetiko, kar je mogoče le s to metodo.
% -oblikovanje
Strune v Pythonu imajo edinstveno vgrajeno operacijo, do katere lahko dostopate z %
operaterjem. Z uporabo %
lahko zelo enostavno izvedemo preprosto interpolacijo nizov.
3. primer:
print("%s %s" %('Hello','World',))
Ko zaženemo zgornji program, bo rezultat
Pozdravljen, svet
V zgornjem primeru smo uporabili dva %s
specifikatorja oblike niza in dva niza Hello
ter World
v oklepaju ()
. Dobili smo Hello World
kot rezultat. %s
specifikator oblike niza pove Pythonu, kje naj nadomesti vrednost.
Sintaksa oblikovanja nizov se nekoliko spremeni, če želimo v enem nizu narediti več zamenjav in ker %
operater vzame le en argument, moramo desno stran zaviti v korito, kot je prikazano v spodnjem primeru.
Primer 4:
name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))
Ko zaženemo zgornji program, bo rezultat
Pozdravljen, svet! To je python.
V zgornjem primeru smo uporabili dve spremenljivki z imenom in programom. Obe spremenljivki smo zavili v oklepaje ()
.
Na zamenjave spremenljivk se lahko sklicujemo tudi po imenu v našem nizu oblike, če %
operaterju posredujemo preslikavo :
Primer 5:
name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))
Ko zaženemo zgornji program, bo rezultat
Pozdravljen, svet! To je python.
Tako je naše nize formatov lažje vzdrževati in jih je v prihodnosti lažje spreminjati. Ni nas treba skrbeti za vrstni red vrednosti, ki jih posredujemo, z vrstnim redom vrednosti, na katere se sklicuje niz niza.
Str.format ()
Pri tem oblikovanju niza uporabljamo format()
funkcijo na niznem objektu in oklepajih ()
, je nizni objekt v format()
funkciji nadomeščen namesto oklepajev ()
. format()
Funkcijo lahko uporabimo za preprosto pozicijsko oblikovanje, tako kot %
formatiranje.
Primer 6:
name = 'world' print('Hello, ()'.format(name))
Ko zaženemo zgornji program, bo rezultat
Pozdravljen, svet
V tem primeru smo uporabili oklepaje ()
in format()
funkcijo za posredovanje imenskega objekta. V imenu oklepajev ()
v izhodu smo dobili vrednost name .
Na naše nadomestne spremenljivke se lahko sklicujemo po imenu in jih uporabljamo v poljubnem vrstnem redu. To je zelo zmogljiva funkcija, saj omogoča preurejanje vrstnega reda prikaza, ne da bi spremenil argumente, posredovane funkciji oblikovanja.
7. primer:
name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))
Ko zaženemo zgornji program, bo rezultat
Pozdravljen svet! To 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.
- V načinu predloge izdelamo predlogo z uvozom razreda predloge iz vgrajenega modula nizov.
- Dobesedna metoda interpolacije nizov je zmogljiva metoda interpolacije, ki je enostavna za uporabo in poveča berljivost kode.