Я понимаю, что мы должны использовать %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.