Inhaltsverzeichnis

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:

  1. '%' als Einleitung einer Formatangabe
  2. Optional: einen Bezeichner in runden Klammern '(name)'.
  3. Optional: Konvertierungsflags
  4. Optional: Minimum Feldbreite
  5. Optional: Präzision mit einem Punkt ('.') beginnend
  6. Optional: Längenmodifizierer
  7. 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

Exkurs Pfade