Con le f-string in Python è possibile inserire di­ret­ta­men­te espres­sio­ni e variabili complesse in una stringa senza dover eseguire ulteriori con­ver­sio­ni o for­mat­ta­zio­ni.

Che cosa sono esat­ta­men­te le f-string in Python?

Le f-string sono un formato di stringa in Python in­tro­dot­to con Python 3.6. Sono dette anche stringhe letterali for­mat­ta­te. All’interno delle f-string è possibile includere calcoli in­se­ren­do­li fra parentesi graffe. Le f-string offrono una pos­si­bi­li­tà di scrittura più compatta rispetto ad altri metodi di for­mat­ta­zio­ne delle stringhe come str.format() o la con­ca­te­na­zio­ne con +. In questo modo si ottiene un codice più chiaro e preciso.

Le f-string sono estre­ma­men­te fles­si­bi­li e per­met­to­no di in­tro­dur­re variabili ed espres­sio­ni in diversi tipi di dati come integer, float, liste o ad­di­rit­tu­ra espres­sio­ni e funzioni senza eseguire prima con­ver­sio­ni o for­mat­ta­zio­ni speciali. Di norma le f-string in Python sono più veloci rispetto ad altri metodi di for­mat­ta­zio­ne delle stringhe in Python.

La sintassi generale delle f-string

La struttura fon­da­men­ta­le di una f-string è composta dal prefisso f o F, seguito da una stringa indicata fra vir­go­let­te (“ oppure ’). All’interno di questa stringa è possibile uti­liz­za­re le parentesi graffe {} per in­cor­po­ra­re variabili o espres­sio­ni.

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.
python

Nel nostro esempio so­sti­tuia­mo la variabile name con {name} e la variabile age con {age} nella f-string per creare la sequenza di caratteri finale.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

Pos­si­bi­li­tà di ap­pli­ca­zio­ne delle f-string in Python

È possibile uti­liz­za­re e spe­ci­fi­ca­re le f-string in molti modi diversi.

Ese­cu­zio­ne di calcoli all’interno di una stringa

Le f-string in Python sono par­ti­co­lar­men­te utili per eseguire ope­ra­zio­ni arit­me­ti­che all’interno di una stringa. Ad esempio, ti per­met­to­no di definire un’espres­sio­ne complessa in un’unica riga.

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
python

Qui viene eseguita l’addizione di num1 e num2 all’interno della f-string e il risultato viene inserito di­ret­ta­men­te nella stringa finale.

Le f-string in Python e le raw string

La com­bi­na­zio­ne di r (che sta per “raw string”) ed f (per stringhe for­mat­ta­te o f-string) crea uno speciale tipo di stringa in Python, nota come rf-string. La rf-string unisce le fun­zio­na­li­tà delle raw string, che in­ter­pre­ta­no le sequenze di escape in modo letterale, alla fles­si­bi­li­tà e all’ef­fi­cien­za delle f-string, che con­sen­to­no l’in­cor­po­ra­zio­ne diretta di variabili ed espres­sio­ni in una stringa.

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

In questo codice uti­liz­zia­mo la rf-string per definire un percorso. L’utilizzo di {name} all’interno della rf-string porta all’in­se­ri­men­to diretto della variabile name, mentre la r davanti alla stringa fa in modo che il backslash \ venga gestito come carattere letterale e non come parte di una sequenza di escape.

Pre­ci­sio­ne di numeri a virgola mobile

Con par­ti­co­la­ri istru­zio­ni di for­mat­ta­zio­ne puoi definire la quantità di cifre decimali in un numero a virgola mobile all’interno di una stringa for­mat­ta­ta.

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

Qui l’istru­zio­ne di for­mat­ta­zio­ne :.3f indica che la variabile value deve essere ar­ro­ton­da­ta alla terza cifra decimale e inserita nella stringa for­mat­ta­ta.

Larghezza e al­li­nea­men­to

Le funzioni per larghezza e al­li­nea­men­to delle f-string di Python per­met­to­no di con­trol­la­re l’aspetto dei valori inseriti all’interno di un campo definito. Queste funzioni sono utili per po­si­zio­na­re testo o numeri in una data area e al­li­near­li a destra, a sinistra o al centro.

Prendiamo ad esempio il nome __Alice__ e im­ma­gi­nia­mo di volerlo po­si­zio­na­re in un campo della larghezza di dieci caratteri al­li­nean­do­lo a destra:

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

Poiché il valore ha una lunghezza inferiore a dieci caratteri, viene allineato a destra per mezzo della specifica {name:>10}.

Com­ple­ta­men­to con zeri o altri caratteri

Il com­ple­ta­men­to con zeri o altri caratteri ha effetto sull’al­li­nea­men­to dei numeri in un campo. Questa fun­zio­na­li­tà è utile se devi raf­fi­gu­ra­re dei numeri in un formato fisso, ad esempio per la vi­sua­liz­za­zio­ne di tempi e valori numerici.

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

In questo caso, :06 indica che il numero number viene inserito in un campo composto da sei caratteri. Le posizioni mancanti vengono invece com­ple­ta­te con l’aggiunta di zeri iniziali.

È possibile spe­ci­fi­ca­re anche caratteri diversi dallo zero da usare per il com­ple­ta­men­to:

word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____
python
Vai al menu prin­ci­pa­le