Muitas respostas dadas acima estavam corretas. A maneira correta de fazer isso é:
>>> thetuple = (1, 2, 3)
>>> print "this is a tuple: %s" % (thetuple,)
this is a tuple: (1, 2, 3)
No entanto, houve uma disputa sobre se o '%'operador String está obsoleto. Como muitos apontaram, definitivamente não é obsoleto, pois o '%'operador String é mais fácil de combinar uma instrução String com os dados da lista.
Exemplo:
>>> tup = (1,2,3)
>>> print "First: %d, Second: %d, Third: %d" % tup
First: 1, Second: 2, Third: 3
No entanto, usando a .format()função, você terminará com uma declaração detalhada.
Exemplo:
>>> tup = (1,2,3)
>>> print "First: %d, Second: %d, Third: %d" % tup
>>> print 'First: {}, Second: {}, Third: {}'.format(1,2,3)
>>> print 'First: {0[0]}, Second: {0[1]}, Third: {0[2]}'.format(tup)
First: 1, Second: 2, Third: 3
First: 1, Second: 2, Third: 3
First: 1, Second: 2, Third: 3
Ainda mais, '%'operador de corda também útil para nós para validar o tipo de dados, como %s, %d, %i, enquanto .format () suportam apenas dois sinalizadores de conversão : '!s'e '!r'.
print(....).