Интерполация на низове на Python

В тази статия ще научим за интерполацията на низовете на python. Python поддържа множество начини за форматиране на текстови низове и те включват% -formatting, sys.format (), string.Template и f-низове.

Интерполацията на низове е процес, заместващ стойностите на променливите в заместители в низ. Например, ако имате шаблон за поздрав на човек като „Здравей (име на човек), приятно е да се запознаем!“, Бихте искали да замените заместителя за име на човек с действително име. Този процес се нарича низ интерполация.

f-струни

Python 3.6 добави нов метод за интерполация на низове, наречен литерална интерполация на низове, и въведе нов литерален префикс f. Този нов начин за форматиране на низове е мощен и лесен за използване. Той осигурява достъп до вградените изрази на Python вътре в константи на низа.

Пример 1:

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

Когато стартираме горната програма, изходът ще бъде

Здравей свят! Това е Python

В горния пример буквалният префикс fказва на Python да възстанови стойността на две низови име на променлива и програма в скоби (). Така че, когато printполучим горния изход.

Тази нова интерполация на низове е мощна, тъй като можем да вграждаме произволни изрази на Python, дори можем да правим вградена аритметика с нея.

Пример 2:

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

Когато стартираме горната програма, изходът ще бъде

 12 умножи 3 е 36.

В горната програма направихме вградена аритметика, която е възможна само с този метод.

% -форматиране

Низовете в Python имат уникална вградена операция, която може да бъде достъпна с %оператора. Използвайки, %можем да направим проста интерполация на низове много лесно.

Пример 3:

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

Когато стартираме горната програма, изходът ще бъде

 Здравей свят

В горния пример използвахме %sспецификатор на два формата на низа и два низа Helloи Worldв скоби (). Получихме Hello Worldкато изход. %sспецификатор на низ формат казва на Python къде да замести стойността.

Синтаксисът за форматиране на низове се променя леко, ако искаме да направим множество замествания в един низ и тъй като %операторът приема само един аргумент, трябва да обвием дясната страна в кортеж, както е показано в примера по-долу.

Пример 4:

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

Когато стартираме горната програма, изходът ще бъде

Здравей свят! Това е python.

В горния пример използвахме име и програма на две низови променливи. Обгърнахме и двете променливи в скоби ().

Възможно е също така да се позовем на замествания на променливи по име в нашия формат низ, ако предадем на %оператора преобразуване :

Пример 5:

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

Когато стартираме горната програма, изходът ще бъде

Здравей свят! Това е python.

Това прави нашите форматиращи низове по-лесни за поддръжка и по-лесни за модифициране в бъдеще. Не е нужно да се притесняваме за реда на стойностите, които предаваме, с реда на стойностите, които са посочени в низа на формата.

Str.format ()

In this string formatting we use format() function on a string object and braces (), the string object in format() function is substituted in place of braces (). We can use the format() function to do simple positional formatting, just like % formatting.

Example 6:

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

When we run the above program, the output will be

 Hello,world

In this example we used braces () and format() function to pass name object .We got the value of name in place of braces () in output.

We can refer to our variable substitutions by name and use them in any order we want. This is quite a powerful feature as it allows for re-arranging the order of display without changing the arguments passed to the format function.

Example 7:

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

When we run the above program, the output will be

 Hello world!This is 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. В метода на шаблона ние правим шаблон, като импортираме клас шаблон от вградения низ модул.
  4. Методът за интерполация на буквални низове е мощен метод за интерполация, който е лесен за използване и увеличава четливостта на кода.

Интересни статии...