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ėjePython3
# 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']>