f-string (f”…”) în Python

Afișare și citire Python 3.6+

Șiruri de caractere în care pui direct variabile și expresii între acolade.

Sintaxă
f"text {expresie} text {expresie:format}"

Ce face f-string (f"...")

Un f-string este un text precedat de litera f. Tot ce scrii între acolade { } este calculat și înlocuit cu rezultatul. Este cel mai simplu și mai rapid mod de a construi texte cu valori.

După expresie poți pune : și un format: {pret:.2f} (2 zecimale), {n:05d} (completare cu zerouri), {x:,} (separator de mii), {text:>10} (aliniere la dreapta pe 10 caractere).

Din Python 3.8, {variabila=} afișează și numele variabilei, util la depanare. Din Python 3.12 poți folosi aceleași ghilimele în interiorul acoladelor.

Exemple

Exemplul 1: Variabile și expresii

nume = "Ana"
oras = "Iași"
print(f"{nume} locuiește în {oras}.")
print(f"Peste 5 ani, {nume} va avea {25 + 5} de ani.")
print(f"Numele are {len(nume)} litere: {nume.upper()}")

Rezultat

Ana locuiește în Iași.
Peste 5 ani, Ana va avea 30 de ani.
Numele are 3 litere: ANA

Exemplul 2: Formatarea numerelor

pret = 1299.5
print(f"Preț: {pret:.2f} lei")
print(f"Factura nr. {42:05d}")
print(f"Populație: {1_214_000:,}")
print(f"Reducere: {0.15:.0%}")

Rezultat

Preț: 1299.50 lei
Factura nr. 00042
Populație: 1,214,000
Reducere: 15%

Exemplul 3: Aliniere în tabel și depanare cu =

produse = [("Pâine", 4.5), ("Lapte", 7), ("Cafea", 32.9)]
for nume, pret in produse:
    print(f"{nume:<10}{pret:>8.2f} lei")

total = sum(p for _, p in produse)
print(f"{total=}")

Rezultat

Pâine         4.50 lei
Lapte         7.00 lei
Cafea        32.90 lei
total=44.4

Greșeli frecvente

  • Uiți litera f din față: "Salut, {nume}" afișează acoladele exact așa, fără înlocuire.
  • Vrei să afișezi o acoladă propriu-zisă. Dublează-o: f"{{text}}" afișează {text}.

Comenzi înrudite

  • print(): Afișează unul sau mai multe texte sau valori pe ecran.
  • str.format() și str.format_map(): Completează un șablon de text cu valori puse între acolade.
  • format(): Formatează o singură valoare după un șablon: zecimale, aliniere, separatori, baze.