(Sponsors) Begin met het leren van Python met DataCamp’s gratis Intro to Python tutorial. Leer Data Science door het voltooien van interactieve codering uitdagingen en het bekijken van video’s door deskundige instructeurs. Begin nu!
Bijgewerkt op 07 jan 2020
Met de methode format()
kunt u een string opmaken zoals u dat wilt.
Syntax: template.format(p1, p1, .... , k1=v1, k2=v2)
template is een string die opmaakcodes bevat, format()
-methode gebruikt zijn argument om de waarde voor elke opmaakcode te vervangen. Bijvoorbeeld:
>>> 'Sam has {0} red balls and {1} yellow balls'.format(12, 31)
{0}
en {1}
zijn formaatcodes. De formaatcode {0}
wordt vervangen door het eerste argument van format()
, d.w.z. 12
, terwijl {1}
wordt vervangen door het tweede argument van format()
, d.w.z. 31
.
Gewachte uitvoer:
Sam has 12 red balls and 31 yellow balls
Deze techniek is in orde voor eenvoudige opmaak, maar wat als u de precisie in drijvende komma getallen wilt opgeven? Voor zoiets moet je meer leren over format codes. Hier volgt de volledige syntaxis van formaatcodes.
Syntax: {:}
De type
kan worden gebruikt met formaat codes:
Formaatcodes | Beschrijving |
---|---|
d |
voor gehele getallen |
f |
voor drijvende-kommagetallen |
b |
voor binaire getallen |
o |
voor octale getallen |
x |
voor hexadecimale octale getallen |
s |
voor string |
e |
voor drijvende komma in exponentformaat |
De volgende voorbeelden zullen de zaken duidelijker maken.
Voorbeeld 1:
>>> "Floating point {0:.2f}".format(345.7916732)
Hier geven we 2
cijfers van precisie op en f
wordt gebruikt om drijvende komma-getal weer te geven.
Verwachte uitvoer:
Floating point 345.79
Voorbeeld 2:
12 |
>>> import math>>> "Floating point {0:10.3f}".format(math.pi) |
Hier specificeren we 3
cijfers voor de precisie, 10
voor de breedte en f
voor het drijvende komma getal.
Verwachte uitvoer:
Floating point 3.142
Voorbeeld 3:
"Floating point pi = {0:.3f}, with {1:d} digit precision".format(math.pi, 3)
Hier vertegenwoordigt d
in {1:d}
een gehele waarde.
Verwachte uitvoer:
Floating point pi = 3.142, with 3 digit precision
U moet de precisie alleen opgeven in het geval van drijvende-kommagetallen als u de precisie opgeeft voor gehele getallen ValueError
zal worden verhoogd.
Voorbeeld 5:
'Sam has {1:d} red balls and {0:d} yellow balls'.format(12, 31)
Verwachte uitvoer:
Sam has 31 red balls and 12 yellow balls
Voorbeeld 6:
Verwachte uitvoer:
In binary 4 is 100
Voorbeeld 7:
12 |
array = "A = {0}, B = {1}, C = {2}".format(*array) |
Verwachte output:
A = 34, B = 66, C = 12
Voorbeeld 8:
123456 |
d = {'hats' : 122,'mats' : 42}"Sam had {hats} hats and {mats} mats".format(**d) |
Verwachte output:
Sam had 122 hats and 42 mats
De methode format()
ondersteunt ook trefwoordargumenten.
'Sam has {red} red balls and {green} yellow balls'.format(red = 12, green = 31)
Noteer bij het gebruik van trefwoordargumenten dat we argumenten moeten gebruiken binnen {}
niet numerieke index.
U kunt ook positieargumenten mengen met trefwoordargumenten
12 |
'Sam has {red} red balls, {green} yellow balls \and {0} bats'.format(3, red = 12, green = 31) |
De format()
-methode voor het formatteren van strings is vrij nieuw en werd geïntroduceerd in Python 2.6 . Er is een andere oude techniek die u zult zien in oudere codes die u toelaat om string formatteren met behulp van %
operator in plaats van format()
methode.
Laten we een voorbeeld.
"%d pens cost = %.2f" % (12, 150.87612)
Hier gebruiken we template string aan de linkerkant van %
. In plaats van {}
voor formaatcodes gebruiken we %
. Aan de rechterkant van %
gebruiken we tuple om onze waarden te bevatten. %d
en %.2f
worden format specifiers genoemd, ze beginnen met %
gevolgd door een karakter dat het datatype weergeeft. Bijvoorbeeld %d
format specifier is een placeholder voor een geheel getal, op dezelfde manier %.2f
is een placeholder voor drijvende komma getallen.
Dus %d
wordt vervangen door de eerste waarde van de tupel nl 12
en %.2f
wordt vervangen door de tweede waarde nl 150.87612
.
Verwachte output:
12 pens cost = 150.88
Enkele andere voorbeelden.
Voorbeeld 1:
Nieuw:
"{0:d} {1:d} ".format(12, 31)
Old:
"%d %d" % (12, 31)
Verwacht output:
12 31
Voorbeeld 2:
Nieuw:
"{0:.2f} {1:.3f}".format(12.3152, 89.65431)
Old:
"%.2f %.3f" % (12.3152, 89.65431)
Expected Output:
12.32 89.654
Voorbeeld 3:
Nieuw:
"{0:s} {1:o} {2:.2f} {3:d}".format("Hello", 71, 45836.12589, 45 )
Old: