Python f-strings – Effizientes Formatieren

Python f-strings oder formatierte Zeichenketten sind die neue Art, Zeichenketten zu formatieren. Diese Funktion wurde in Python 3.6 unter PEP-498 eingeführt. Sie wird auch als literale Zeichenketteninterpolation bezeichnet.

Warum benötigen wir f-strings?

Python bietet verschiedene Möglichkeiten, eine Zeichenkette zu formatieren. Lassen Sie uns diese schnell betrachten und welche Probleme sie haben.

  • %-Formatierung – großartig für einfache Formatierungen, aber begrenzte Unterstützung nur für Zeichenketten, Integers und Doubles. Wir können sie nicht mit Objekten verwenden.
  • Template Strings – sehr grundlegend. Template Strings funktionieren nur mit Schlüsselwortargumenten wie Wörterbüchern. Es ist nicht erlaubt, Funktionen aufzurufen, und Argumente müssen Zeichenketten sein.
  • String format() – Die Python String format()-Funktion wurde eingeführt, um die Probleme und begrenzten Funktionen der %-Formatierung und Template Strings zu überwinden. Sie ist jedoch zu umständlich. Lassen Sie uns ihre Umständlichkeit an einem einfachen Beispiel betrachten.

>>> age = 4 * 10
>>> 'My age is {age}.'.format(age=age)
'My age is 40.'

Python f-strings funktionieren fast ähnlich wie die format()-Funktion, entfernen jedoch alle Umständlichkeiten, die die format()-Funktion hat. Lassen Sie uns sehen, wie einfach wir die oben genannte Zeichenkette mit f-strings formatieren können.

>>> f'My age is {age}'
'My age is 40.'

Beispiele für Python f-strings

Lassen Sie uns ein einfaches Beispiel für f-strings betrachten.

name = 'Pankaj'
age = 34

f_string = f'My Name is {name} and my age is {age}'

print(f_string)
print(F'My Name is {name} and my age is {age}')  # f and F are same

name = 'David'
age = 40

# f_string is already evaluated and won't change now
print(f_string)

Output:

My Name is Pankaj and my age is 34
My Name is Pankaj and my age is 34
My Name is Pankaj and my age is 34

Python führt Anweisungen nacheinander aus, und sobald f-string-Ausdrücke ausgewertet sind, ändern sie sich nicht, auch wenn sich der Wert des Ausdrucks ändert. Deshalb bleibt im obigen Code der Wert von f_string gleich, auch nachdem die Variablen ’name‘ und ‚age‘ im späteren Teil des Programms geändert wurden.

1. f-strings mit Ausdrücken und Konvertierungen

Wir können f-strings verwenden, um Datumsangaben in ein bestimmtes Format zu konvertieren. Wir können auch mathematische Ausdrücke in f-strings ausführen.

from datetime import datetime

name = 'David'
age = 40
d = datetime.now()

print(f'Age after five years will be {age+5}')  # age = 40
print(f'Name with quotes = {name!r}')  # name = David
print(f'Default Formatted Date = {d}')
print(f'Custom Formatted Date = {d:%m/%d/%Y}')

Output:

Age after five years will be 45
Name with quotes = 'David'
Default Formatted Date = 2018-10-10 11:47:12.818831
Custom Formatted Date = 10/10/2018

2. f-strings unterstützen rohe Zeichenketten

Wir können auch rohe Zeichenketten mit f-strings erstellen.

print(f'Default Formatted Date:\n{d}')
print(fr'Default Formatted Date:\n {d}')


Output:

Default Formatted Date:
2018-10-10 11:47:12.818831
Default Formatted Date:\n 2018-10-10 11:47:12.818831

3. f-strings mit Objekten und Attributen

Wir können auch auf Objektattribute in f-strings zugreifen.

class Employee:
    id = 0
    name = ''

    def __init__(self, i, n):
        self.id = i
        self.name = n

    def __str__(self):
        return f'E[id={self.id}, name={self.name}]'


emp = Employee(10, 'Pankaj')
print(emp)

print(f'Employee: {emp}\nName is {emp.name} and id is {emp.id}')

Output:

E[id=10, name=Pankaj]
Employee: E[id=10, name=Pankaj]
Name is Pankaj and id is 10

4. f-strings rufen Funktionen auf

Wir können in der f-strings-Formatierung auch Funktionen aufrufen.

def add(x, y):
    return x + y


print(f'Sum(10,20) = {add(10, 20)}')

Output:

5. f-string mit Leerzeichen

Wenn im Ausdruck führende oder abschließende Leerzeichen vorhanden sind, werden sie ignoriert. Wenn der wörtliche Teil der Zeichenkette Leerzeichen enthält, werden diese beibehalten.

>>> age = 4 * 20
>>> f'   Age = {  age   }  '
'   Age = 80  '

6. Lambda-Ausdrücke mit f-strings

Wir können auch Lambda-Ausdrücke in f-string-Ausdrücken verwenden.

x = -20.45
print(f'Lambda Example: {(lambda x: abs(x)) (x)}')

print(f'Lambda Square Example: {(lambda x: pow(x, 2)) (5)}')

Output:

Lambda Example: 20.45
Lambda Square Example: 25

7. Verschiedene Beispiele für f-strings

Lassen Sie uns einige verschiedene Beispiele für Python f-strings betrachten.

print(f'{"quoted string"}')
print(f'{{ {4*10} }}')
print(f'{{{4*10}}}')

Output:

Zusammenfassung

Das war’s zu formatierten Zeichenketten, auch bekannt als f-strings, in Python. Python f-strings – Effizientes Formatieren

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: