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.
- Disponibilità garantita al 99,99%
- Dominio, SSL ed e-mail inclusi
- Assistenza 24/7 in lingua italiana
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 15pythonQui 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.txtpythonIn 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.142pythonQui 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, AlicepythonPoiché 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: 000042pythonIn 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
