F-string in Python
Con le f-string in Python è possibile inserire direttamente espressioni e variabili complesse in una stringa senza dover eseguire ulteriori conversioni o formattazioni.
Che cosa sono esattamente le f-string in Python?
Le f-string sono un formato di stringa in Python introdotto con Python 3.6. Sono dette anche stringhe letterali formattate. All’interno delle f-string è possibile includere calcoli inserendoli fra parentesi graffe. Le f-string offrono una possibilità di scrittura più compatta rispetto ad altri metodi di formattazione delle stringhe come str.format()
o la concatenazione con +
. In questo modo si ottiene un codice più chiaro e preciso.
Le f-string sono estremamente flessibili e permettono di introdurre variabili ed espressioni in diversi tipi di dati come integer, float, liste o addirittura espressioni e funzioni senza eseguire prima conversioni o formattazioni speciali. Di norma le f-string in Python sono più veloci rispetto ad altri metodi di formattazione delle stringhe in Python.
La sintassi generale delle f-string
La struttura fondamentale di una f-string è composta dal prefisso f
o F
, seguito da una stringa indicata fra virgolette (“ oppure ’). All’interno di questa stringa è possibile utilizzare le parentesi graffe {}
per incorporare variabili o espressioni.
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.
pythonNel nostro esempio sostituiamo la variabile name
con {name}
e la variabile age
con {age}
nella f-string per creare la sequenza di caratteri finale.
- Certificato SSL e protezione DDoS
- Velocità, flessibilità e scalabilità
- Dominio e consulente personale
- 1 anno gratis del gestionale di fatturazione elettronica FlexTax
Possibilità di applicazione delle f-string in Python
È possibile utilizzare e specificare le f-string in molti modi diversi.
Esecuzione di calcoli all’interno di una stringa
Le f-string in Python sono particolarmente utili per eseguire operazioni aritmetiche all’interno di una stringa. Ad esempio, ti permettono di definire un’espressione 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
pythonQui viene eseguita l’addizione di num1
e num2
all’interno della f-string e il risultato viene inserito direttamente nella stringa finale.
Le f-string in Python e le raw string
La combinazione di r
(che sta per “raw string”) ed f
(per stringhe formattate o f-string) crea uno speciale tipo di stringa in Python, nota come rf-string. La rf-string unisce le funzionalità delle raw string, che interpretano le sequenze di escape in modo letterale, alla flessibilità e all’efficienza delle f-string, che consentono l’incorporazione diretta di variabili ed espressioni in una stringa.
name = "User"
path = rf'C:\Users\Username\Documents\{name}\file.txt'
print(path) # Output: C:\Users\Username\Documents\User\file.txt
pythonIn questo codice utilizziamo la rf-string per definire un percorso. L’utilizzo di {name}
all’interno della rf-string porta all’inserimento 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.
Precisione di numeri a virgola mobile
Con particolari istruzioni di formattazione puoi definire la quantità di cifre decimali in un numero a virgola mobile all’interno di una stringa formattata.
value = 3.14159265359
formatted_value = f"Rounded value = {value:.3f}"
print(formatted_value) # Output: Rounded value = 3.142
pythonQui l’istruzione di formattazione :.3f
indica che la variabile value
deve essere arrotondata alla terza cifra decimale e inserita nella stringa formattata.
Larghezza e allineamento
Le funzioni per larghezza e allineamento delle f-string di Python permettono di controllare l’aspetto dei valori inseriti all’interno di un campo definito. Queste funzioni sono utili per posizionare testo o numeri in una data area e allinearli a destra, a sinistra o al centro.
Prendiamo ad esempio il nome __Alice__
e immaginiamo di volerlo posizionare in un campo della larghezza di dieci caratteri allineandolo a destra:
name = "Alice"
formatted_name = f"Hello, {name:>10}"
print(formatted_name) # Output: Hello, Alice
pythonPoiché il valore ha una lunghezza inferiore a dieci caratteri, viene allineato a destra per mezzo della specifica {name:>10}
.
Completamento con zeri o altri caratteri
Il completamento con zeri o altri caratteri ha effetto sull’allineamento dei numeri in un campo. Questa funzionalità è utile se devi raffigurare dei numeri in un formato fisso, ad esempio per la visualizzazione di tempi e valori numerici.
number = 42
formatted_number = f"Number: {number:06}"
print(formatted_number) # Output: Number: 000042
pythonIn questo caso, :06
indica che il numero number
viene inserito in un campo composto da sei caratteri. Le posizioni mancanti vengono invece completate con l’aggiunta di zeri iniziali.
È possibile specificare anche caratteri diversi dallo zero da usare per il completamento:
word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____
python