Python String-interpolatie

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 fvertelt het letterlijke voorvoegsel Python om de waarde van twee stringvariabelenaam en programma tussen accolades te herstellen (). Dus dat wanneer we printde 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 %stekenreeksopmaakspecificaties en twee tekenreeksen Helloen Worldtussen haakjes gebruikt (). We hebben Hello Worldals output. %sstring-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:

  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. In de sjabloonmethode maken we een sjabloon door een sjabloonklasse te importeren vanuit de ingebouwde stringmodule.
  4. Letterlijke tekenreeksinterpolatiemethode is een krachtige interpolatiemethode die gemakkelijk te gebruiken is en de leesbaarheid van de code vergroot.

Interessante artikelen...