Rozumiem, że powinniśmy używać %sdo konkatenacji łańcucha zamiast +w Pythonie.
Mógłbym wykonać dowolną z następujących czynności:
hello = "hello"
world = "world"
print hello + " " + world
print "%s %s" % (hello, world)
print "{} {}".format(hello, world)
print ' '.join([hello, world])
Ale dlaczego miałbym używać czegoś innego niż +? Szybsze jest pisanie konkatenacji za pomocą prostego +. Następnie, jeśli spojrzeć na ciąg formatowania, można określić na przykład rodzaje %si %doraz takie. Rozumiem, że lepiej byłoby wyraźnie powiedzieć o typie.
Ale potem przeczytałem, że +należy unikać używania do konkatenacji, chociaż łatwiej jest pisać. Czy istnieje wyraźny powód, dla którego łańcuchy powinny być łączone na jeden z tych innych sposobów?
%sNie jest łączenie, to opis konwersji do formatowania łańcuch pochodzący z C na printf(3). Istnieją przypadki użycia tego lub operatora konkatenacji; których używasz, powinny opierać się na ocenie sytuacji, a nie dogmatach. To, jak łatwo jest napisać kod, jest całkowicie nieistotne, ponieważ zrobisz to tylko raz.
print(f"{hello} {world}"), ma czytelność konkatenacji, ponieważ zmienne są widoczne tam, gdzie występują w ciągu, i jest szybszy niż str.format.