web-dev-qa-db-ja.com

pythonスクリプトでの%sのデフォルト置換

時々Pythonスクリプトで私は次のような行を見ます:

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

上記の行の%sはどこで置換されますか? Python文字列のスタックがあり、それらをポップして%sを置き換えますか?

15
prahallada

それは後でのようなもので使用されます:

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

表示されているのは、後で入力されるフィールドを含む文字列の割り当てです。

19
John Gaines Jr.

python string formatの基本

あなたのコード行に対する具体的な答えではありませんが、あなたが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

19
HurnsMobile

文字列の補間に使用されています。 %sは文字列に置き換えられます。モジュロ演算子(%)文字列補間を行います。文字列は左側にあり、値はさまざまな%sは、タプルの右側にあります。

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

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

キャラクターが1人だけの場合、タプルを忘れることができます。

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

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

pythonの新しいバージョンでは、推奨される方法は、文字列型のformatメソッドを使用することです。

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