Python-strenginterpolation

I denne artikel vil vi lære om pythonstrenginterpolation. Python understøtter flere måder at formatere tekststrenge på, og disse inkluderer% -formatering, sys.format (), string.Template og f-strings.

Strenginterpolation er en proces, der erstatter værdier af variabler til pladsholdere i en streng. For eksempel, hvis du har en skabelon til at sige hej til en person som "Hej (Navn på person), dejligt at møde dig!", Vil du gerne erstatte pladsholderen for navnet på personen med et faktisk navn. Denne proces kaldes strenginterpolation.

f-strenge

Python 3.6 tilføjede ny strenginterpolationsmetode kaldet bogstavelig strenginterpolering og introducerede et nyt bogstaveligt præfiks f. Denne nye måde at formatere strenge på er kraftig og nem at bruge. Det giver adgang til indlejrede Python-udtryk inde i strengkonstanter.

Eksempel 1:

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

Når vi kører ovenstående program, vil output være

Hej Verden! Dette er Python

I ovenstående eksempel ffortæller det bogstavelige præfiks Python at gendanne værdien af ​​to strengvariabelnavn og program inde i seler (). Så når printvi får ovenstående output.

Denne nye strenginterpolation er kraftig, da vi kan integrere vilkårlige Python-udtryk, vi kan endda gøre inline-aritmetik med det.

Eksempel 2:

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

Når vi kører ovenstående program, vil output være

 12 gang 3 er 36.

I ovenstående program lavede vi aritmetik, som kun er mulig med denne metode.

% -formatering

Strings i Python har en unik indbygget operation, der er tilgængelig med %operatøren. Ved hjælp af %kan vi lave simpel strenginterpolering meget let.

Eksempel 3:

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

Når vi kører ovenstående program, vil output være

 Hej Verden

I ovenstående eksempel brugte vi to %sstrengformatspecifikatorer og to strenge Helloog Worldi parentes (). Vi fik Hello Worldsom output. %sstrengformatspecifikator fortæller Python, hvor værdien skal erstattes.

Syntaks for strengformatering ændres lidt, hvis vi vil foretage flere erstatninger i en enkelt streng, og da %operatøren kun tager et argument, er vi nødt til at pakke højre side i en tuple som vist i eksemplet nedenfor.

Eksempel 4:

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

Når vi kører ovenstående program, vil output være

Hej Verden! Dette er python.

I ovenstående eksempel brugte vi to strengvariabelnavn og -program. Vi indpakkede begge variable inden for parentes ().

Det er også muligt at henvise til variable erstatninger efter navn i vores formatstreng, hvis vi sender en kortlægning til %operatøren:

Eksempel 5:

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

Når vi kører ovenstående program, vil output være

Hej Verden! Dette er python.

Dette gør vores formatstrenge nemmere at vedligeholde og lettere at ændre i fremtiden. Vi behøver ikke bekymre os om rækkefølgen af ​​de værdier, vi sender med rækkefølgen af ​​de værdier, der er henvist til i formatstrengen.

Str.format ()

I denne strengformatering bruger vi format()funktion på et strengobjekt og seler (), strengobjektet i format()funktion erstattes i stedet for seler (). Vi kan bruge format()funktionen til at lave simpel positioneringsformatering, ligesom %formatering.

Eksempel 6:

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

Når vi kører ovenstående program, vil output være

 Hej Verden

I dette eksempel brugte vi seler ()og format()funktion til at passere navneobjekt. Vi fik værdien af ​​navnet i stedet for seler ()i output.

Vi kan henvise til vores variable erstatninger ved navn og bruge dem i den rækkefølge, vi ønsker. Dette er en ganske stærk funktion, da det giver mulighed for at omarrangere rækkefølgen af ​​displayet uden at ændre argumenterne, der sendes til formatfunktionen.

Eksempel 7:

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

Når vi kører ovenstående program, vil output være

 Hej verden! Dette er 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 skabelonmetoden laver vi en skabelon ved at importere skabelonklasse fra det indbyggede strengmodul.
  4. Literal String Interpolation-metode er en kraftfuld interpolationsmetode, som er nem at bruge og øger kodelæsbarheden.

Interessante artikler...