Interpolare de șiruri Python

În acest articol vom afla despre interpolarea șirurilor de python. Python acceptă mai multe moduri de formatare a șirurilor de text și acestea includ% -formatting, sys.format (), string.Template și f-strings.

Interpolarea șirurilor este un proces care înlocuiește valorile variabilelor în substituenți într-un șir. De exemplu, dacă aveți un șablon pentru a saluta o persoană precum „Bună ziua (numele persoanei), îmi pare bine să vă cunosc!”, Doriți să înlocuiți substituentul pentru numele persoanei cu un nume real. Acest proces se numește interpolare de șiruri.

coarde f

Python 3.6 a adăugat o nouă metodă de interpolare de șiruri numită interpolare literală de șiruri și a introdus un nou prefix literal f. Acest nou mod de formatare a șirurilor este puternic și ușor de utilizat. Oferă acces la expresiile Python încorporate în constante de șir.

Exemplul 1:

 name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')

Când rulăm programul de mai sus, ieșirea va fi

Salut Lume! Acesta este Python

În exemplul de mai sus, prefixul literal fîi spune lui Python să restabilească valoarea numelui variabilei șirului și a programului în interiorul parantezelor (). Deci, atunci când printobținem rezultatul de mai sus.

Această nouă interpolare de șiruri este puternică, deoarece putem încorpora expresii Python arbitrare, chiar putem face aritmetică în linie cu ea.

Exemplul 2:

 a = 12 b = 3 print(f'12 multiply 3 is (a * b).')

Când rulăm programul de mai sus, ieșirea va fi

 12 multiplică 3 este 36.

În programul de mai sus am făcut aritmetică în linie, care este posibilă doar cu această metodă.

% -formatare

Șirurile din Python au o operație încorporată unică, care poate fi accesată cu %operatorul. Folosind %putem face foarte ușor interpolare de șiruri simple.

Exemplul 3:

 print("%s %s" %('Hello','World',))

Când rulăm programul de mai sus, ieșirea va fi

 Salut Lume

În exemplul de mai sus am folosit două %sspecificatoare de format de șir și două șiruri Helloși Worldîn paranteză (). Am obținut Hello Worldca rezultat. %sspecificatorul de format șir spune Python unde să înlocuiască valoarea.

Sintaxa de formatare a șirului se modifică ușor, dacă vrem să facem mai multe înlocuiri într-un singur șir și, deoarece %operatorul ia un singur argument, trebuie să înfășurăm partea dreaptă într-un tuplu așa cum se arată în exemplul de mai jos.

Exemplul 4:

 name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))

Când rulăm programul de mai sus, ieșirea va fi

Salut Lume! Acesta este python.

În exemplul de mai sus am folosit două variabile șir nume și program. Am ambalat ambele variabile între paranteze ().

De asemenea, este posibil să ne referim la înlocuirea variabilelor după nume în șirul nostru de format, dacă trecem o mapare %operatorului:

Exemplul 5:

 name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))

Când rulăm programul de mai sus, ieșirea va fi

Salut Lume! Acesta este python.

Acest lucru face ca șirurile noastre de format să fie mai ușor de întreținut și mai ușor de modificat în viitor. Nu trebuie să ne facem griji cu privire la ordinea valorilor pe care le trecem cu ordinea valorilor la care se face referire în șirul de format.

Str.format ()

În această formatare a șirurilor folosim format()funcția pe un obiect șir și acolade (), obiectul șir în format()funcție este înlocuit în locul acoladei (). Putem folosi format()funcția pentru a face o formatare pozițională simplă, la fel ca %formatarea.

Exemplul 6:

 name = 'world' print('Hello, ()'.format(name))

Când rulăm programul de mai sus, ieșirea va fi

 Salut Lume

În acest exemplu am folosit paranteze ()și format()funcție pentru a transmite obiectul nume. Am obținut valoarea numelui în locul parantezelor ()din ieșire.

Ne putem referi la înlocuirea variabilelor pe nume și le putem folosi în orice ordine dorim. Aceasta este o caracteristică destul de puternică, deoarece permite rearanjarea ordinii de afișare fără a modifica argumentele transmise funcției de formatare.

Exemplul 7:

 name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))

Când rulăm programul de mai sus, ieșirea va fi

 Salut lume! Acesta este python.

In this example we specified the variable substitutions place using the name of variable and pass the variable in format().

Template Strings

Template Strings is simpler and less powerful mechanism of string interpolation. We need to import Template class from Python’s built-in string module to use it.

Example 8:

 from string import Template name = 'world' program ='python' new = Template('Hello $name! This is $program.') print(new.substitute(name= name,program=program))

When we run the above program, the output will be

 Hello world! This is python.

In this example we import Template class from built-in string module and made a template which we used to pass two variable.

Key Points to Remember:

  1. %-format method is very old method for interpolation and is not recommended to use as it decrease the code readability.
  2. In str.format() method we pass the string object to the format() function for string interpolation.
  3. În metoda șablonului realizăm un șablon importând clasa șablonului din modulul șir încorporat.
  4. Metoda de interpolare a șirului literal este o metodă puternică de interpolare, care este ușor de utilizat și crește lizibilitatea codului.

Articole interesante...