По умолчанию замена% s в сценариях python

Иногда в сценариях Python я вижу строки вроде:

cmd = "%s/%s_tb -cm cond+line+fsm -ucli -do \"%s\""

Где находится %s в приведенной выше строке? У Python есть несколько строк строк, и они выталкивают их и заменяют %s?

Ответ 1

Это будет позже использовано в чем-то вроде:

print cmd % ('foo','boo','bar')

То, что вы видите, это просто назначение строк с полями в нем, которые позже будут заполнены.

Ответ 2

Основы форматирования строки python

Не конкретный ответ на вашу строку кода, но, поскольку вы сказали, что новичок в python, я думал, что буду использовать это в качестве примера, чтобы поделиться радостью;)

Простой пример Inline со списком:

>>> print '%s %s %s'%('python','is','fun')
python is fun

Простой пример с использованием словаря:

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

Если вы сомневаетесь, проверьте официальные документы python - http://docs.python.org/library/stdtypes.html#string-formatting

Ответ 3

Используется для интерполяции строк. %s заменяется на строку. Вы используете оператор modulo (%) для интерполяции строк. Строка будет с левой стороны, значения для замены %s находятся справа, в кортеже.

>>> s = '%s and %s'

>>> s % ('cats', 'dogs' )
<<< 'cats and dogs'

Если у вас есть только один символ, вы можете отказаться от кортежа.

>>> s = '%s!!!'

>>> s % 'what'
<<< 'what!!!'

В более новых версиях python рекомендуется использовать метод format для типа строки:

>>> '{0} {1}'.format('Hey', 'Hey')
<<< 'Hey Hey'