Python stygų interpoliacija

Python stygų interpoliacija

Stygų interpoliacija yra kintamųjų reikšmių pakeitimo vietos rezervavimo ženklais eilėje procesas. Panagrinėkime pavyzdį, kad jį geriau suprastume, tarkime, kad norite pakeisti eilutės reikšmę kiekvieną kartą, kai spausdinate eilutę, kaip kad norite spausdinti sveiki atvykę į geeks, kur yra vartotojo vardo rezervuota vieta. Užuot kaskart kūrę naują eilutę, įterpkite eilutės interpoliaciją Python gali padėti dinamiškai pakeisti rezervuotąją vietą su vartotojo vardu.

PythonStringInterpolation-(1)

% – Formatavimas

% – Formatavimas yra Python teikiama funkcija, kurią galima pasiekti naudojant % operatorių. Tai panaši į printf stiliaus funkciją C.

Pavyzdys: Formatuojama eilutė naudojant % operatorių

Python3




n1> => 'Hello'> n2> => 'techcodeview.com'> # for single substitution> print> (> 'Welcome to % s'> %> n2)> # for single and multiple substitutions()> # mandatory> print> (> '% s ! This is % s.'> %> (n1, n2))>

Išvestis

Welcome to techcodeview.com Hello ! This is techcodeview.com. 

Tarkime, tai tik sudėtinga versija. Vis dėlto galime jį naudoti, jei turime daug kintamųjų, kuriuos reikia pakeisti eilutėje, nes ne visada norime naudoti šį vaizdą (eilutė + kintamasis + eilutė + kintamasis + kintamasis + eilutė). Taigi šiuo tikslu galime naudoti % formatavimą.

Pastaba: Norėdami sužinoti daugiau apie %-formatavimą, žr Eilučių formatavimas Python naudojant %

Str.format()

str.format() veikia į eilutę įterpdamas vieną ar daugiau pakaitinių laukų ir vietos rezervavimo ženklų, apibrėžtų riestiniais skliaustais { }. Reikšmė, kurią norime įdėti į vietos rezervavimo ženklus ir sujungti su eilute, perduodama kaip parametrai į formatavimo funkciją.

Pavyzdys: Eilučių formatavimas naudojant format() metodą.

Python3




n1> => 'Hello'> n2> => 'techcodeview.com'> # for single substitution> print> (> '{}, {}'> .> format> (n1, n2))>

Išvestis

Hello, techcodeview.com 

Taip pat galime naudoti kintamojo pavadinimą riestiniuose skliaustuose {}. Tai leis mums naudoti formato funkcijų parametrus bet kokia norima tvarka.

Pavyzdys: Formatavimo funkcijos su kintamaisiais riestiniuose skliaustuose.

Python3




n1> => 'Hello'> n2> => 'GeeksForGeeks'> # for single or multiple substitutions> # let's say b1 and b2 are formal parameters> # and n1 and n2 are actual parameters> print> (> '{b1}! This is {b2}.'> .> format> (b1> => n1, b2> => n2))> # we can also change the order of the> # variables in the string without changing> # the parameters of format function> print> (> '{b2}! This is {b1}.'> .> format> (b1> => n1, b2> => n2))>

Išvestis

Hello! This is GeeksForGeeks. GeeksForGeeks! This is Hello. 

Pastaba: Norėdami sužinoti daugiau apie str.format(), žr format() funkcija Python

f stygos

PEP 498 pristatė naują eilučių formatavimo mechanizmą, žinomą kaip Literal String Interpolation arba dažniau kaip F formos stygos (dėl priekinio f simbolio, esančio prieš eilutės literalą). F-stygų idėja yra supaprastinti stygų interpoliaciją.

Norėdami sukurti f eilutę, prieš eilutę įrašykite raidę f . Pati eilutę galima suformatuoti taip pat, kaip ir su str. formatas (). F-stygos suteikia glaustą ir patogų būdą įterpti Python išraiškas į eilučių literalius formatavimui.

Pavyzdys: Stygų formatavimas naudojant f eilutes

Python3




n1> => 'Hello'> n2> => 'techcodeview.com'> # f tells Python to restore the value of two> # string variable name and program inside braces {}> print> (f> '{n1}! This is {n2}'> )>

Išvestis

Hello! This is techcodeview.com (2 * 3)-10 = -4 

Taip pat galime naudoti f eilutes kai kurioms aritmetinėms operacijoms apskaičiuoti ir ji atliks eilutę aritmetiką. Žiūrėkite žemiau esantį pavyzdį -

Pavyzdys: Eilutinė aritmetika naudojant f eilutes

Python3




a> => 2> b> => 3> c> => 10> print> (f> '({a} * {b})-{c} = {(2 * 3)-10}'> )>

Išvestis

(2 * 3)-10 = -4 

Pastaba: Norėdami sužinoti daugiau apie f eilutes, žr f-stygos Python

Styginių šablonų klasė

Styginių modulyje šablono klasė leidžia sukurti supaprastintą išvesties specifikacijos sintaksę. Formatas naudoja vietos rezervavimo pavadinimus, sudarytus iš $ su galiojančiais Python identifikatoriais (raidiniais ir skaitiniais simboliais ir apatiniais brūkšniais). Vietos žymeklį apjuosus skliaustais, po jo galima rašyti daugiau raidžių ir skaičių raidžių be tarpų. Rašant $$ sukuriamas vienas išbrauktas $:

Pavyzdys: Eilutės formatavimas naudojant šablonų klasę

Python3




from> string> import> Template> n1> => 'Hello'> n2> => 'techcodeview.com'> # made a template which we used to> # pass two variable so n3 and n4> # formal and n1 and n2 actual> n> => Template(> '$n3 ! This is $n4.'> )> # and pass the parameters into the template string.> print> (n.substitute(n3> => n1, n4> => n2))>

Išvestis

Hello ! This is techcodeview.com. 

Pastaba: Norėdami sužinoti daugiau apie klasę String Template, žr Styginių šablonų klasė Python