====== Strings ======
Ab Python 2.0 [[https://www.python.org/dev/peps/pep-0100/|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 [[https://www.python.org/dev/peps/pep-0292|PEP 292]]
s = '$blah und $blub'
s.substitue(blah='Hinz', blub='Kunz')
Beschreibung
==== f-Strings ====
Ab Python 3.5.3, [[https://www.python.org/dev/peps/pep-0498/|PEP 498]]
String Formatierung mit
f'A String {} with format'
Beschreibung
[[it:programmiersprache:python:exkurs:pfade:start|Exkurs Pfade]]