Python-indeling ()

De ingebouwde methode format () retourneert een opgemaakte weergave van de gegeven waarde die wordt bestuurd door de indelingsspecificatie.

De format()functie is vergelijkbaar met de methode String-indeling. Intern roepen beide methoden de __format__()methode van een object aan.

Hoewel de ingebouwde format()functie een implementatie op laag niveau is voor het __format__()intern formatteren van een object , is string format()een implementatie op een hoger niveau die ook complexe opmaakbewerkingen kan uitvoeren op meerdere objectstrings.

De syntaxis van format () is:

 format (waarde (, format_spec))

format () Parameters

De format()functie heeft twee parameters:

  • waarde - waarde die moet worden opgemaakt
  • format_spec - De specificatie over hoe de waarde moet worden opgemaakt.

De formaatspecificatie kan de volgende indeling hebben:

((fill) align) (teken) (#) (0) (breedte) (,) (. precisie) (type) waarbij de opties fill :: = elk teken uitlijnen :: = "" | "=" | "^" sign :: = "+" | "-" | "" breedte :: = precisie geheel getal :: = type geheel getal :: = "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

Bezoek deze links voor meer informatie over formaattypen en uitlijning.

Retourwaarde van format ()

De format()functie retourneert een opgemaakte weergave van een bepaalde waarde die is opgegeven door de indelingsspecificatie.

Voorbeeld 1: getalnotatie met format ()

 # d, f and b are type # integer print(format(123, "d")) # float arguments print(format(123.4567898, "f")) # binary format print(format(12, "b"))

Uitvoer

 123 123.456790 1100

Voorbeeld 2: Nummeropmaak met opvulling, uitlijning, teken, breedte, precisie en type

 # integer print(format(1234, "*>+7,d")) # float number print(format(123.4567, "^-09.3f"))

Uitvoer

 * + 1.234 0123.4570

Hier hebben we bij het opmaken van het gehele getal 1234de opmaakspecificatie gespecificeerd *>+7,d. Laten we elke optie begrijpen:

  • * - Het is het opvulteken dat de lege spaties opvult na het formatteren
  • > - Het is de juiste uitlijningsoptie die de outputstring naar rechts uitlijnt
  • + - Het is de tekenoptie die ervoor zorgt dat het nummer wordt ondertekend (met een bord aan de linkerkant)
  • 7 - Het is de breedte-optie die het nummer dwingt om een ​​minimale breedte van 7 aan te nemen, andere spaties worden gevuld door het vulteken
  • , - Het is de operator voor duizendtallen die een komma tussen alle duizenden plaatst.
  • d - Het is de type-optie die specificeert dat het getal een geheel getal is.

Bij het opmaken van het drijvende-kommagetal 123.4567hebben we de formaatspecificatie gespecificeerd ^-09.3f. Dit zijn:

  • ^ - Het is de uitlijningsoptie in het midden die de outputreeks uitlijnt met het midden van de resterende ruimte
  • - - Het is de tekenoptie die alleen negatieve getallen dwingt om het teken weer te geven
  • 0 - Het is het personage dat in de plaats van de lege ruimtes wordt geplaatst.
  • 9 - Het is de breedte-optie die de minimale breedte van het nummer instelt op 9 (inclusief decimale punt, duizendtallen komma en teken)
  • .3 - Het is de precisie-operator die de precisie van het gegeven drijvende getal op 3 plaatsen instelt
  • f - Het is de type-optie die aangeeft dat het getal een float is.

Voorbeeld 3: format () gebruiken door __format __ () te overschrijven

 # custom __format__() method class Person: def __format__(self, format): if(format == 'age'): return '23' return 'None' print(format(Person(), "age"))

Uitvoer

 23

Hier hebben we de __format__()methode van de klasse overschreven Person.

Het accepteert nu een formatparameter en retourneert 23 als deze gelijk is aan 'age'. Als er geen indeling is opgegeven, Nonewordt geretourneerd.

De format()functie wordt intern uitgevoerd Person().__format__("age")om 23 te retourneren.

Interessante artikelen...