Eilučių formatavimas leidžia kurti dinamines eilutes derinant kintamuosius ir reikšmes. Šiame straipsnyje aptarsime apie 5 būdus, kaip formatuoti eilutę.
Išmoksite įvairių eilučių formatavimo metodų su pavyzdžiais, kad geriau suprastumėte. Pažvelkime į juos dabar!
Kaip formatuoti eilutes Python
Yra penki skirtingi eilutės formatavimo būdai Python
- Formatavimas naudojant % operatorių.
- Formatavimas naudojant format() eilutės metodą.
- Formatavimas su eilučių literalais, vadinamais f-stygomis.
- Formatavimas naudojant eilutės šablono klasę
- Formatavimas naudojant center() eilutės metodą.
Taigi pamatysime aukščiau paminėtų būdų visumą, taip pat sutelksime dėmesį į tai, kuri eilutės formatavimo strategija yra geriausia.
1. Kaip suformatuoti eilutę naudojant % operatorių
Tai seniausias eilučių formatavimo būdas. Čia mes naudojame modulį % operatorius . Modulas % taip pat žinomas kaip eilutės formatavimo operatorius.
Python formato eilutė naudojant % operatorių
Išraiškoje Mėlytas, rausvas valkataujantis šuo %s suvalgė % 'skubiai', %s vietos rezervavimo vieta eilutėje pakeičiama reikšme 'skubiai'.
Python3
java kalbos interviu klausimai
print>(>'The mangy, scrawny stray dog %s gobbled down'> %>'hurriedly'> +> >'the grain-free, organic dog food.'>)> |
>
>Išvestis
The mangy, scrawny stray dog hurriedly gobbled downthe grain-free, organic dog food.>
Kelių eilučių įvedimas naudojant modulo operatorių
Čia įterpiame kelias eilutes su % operatoriumi.
Python3
x>=> 'looked'> print>(>'Misha %s and %s around'>%>(>'walked'>,x))> |
>
>Išvestis
Misha walked and looked around>
Tikslus tvarkymas Python naudojant % operatorių
Slankaus kablelio skaičiai naudoja formatą %a.bf . Čia a būtų mažiausias skaitmenų skaičius, kuris turi būti eilutėje; jie gali būti užpildyti tarpais, jei sveikas skaičius neturi tiek daug skaitmenų.
Arti to, bf nurodo, kiek skaitmenų turi būti rodoma po kablelio.
Šiame kode eilutėje „pi reikšmė yra: %5.4f“ yra formato specifikacija %5.4f. Formato specifikacija %5.4f naudojama formatuoti slankiojo kablelio skaičių, kurio minimalus plotis yra 5 ir 4 skaitmenų po kablelio tikslumas.
Python3
print>(>'The value of pi is: %5.4f'> %>(>3.141592>))> |
>
>Išvestis
The value of pi is: 3.1416>
Kelių formatų konvertavimo tipai
Pateiktame kode formatavimo eilutė Python konvertuojama į sveikąjį skaičių ir slankiojo kablelio su %d,%f.
Python3
variable>=> 12> string>=> 'Variable as integer>=> %>d
> Variable as>float> => %>f'>%>(variable, variable)> print> (string)> |
>
>Išvestis
Variable as integer = 12 Variable as float = 12.000000>
Pastaba: Norėdami sužinoti daugiau apie %-formatavimą, žr Eilučių formatavimas Python naudojant %
kaip pakeisti žymeklį c
2. Kaip suformatuoti eilutę naudojant format() metodą
Format() metodas buvo pristatytas kartu su Python3, kad būtų galima efektyviau tvarkyti sudėtingų eilučių formatavimą.
Formatuotojai veikia į eilutę įterpdami vieną ar daugiau pakaitinių laukų ir vietos rezervavimo ženklų, apibrėžtų riestiniais skliaustais { }, ir iškviesdami str.format() . Reikšmė, kurią norime įdėti į vietos rezervavimo ženklus ir sujungti su eilute, perduodama kaip parametrai į formatavimo funkciją.
Sintaksė: 'Eilutė čia {}, tada taip pat {}'.format('something1','something2')
Python eilutės formatavimas naudojant format() metodą
Šiame kode kaip rezervuota vieta naudojama {}, o tada mes iškvietėme.format() metodą „lygus“ vietos rezervavimo ženklui.
Python3
print>(>'We all are {}.'>.>format>(>'equal'>))> |
>
>Išvestis
We all are equal.>
Įterpimas pagal indeksą
Šiame kode eilutėje „{2} {1} {0}“ naudojami riestiniai skliaustai {} su indeksais, nurodant vietas, kuriose bus dedamos atitinkamos reikšmės.
Python3
print>(>'{2} {1} {0}'>.>format>(>'directions'>,> >'the'>,>'Read'>))> |
>
>Išvestis
Read the directions>
Įterpkite objektą priskirdami raktinius žodžius
Šiame kode eilutėje „a: {a}, b: {b}, c: {c}“ naudojami riestiniai skliaustai {} su įvardytais vietos rezervavimo ženklais ({a}, {b}, {c}). pozicijos, kuriose bus dedami atitinkami įvardyti argumentai.
Python3
print>(>'a: {a}, b: {b}, c: {c}'>.>format>(a>=> 1>,> >b>=> 'Two'>,> >c>=> 12.3>))> |
>
>Išvestis
a: 1, b: Two, c: 12.3>
Pakartotinai naudokite įdėtus objektus
Šiame kode eilutėje „Pirmasis {p} buvo gerai, bet {p} {p} buvo sunkus“ naudojami riestiniai skliaustai {} su įvardytais vietos rezervavimo ženklais ({p}), kad nurodytų vietas, kuriose nurodytas atitinkamas pavadinimas bus pateiktas argumentas p.
Python3
print>(> >'The first {p} was alright, but the {p} {p} was tough.'>.>format>(p>=>'second'>))> |
>
>Išvestis
tinklo architektūra
The first second was alright, but the second second was tough.>
Float Precision su .format() metodu
Sintaksė: {[indeksas]:[plotis][.tikslumas][tipas]}
Tipas gali būti naudojamas su formato kodais:
- 'd' sveikiesiems skaičiams
- 'f' slankiojo kablelio skaičiams
- 'b' dvejetainiams skaičiams
- 'o' aštuntiesiems skaičiams
- 'x' aštuntainiams šešioliktainiams skaičiams
- 's' stygai
- 'Tai yra' slankiajam kableliui eksponento formatu
Pavyzdys:
Abu kodai formatuoja eilutes. Pirmoji eilutė suformatuota „%“, o antroji eilutė suformatuota naudojant .format().
Python3
print>(>'The valueof pi is: %1.5f'> %>3.141592>)> print>(>'The valueof pi is: {0:1.5f}'>.>format>(>3.141592>))> |
>
>Išvestis
The valueof pi is: 3.14159 The valueof pi is: 3.14159>
Pastaba: Norėdami sužinoti daugiau apie str.format(), žr format() funkcija Python
3. Python f-stygos supratimas
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ą). „Python“ f-String idėja yra supaprastinti eilučių interpoliaciją.
Norėdami sukurti f eilutę naudodami Python, prieš eilutę įrašykite raidę f. Pati eilutę galima suformatuoti taip pat, kaip ir su g. formatas () . F-stygos suteikia glaustą ir patogų būdą įterpti Python išraiškas į eilučių literalius formatavimui.
Stygų formatavimas su F-stygomis
Šiame kode f eilutė fMano vardas yra {name}. naudojamas vardo kintamojo reikšmei interpoliuoti į eilutę.
Python3
name>=> 'Ele'> print>(f>'My name is {name}.'>)> |
>
>Išvestis
My name is Ele.>
Ši nauja formatavimo sintaksė yra labai galinga ir paprasta. Taip pat galite įterpti savavališkas Python išraiškas ir netgi atlikti aritmetines operacijas.
Aritmetiniai veiksmai naudojant F eilutes
Šiame kode f eilutė f Jis pasakė, kad jo amžius yra {2 * (a + b)}. naudojamas interpoliuoti išraiškos 2 * (a + b) rezultatą į eilutę.
Python3
a>=> 5> b>=> 10> print>(f>'He said his age is {2 * (a + b)}.'>)> |
>
>Išvestis
He said his age is 30.>
Taip pat galime naudoti lambda išraiškos in f eilutė formatavimas.
Lambda išraiškos naudojant F eilutes
Šiame kode anoniminė lambda funkcija apibrėžiama naudojant lambda x: x*2. Ši lambda funkcija paima argumentą x ir grąžina jo dvigubą.
Python3
Python __name__
print>(f>'He said his age is {(lambda x: x*2)(3)}'>)> |
>
>Išvestis
He said his age is 6>
Plūdės tikslumas naudojant f-stygų metodą
Šiame kode f-string formatavimas naudojamas kintamojo num reikšmei interpoliuoti į eilutę.
Syntax : {value:{width}.{precision}}> Python3
num>=> 3.14159> print>(f>'The valueof pi is: {num:{1}.{5}}'>)> |
>
>Išvestis
The valueof pi is: 3.1416>
Pastaba: Norėdami sužinoti daugiau apie f eilutes, žr f-stygos Python
4. Python String šablono klasė
Styginių modulyje šablono klasė leidžia sukurti supaprastintą išvesties specifikacijos sintaksę. Formatas naudoja vietos rezervavimo pavadinimus, sudarytus iš $ su galiojančiu Python identifikatoriai (raidiniai ir skaitiniai simboliai ir apatiniai brūkšniai). 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 $:
Python eilutės formatavimas naudojant šablonų klasę
Šis kodas importuoja šablono klasę iš eilutės modulio. Šablonų klasė leidžia sukurti šablono eilutę su vietos rezervavimo ženklais, kuriuos galima pakeisti tikrosiomis reikšmėmis. Čia mes pakeičiame reikšmes n1 ir n2 vietoje n3 ir n4 eilutėje n.
kaip pakeisti žymeklį c
Python3
from> string>import> Template> n1>=> 'Hello'> n2>=> 'techcodeview.com'> 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
5. Kaip suformatuoti eilutę naudojant center() metodą
Metodas centre () yra integruotas metodas Python str klasėje, kuris grąžina naują eilutę, kurios centre yra nurodyto pločio eilutė.
Formatuoti eilutę naudojant center() metodą
Šis kodas grąžina naują styga paminkštintas tarpais kairėje ir dešinėje pusėse.
Python3
string>=> 'GeeksForGeeks!'> width>=> 30> centered_string>=> string.center(width)> print>(centered_string)> |
>
>Išvestis
GeeksForGeeks!>
Python formato eilutė: %, palyginti su .formatu ir f-string literatu
f stygos yra greitesni ir geresni už abu %-formatavimas ir str.format() . f-string išraiškos įvertinamos vykdymo metu, taip pat galime įterpti išraiškas į f eilutę, naudodami labai paprastą ir lengvą sintaksę.
Skliaustuose esančios išraiškos įvertinamos vykdymo metu, tada sujungiamos su f eilutės eilutės dalimi, o tada grąžinama paskutinė eilutė.
Pastaba: Naudokite šablono eilutę, jei eilutė yra vartotojo pateikta eilutė. Kitaip naudokite f-Strings, jei naudojate Python 3.6+ ir. format() metodą, jei nesate.
Apžvelgėme visus 5 eilučių formatavimo būdus Python. Kiekvienam metodui yra daug naudojimo atvejų ir pavyzdžių. Mes taip pat palyginome šiuos metodus, kad išsiaiškintume, kuris iš jų yra efektyviausias realaus gyvenimo projektams.
Panašūs skaitiniai:
- Eilučių formatavimas Python
- Kaip naudoti eilučių formatuotojus Python
- Kaip suformatuoti eilutę naudojant Python žodyną