1

このコマンドを使おうとすると

appuifw.note(u"Connecting to %s" % (address), "conf");

「文字列のフォーマット中にすべての引数が変換されるわけではありません」というエラーが発生します

このエラーを修正するにはどうすればよいですか?

4

2 に答える 2

1

あなたが言及したエラーは、次のような場合に発生します

>>> 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
于 2012-02-16T02:11:13.517 に答える
1

辞書には別のオプションがあります

mydict = {'foo': 'bar', 'foo2': 'bar2'}
print "my name is %(foo)s" % mydict

このように、必要に応じてfooのみを使用できます。

最後の「s」は「string」を表すため、%(foo)dのようなものを追加すると、名前がfooの%dを意味することに注意してください。

于 2012-02-16T14:08:23.857 に答える