默认替换python脚本中的%s

时间:2011-05-10 17:54:58

标签: python string substitution

有时在Python脚本中我会看到如下行:

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

上一行中的%s在哪里被替换? Python是否有一些字符串堆栈并弹出它们并替换%s

3 个答案:

答案 0 :(得分:19)

python字符串格式的基础知识

不是你的代码行的具体答案,但既然你说你是python的新手,我以为我会以此为例来分享一些快乐;)

简单示例内联列表:

>>> 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

答案 1 :(得分:19)

稍后将使用以下内容:

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

您所看到的只是一个字符串赋值,其中包含字段,稍后将填入。

答案 2 :(得分:17)

它用于字符串插值。 %s由字符串替换。您使用模运算符(%)进行字符串插值。字符串将位于左侧,替换各种%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'