Eu entendo que devemos usar %s
para concatenar uma string em vez de +
em Python.
Eu poderia fazer qualquer um dos seguintes:
hello = "hello"
world = "world"
print hello + " " + world
print "%s %s" % (hello, world)
print "{} {}".format(hello, world)
print ' '.join([hello, world])
Mas por que devo usar outra coisa senão a +
? É mais rápido escrever concatenação com um simples +
. Então, se você observar a sequência de formatação, especifique os tipos, por exemplo, %s
e assim por diante %d
. Entendo que seria melhor ser explícito sobre o tipo.
Mas então li que o uso +
para concatenação deve ser evitado, mesmo que seja mais fácil digitar. Existe uma razão clara para que as seqüências de caracteres devam ser concatenadas de uma dessas outras maneiras?
%s
não é para concatenação, é uma especificação de conversão para formatação de string derivada de C's printf(3)
. Existem casos para usar esse ou um operador de concatenação; que você usa deve basear-se no julgamento da situação, não no dogma. O quão fácil é escrever o código é totalmente irrelevante, porque você fará isso apenas uma vez.
print(f"{hello} {world}")
, tem legibilidade de concatenação, pois as variáveis são vistas onde ocorrem na cadeia e são mais rápidas que str.format
.