MyTetra Share
Делитесь знаниями!
Форматирование строк. Оператор %
08.08.2018
23:44
Раздел: Python

Форматирование строк. Оператор %

Иногда (а точнее, довольно часто) возникают ситуации, когда нужно сделать строку, подставив в неё некоторые данные, полученные в процессе выполнения программы (пользовательский ввод, данные из файлов и т. д.). Подстановку данных можно сделать с помощью форматирования строк. Форматирование можно сделать с помощью оператора %, и метода format.

Метод format является наиболее правильным, но часто можно встретить программный код с форматированием строк в форме оператора %.

Форматирование строк с помощью оператора %

Если для подстановки требуется только один аргумент, то значение - сам аргумент:

>>>

>>> 'Hello, %s!' % 'Vasya'

'Hello, Vasya!'


А если несколько, то значением будет являться кортеж со строками подстановки:

>>>

>>> '%d %s, %d %s' % (6, 'bananas', 10, 'lemons')

'6 bananas, 10 lemons'


Теперь, а почему я пишу то %d, то %s? А всё зависит от того, что мы используем в качестве подстановки и что мы хотим получить в итоге.


Формат

Что получится

'%d', '%i', '%u'

Десятичное число.

'%o'

Число в восьмеричной системе счисления.

'%x'

Число в шестнадцатеричной системе счисления (буквы в нижнем регистре).

'%X'

Число в шестнадцатеричной системе счисления (буквы в верхнем регистре).

'%e'

Число с плавающей точкой с экспонентой (экспонента в нижнем регистре).

'%E'

Число с плавающей точкой с экспонентой (экспонента в верхнем регистре).

'%f', '%F'

Число с плавающей точкой (обычный формат).

'%g'

Число с плавающей точкой. с экспонентой (экспонента в нижнем регистре), если она меньше, чем -4 или точности, иначе обычный формат.

'%G'

Число с плавающей точкой. с экспонентой (экспонента в верхнем регистре), если она меньше, чем -4 или точности, иначе обычный формат.

'%c'

Символ (строка из одного символа или число - код символа).

'%r'

Строка (литерал python).

'%s'

Строка (как обычно воспринимается пользователем).

'%%'

Знак '%'.

Спецификаторы преобразования записываются в следующем порядке:

  1. %.
  2. Ключ (опционально), определяет, какой аргумент из значения будет подставляться.
  3. Флаги преобразования.
  4. Минимальная ширина поля. Если *, значение берётся из кортежа.
  5. Точность, начинается с '.', затем - желаемая точность.
  6. Модификатор длины (опционально).
  7. Тип (см. таблицу выше).

>>>

>>> print ('%(language)s has %(number)03d quote types.' % {"language": "Python", "number": 2})

Python has 002 quote types.


Флаги преобразования:


Флаг

Значение

"#"

Значение будет использовать альтернативную форму.

"0"

Свободное место будет заполнено нулями.

"-"

Свободное место будет заполнено пробелами справа.

" "

Свободное место будет заполнено пробелами справа.

"+"

Свободное место будет заполнено пробелами слева.

>>>

>>> '%.2s' % 'Hello!'

'He'

>>> '%.*s' % (2, 'Hello!')

'He'

>>> '%-10d' % 25

'25 '

>>> '%+10f' % 25

'+25.000000'

>>> '%+10s' % 'Hello'

' Hello'


Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования