Treci la conținutul principal

Python Formatarea șirurilor

Python 3.6 ne-a adus f-string-ul, care este acum modul preferat de a formata textul.

În versiunile anterioare, acest rol îl avea metoda format().


F-Strings

Un f-string îți permite să controlezi cum sunt formatate anumite părți dintr-un șir.

Tot ce trebuie este un f scris imediat înaintea literalului de tip șir:

Exemplu

Un prim f-string, foarte simplu:

Prompt
Scrie un program Python care creează un f-string. Creează un f-string simplu cu textul „Prețul este 49 de dolari” și afișează-l.
Ieșire: program Python complet

Substituenți și modificatori

Valorile ajung într-un f-string prin substituenți, scriși ca {}. Un substituent poate conține variabile, operații și funcții.

Poate avea și un modificator, care decide cum arată valoarea.

Scrie modificatorul după două puncte :, folosind un tip de formatare valid. De exemplu, .2f cere un număr în virgulă fixă cu 2 zecimale:

Exemplu

Pune variabila price într-un substituent:

Prompt
Scrie un program Python care folosește substituenți într-un f-string. Creează o variabilă price cu valoarea 59 și afișeaz-o într-un f-string.
Ieșire: program Python complet

Exemplu

Afișează același preț cu 2 zecimale:

Prompt
Scrie un program Python care folosește un f-string cu modificatorul .2f. Afișează prețul 59 cu 2 zecimale.
Ieșire: program Python complet

Substituenți și modificatori

Valoarea nu trebuie să se afle neapărat într-o variabilă. O poți formata direct în substituent:

Exemplu

Formatează numărul 95 cu 2 zecimale:

Prompt
Scrie un program Python care formatează o valoare direct într-un f-string. Afișează valoarea 95 cu 2 zecimale fără a folosi o variabilă.
Ieșire: program Python complet

Efectuarea operațiilor în f-strings

Substituenții pot rula și operații Python. Aici intră calculele simple, calculele cu variabile și chiar instrucțiunile if...else, cum arată următoarele trei exemple:

Exemplu

Înmulțește două numere în substituent și afișează răspunsul:

Prompt
Scrie un program Python care efectuează o operație matematică în interiorul unui substituent dintr-un f-string. Înmulțește 20 * 59 direct în substituent.
Ieșire: program Python complet

Exemplu

Calculează prețul cu taxe incluse, direct în substituent:

Prompt
Scrie un program Python care adaugă taxele într-un f-string. Setează price la 59, tax la 0.25 și afișează prețul cu taxele adăugate.
Ieșire: program Python complet

Exemplu

Afișează „Expensive” când prețul depășește 50 și „Cheap” în orice alt caz:

Prompt
Scrie un program Python cu un if/else în interiorul unui f-string. Setează price la 49 și afișează „scump” dacă depășește 50, altfel „ieftin”.
Ieșire: program Python complet

Executarea funcțiilor în f-strings

Un substituent poate apela și funcții. Merg metodele încorporate din Python și, la fel, funcțiile pe care le scrii tu:

Exemplu

Apelează metoda de șir upper() ca să transformi valoarea în litere mari:

Prompt
Scrie un program Python care execută o funcție în interiorul unui f-string. Folosește metoda upper() pe "apples" în interiorul unui f-string.
Ieșire: program Python complet

Exemplu

Scrie-ți propria funcție care transformă picioarele în metri, apoi apeleaz-o în substituent:

Prompt
Scrie un program Python care apelează o funcție proprie în interiorul unui f-string. Creează o funcție care transformă picioarele în metri și folosește-o într-un f-string.
Ieșire: program Python complet

Mai mulți modificatori

Mai devreme în această lecție, modificatorul .2f a transformat un număr într-o valoare în virgulă fixă cu 2 zecimale.

Aceasta este doar o opțiune, iar alți modificatori formatează valorile în alte moduri.

Exemplu

Adaugă o virgulă ca separator de mii:

Prompt
Scrie un program Python care folosește virgula ca separator de mii într-un f-string. Setează price la 59000 și formatează-l cu virgule.
Ieșire: program Python complet

Metoda format() pentru șiruri

Înainte de Python 3.6, formatarea unui șir însemna apelarea metodei format().

Metoda încă funcționează, deși f-strings rulează mai repede și sunt alegerea recomandată.

Restul exemplelor din această pagină folosesc format(), ca să vezi cum funcționează.

Și ea marchează substituenții cu acolade {}, dar sintaxa ei diferă puțin:

Ca să controlezi cum este convertită o valoare, adaugă parametri între acolade:

Exemplu

Pune un substituent în locul unde trebuie să apară prețul:

Prompt
Scrie un program Python care folosește metoda format(). Setează price la 49 și folosește format() pentru a-l insera într-un șir.
Ieșire: program Python complet
main.py
txt = "The price is {:.2f} dollars"

Valori multiple

Ai nevoie de mai multe valori? Transmite-le pe toate către format():

Apoi dă-i fiecăreia propriul substituent:

Exemplu

Prompt
Scrie un program Python care folosește format() cu mai multe valori. Formatează cantitatea, numărul articolului și prețul într-un singur șir.
Ieșire: program Python complet

Numere de index

Un număr între acolade, de exemplu {0}, este un index. El garantează că fiecare valoare ajunge în substituentul potrivit:

Îți permite și să folosești o valoare de mai multe ori, pur și simplu repetându-i indexul:

Exemplu

Prompt
Scrie un program Python care folosește format() cu numere de index. Folosește {0}, {1}, {2} pentru a plasa valorile în pozițiile corecte.
Ieșire: program Python complet

Exemplu

Prompt
Scrie un program Python care folosește format() cu referiri repetate la indecși. Fă referire la aceeași valoare de mai multe ori folosind numere de index.
Ieșire: program Python complet

Indecși denumiți

Substituenții pot avea și nume. Scrie un nume între acolade, ca în {carname}, apoi transmite valoarea sub același nume când apelezi metoda, ca în txt.format(carname = "Ford"):

Exemplu

Prompt
Scrie un program Python care folosește format() cu indecși denumiți. Folosește parametri denumiți precum carname și model în format().
Ieșire: program Python complet