Uma operação muito útil para processamento de texto é a substituição de símbolos em strings. É particularmente adequada para gerarmos strings formatadas contendo algum valor variável, como o clássico formulário: "Nome: Idade: anos".
>>> a = "Total de itens: %d" >>> b = "Custo: %f"
>>> print a % 10 Total de itens: 10
Como pode ser visto, o símbolo é substituído pelo valor fornecido. Podem ser utilizados tanto valores explícitos quanto variáveis para a substituição:
>>> custo = 5.50 >>> print b % custo Custo: 5.500000
Caso sejam múltiplos valores a substituir, use uma tupla:
>>> print "Cliente: %s, Valor %f" % ("hungry.com", 40.30)
Fornecedor: hungry.com, Custo 40.300000
Este operador permite ainda utilizar um número junto ao símbolo porcentagem para reservar um tamanho total à string:
>>> a = "Quantidade: %4d"
>>> print a % 3
>>> print a % 53
>>> print a % 120
Quantidade: 3
Quantidade: 53
Quantidade: 120
É possível controlar a formatação de tipos numéricos de maneira especial através de modificadores nos símbolos no formato m.n. Como acima, m indica o total de caracteres reservados. Para floats, n indica o número de casas decimais; para inteiros, indica o tamanho total do número, preenchido com zeros à esquerda. Ambos os modificadores podem ser omitidos.
>>> e = 2.7313
>>> p = 3.1415
>>> sete = 7
>>> print "Euler: %.7f" % e # 7 casas decimais
Euler: 2.7313000
>>> print "Pi: %10.3f" % p # 10 espaços, 3 casas
Pi: 3.142
>>> print "Sete: %10.3d" % sete # 10 espaços, 3 dígitos
Sete: 007 # (é um inteiro)