In dit artikel zullen we leren over de python-stringinterpolatie. Python ondersteunt meerdere manieren om tekstreeksen op te maken en deze omvatten% -formatting, sys.format (), string.Template en f-strings.
Stringinterpolatie is een proces waarbij waarden van variabelen worden vervangen door tijdelijke aanduidingen in een string. Als je bijvoorbeeld een sjabloon hebt om iemand hallo te zeggen zoals "Hallo (naam van persoon), leuk je te ontmoeten!", Zou je de tijdelijke aanduiding voor de naam van de persoon willen vervangen door een echte naam. Dit proces wordt stringinterpolatie genoemd.
f-snaren
Python 3.6 heeft een nieuwe string-interpolatiemethode toegevoegd, letterlijke string-interpolatie genaamd, en een nieuwe letterlijke prefix geïntroduceerd f
. Deze nieuwe manier om tekenreeksen op te maken is krachtig en gemakkelijk te gebruiken. Het biedt toegang tot ingesloten Python-expressies binnen stringconstanten.
Voorbeeld 1:
name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')
Wanneer we het bovenstaande programma uitvoeren, is de uitvoer
Hallo Wereld! Dit is Python
In het bovenstaande voorbeeld f
vertelt het letterlijke voorvoegsel Python om de waarde van twee stringvariabelenaam en programma tussen accolades te herstellen ()
. Dus dat wanneer we print
de bovenstaande uitvoer krijgen.
Deze nieuwe string-interpolatie is krachtig omdat we willekeurige Python-expressies kunnen insluiten, we kunnen er zelfs inline rekenkunde mee uitvoeren.
Voorbeeld 2:
a = 12 b = 3 print(f'12 multiply 3 is (a * b).')
Wanneer we het bovenstaande programma uitvoeren, is de uitvoer
12 vermenigvuldiging 3 is 36.
In het bovenstaande programma hebben we inline rekenkunde gedaan, wat alleen mogelijk is met deze methode.
% -opmaak
Strings in Python hebben een unieke ingebouwde bewerking die toegankelijk is met de %
operator. Met behulp van %
kunnen we eenvoudige stringinterpolatie heel gemakkelijk doen.
Voorbeeld 3:
print("%s %s" %('Hello','World',))
Wanneer we het bovenstaande programma uitvoeren, is de uitvoer
Hallo Wereld
In het bovenstaande voorbeeld hebben we twee %s
tekenreeksopmaakspecificaties en twee tekenreeksen Hello
en World
tussen haakjes gebruikt ()
. We hebben Hello World
als output. %s
string-formaatspecificatie vertelt Python waar de waarde moet worden vervangen.
De syntaxis van de tekenreeksopmaak verandert enigszins, als we meerdere vervangingen in een enkele tekenreeks willen aanbrengen en omdat de %
operator maar één argument nodig heeft, moeten we de rechterkant in een tuple plaatsen, zoals in het onderstaande voorbeeld wordt getoond.
Voorbeeld 4:
name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))
Wanneer we het bovenstaande programma uitvoeren, is de uitvoer
Hallo Wereld! Dit is python.
In het bovenstaande voorbeeld hebben we twee stringvariabelenaam en programma gebruikt. We hebben beide variabelen tussen haakjes ingepakt ()
.
Het is ook mogelijk om te verwijzen naar variabele substituties op naam in onze format string, als we een mapping doorgeven aan de %
operator:
Voorbeeld 5:
name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))
Wanneer we het bovenstaande programma uitvoeren, is de uitvoer
Hallo Wereld! Dit is python.
Dit maakt onze format strings gemakkelijker te onderhouden en gemakkelijker te wijzigen in de toekomst. We hoeven ons geen zorgen te maken over de volgorde van de waarden die we doorgeven met de volgorde van de waarden waarnaar wordt verwezen in de opmaakreeks.
Str. Formaat ()
In deze stringopmaak gebruiken we format()
functie op een stringobject en accolades ()
, het stringobject in format()
functie wordt vervangen in plaats van accolades ()
. We kunnen de format()
functie gebruiken om eenvoudige positionele opmaak uit te voeren, net als %
opmaak.
Voorbeeld 6:
name = 'world' print('Hello, ()'.format(name))
Wanneer we het bovenstaande programma uitvoeren, is de uitvoer
Hallo Wereld
In dit voorbeeld hebben we accolades ()
en format()
functie gebruikt om naamobject door te geven. We hebben de waarde van naam in plaats van accolades ()
in de uitvoer.
We kunnen met naam naar onze variabele substituties verwijzen en ze in elke gewenste volgorde gebruiken. Dit is een vrij krachtige functie omdat het de volgorde van de weergave opnieuw kan rangschikken zonder de argumenten die aan de opmaakfunctie worden doorgegeven te wijzigen.
Voorbeeld 7:
name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))
Wanneer we het bovenstaande programma uitvoeren, is de uitvoer
Hallo wereld, dit is 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.
- In de sjabloonmethode maken we een sjabloon door een sjabloonklasse te importeren vanuit de ingebouwde stringmodule.
- Letterlijke tekenreeksinterpolatiemethode is een krachtige interpolatiemethode die gemakkelijk te gebruiken is en de leesbaarheid van de code vergroot.