Приложение Symbian для использования заметок Python
Когда я пытаюсь использовать эту команду
appuifw.note(u"Connecting to %s" % (address), "conf");
Я получаю сообщение об ошибке: "не все аргументы преобразованы во время форматирования строки"
Как исправить эту ошибку?
2 ответа
Решение
Упомянутая вами ошибка возникает в таких случаях, как
>>> 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, это означает%d с именем foo.