W tym artykule dowiemy się o interpolacji ciągów znaków w Pythonie. Python obsługuje wiele sposobów formatowania ciągów tekstowych, w tym% -formatting, sys.format (), string.Template i f-strings.
Interpolacja ciągów to proces polegający na podstawianiu wartości zmiennych do symboli zastępczych w ciągu. Na przykład, jeśli masz szablon przywitania się z osobą, taki jak „Witaj (imię osoby), miło cię poznać!”, Chciałbyś zastąpić symbol zastępczy imienia osoby rzeczywistym imieniem. Ten proces nazywa się interpolacją ciągów.
struny f
Python 3.6 dodał nową metodę interpolacji ciągów nazwaną interpolacją literałów i wprowadził nowy prefiks literału f
. Ten nowy sposób formatowania ciągów jest potężny i łatwy w użyciu. Zapewnia dostęp do wbudowanych wyrażeń Pythona wewnątrz stałych łańcuchowych.
Przykład 1:
name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')
Kiedy uruchomimy powyższy program, wynik będzie
Witaj świecie! To jest Python
W powyższym przykładzie prefiks literału f
mówi Pythonowi, aby przywrócił wartość dwóch nazw zmiennych łańcuchowych i programu w nawiasach ()
. Tak więc, gdy print
otrzymamy powyższy wynik.
Ta nowa interpolacja ciągów jest potężna, ponieważ możemy osadzić dowolne wyrażenia Pythona, które możemy nawet wykonać za pomocą arytmetyki w wierszu.
Przykład 2:
a = 12 b = 3 print(f'12 multiply 3 is (a * b).')
Kiedy uruchomimy powyższy program, wynik będzie
12 pomnóż 3 daje 36.
W powyższym programie wykonaliśmy arytmetykę inline, która jest możliwa tylko przy użyciu tej metody.
% -formatting
Ciągi znaków w Pythonie mają unikalną wbudowaną operację, do której można uzyskać dostęp za pomocą %
operatora. Używając %
możemy bardzo łatwo wykonać prostą interpolację ciągów.
Przykład 3:
print("%s %s" %('Hello','World',))
Kiedy uruchomimy powyższy program, wynik będzie
Witaj świecie
W powyższym przykładzie użyliśmy dwóch %s
specyfikatorów formatu ciągu i dwóch łańcuchów Hello
oraz World
w nawiasach ()
. Dostaliśmy Hello World
jako wyjście. %s
specyfikator formatu ciągu mówi Pythonowi, gdzie ma zastąpić wartość.
Składnia formatowania łańcuchów zmienia się nieznacznie, jeśli chcemy dokonać wielu podstawień w jednym ciągu, a ponieważ %
operator przyjmuje tylko jeden argument, musimy zawinąć prawą stronę w krotkę, jak pokazano w poniższym przykładzie.
Przykład 4:
name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))
Kiedy uruchomimy powyższy program, wynik będzie
Witaj świecie! To jest Python.
W powyższym przykładzie użyliśmy dwóch nazw zmiennych łańcuchowych i programu. Obie zmienne umieściliśmy w nawiasach ()
.
Możliwe jest również odniesienie się do podstawień zmiennych według nazwy w naszym ciągu formatu, jeśli przekażemy mapowanie do %
operatora:
Przykład 5:
name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))
Kiedy uruchomimy powyższy program, wynik będzie
Witaj świecie! To jest Python.
To sprawia, że nasze ciągi formatujące są łatwiejsze w utrzymaniu i łatwiejsze do modyfikacji w przyszłości. Nie musimy martwić się o kolejność wartości, które przekazujemy, z kolejnością wartości, do których odwołuje się ciąg formatu.
Str.format ()
W tym formatowaniu stringów używamy format()
funkcji na obiekcie typu string i nawiasach klamrowych ()
, obiekt string w format()
function jest zastępowany w miejsce nawiasów ()
. Możemy użyć tej format()
funkcji do prostego formatowania pozycyjnego, tak jak %
formatowanie.
Przykład 6:
name = 'world' print('Hello, ()'.format(name))
Kiedy uruchomimy powyższy program, wynik będzie
Witaj świecie
W tym przykładzie użyliśmy nawiasów klamrowych ()
i format()
funkcji do przekazania nazwy obiektu. Otrzymaliśmy wartość name zamiast nawiasów ()
w wyjściu.
Możemy odwoływać się do naszych podstawień zmiennych po nazwie i używać ich w dowolnej kolejności. Jest to dość potężna funkcja, ponieważ pozwala na zmianę kolejności wyświetlania bez zmiany argumentów przekazywanych do funkcji formatu.
Przykład 7:
name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))
Kiedy uruchomimy powyższy program, wynik będzie
Witaj świecie! To jest 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:
- %-format method is very old method for interpolation and is not recommended to use as it decrease the code readability.
- In str.format() method we pass the string object to the format() function for string interpolation.
- W metodzie template szablon tworzymy importując klasę szablonu z wbudowanego modułu string.
- Metoda interpolacji ciągów literalnych to potężna metoda interpolacji, która jest łatwa w użyciu i zwiększa czytelność kodu.