Šajā rakstā mēs uzzināsim par pitona virkņu interpolāciju. Python atbalsta vairākus teksta virkņu formatēšanas veidus, un tie ietver% -formatting, sys.format (), string.Template un f-virknes.
Virkņu interpolācija ir process, kas mainīgo vērtības aizstāj ar virkņu vietturiem. Piemēram, ja jums ir veidne sveicināšanai personai, piemēram, “Sveiki (personas vārds), patīkami iepazīties!”, Jūs vēlaties aizstāt personas vārda vietturi ar faktisko vārdu. Šo procesu sauc par virkņu interpolāciju.
f-stīgas
Python 3.6 pievienoja jaunu virkņu interpolācijas metodi, ko sauc par burtisko virkņu interpolāciju, un ieviesa jaunu burtisku prefiksu f
. Šis jaunais virkņu formatēšanas veids ir spēcīgs un viegli lietojams. Tas nodrošina piekļuvi iegultām Python izteiksmēm virkņu konstantēs.
1. piemērs:
name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')
Kad mēs palaidīsim iepriekš minēto programmu, izeja būs
Sveika pasaule! Tas ir Python
Iepriekšējā piemērā burtiskais prefikss f
liek Python atjaunot divu virkņu mainīgo nosaukuma un programmas vērtību iekavās ()
. Tātad, kad print
mēs iegūstam iepriekš minēto rezultātu.
Šī jaunā virkņu interpolācija ir spēcīga, jo mēs varam iegult patvaļīgas Python izteiksmes, ar to pat varam veikt inline aritmētiku.
2. piemērs:
a = 12 b = 3 print(f'12 multiply 3 is (a * b).')
Kad mēs palaidīsim iepriekš minēto programmu, izeja būs
12 reizināt 3 ir 36.
Iepriekš minētajā programmā mēs veicām aritmētiku, kas ir iespējama tikai ar šo metodi.
% -formatēšana
Virknēm Python ir unikāla iebūvēta darbība, kurai var piekļūt ar %
operatoru. Izmantojot, %
mēs ļoti vienkārši varam veikt vienkāršu virkņu interpolāciju.
3. piemērs:
print("%s %s" %('Hello','World',))
Kad mēs palaidīsim iepriekš minēto programmu, izeja būs
Sveika pasaule
Iepriekš minētajā piemērā mēs izmantojām divas %s
virkņu formāta specifikatoru un divas virknes Hello
un World
iekavās ()
. Mēs saņēmām Hello World
kā produkciju. %s
virknes formāta norādītājs pastāstiet Python, kur jāaizstāj vērtība.
Virknes formatēšanas sintakse nedaudz mainās, ja mēs vēlamies vienā virknē veikt vairākas aizstāšanas, un, tā kā %
operators aizņem tikai vienu argumentu, mums labā puse ir jāiesaiņo kāpa, kā parādīts zemāk esošajā piemērā.
4. piemērs:
name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))
Kad mēs palaidīsim iepriekš minēto programmu, izeja būs
Sveika pasaule! Tas ir pitons.
Iepriekš minētajā piemērā mēs izmantojām divus virknes mainīgā nosaukumu un programmu. Abus mainīgos mēs iesaiņojām iekavās ()
.
Mūsu formāta virknē ir iespējams atsaukties arī uz mainīgajām aizstāšanām pēc nosaukuma, ja %
operatoram nododam kartēšanu :
5. piemērs:
name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))
Kad mēs palaidīsim iepriekš minēto programmu, izeja būs
Sveika pasaule! Tas ir pitons.
Tas padara mūsu formāta virknes vieglāk uzturamas un vieglāk modificējamas nākotnē. Mums nav jāuztraucas par to vērtību secību, kuras mēs nododam ar vērtību secību, uz kurām atsauce tiek sniegta formāta virknē.
Str. Formāts ()
Šajā virkņu formatējumā mēs izmantojam format()
funkciju virknes objektam un bikšturiem ()
. format()
Funkcijas virknes objekts tiek aizstāts ar lencēm ()
. Mēs varam izmantot format()
funkciju, lai veiktu vienkāršu pozicionēšanu, tāpat kā %
formatēšanu.
6. piemērs:
name = 'world' print('Hello, ()'.format(name))
Kad mēs palaidīsim iepriekš minēto programmu, izeja būs
Sveika pasaule
Šajā piemērā mēs izmantojām bikšturus ()
un format()
funkciju, lai nodotu vārda objektu. Izejā bikšturu vietā mēs saņēmām nosaukuma vērtību ()
.
Mēs varam atsaukties uz mūsu mainīgajiem aizstājējiem pēc nosaukuma un izmantot tos jebkurā vēlamajā secībā. Šī ir diezgan spēcīga funkcija, jo tā ļauj pārkārtot displeja secību, nemainot formāta funkcijai nodotos argumentus.
7. piemērs:
name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))
Kad mēs palaidīsim iepriekš minēto programmu, izeja būs
Sveika pasaule! Tas ir pitons.
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.
- Veidnes metodē mēs veidojam veidni, importējot veidņu klasi no iebūvēta virkņu moduļa.
- Literārās virknes interpolācijas metode ir spēcīga interpolācijas metode, kuru ir viegli izmantot un palielināt koda lasāmību.