このコマンドを使おうとすると
appuifw.note(u"Connecting to %s" % (address), "conf");
「文字列のフォーマット中にすべての引数が変換されるわけではありません」というエラーが発生します
このエラーを修正するにはどうすればよいですか?
あなたが言及したエラーは、次のような場合に発生します
>>> print "my name is %s" %('foo','bar')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting
これは、置き換える値が2つあるが、プレースホルダー('foo', 'bar')
のみが提供されていることを意味します。one
(%s)
それを修正するには
>>> print "my name is %s %s" %('foo','bar')
my name is foo bar
str.format()を使用してこれを実現する別の方法もあります。
>>> print "my name is {0} {1}".format('foo','bar')
my name is foo bar
辞書には別のオプションがあります
mydict = {'foo': 'bar', 'foo2': 'bar2'}
print "my name is %(foo)s" % mydict
このように、必要に応じてfooのみを使用できます。
最後の「s」は「string」を表すため、%(foo)dのようなものを追加すると、名前がfooの%dを意味することに注意してください。