Форум сайта python.su
0
Здравствуйте!
Может быть кто-то подскажет, есть ли разница между %s и str()
пытаюсь разобраться с кодировками и работой со строками, но похоже запутался
В доке по python 2.7 вижу:
's' String (converts any Python object using str())то есть как я понял ‘s’ просто способ вызова str(), но на деле:
for tuple in cur: print '%s ' % tuple
for tuple in cur: print str(tuple)
Офлайн
221
agaspher
сделайте так и посмотрите на результаты:
print str(tuple[0])
print ' '.join(tuple)
>>> t=('qwe',) >>> tt=('qwe','asd') >>> print '%s'%t qwe >>> print '%s'%tt Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: not all arguments converted during string formatting >>> l=[1,2] >>> str(l) '[1, 2]' >>> print '%s'%l [1, 2]
Офлайн
857
agaspher
то есть как я понял ‘s’ просто способ вызова str()
>>> print '%s%s%s' % (1, tuple(), []) 1()[] >>>
Отредактировано py.user.next (Март 21, 2013 19:20:44)
Офлайн
0
Спасибо! Вроде все более менее встало на свои места
строковое представление кортежа (а не строковое представление его содержимого)вот этой мысли не хватало, даже не думал об этом
Офлайн