Python-stränginterpolering

I den här artikeln kommer vi att lära oss mer om pythonstränginterpolering. Python stöder flera sätt att formatera textsträngar och dessa inkluderar% -formatering, sys.format (), string.Template och f-strings.

Stränginterpolering är en process som ersätter värden för variabler till platshållare i en sträng. Till exempel, om du har en mall för att säga hej till en person som "Hej (Namn på person), trevligt att träffa dig!", Skulle du vilja ersätta platshållaren för personens namn med ett verkligt namn. Denna process kallas stränginterpolering.

f-strängar

Python 3.6 lade till en ny stränginterpoleringsmetod som kallades bokstavlig stränginterpolering och introducerade ett nytt bokstavsprefix f. Det här nya sättet att formatera strängar är kraftfullt och enkelt att använda. Det ger åtkomst till inbäddade Python-uttryck i strängkonstanter.

Exempel 1:

 name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')

När vi kör ovanstående program blir resultatet

Hej världen! Det här är Python

I ovanstående exempel fsäger bokstavligt prefix till Python att återställa värdet på två strängvariabelnamn och programmera inuti hakparenteser (). Så att när printvi får ovanstående produktion.

Denna nya stränginterpolering är kraftfull eftersom vi kan bädda in godtyckliga Python-uttryck som vi till och med kan göra inline-aritmetik med.

Exempel 2:

 a = 12 b = 3 print(f'12 multiply 3 is (a * b).')

När vi kör ovanstående program blir resultatet

 12 multiplicera 3 är 36.

I ovanstående program gjorde vi inbyggd aritmetik som bara är möjlig med denna metod.

% -formatering

Strängar i Python har en unik inbyggd operation som kan nås med %operatören. Med hjälp av kan %vi göra enkel stränginterpolering mycket enkelt.

Exempel 3:

 print("%s %s" %('Hello','World',))

När vi kör ovanstående program blir resultatet

 Hej världen

I exemplet ovan använde vi två %ssträngformatsspecifikatorer och två strängar Hellooch Worldinom parentes (). Vi fick Hello Worldsom output. %sstring format specifier berätta för Python var värdet ska ersättas.

Syntax för strängformatering ändras något, om vi vill göra flera substitutioner i en enda sträng, och eftersom %operatören bara tar ett argument, måste vi slå den högra sidan i en tupel som visas i exemplet nedan.

Exempel 4:

 name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))

När vi kör ovanstående program blir resultatet

Hej världen! Det här är python.

I exemplet ovan använde vi namn och program med två strängvariabler. Vi slog in båda variablerna inom parentes ().

Det är också möjligt att hänvisa till variabla utbyten med namn i vår formatsträng om vi skickar en mappning till %operatören:

Exempel 5:

 name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))

När vi kör ovanstående program blir resultatet

Hej världen! Det här är python.

Detta gör våra formatsträngar lättare att underhålla och lättare att ändra i framtiden. Vi behöver inte oroa oss för ordningen på värdena som vi skickar med ordningen på värdena som refereras till i formatsträngen.

Str.format ()

I den här strängformateringen använder vi format()funktionen på ett strängobjekt och parenteser (), strängobjektet i format()funktion ersätts istället för parenteser (). Vi kan använda format()funktionen för att göra enkel positionsformatering, precis som %formatering.

Exempel 6:

 name = 'world' print('Hello, ()'.format(name))

När vi kör ovanstående program blir resultatet

 Hej världen

I det här exemplet använde vi hängslen ()och format()funktion för att skicka namnobjekt. Vi fick värdet på namnet istället för hängslen ()i utdata.

Vi kan hänvisa till våra variabla utbyten med namn och använda dem i vilken ordning vi vill. Detta är en ganska kraftfull funktion eftersom det gör det möjligt att ordna om ordningen på skärmen utan att ändra argumenten som skickas till formatfunktionen.

Exempel 7:

 name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))

När vi kör ovanstående program blir resultatet

 Hej värld! Det här är 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. I mallmetod skapar vi en mall genom att importera mallklass från inbyggd strängmodul.
  4. Literal String Interpolation-metod är kraftfull interpolationsmetod som är lätt att använda och ökar kodläsbarheten.

Intressanta artiklar...