有时在Python脚本中我会看到如下行:
cmd = "%s/%s_tb -cm cond+line+fsm -ucli -do \"%s\""
上一行中的%s
在哪里被替换? Python是否有一些字符串堆栈并弹出它们并替换%s
?
答案 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'