Dies ist eine alte Version des Dokuments!
Strings
Ab Python 2.0 PEP 100
Strings 'a string'
kann als Unicode angegeben werden u'unicode string'
.
Formatierung
printf-Style
Formatierung im Stil von printf()
aus C.
print('Ein String mit %(name)03s format' % (Tupel mit Werten))
Beinhaltet:
- '%' als Einleitung einer Formatangabe
- Optional: einen Bezeichner in runden Klammern '(name)'.
- Optional: Konvertierungsflags
- Optional: Minimum Feldbreite
- Optional: Präzision mit einem Punkt ('.') beginnend
- Optional: Längenmodifizierer
- Konvertierungstyp
Info
Auch wenn diese Art der Formatierung schon in die Jahre gekommen ist, so ist sie doch im Bezug zum Python Logger noch recht bedeutsam.
Mit
logger.info("Value {} is to high".format(i))
wird zwar ein Wert (hier i
) in den String eingearbeitet, aber das jedes mal wenn ein solcher Log-Eintrag gemacht werden soll. Nun kann man beim Logger aber das Level des loggings wählen, sodaß der formatierte String nicht ausgegeben werden muss. Das gilt auch für die durchaus schnell formatierten f-Strings. Das ist vergeudete Zeit.
Mit dem alten Format
logger.info("Value %d is to high" % i)
wird der String und seine Parameter (Tuple) zwar an den Log-Aufruf übergeben, jedoch wird eine Formatierung des Ausgabestrings nicht durchgeführt, sollte das Level entsprechend gesetzt sein.
.format()-Style
Formatierung mit str.format
print('Ein String {} mit Format'.format())
Sehr leistungsfähig.
Templates
Formatierung mit Template-Strings PEP 292
s = '$blah und $blub' s.substitue(blah='Hinz', blub='Kunz')
Beschreibung
f-Strings
Ab Python 3.5.3, PEP 498 String Formatierung mit
f'A String {} with format'
Beschreibung