Я понимаю, что мы должны использовать %s
для объединения строк, а не +
в Python.
Я мог сделать любое из:
hello = "hello"
world = "world"
print hello + " " + world
print "%s %s" % (hello, world)
print "{} {}".format(hello, world)
print ' '.join([hello, world])
Но почему я должен использовать что-то кроме +
? Быстрее написать объединение с простым +
. Затем , если вы посмотрите на строку форматирования, можно указать типы , например , %s
и %d
и такие. Я понимаю, что может быть лучше четко указать тип.
Но потом я прочитал, что +
следует избегать использования конкатенации, хотя ее проще набирать. Есть ли четкая причина, по которой строки должны объединяться одним из этих других способов?
%s
не для конкатенации, это спецификация преобразования для форматирования строк, полученная из Си printf(3)
. Существуют случаи для использования этого или оператора конкатенации; то, что вы используете, должно основываться на оценке ситуации, а не на догме. Насколько легко написать код, совершенно не имеет значения, потому что вы собираетесь сделать это только один раз.
print(f"{hello} {world}")
, имеет читабельность конкатенации, поскольку переменные видны там, где они встречаются в строке, и быстрее, чем str.format
.