>>> 'string with no string formatting markers' % ['string']
'string with no string formatting markers'
>>> 'string with no string formatting markers' % ('string',)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting
Я ожидал бы, что оба случая поднимут a TypeError
, но это не так. Почему бы и нет?
Документация Python на эту тему рассказывает о строках, кортежах и словарях, но ничего не говорит о списках. Я немного смущен этим поведением. Я смог дублировать его в Python 2.7 и 3.2.