Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| it:programmiersprache:python:01_strings [05.09.2026 15:15] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | it:programmiersprache:python:01_strings [17.09.2026 07:25] (aktuell) – [f-Präfix] marsch | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Strings ====== | ||
| + | ===== Literale ===== | ||
| + | |||
| + | Literale sind textuelle Angaben von konstanten Werten. Zum Beispiel | ||
| + | |||
| + | <code python> | ||
| + | i: int = 17 | ||
| + | pi: float = 3.14 | ||
| + | name: str = " | ||
| + | </ | ||
| + | |||
| + | gibt Wert einer Variablen an. | ||
| + | |||
| + | * Variable '' | ||
| + | * Variable '' | ||
| + | * Variable '' | ||
| + | |||
| + | |||
| + | ==== u-Präfix (Unicode) ==== | ||
| + | |||
| + | > <wrap em hi>Ab Python 2.0</ | ||
| + | |||
| + | Der Python Quelltext (vor Python 3.0) eines Programms wird gemäß dem ASCII Zeichensatz abgelegt. Wenn man mal von Sonderzeichen wie zum Beispiel den deutschen Umlauten (Ä,Ö,Ü, ...) absieht, kann der Text auch in Unicode (UTF-8) abgelegt werden, da dieser in weiten Bereichen mit dem ASCII Zeichensatz übereinstimmt. Das gilt natürlich nicht für alle Werte die ein Byte [0 ... 255] annehmen kann um ein Zeichen aus dem ASCII Zeichensatz darzustellen. | ||
| + | |||
| + | Strings die allerdings Unicode Zeichen enthalten, etwa zur String Ausgabe, können in Form eines Strings mit einem Präfix '' | ||
| + | |||
| + | > <wrap em hi>Ab Python 3.0</ | ||
| + | |||
| + | |||
| + | ==== b-Präfix (bytes) ==== | ||
| + | |||
| + | > <wrap em hi>Ab Python 3.0a1, Ignoriert in 2.7</ | ||
| + | |||
| + | Zur Angabe eines String-Literals für Byte-Folgen ab Python 3.1 - nicht aber in Python 2.7 übernommen. | ||
| + | |||
| + | <code python> | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Formatierung ===== | ||
| + | |||
| + | Oder auch Stringinterpolation (//<wrap : | ||
| + | |||
| + | |||
| + | ==== Mit % (Modulo-Operator) ==== | ||
| + | |||
| + | > <wrap em hi>Ab Python 1.0</ | ||
| + | |||
| + | Formatierung im Stil von '' | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | |||
| + | === Code === | ||
| + | |||
| + | <code python> | ||
| + | print(' | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | === Beschreibung === | ||
| + | |||
| + | Beinhaltet: | ||
| + | - ' | ||
| + | - Optional: einen Bezeichner in runden Klammern ' | ||
| + | - Optional: Konvertierungsflags | ||
| + | - Optional: Minimum Feldbreite | ||
| + | - Optional: Präzision mit einem Punkt (' | ||
| + | - Optional: Längenmodifizierer | ||
| + | - Konvertierungstyp | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | **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 | ||
| + | <code python> | ||
| + | logger.info(" | ||
| + | </ | ||
| + | wird zwar ein Wert (hier '' | ||
| + | |||
| + | Mit dem alten Format | ||
| + | <code python> | ||
| + | logger.info(" | ||
| + | </ | ||
| + | wird der String und seine Parameter (Tuple) zwar an den Log-Aufruf übergeben, jedoch wird eine Formatierung des Ausgabestrings nicht durchgeführt, | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== $-Präfix ==== | ||
| + | |||
| + | > <wrap em hi>Ab Python 2.1</ | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | |||
| + | === Code === | ||
| + | |||
| + | <code python> | ||
| + | |||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | === Beschreibung === | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Templates ==== | ||
| + | |||
| + | > <wrap em hi>Ab Python 2.4</ | ||
| + | |||
| + | Formatierung mit Template-Strings | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | |||
| + | === Code === | ||
| + | |||
| + | <code python> | ||
| + | from string import Template | ||
| + | |||
| + | s = '$blah und $blub' | ||
| + | s.substitue(blah=' | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | === Beschreibung === | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== .format()-Style ==== | ||
| + | |||
| + | > <wrap em hi>Ab Python 3.0, Backported to 2.6</ | ||
| + | |||
| + | Formatierung mit '' | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | |||
| + | === Code === | ||
| + | |||
| + | <code python> | ||
| + | print(' | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | === Beschreibung === | ||
| + | |||
| + | Sehr leistungsfähig. | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== f-Präfix ==== | ||
| + | |||
| + | > <wrap em hi>Ab Python 3.5.3</ | ||
| + | |||
| + | String Formatierung mit | ||
| + | |||
| + | Sollte der Parameter explizit in einen String umgewandelt werden, so sollte statt '' | ||
| + | Sollte der Parameter explizit in einen String umgewandelt werden, so sollte statt '' | ||
| + | |||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | |||
| + | === Code === | ||
| + | |||
| + | <code python> | ||
| + | param = 3.14 | ||
| + | |||
| + | print(f" | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | === Beschreibung === | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== t-Präfix ==== | ||
| + | |||
| + | > <wrap em hi>Ab Python 3.14</ | ||
| + | |||
| + | String Formatierung mit t-Präfix. Es besteht eine Ähnlichkeit mit [[# | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | |||
| + | === Code === | ||
| + | |||
| + | <code python> | ||
| + | t'A String {} with format' | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | === Beschreibung === | ||
| + | |||
| + | Der Präfix ist ein '' | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | [[it: | ||