Интерполяция строки Python с оператором процента (%)

Существует несколько различных способов форматирования строк в Python, один из которых выполняется с помощью оператора%, известного как оператор форматирования (или интерполяции) строк. В этой статье мы покажем вам, как использовать этот оператор для построения строк со строкой шаблона и переменными, содержащими ваши данные. Оператор% Этот способ работы с текстом с самого начала поставлялся с Python, и он также известен как форматирование в стиле C, поскольку происходит от языка программирования C.

Существует несколько различных способов форматирования строк в Python, один из которых выполняется с помощью % , известного как оператор форматирования (или интерполяции) строк. В этой статье мы покажем вам, как использовать этот оператор для построения строк со строкой шаблона и переменными, содержащими ваши данные.

Оператор

Этот способ работы с текстом с самого начала поставлялся с Python, и он также известен как форматирование в стиле C, поскольку происходит от языка программирования C. Другое описание этого - простое позиционное форматирование .

Оператор % указывает интерпретатору Python форматировать строку с использованием заданного набора переменных, заключенных в кортеж после оператора. Вот очень простой пример:

 '%s is smaller than %s' % ('one', 'two') 

Интерпретатор Python заменяет первое вхождение %s в строке заданной строкой «one», а второе %s - строкой «two». Эти %s самом деле являются заполнителями в нашей строке «шаблона», и они указывают, что строки будут помещены туда.

В качестве первого примера ниже мы демонстрируем с помощью Python REPL, как печатать строковое значение и значение с плавающей запятой:

 >>> print("Mr. %s, the total is %.2f." % ("Jekyll", 15.53)) 
 'Mr. Jekyll, the total is 15.33.' 

Точно так же, как %s является заполнителем для строк, %f является заполнителем для чисел с плавающей запятой. «.2» перед f - это то, что указывает, сколько цифр мы хотим отображать после десятичной точки.

Это всего лишь два простых примера того, что возможно, и поддерживается гораздо больше типов заполнителей. Вот полный список типов заполнителей более подробно:

% c

Этот заполнитель представляет собой один символ.

 >>> print("The character after %c is %c." % ("B", "C")) 
 The character after B is C. 

Если указать здесь в качестве переменной более одного символа, возникнет исключение.

% s

Этот заполнитель использует преобразование строк с помощью str() до форматирования. Таким образом, здесь можно использовать любое значение, которое можно преобразовать в строку с помощью str() .

 >>> place = "New York" 
 >>> print("Welcome to %s!" % place) 
 Welcome to New York! 

Здесь у нас есть только один элемент, который будет использоваться в нашем форматировании строки, и поэтому нам не требуется заключать элемент в кортеж, как в предыдущих примерах.

% i и% d

Эти таблички представляют собой десятичное целое число со знаком.

 >>> year = 2019 
 >>> print("%i will be a perfect year." % year) 
 2019 will be a perfect year. 

Поскольку этот заполнитель ожидает десятичное число, оно будет преобразовано в единицу, если вместо него будет указано значение с плавающей запятой.

% u

Этот заполнитель представляет собой десятичное целое число без знака.

% o

Этот заполнитель представляет восьмеричное целое число.

 >>> number = 15 
 >>> print("%i in octal is %o" % (number, number)) 
 15 in octal is 17 
%Икс

Представляет шестнадцатеричное целое число с использованием строчных букв (af).

 >>> number = 15 
 >>> print("%i in hex is %02x" % (number, number)) 
 15 in hex is 0f 

Используя префикс «02» в нашем заполнителе, мы говорим Python напечатать двухсимвольную шестнадцатеричную строку.

%ИКС

Представляет шестнадцатеричное целое число с использованием прописных букв (AF).

 >>> number = 15 
 >>> print("%i in hex is %04X" % (number, number)) 
 15 in hex is 000F 

Как и в предыдущем примере, используя префикс «04» в нашем заполнителе, мы говорим Python напечатать четырехсимвольную шестнадцатеричную строку.

% e

Представляет экспоненциальную запись со строчной буквой «е».

% E

Представляет экспоненциальную запись с прописной буквой «е».

% f

Представляет действительное число с плавающей запятой.

 >>> price = 15.95 
 >>> print("the price is %.2f" % price) 
 the price is 15.95 
%грамм

Укороченная версия %f и %e .

%ГРАММ

Укороченная версия %f и %E

Показанные выше заполнители позволяют форматировать строки, указывая типы данных в ваших шаблонах. Однако это не единственные особенности оператора интерполяции. В следующем подразделе мы увидим, как мы можем заполнить наши строки пробелами с помощью оператора %

Выравнивание вывода

До сих пор мы только показывали, как форматировать текстовые строки, задавая простые заполнители. С помощью дополнительного числового значения вы можете определить общее пространство, которое должно быть зарезервировано по обе стороны от переменной в выходной строке.

Например, значение %10s резервирует 10 символов с дополнительным интервалом слева от заполнителя, а значение %-10s помещает любое дополнительное пространство справа от поля-заполнителя. Одиночный символ заполнения - это пробел, и его нельзя изменить.

 >>> place = "London" 
 >>> print ("%10s is not a place in France" % place) # Pad to the left 
 London is not a place in France 
 >>> print ("%-10s is not a place in France" % place) # Pad to the right 
 London is not a place in France 

Точно так же работает и работа с числами:

 >>> print ("The postcode is %10d." % 25000) # Padding on the left side 
 The postcode is 25000. 
 >>> print ("The postcode is %-10d." % 25000) # Padding on the right side 
 The postcode is 25000 . 

Усечение строк и округление чисел - аналог заполнения. Взгляните на Округление чисел в Python , чтобы узнать больше о ловушках, которые здесь скрываются.

Заключение

В этой статье мы увидели, как оператор интерполяции (он же форматирование) является мощным способом форматирования строк, который позволяет вам указывать тип данных, точность с плавающей запятой и даже интервалы / отступы.

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus