str.format() și str.format_map() în Python

Metode pentru șiruri Python 3.0+ (format_map: 3.2+)

Completează un șablon de text cu valori puse între acolade.

Sintaxă
"text {} {nume:format}".format(valoare, nume=valoare)
"text {cheie}".format_map(dictionar)

Ce face str.format() și str.format_map()

format() înlocuiește câmpurile {} din text cu argumentele primite: în ordine ({}), după poziție ({0}, {1}) sau după nume ({nume}). După : poți pune un format: {:.2f}, {:>10}, {:,}.

format_map(d) ia valorile direct dintr-un dicționar. Pentru cod nou, f-string-urile sunt de obicei mai simple; format() rămâne util când șablonul este definit separat de valori (de exemplu, citit dintr-un fișier de traduceri).

Parametri

Parametru Descriere
*args, **kwargs Valorile pentru câmpuri, după poziție sau după nume.
mapping Pentru format_map: dicționarul cu valori.

Ce returnează

Textul completat.

Exemple

Exemplul 1: Câmpuri după poziție și nume

print("{} are {} ani".format("Ana", 25))
print("{1} și {0}".format("Ana", "Mihai"))
print("Preț: {pret:.2f} lei, cod {cod:05d}".format(pret=12.5, cod=42))

Rezultat

Ana are 25 ani
Mihai și Ana
Preț: 12.50 lei, cod 00042

Exemplul 2: Șablon separat de date

SABLON = "Bună, {nume}! Comanda nr. {id} costă {total:,.2f} lei."
comanda = {"nume": "Ioana", "id": 1042, "total": 1349.9}
print(SABLON.format_map(comanda))
print(SABLON.format(**comanda))

Rezultat

Bună, Ioana! Comanda nr. 1042 costă 1,349.90 lei.
Bună, Ioana! Comanda nr. 1042 costă 1,349.90 lei.

Greșeli frecvente

  • Lipsește o valoare pentru un câmp cu nume și primești KeyError. Verifică numele din șablon.
  • Vrei acolade în text și scrii { simplu. Dublează-le: "{{".

Comenzi înrudite

  • f-string (f"..."): Șiruri de caractere în care pui direct variabile și expresii între acolade.
  • format(): Formatează o singură valoare după un șablon: zecimale, aliniere, separatori, baze.
  • string.Template: Șabloane simple de text cu marcaje $nume, sigure pentru texte scrise de utilizatori.
  • string.Formatter: Clasa din spatele lui str.format(), pe care o poți extinde ca să schimbi regulile de formatare.