Diferite moduri de formatare a șirurilor în Python: Top 3 metode

Publicat: 2021-02-23

Formatarea șirurilor este o caracteristică esențială în limbajele de programare pentru a formata sau a insera valori și poziții specificate de utilizator în șiruri. Limbajul C avea o modalitate de a face acest lucru, cu care ați putea fi familiarizat dacă aveți ceva experiență cu limbajul C. Python, totuși, acceptă nu 1, nu 2, ci 3 moduri diferite de a face formatarea șirurilor. Fiecare mod are avantajele și dezavantajele sale pe care le vom vedea în acest tutorial. Vom vedea, de asemenea, care dintre cele 3 metode este cea mai utilizată și eficientă metodă.

Învață cursuri online de știință a datelor de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Până la sfârșitul acestui tutorial, veți ști următoarele:

  • Diferite moduri de formatare a șirurilor
  • Utilizarea lor cu exemple
  • Care este calea cea mai preferată

Cuprins

Diferite moduri de formatare a șirurilor

Python a primit mai multe actualizări pentru a îmbunătăți formatarea șirurilor. Să trecem prin fiecare dintre ele unul câte unul.

Metoda 1: Formatarea șirurilor în stil C

Python include vechiul mod de formatare a șirurilor de caractere prin utilizarea caracterelor speciale pentru fiecare tip de date. Această metodă veche și bună de formatare a șirurilor a fost adoptată din limbajul C și este încă foarte eficientă. Pentru formatarea șirurilor este utilizat un specificator de format de șir „%” urmat de un caracter dedicat pentru fiecare tip de date.

Să trecem peste un mic exemplu pentru a înțelege asta:

num = 8
nume = „omul roz”
print(„Numele este %s și numărul este %d” %( nume, num))

#Ieșire
>> „Numele este Pinkman și numărul este 8”

După cum vedeți, specificatorul de format %s a fost folosit pentru a formata numele șirului și %d a fost folosit pentru a formata numărul întreg. În mod similar, există și un specificator de format pentru un float. Să verificăm și asta.

num = 4,32
lis = [ 1 , 3 , 5 ]
print( „lista este %s și float este %f” %(lis, num))

#Ieșire
>> lista este [ 1 , 3 , 5 ] și float este 4.320000

În exemplul de mai sus, folosesc specificatorul de format %f pentru a formata valoarea float. Două lucruri de observat aici. În primul rând, valoarea float este tipărită ca 4,320000 și nu doar 4,32. De ce asa? Acest lucru se datorează faptului că Python utilizează în mod implicit o precizie de 6 zecimale pentru float. În al doilea rând, am tipărit o listă folosind specificatorul de format șir. Nu înseamnă că specificatorul de format %s poate prelua orice tip de date. Pur și simplu îl convertește în șir și îl imprimă. Deci lista care este tipărită este în esență un șir și nu o listă.

Bine, deci cum să specificați câte precizie de punct zecimal este necesară?

print(„lista este %s și float cu precizia de 2 puncte este %.2f” %(lis, num))

#Ieșire
>> lista este [ 1 , 3 , 5 ] și float este 4,32

Un alt punct de observat aici este că trebuie să dăm variabilele în ordinea în care sunt utilizate în șir. Dacă ordinea este modificată, rezultatul este setat să fie afectat corespunzător. O alternativă pentru a nu ne cere să dăm variabilele în ordinea corectă de fiecare dată este să folosim formatarea șirurilor într-un mod ușor diferit.

print(„lista este %(a)s și float este %(b)f” %{“b”: num, „a”: lis})

#Ieșire
>> lista este [ 1 , 3 , 5 ] și float este 4.320000

Și după cum vedeți, este foarte greoi de scris.

Deci, doar pentru a rezuma, cei 3 specificatori de format cei mai des utilizați sunt:

  1. %s pentru șiruri
  2. %d pentru numere întregi
  3. %.<precizie zecimală>f pentru flotoare

Metoda 2: Formatarea șirurilor de stil nou

Python 3 a introdus o modalitate mai bună de a face formatarea șirurilor de caractere prin utilizarea unei metode format() pe șiruri. Un substituent este folosit prin plasarea parantezelor, iar metoda de formatare conține variabilele care trebuie puse în acele poziții din șir. Să aruncăm o privire la un mic exemplu pentru a înțelege acest lucru.

nume = „skyler”
print(„Bună, numele meu este {}”.format(nume))

#Ieșire
>> Bună, numele meu este Skyler

Aceasta este mult mai bună decât formatarea în stil vechi pe care am văzut-o mai sus. Acoladele acţionează ca un substituent pentru numele variabilei care conţine un şir. Rețineți că, cu metoda formatului, nu trebuie să specificăm tipul de date al variabilei, așa cum am făcut în formatarea în stil vechi.

Un exemplu și cu numere:

num = 3
int = 4,34
nume = „jessy”

print( „Bună, numele meu este {}, numărul este {} și float este {}” .format(nume, num, int))

#Ieșire
>> Bună, numele meu este Jessy, numărul este 3 și float este 4.34

Îngrijit! După cum vedeți, are nevoie ca variabilele să fie transmise metodei format în ordinea în care au fost utilizate în șir. Un alt mod de a folosi metoda formatului prin a nu ne cere să trecem toate variabilele în ordinea corectă:

print(„Bună, numele meu este {nume}, numărul este {num} și float este {int}”.format(int=int, num=num , nume=nume))

#Ieșire
>> Bună, numele meu este Jessy, numărul este 3 și float este 4.34

În exemplul de mai sus, vedem că atunci când variabilele sunt menționate în mod explicit în substituenți, atunci nu mai este necesară trecerea la metoda de formatare în ordinea corectă.

De asemenea, putem trece poziția variabilei în substituenți pentru a le urmări mai bine.

print(„Bună, numele meu este {0}, numărul este {1} și float este {2}”. format(nume, num, int))

#Ieșire
>> Bună, numele meu este Jessy, numărul este 3 și float este 4.34

Metoda 3: Utilizarea F-Strings

Introdus în Python 3.6, f-strings este cel mai simplu și eficient mod de a face formatarea șirurilor. Acestea se mai numesc și literale șir formatate. Ei folosesc literalul f la începutul șirului pentru a-i spune lui python să-l trateze ca pe un șir formatat. Substituenții conțin variabilele reale care trebuie puse în acea poziție.

Să aruncăm o privire la un exemplu.

nume = „heisenberg”
bill = 100.43print(f”Numele este {name} și factura este {bill}”)

#Ieșire
>> Numele este heisenberg și factura este 100,43

Acest lucru a fost destul de ușor. Mai mult, putem pune și expresii direct în loc de variabile.

a = 5
b = 8

print( f”Suma este {a+b} )

#Ieșire
>> Suma este 13

De asemenea, putem apela funcțiile direct și obținem rezultatul lor în literalele șir.

print( f”Numele este {name.upper()} )

#Ieșire
>> Numele este HEISENBERG

Mai mult, putem folosi șirurile f pentru a returna direct valoarea și din funcții.

def combiner(nume, vârstă, bani):
returnează f”{nume} are vârsta {vârsta} și are salariu {bani}”

Saul Goodman are 45 de ani și are un salariu de 2000000

După cum vedem, atunci când trecem funcțiile direct substituenților, apelează funcțiile și plasează direct ieșirile în acolade. În mod clar, această metodă de formatare a șirurilor este cea mai eficientă și ușor de scris.

Checkout: Întrebări și răspunsuri la interviu Python

Inainte sa pleci

Formatarea șirurilor este o sarcină obișnuită, iar modul în care Python a introdus metoda de formatare și șirurile f o face foarte ușor pentru cei care lucrează cu Python. Șirurile f sunt cea mai folosită și preferată modalitate de a lucra cu formatarea șirurilor, deoarece o face foarte ușor de scris și întreținut. În plus, face codul mai Pythonic, de asemenea! Sub capotă, șirurile f folosesc protocolul __format__. Literalul f este doar zahăr sintactic pe care Python îl oferă utilizatorilor săi pentru a ne ușura să scriem formatarea șirurilor.

Dacă sunteți curios să aflați despre știința datelor, consultați programul Executive PG în știința datelor de la IIIT-B și upGrad, care este creat pentru profesioniști care lucrează și oferă peste 10 studii de caz și proiecte, ateliere practice practice, mentorat cu experți din industrie, 1 -on-1 cu mentori din industrie, peste 400 de ore de învățare și asistență profesională cu firme de top.

Ce metode de formatare din Python 3 permit substituții multiple și formatarea valorilor?

1. Metoda string format() încorporată din Python transformă un șir furnizat într-o ieșire mai utilă. Funcția format() din Python3 este una dintre metodele de formatare a șirurilor care permite înlocuiri multiple, precum și formatarea valorii. Metoda format() folosește formatarea pozițională pentru a concatena elementele dintr-un șir.
2. Șirul poate fi formatat folosind numeroase perechi de paranteze. Dacă este necesară o altă înlocuire a variabilei într-un șir lung, al doilea set de acolade poate fi adăugat și a doua valoare poate fi trecută în procedură.
3. Funcția format() din Python acceptă orice număr de parametri. Cu toate acestea, este separat în primul rând în următoarele două tipuri de parametri.
A. Parametrii de poziție sunt o listă de parametri care pot fi recuperați punând indexul parametrului în paranteze (index).
b. Parametrii cuvintelor cheie – Aceasta este o listă de parametri cheie=valoare care pot fi accesați folosind cheia parametrului în acolade.
4. Metoda format() returnează un șir care a fost formatat. Funcția format() citește tipul de argumente furnizate acesteia și le formatează conform codurilor de format din șir.

Cum imprimați fără o nouă linie în Python 3?

Adăugați un argument suplimentar la metoda de imprimare în Python 3 pentru a spune computerului că nu doriți ca următorul șir să fie pe o linie nouă. Luați în considerare următorul scenariu.
print('Bine ați venit!', sfârșit = ')
În acest caz, orice altă funcție de imprimare va apărea pe aceeași linie.

Putem converti șirul în float în Python?

1. Sunt obiecte șir dacă dobândim o valoare float prin introducerea utilizatorului prin intermediul terminalului, precum și citirea acesteia dintr-un fișier. Ca rezultat, trebuie să le transformăm în mod explicit în float pentru a efectua operațiuni necesare precum adunarea, înmulțirea și așa mai departe.
2. Metoda float() din Python poate fi folosită pentru a converti un șir într-un float. Este o funcție încorporată pentru conversia unui număr în virgulă mobilă într-un obiect. Intern, funcția float() apelează funcția __float__() a obiectului furnizat.