Python:
Interpolering av en sträng
Hur:
I Python 3.6 och senare kan du interpolera strängar genom att använda f-strängar. Så här gör du:
name = 'Alice'
age = 30
greeting = f"Hej, {name}. Du är {age} år gammal."
print(greeting)
Utskrift:
Hej, Alice. Du är 30 år gammal.
Du kan också använda uttryck inuti klammerparenteserna:
a = 5
b = 10
info = f"Fem plus tio är {a + b}, inte {2 * (a + b)}."
print(info)
Utskrift:
Fem plus tio är 15, inte 30.
Djupdykning
Innan Python 3.6 var .format()
vägen att gå för att interpolera strängar:
name = 'Bob'
age = 25
greeting = "Hej, {}. Du är {} år gammal.".format(name, age)
print(greeting)
Gammal skolans Python (versioner < 2.6) använde %
-operatorn för interpolation, vilket är mindre intuitivt och kan bli rörigt med flera variabler:
name = 'Carol'
age = 35
greeting = "Hej, %s. Du är %d år gammal." % (name, age)
print(greeting)
Förutom renare syntax, är f-strängar snabbare eftersom de utvärderas vid körning och sedan omvandlas direkt till en effektiv strängformateringsoperation. .format()
och %
-operatorn involverar fler steg och är långsammare.
Se även
- PEP 498 – Literal String Interpolation för officiell dokumentation om f-strängar.
- Python f-strängar av Real Python för en handledning om användning av f-strängar.
- Metoden .format() i Python-dokumentationen för att förstå den äldre
.format()
-metoden för strängformatering.