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.