0Pricing
Python Academy · Lezione

Stringhe template e str.format

Altri strumenti di formattazione

Stringhe template e str.format è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.

Altri strumenti di formattazione

Oltre alle f-string, Python offre altri due strumenti di formattazione: il metodo str.format() e la classe string.Template. Ognuno è adatto a situazioni diverse.

print('Hello, {}!'.format('World'))

Nozioni di base su str.format

str.format() sostituisce i segnaposto {} con gli argomenti, nell'ordine. È precedente alle f-string e compare ancora in moltissimo codice.

msg = '{} is {} years old'.format('Ada', 36)
print(msg)

Indici posizionali

Inserisca dei numeri tra le parentesi graffe per riutilizzare o riordinare gli argomenti in base alla posizione.

print('{0} {1} {0}'.format('echo', 'once'))

Segnaposto con nome

Utilizzi i nomi tra le parentesi graffe e passi argomenti con nome. In questo modo i template si descrivono da soli.

print('{name} scored {score}'.format(name='Lin', score=95))

Gli specificatori di formato continuano a funzionare

Lo stesso mini-linguaggio funziona dopo i due punti in str.format, consentendo di controllare larghezza, precisione e allineamento.

print('{:.2f}'.format(3.14159))
print('{:>8}'.format('hi'))

Formattare a partire da un dict

Disimballi un dizionario in str.format con ** per riempire i segnaposto con nome.

data = {'city': 'Rome', 'temp': 27}
print('{city}: {temp} C'.format(**data))

Introduzione alle stringhe Template

string.Template utilizza segnaposto basati su $. È volutamente semplice e più sicuro per i template forniti dagli utenti, perché non può eseguire espressioni arbitrarie.

from string import Template
t = Template('Hello, $name!')
print(t.substitute(name='World'))

Parentesi graffe per maggiore chiarezza

${name}, quando è accanto ad altro testo.

from string import Template
t = Template('${item}s cost $$5')
print(t.substitute(item='apple'))

safe_substitute

substitute solleva KeyError quando mancano dei nomi. safe_substitute, invece, lascia invariati i segnaposto sconosciuti.

from string import Template
t = Template('$greeting, $name')
print(t.safe_substitute(greeting='Hi'))

Quando utilizzare ciascuno strumento

Linee guida: preferisca le f-string nel codice di uso quotidiano. Utilizzi str.format quando il template è separato dai dati. Utilizzi Template per i template non attendibili forniti dagli utenti.

name = 'Sam'
print(f'f-string: {name}')
print('format: {}'.format(name))

Modelli da testo esterno

Poiché il testo del modello è semplicemente una stringa, è possibile caricarlo da un file di configurazione o da un database e sostituire i valori durante l'esecuzione.

from string import Template
stored = 'Order $id ships to $city'
t = Template(stored)
print(t.substitute(id=7, city='Oslo'))

Verifica rapida

Quale strumento è più sicuro per sostituire i valori in un modello fornito da un utente non attendibile?

Riepilogo: stringhe modello e str.format

Riepilogo delle alternative alle f-string:

  • str.format() usa segnaposto {} e supporta la formattazione posizionale, con nome e secondo la specifica completa del formato.
  • string.Template usa segnaposto $name ed è sicuro con input non attendibile.
  • safe_substitute lascia invariati i segnaposto sconosciuti.
  • Preferisca le f-string nel codice normale; usi questi strumenti quando i modelli sono esterni o non attendibili.
from string import Template
print(Template('Bye, $who').substitute(who='all'))
print('Done: {}'.format(True))

Domande Frequenti

La lezione «Stringhe template e str.format» è gratuita?

Sì — il testo completo di «Stringhe template e str.format» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.

Cosa imparerò in «Stringhe template e str.format»?

Altri strumenti di formattazione Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Python Academy?

Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Stringhe template e str.format»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Python Academy?

Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Espressioni nelle f-string
  2. Specificatori di formato
  3. Mini-linguaggio di formattazione
  4. Stringhe template e str.format
← Torna a Python Academy