Merkkijonojen muotoilun avulla voit luoda dynaamisia merkkijonoja yhdistämällä muuttujia ja arvoja. Tässä artikkelissa käsittelemme viittä tapaa muotoilla merkkijono.
Opit erilaisia merkkijonomuotoilumenetelmiä esimerkkien avulla ymmärtääksesi paremmin. Katsotaanpa niitä nyt!
Kuinka muotoilla merkkijonoja Pythonissa
On viisi eri tapaa muotoilla merkkijonoa Python
- Muotoilu % Operatorilla.
- Muotoilu format()-merkkijonomenetelmällä.
- Muotoilu merkkijonoliteraaaleilla, joita kutsutaan f-merkkijonoiksi.
- Muotoilu merkkijonomalliluokalla
- Muotoilu center()-merkkijonomenetelmällä.
Näemme siis kaikki edellä mainitut tavat, ja keskitymme myös siihen, mikä merkkijonojen muotoilustrategia on paras.
1. Kuinka muotoilla merkkijono käyttämällä % Operator -toimintoa
Se on vanhin merkkijonomuotoilumenetelmä. Tässä käytämme moduloa % operaattori . Modulo % tunnetaan myös merkkijonomuotoiluoperaattorina.
Python-muotomerkkijono %-operaattorilla
Lausekkeessa Mangy, ryppyinen kulkukoira %s ahmi % 'kiireessä', merkkijonon %s paikkamerkki korvataan arvolla 'kiireessä'.
Python 3
Näyttelijä Rekha
print>(>'The mangy, scrawny stray dog %s gobbled down'> %>'hurriedly'> +> >'the grain-free, organic dog food.'>)> |
>
>Lähtö
The mangy, scrawny stray dog hurriedly gobbled downthe grain-free, organic dog food.>
Useiden merkkijonojen lisääminen modulo-operaattorilla
Tässä lisäämme useita merkkijonoja %-operaattorilla.
Python 3
x>=> 'looked'> print>(>'Misha %s and %s around'>%>(>'walked'>,x))> |
>
>Lähtö
Misha walked and looked around>
Tarkkuuskäsittely Pythonissa %-operaattorilla
Liukulukuluvut käyttävät muotoa %a.bf . Tässä, a olisi merkkijonossa olevien numeroiden vähimmäismäärä; nämä voivat olla täytetty välilyönnillä, jos kokonaisluvussa ei ole näin monta numeroa.
Lähellä tätä, bf ilmaisee kuinka monta numeroa näytetään desimaalipilkun jälkeen.
Tässä koodissa merkkijono 'pi:n arvo on: %5.4f' sisältää muotomääritteen %5.4f. %5.4f-muotomääritteen avulla muotoillaan liukuluku, jonka leveys on vähintään 5 ja jonka tarkkuus on 4 desimaalia.
Python 3
print>(>'The value of pi is: %5.4f'> %>(>3.141592>))> |
>
>Lähtö
The value of pi is: 3.1416>
Useita muotojen muunnostyyppejä
Annetussa koodissa Python-muotoilumerkkijono muunnetaan kokonaisluvuksi ja liukulukuksi %d,%f:llä.
Python 3
variable>=> 12> string>=> 'Variable as integer>=> %>d
> Variable as>float> => %>f'>%>(variable, variable)> print> (string)> |
>
>Lähtö
Variable as integer = 12 Variable as float = 12.000000>
Huomautus: Lisätietoja %-muotoilusta on kohdassa Merkkijonojen muotoilu Pythonissa käyttämällä %
2. Kuinka muotoilla merkkijono käyttämällä format()-menetelmää
Format()-menetelmä otettiin käyttöön Python3:n kanssa monimutkaisten merkkijonojen muotoilun tehokkaampaan käsittelyyn.
Muotoilijat lisäävät merkkijonoon yhden tai useamman korvaavan kentän ja paikkamerkit, jotka on määritetty kihara aaltosulkeilla { } ja kutsuvat str.format() . Arvo, jonka haluamme laittaa paikkamerkkiin ja ketjuttaa muotofunktioon parametreina välitetyn merkkijonon kanssa.
Syntaksi: 'Joukku tähän {} sitten myös {}'.format('something1','something2')
Python-merkkijonon muotoilu format()-menetelmällä
Tämä koodi käyttää {}-merkkiä paikkamerkkinä, ja sitten olemme kutsuneet.format()-metodin 'yhtä' kuin paikkamerkki.
Python 3
print>(>'We all are {}.'>.>format>(>'equal'>))> |
>
kuinka nimetän uudelleen hakemiston linux
>Lähtö
We all are equal.>
Indeksipohjainen lisäys
Tässä koodissa käytetään aaltosulkuja {} indekseillä merkkijonossa {2} {1} {0} osoittamaan paikat, joihin vastaavat arvot sijoitetaan.
Python 3
print>(>'{2} {1} {0}'>.>format>(>'directions'>,> >'the'>,>'Read'>))> |
>
>Lähtö
Read the directions>
Lisää objekti määrittämällä avainsanoja
Tässä koodissa aaltosulkuja {}, joissa on nimetyt paikkamerkit ({a}, {b}, {c}), käytetään merkkijonossa 'a: {a}, b: {b}, c: {c}' osoittamaan paikat, joihin vastaavat nimetyt argumentit sijoitetaan.
"primin algoritmi"
Python 3
print>(>'a: {a}, b: {b}, c: {c}'>.>format>(a>=> 1>,> >b>=> 'Two'>,> >c>=> 12.3>))> |
>
>Lähtö
a: 1, b: Two, c: 12.3>
Käytä lisätyt objektit uudelleen
Tässä koodissa aaltosulkeet {} ja nimetyt paikkamerkit ({p}) ovat käytössä merkkijonossa 'Ensimmäinen {p} oli kunnossa, mutta {p} {p} oli kova'. argumentti p asetetaan.
Python 3
print>(> >'The first {p} was alright, but the {p} {p} was tough.'>.>format>(p>=>'second'>))> |
>
>Lähtö
The first second was alright, but the second second was tough.>
Float Precision .format()-menetelmällä
Syntaksi: {[indeksi]:[leveys][.tarkkuus][tyyppi]}
Tyyppiä voidaan käyttää muotokoodien kanssa:
- 'd' kokonaisluvuille
- 'f' liukulukuille
- 'b' binääriluvuille
- 'o' oktaaliluvuille
- 'x' oktaalisille heksadesimaaliluvuille
- 's' merkkijonoa varten
- 'Se on' liukulukulle eksponenttimuodossa
Esimerkki:
Molemmat koodit tekevät merkkijonomuotoilua. Ensimmäinen merkkijono muotoillaan '%':lla ja toinen merkkijono muotoilla .format().
Python 3
print>(>'The valueof pi is: %1.5f'> %>3.141592>)> print>(>'The valueof pi is: {0:1.5f}'>.>format>(>3.141592>))> |
>
>Lähtö
The valueof pi is: 3.14159 The valueof pi is: 3.14159>
Huomautus: Saat lisätietoja str.format(:sta) kohdasta format()-funktio Pythonissa
3. Pythonin f-merkkijonon ymmärtäminen
PEP 498 esitteli uuden merkkijonojen muotoilumekanismin, joka tunnetaan nimellä Literal String Interpolation tai yleisemmin nimellä F-kielet (johtuen merkkijonoliteraalia edeltävästä f-merkistä). Pythonin f-Stringin ideana on tehdä merkkijonojen interpoloinnista yksinkertaisempi.
Jos haluat luoda f-merkkijonon Pythonissa, liitä merkkijonon eteen kirjain f. Itse merkkijono voidaan muotoilla samalla tavalla kuin muotoilisit str. muoto() . F-merkkijonot tarjoavat tiiviin ja kätevän tavan upottaa Python-lausekkeita muotoilua varten merkkijonoliteraaleihin.
Merkkijonojen muotoilu F-Stringsillä
Tässä koodissa f-merkkijono fNimeni on {name}. käytetään interpoloimaan nimimuuttujan arvo merkkijonoon.
Python 3
name>=> 'Ele'> print>(f>'My name is {name}.'>)> |
>
>Lähtö
My name is Ele.>
Tämä uusi muotoilusyntaksi on erittäin tehokas ja helppo. Voit myös lisätä mielivaltaisia Python-lausekkeita ja tehdä siihen jopa aritmeettisia operaatioita.
Aritmeettiset operaatiot F-merkkijonoilla
Tässä koodissa f-merkkijono f Hän sanoi ikänsä {2 * (a + b)}. käytetään interpoloimaan lausekkeen 2 * (a + b) tulos merkkijonoon.
Python 3
a>=> 5> b>=> 10> print>(f>'He said his age is {2 * (a + b)}.'>)> |
>
>Lähtö
css kommentti
He said his age is 30.>
Voimme myös käyttää lambda ilmaisuja sisään f-merkkijono muotoilu.
Lambda-lausekkeet F-merkkijonoilla
Tässä koodissa anonyymi lambda-funktio määritellään käyttämällä lambda x:tä: x*2. Tämä lambda-funktio ottaa argumentin x ja palauttaa sen double.
Python 3
print>(f>'He said his age is {(lambda x: x*2)(3)}'>)> |
>
>Lähtö
He said his age is 6>
Float-tarkkuus f-String-menetelmässä
Tässä koodissa f-string-muotoilua käytetään interpoloimaan num-muuttujan arvo merkkijonoon.
Syntax : {value:{width}.{precision}}> Python 3
num>=> 3.14159> print>(f>'The valueof pi is: {num:{1}.{5}}'>)> |
>
>Lähtö
The valueof pi is: 3.1416>
Huomautus: Lisätietoja f-merkkijonoista on kohdassa f-merkkijonot Pythonissa
4. Python-merkkijonomalliluokka
String-moduulissa Template Class mahdollistaa yksinkertaistetun syntaksin luomisen tulosten määrittelyyn. Muoto käyttää paikkamerkkinimiä, jotka $ muodostaa kelvollisilla Pythonilla tunnisteet (aakkosnumeeriset merkit ja alaviivat). Paikkamerkkien ympäröiminen aaltosulkeilla mahdollistaa sen jälkeen enemmän aakkosnumeerisia kirjaimia ilman välilyöntejä. Kirjoittaminen $$ luo yhden koodinvaihtomerkin $:
Python-merkkijonon muotoilu malliluokan avulla
Tämä koodi tuo Template-luokan merkkijonomoduulista. Malli-luokan avulla voimme luoda mallimerkkijonon, jossa on paikkamerkit, jotka voidaan korvata todellisilla arvoilla. Tässä korvaamme arvot n1 ja n2 n3:n ja n4:n tilalle merkkijonossa n.
Python 3
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))> |
>
>Lähtö
Hello ! This is techcodeview.com.>
Huomautus: Jos haluat lisätietoja String Template -luokasta, katso Merkkijonomalliluokka Pythonissa
5. Kuinka muotoilla merkkijono käyttämällä center()-menetelmää
center()-menetelmä on Pythonin str-luokan sisäänrakennettu menetelmä, joka palauttaa uuden merkkijonon, joka on keskitetty tietynleveiseen merkkijonoon.
kuinka nimetän uudelleen hakemiston linux
Muotoile merkkijono center()-menetelmällä
Tämä koodi palauttaa uuden merkkijono pehmustettu välilyönneillä vasemmalla ja oikealla puolella.
Python 3
string>=> 'GeeksForGeeks!'> width>=> 30> centered_string>=> string.center(width)> print>(centered_string)> |
>
>Lähtö
GeeksForGeeks!>
Python-muotomerkkijono: % vs. .format vs. f-merkkijono
f-merkkijonot ovat nopeampia ja parempia kuin molemmat % -muotoilu ja str.format() . f-merkkijonolausekkeet arvioidaan ajon aikana, ja voimme myös upottaa lausekkeita f-merkkijonon sisään käyttämällä hyvin yksinkertaista ja helppoa syntaksia.
Aaltosulkeiden sisällä olevat lausekkeet arvioidaan ajon aikana ja yhdistetään sitten f-merkkijonon merkkijonoosaan ja sitten palautetaan lopullinen merkkijono.
Huomautus: Käytä Mallimerkkijonoa, jos merkkijono on käyttäjän toimittama merkkijono. Muu Käytä f-Stringsiä, jos käytössäsi on Python 3.6+ ja. format() -menetelmää, jos et ole.
Olemme käsitelleet kaikki viisi merkkijonomuotoilutapaa Pythonissa. Jokaiselle menetelmälle on monia käyttötapauksia ja esimerkkejä. Vertailimme myös näitä menetelmiä löytääksemme, mikä niistä on tehokkain käytettäväksi tosielämän projekteissa.
Samanlaisia lukemia:
- Merkkijonojen muotoilu Pythonissa
- Kuinka käyttää merkkijonomuotoilijoita Pythonissa
- Kuinka muotoilla merkkijono Pythonin sanakirjan avulla