Come formattare le stringhe in Python (f-strings e formato)

Impara le migliori tecniche di formattazione delle stringhe in Python. Confronta le moderne stringhe f, format() e la formattazione percentuale con esempi di codice.

Prova questa soluzione nell'editor

Panoramica

La formattazione delle stringhe è una necessità quotidiana per il rendering delle variabili all'interno dei messaggi, l'output di log, la stampa dei debug della console e la creazione di pagine web. Python ha evoluto significativamente la formattazione delle stringhe nel corso degli anni, offrendo molteplici opzioni per costruire rappresentazioni di testo dinamiche in modo sicuro e leggibile.

Nel moderno Python (3.6+), l'approccio standard e più popolare è la formattazione con f-string (formattate stringhe letterali). Anteponendo una stringa con `f` o `F` come prefisso, puoi incorporare espressioni o variabili Python direttamente all'interno delle parentesi graffe `{}`. Queste espressioni vengono valutate in fase di esecuzione, rendendo le stringhe f più veloci e significativamente più leggibili rispetto ai metodi di formattazione precedenti.

Le basi di codice Python più vecchie potrebbero utilizzare il metodo `.format()` o la formattazione percentuale `%`. Sebbene siano ancora supportati, sono generalmente sconsigliati per il nuovo codice. Le stringhe f supportano anche potenti specificatori di formato in linea, consentendoti di controllare la precisione decimale (ad esempio, `{value:.2f}`), allineare il testo o formattare le date direttamente all'interno delle variabili stringa.

Codice e output di esecuzione

Questo script dimostra la stampa di blocchi di testo dinamico utilizzando stringhe f, la formattazione di numeri in virgola mobile e l'utilizzo di .format().

format_strings.py
Prova nell'editor
name = "Alice"
age = 30
pi = 3.14159

# 1. Using modern f-strings (Recommended)
greeting_f = f"Hello, my name is {name} and I am {age} years old."
print("f-string:", greeting_f)

# 2. formatting floats (2 decimal places precision)
precision_f = f"Pi rounded: {pi:.2f}"
print(precision_f)

# 3. Using the older .format() method
greeting_format = "Hello, my name is {} and I am {}.".format(name, age)
print(".format():", greeting_format)
Uscita terminale
f-string: Hello, my name is Alice and I am 30 years old.
Pi rounded: 3.14
.format(): Hello, my name is Alice and I am 30.

Implementazione passo dopo passo

  • Prefiggi la tua stringa letterale con il carattere f (ad esempio, f'Ciao...').
  • Inserisci variabili o espressioni direttamente tra parentesi graffe {} all'interno della stringa.
  • Utilizzare specifiche di formato come :.2f per gestire la formattazione decimale all'interno delle parentesi graffe.

Domande frequenti

Le stringhe f sono più veloci di .format() e% di formattazione?

Sì, le stringhe f vengono valutate in fase di esecuzione come operazioni bytecode ottimizzate, rendendole più veloci sia degli operatori .format() che %.

Posso eseguire funzioni o valutare espressioni all'interno di stringhe f?

Sì, qualsiasi espressione Python valida (incluse operazioni matematiche, chiamate di funzioni e ricerche nel dizionario) può essere valutata all'interno delle parentesi graffe.

Argomenti correlati

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.