# Python f-Strings

Mit Python f-Strings können Sie **komplexe Ausdrücke und Variablen** direkt in einen String einfügen, ohne zusätzliche Konvertierungen oder Formatierungen durchführen zu müssen.

## Was genau sind Python f-Strings?

Python f-Strings sind ein Python-String-Format, das mit Python 3.6 eingeführt wurde. Sie werden auch als **formatierte String-Literale** bezeichnet. Innerhalb von f-Strings können Sie Berechnungen auswerten, indem Sie diese in geschweifte Klammern einbetten. f-Strings ermöglichen eine kompaktere Schreibweise im Vergleich zu anderen String-Formatierungsmethoden wie `str.format()` oder der Konkatenation mit `+`. Dies führt zu klarerem und prägnanterem Code.

f-Strings sind äußerst flexibel und erlauben es, Variablen und Ausdrücke in verschiedenen Datentypen wie **Integer, Floats, Listen** oder sogar Ausdrücke und Funktionen ohne vorherige Konvertierung oder spezielle Formatierungen einzufügen. In der Regel sind Python f-Strings schneller als andere String-Formatierungsmethoden in Python.

## Die allgemeine Syntax von f-Strings

Die grundlegende Struktur eines f-Strings besteht aus dem **Präfix** `f` oder `F`, gefolgt von einem String, der durch Anführungszeichen (“ oder ’) gekennzeichnet ist. Innerhalb dieses Strings können geschweifte Klammern `{}` verwendet werden, um Variablen oder Ausdrücke einzubetten.

```python
name = "Peter"
age = 25
formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string) # Output: My name is Peter and I am 25 years old.
```

In unserem Beispiel ersetzen wir die Variable `name` mit `{name}` und die Variable `age` mit `{age}` in dem f-String, um die finale Zeichenkette zu erzeugen.

## Einsatzmöglichkeiten von Python f-Strings

f-Strings können Sie vielseitig einsetzen und spezifizieren.

### Berechnungen innerhalb eines Strings ausführen

Python f-Strings sind besonders praktisch, wenn Sie **arithmetische Operationen** innerhalb eines Strings auswerten möchten. So können Sie einen komplexen Ausdruck in einer Zeile definieren.

```python
num1 = 10
num2 = 5
result = f"The sum of {num1} and {num2} is {num1 + num2}"
print(result) # Output: The sum of 10 and 5 is 15
```

Hier wird die Addition von `num1` und `num2` innerhalb des f-Strings durchgeführt, und das Ergebnis wird direkt in den finalen String eingefügt.

### Python f-Strings und Raw Strings

Die Kombination von `r` (für Raw Strings) und `f` (für formatierte Strings oder f-Strings) erzeugt eine spezielle Art von String in Python, die als rf-String bekannt ist. Der rf-String verbindet die Funktionalität von Raw Strings, die **Escape-Sequenzen wörtlich interpretieren**, mit der Flexibilität und Leistungsfähigkeit von f-Strings, die die direkte Einbettung von Variablen und Ausdrücken in einen String erlauben.

```python
name = "User"
path = rf'C:\Users\Username\Documents\{name}\file.txt'
print(path) # Output: C:\Users\Username\Documents\User\file.txt
```

Im Code benutzen wir den rf-String, um einen Pfad zu definieren. Die Verwendung von `{name}` innerhalb des rf-Strings führt zur direkten Einfügung der Variablen `name`, während das `r` vor dem String sicherstellt, dass der **Backslash** `\` als wörtliches Zeichen behandelt wird und nicht als Teil einer Escape-Sequenz.

### Präzision von Gleitkommazahlen

Mit speziellen **Formatierungsanweisungen** können Sie die Anzahl der Dezimalstellen einer Gleitkommazahl im formatierten String festlegen.

```python
value = 3.14159265359
formatted_value = f"Rounded value = {value:.3f}"
print(formatted_value) # Output: Rounded value = 3.142
```

Hier gibt die Formatierungsanweisung `:.3f` an, dass die Variable `value` auf drei Dezimalstellen gerundet und in den formatierten String eingefügt werden soll.

### Breite und Ausrichtung

Bei Python f-Strings ermöglicht die Breite und Ausrichtung die Kontrolle über die **Darstellung der eingesetzten Werte** innerhalb eines festgelegten Feldes. Dies ist hilfreich, um Text oder Zahlen in einem bestimmten Bereich zu platzieren und sie entweder links, rechts oder zentriert auszurichten.

Angenommen, wir haben den Namen `__Alice__` und möchten ihn in einem zehn Zeichen breiten Feld rechtsbündig platzieren:

```python
name = "Alice"
formatted_name = f"Hello, {name:>10}"
print(formatted_name) # Output: Hello,      Alice
```

Da der Wert weniger als zehn Zeichen lang ist, wird er durch die Spezifizierung `{name:>10}` rechtsbündig ausgerichtet.

### Füllen mit Nullen oder anderen Zeichen

Das Füllen mit Nullen oder anderen Zeichen beeinflusst die Ausrichtung von Zahlen in einem Feld. Dies nützt Ihnen, wenn Zahlen in einem festen Format dargestellt werden sollen, zum Beispiel bei der **Anzeige von Zeitangaben oder numerischen Werten**.

```python
number = 42
formatted_number = f"Number: {number:06}"
print(formatted_number) # Output: Number: 000042
```

Hierbei bezeichnet `:06`, dass die Zahl `number` in ein sechsstelliges Feld eingetragen wird, wobei wir die fehlenden Stellen mit führenden Nullen auffüllen.

Es können auch andere Zeichen als Nullen zum Auffüllen spezifiziert werden:

```python
word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____
```


This is a markdown version of: [https://www.ionos.com/de-ch/digitalguide/websites/web-entwicklung/python-f-strings/](https://www.ionos.com/de-ch/digitalguide/websites/web-entwicklung/python-f-strings/) for AI/LLM consumption.