Ich verstehe, dass wir verwenden sollten, %s
um eine Zeichenfolge zu verketten, anstatt +
in Python.
Ich könnte Folgendes tun:
hello = "hello"
world = "world"
print hello + " " + world
print "%s %s" % (hello, world)
print "{} {}".format(hello, world)
print ' '.join([hello, world])
Aber warum sollte ich etwas anderes als das verwenden +
? Es ist schneller, Verkettung mit einem einfachen zu schreiben +
. Wenn Sie sich dann die Formatierungszeichenfolge ansehen, geben Sie die Typen eg %s
und %d
und so an. Ich verstehe, es könnte besser sein, explizit über den Typ zu sprechen.
Aber dann habe ich gelesen, dass das Verwenden +
für die Verkettung vermieden werden sollte, obwohl es einfacher zu tippen ist. Gibt es einen klaren Grund, warum Zeichenfolgen auf eine dieser anderen Arten verkettet werden sollten?
%s
dient nicht der Verkettung, sondern ist eine Konvertierungsspezifikation für die Formatierung von Zeichenfolgen, die von C abgeleitet ist printf(3)
. Es gibt Fälle, in denen Sie diesen oder einen Verkettungsoperator verwenden müssen. Was Sie verwenden, sollte auf der Beurteilung der Situation beruhen, nicht auf einem Dogma. Wie einfach es ist, den Code zu schreiben, ist völlig irrelevant, da Sie dies nur einmal tun werden.
print(f"{hello} {world}")
, hat Lesbarkeit der Verkettung, da Variablen dort angezeigt werden, wo sie in der Zeichenfolge vorkommen, und ist schneller als str.format
.