logo

Python String format() metodas

Theformat()>metodas yra galingas įrankis, leidžiantis kūrėjams kurti suformatuotas eilutes, įterpiant kintamuosius ir reikšmes į vietos rezervavimo ženklus šablono eilutėje. Šis metodas yra lankstus ir universalus būdas sukurti tekstinę išvestį įvairioms programoms. Python string format() funkcija buvo pristatytas siekiant efektyviau tvarkyti sudėtingą eilučių formatavimą. Kartais tokiu atveju norime pateikti apibendrintus spausdinimo teiginius, o ne rašyti spausdintus teiginius kiekvieną kartą, kai naudojame formatavimo sąvoką.

Python String Format() Sintaksė

Sintaksė: { }.format(value)



Parametrai:

  • vertė: Gali būti sveikasis skaičius, slankiojo kablelio skaitmeninė konstanta, eilutė, simboliai ar net kintamieji.

Grąžinimo tipas: Grąžina suformatuotą eilutę su reikšme, perduota kaip parametras rezervuotos vietos padėtyje.

Stygos formatas () Python pavyzdyje

Paprastas Python String formato() metodo demonstravimas Python.



Python3






name>=> 'Ram'> age>=> 22> message>=> 'My name>is> {>0>}>and> I am {>1>} years> >old. {>1>}>is> my favorite> >number.'.>format>(name, age)> print>(message)>

>

>

Išvestis

My name is Ram and I am 22 years old. 22 is my favorite number.>

Naudojant .Format() metodą

Šis integruotos eilučių klasės metodas suteikia sudėtingų kintamųjų pakeitimų ir reikšmių formatavimo funkcionalumą. Ši nauja formatavimo technika laikoma elegantiškesne. Bendra format() metodo sintaksė yra string.format(var1, var2,…). Čia pabandysime suprasti, kaip suformatuoti eilutę, kurioje yra garbanotų petnešų Python .

Python3




txt>=> 'I have {an:.2f} Rupees!'> print>(txt.>format>(an>=> 4>))>

>

>

Išvestis

I have 4.00 Rupees!>

Vieno formato naudojimas

Šiame pavyzdyje mes naudosime stygos skliaustų žymėjimas programa demonstruoti str. format() metodas. Formatavimo priemonės veikia įterpdamos vieną ar daugiau pakaitinių laukų ir vietos rezervavimo ženklų, apibrėžtų riestiniais skliaustais { } į eilutę ir skambina str.format() .

Python3




# using format option in a simple string> print>(>'{}, A computer science portal for geeks.'> >.>format>(>'techcodeview.com'>))> # using format option for a> # value stored in a variable> str> => 'This article is written in {}'> print>(>str>.>format>(>'Python'>))> # formatting a string using a numeric constant> print>(>'Hello, I am {} years old !'>.>format>(>18>))>

>

aštrus kampas

>

Išvestis

techcodeview.com, A computer science portal for geeks. This article is written in Python Hello, I am 18 years old!>

Eilutės formatas() su keliomis rezervuotomis vietomis

Formatuojant galima naudoti kelias garbanotų petnešų poras eilutė Python . Tarkime, sakinyje reikia pakeisti kitą kintamąjį, kurį galima padaryti pridedant antrą porą riestinių skliaustų ir į metodą perduodant antrą reikšmę. Python pakeis vietos rezervavimo ženklus reikšmėmis įsakymas.

Sintaksė: { } { } .formatas(reikšmė1, vertė2)

Parametrai: (reikšmė1, vertė2) : Gali būti sveikieji skaičiai, slankaus kablelio skaitmeninės konstantos, eilutės, simboliai ir net kintamieji. Vienintelis skirtumas yra tas, kad format() metodu perduodamų parametrų reikšmių skaičius turi būti lygus eilutėje sukurtų vietos rezervavimo ženklų skaičiui.

Klaidos ir išimtys:

Indekso klaida: Pasitaiko, kai eilutėje yra papildomas vietos rezervavimo ženklas ir mes neperdavėme jokios jos reikšmės formatu () metodu. Python paprastai priskiria vietos rezervavimo ženklus su numatytuoju indeksu tokia tvarka 0, 1, 2, 3… norėdami pasiekti reikšmes, perduotas kaip parametrai. Taigi, kai jis susiduria su vietos rezervavimo ženklu, kurio indekse nėra jokios reikšmės, perduotos kaip parametras, ji išmeta „IndexError“.

Python programa, naudojanti kelis rezervuotus ženklus, kad parodytų str.format() metodą.

Python3




# Multiple placeholders in format() function> my_string>=> '{}, is a {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))> # different datatypes can be used in formatting> print>(>'Hi ! My name is {} and I am {} years old'> >.>format>(>'User'>,>19>))> # The values passed as parameters> # are replaced in order of their entry> print>(>'This is {} {} {} {}'> >.>format>(>'one'>,>'two'>,>'three'>,>'four'>))>

>

>

Išvestis

techcodeview.com, is a computer science portal for geeks Hi! My name is User and I am 19 years old This is one two three four>

Eilutės formatas() IndexError

Python programa, rodanti indekso klaidą, vietos rezervavimo ženklų skaičius yra keturi, tačiau perduodamos tik trys reikšmės.

Python3




# parameters in format function.> my_string>=> '{}, is a {} {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))>

>

>

Išvestis

IndexError: tuple index out of range>

Stygų formatavimas naudojant pabėgimo sekas

Norėdami formatuoti eilutę arba atlikti komandą, eilutėje galite naudoti du ar daugiau specialiai tam skirtų simbolių. Šie simboliai vadinami pabėgimo sekomis. An Pabėgimo seka Python prasideda pasviruoju brūkšniu (). Pavyzdžiui, yra pabėgimo seka, kurioje bendra raidės n reikšmė pažodžiui pašalinama ir suteikiama alternatyvi reikšmė – nauja eilutė.

Pabėgimo seka apibūdinimas Pavyzdys
Pertraukia eilutę į naują eilutę print ('Sukūriau šį rimą, kad paaiškinčiau laiku Viskas, ką žinau')
Pridedamas horizontalus skirtukas print ('Laikas yra vertingas dalykas')
Spausdina pasvirąjį brūkšnį print ('Stebėkite, kaip jis skrenda, kai švytuoklė svyruoja')
' Spausdina vieną citatą spausdinti („Net nesvarbu, kaip tu stengiesi“)
Spausdina dvigubą kabutę print ('Tai taip erealu')
a skleidžia garsą kaip varpas spausdinti ('a')

Formatavimo priemonės su pozicijos ir raktinio žodžio argumentais

Kai vietos žymekliai { } yra tušti, Python pakeis reikšmes, perduotas per str.format() eilės tvarka. Str.format() metodo reikšmės iš esmės yra kortele duomenų tipai ir kiekviena atskira eilėje esanti reikšmė gali būti iškviesta pagal jos indekso numerį, kuris prasideda indekso skaičiumi 0. Šie indekso numeriai gali būti perduodami į riestinius skliaustus, kurie naudojami kaip vietos žymekliai pradinėje eilutėje.

Sintaksė: {0} {1}.format(pozicijos_argumentas, raktinio žodžio_argumentas)

Parametrai: (pozicinis_argumentas, raktinio žodžio_argumentas)

  • Pozicinis_argumentas gali būti sveikieji skaičiai, slankaus kablelio skaitmeninės konstantos, eilutės, simboliai ir net kintamieji.
  • Keyword_argument iš esmės yra kintamasis, kuriame saugoma tam tikra reikšmė, kuri perduodama kaip parametras.

Pavyzdys: Pademonstruoti formatuotojų naudojimą su poziciniais raktiniais argumentais.

Python3




# Positional arguments> # are placed in order> print>(>'{0} love {1}!!'>.>format>(>'techcodeview.com'>,> >'Geeks'>))> # Reverse the index numbers with the> # parameters of the placeholders> print>(>'{1} love {0}!!'>.>format>(>'techcodeview.com'>,> >'Geeks'>))> print>(>'Every {} should know the use of {} {} programming and {}'> >.>format>(>'programmer'>,>'Open'>,>'Source'>,> >'Operating Systems'>))> # Use the index numbers of the> # values to change the order that> # they appear in the string> print>(>'Every {3} should know the use of {2} {1} programming and {0}'> >.>format>(>'programmer'>,>'Open'>,>'Source'>,>'Operating Systems'>))> # Keyword arguments are called> # by their keyword name> print>(>'{gfg} is a {0} science portal for {1}'> >.>format>(>'computer'>,>'geeks'>, gfg>=>'techcodeview.com'>))>

>

>

Išvestis

techcodeview.com love Geeks!!  Geeks love techcodeview.com!!  Every programmer should know the use of Open Source programming and Operating Systems  Every Operating Systems should know the use of Source Open programming and programmer  techcodeview.com is a computer science portal for geeks>

Įveskite nurodydami Python

Į mūsų sintaksės riestinius skliaustus galima įtraukti daugiau parametrų. Naudokite formato kodo sintaksę {lauko pavadinimas: konversija} , kur lauko pavadinimas nurodo str.format() metodo argumento indekso numerį, o konvertavimas nurodo duomenų tipo konversijos kodą.

Naudojant %s – eilutės konvertavimas naudojant str() prieš formatavimą

Python3




print>(>'%20s'> %> (>'geeksforgeeks'>, ))> print>(>'%-20s'> %> (>'Interngeeks'>, ))> print>(>'%.5s'> %> (>'Interngeeks'>, ))>

>

>

Išvestis

geeksforgeeks Interngeeks  Inter>

Naudojant %c - charakteris prieš formatavimą

Python3




type> => 'bug'> result>=> 'troubling'> print>('I wondered why the program was>%>s me. Then> it dawned on me it was a>%>s .'>%> >(result,>type>))>

>

>

Išvestis

metodo poeilutė java
I wondered why the program was troubling me. Thenit dawned on me it was a bug .>

Naudojant %i pasirašytas sveikasis dešimtainis skaičius ir %d prieš formatavimą pasirašytas dešimtainis sveikasis skaičius (bazė-10).

Python3




match>=> 12000> site>=> 'Amazon'> print>('>%>s>is> so useful. I tried to look> up mobile>and> they had a nice one that cost>%>d rupees.'>%> (site, match))>

>

>

Išvestis

Amazon is so useful. I tried to lookup mobile and they had a nice one that cost 12000 rupees.>

Kitas naudingas tipo nurodymas

  • %in be ženklų dešimtainis sveikasis skaičius
  • %O aštuntainis sveikasis skaičius
  • f – slankiojo kablelio ekranas
  • b – dvejetainis skaičius
  • O – aštuntainis skaičius
  • %x – šešioliktainis su mažosiomis raidėmis po 9
  • %X – šešioliktainis su didžiosiomis raidėmis po 9
  • tai yra – eksponentų žymėjimas

Taip pat galite nurodyti formatavimo simboliai . Vienintelis pakeitimas yra dvitaškis (:) vietoj %.

Pavyzdžiui, vietoj %s naudokite {:s} ir vietoj %d naudokite (:d}

Sintaksė: Eilutė {lauko_pavadinimas:konversija} Pavyzdys.format(vertė)
Klaidos ir išimtys:
Vertės klaida: Šio metodo tipo konvertavimo metu įvyksta klaida.

Paverskite 10 bazinių dešimtainių sveikųjų skaičių į slankiojo kablelio skaitmenines konstantas

Python3




print>(>'This site is {0:f}% securely {1}!!'>.> >format>(>100>,>'encrypted'>))> # To limit the precision> print>(>'My average of this {0} was {1:.2f}%'> >.>format>(>'semester'>,>78.234876>))> # For no decimal places> print>(>'My average of this {0} was {1:.0f}%'> >.>format>(>'semester'>,>78.234876>))> # Convert an integer to its binary or> # with other different converted bases.> print>(>'The {0} of 100 is {1:b}'> >.>format>(>'binary'>,>100>))> print>(>'The {0} of 100 is {1:o}'> >.>format>(>'octal'>,>100>))>

>

>

Išvestis

This site is 100.000000% securely encrypted!! My average of this semester was 78.23% My average of this semester was 78% The binary of 100 is 1100100 The octal of 100 is 144>

Tipo nurodančios klaidos

Parodykite ValueError darydami priverstinį tipo konversijos

Python3




# When explicitly converted floating-point> # values to decimal with base-10 by 'd'> # type conversion we encounter Value-Error.> print>(>'The temperature today is {0:d} degrees outside !'> >.>format>(>35.567>))> # Instead write this to avoid value-errors> ''' print('The temperature today is {0:.0f} degrees outside !'> >.format(35.567))'''>

>

>

Išvestis

ValueError: Unknown format code 'd' for object of type 'float'>

Pakeitimai užpildu arba tarpų generavimas

Tarpų demonstravimas, kai eilutės perduodamos kaip parametrai

Pagal numatytuosius nustatymus eilutės lauke lyginamos kairėje, o skaičiai – dešinėje. Tai galime pakeisti įdėdami lygiavimo kodą tiesiai po dvitaškiu.

  <   : left-align text in the field   ^   : center text in the field>: sulygiuokite tekstą lauke>'> dešinėje 

Python3




# To demonstrate spacing when> # strings are passed as parameters> print>(>'{0:4}, is the computer science portal for {1:8}!'> >.>format>(>'techcodeview.com'>,>'geeks'>))> # To demonstrate spacing when numeric> # constants are passed as parameters.> print>(>'It is {0:5} degrees outside !'> >.>format>(>40>))> # To demonstrate both string and numeric> # constants passed as parameters> print>(>'{0:4} was founded in {1:16}!'> >.>format>(>'techcodeview.com'>,>2009>))> # To demonstrate aligning of spaces> print>(>'{0:^16} was founded in {1:<4}!'> >.>format>(>'techcodeview.com'>,>2009>))> print>(>'{:*^20s}'>.>format>(>'Geeks'>))>

>

Išvestis:

techcodeview.com, is the computer science portal for geeks ! It is 40 degrees outside! techcodeview.com was founded in 2009!  techcodeview.com was founded in 2009 ! *******Geeks********>

Programos

Duomenims tvarkyti paprastai naudojami formatai. Formatuotojai gali būti matomi geriausiai, kai jie naudojami daug duomenų tvarkyti vizualiai. Jei naudotojams rodome duomenų bazes, naudojant formatuotojus lauko dydžiui padidinti ir lygiavimui modifikuoti išvestis gali būti lengviau skaitoma.

Pavyzdys: parodyti didelių duomenų organizavimą naudojant format()

Python3




# which prints out i, i ^ 2, i ^ 3,> # i ^ 4 in the given range> # Function prints out values> # in an unorganized manner> def> unorganized(a, b):> >for> i>in> range>(a, b):> >print>(i, i>*>*>2>, i>*>*>3>, i>*>*>4>)> # Function prints the organized set of values> def> organized(a, b):> >for> i>in> range>(a, b):> ># Using formatters to give 6> ># spaces to each set of values> >print>(>'{:6d} {:6d} {:6d} {:6d}'> >.>format>(i, i>*>*> 2>, i>*>*> 3>, i>*>*> 4>))> # Driver Code> n1>=> int>(>input>(>'Enter lower range :- '>))> n2>=> int>(>input>(>'Enter upper range :- '>))> print>(>'------Before Using Formatters-------'>)> # Calling function without formatters> unorganized(n1, n2)> print>()> print>(>'-------After Using Formatters---------'>)> print>()> # Calling function that contains> # formatters to organize the data> organized(n1, n2)>

>

>

Išvestis:

Enter lower range :- 3 Enter upper range :- 10 ------Before Using Formatters------- 3 9 27 81 4 16 64 256 5 25 125 625 6 36 216 1296 7 49 343 2401 8 64 512 4096 9 81 729 6561 -------After Using Formatters---------  3 9 27 81  4 16 64 256  5 25 125 625  6 36 216 1296  7 49 343 2401  8 64 512 4096  9 81 729 6561>

Žodyno naudojimas eilučių formatavimui

Žodyno naudojimas norint išpakuoti reikšmes į eilutės, kurią reikia suformatuoti, vietos rezervavimo ženklus. Iš esmės naudojame ** išpakuoti vertybes. Šis metodas gali būti naudingas keičiant eilutes ruošiant SQL užklausą.

Python3




introduction>=> 'My name is {first_name} {middle_name} {last_name} AKA the {aka}.'> full_name>=> {> >'first_name'>:>'Tony'>,> >'middle_name'>:>'Howard'>,> >'last_name'>:>'Stark'>,> >'aka'>:>'Iron Man'>,> }> # Notice the use of '**' operator to unpack the values.> print>(introduction.>format>(>*>*>full_name))>

>

>

Išvestis:

My name is Tony Howard Stark AKA the Iron Man.>

Python formatas () su sąrašu

Pateiktas slankiųjų verčių sąrašas, užduotis yra sutrumpinti visas slankiąsias reikšmes iki 2 skaitmenų po kablelio. Pažvelkime į skirtingus metodus, kaip atlikti užduotį.

Python3




# Python code to truncate float> # values to 2 decimal digits.> > # List initialization> Input> => [>100.7689454>,>17.232999>,>60.98867>,>300.83748789>]> > # Using format> Output>=> [>'{:.2f}'>.>format>(elem)>for> elem>in> Input>]> > # Print output> print>(Output)>

>

>

Išvestis

['100.77', '17.23', '60.99', '300.84']>