====== 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]]