Capisco che dovremmo usare %s
per concatenare una stringa piuttosto che +
in Python.
Potrei fare uno qualsiasi di:
hello = "hello"
world = "world"
print hello + " " + world
print "%s %s" % (hello, world)
print "{} {}".format(hello, world)
print ' '.join([hello, world])
Ma perché dovrei usare qualcosa di diverso da +
? È più veloce scrivere concatenazione con un semplice +
. Quindi se guardi la stringa di formattazione, specifichi i tipi eg %s
e %d
e simili. Capisco che potrebbe essere meglio essere espliciti sul tipo.
Ma poi ho letto che l'uso +
per la concatenazione dovrebbe essere evitato anche se è più facile da scrivere. C'è una chiara ragione per cui le stringhe dovrebbero essere concatenate in uno di questi altri modi?
%s
non è per la concatenazione, è una specifica di conversione per la formattazione di stringhe derivata da C's printf(3)
. Ci sono casi da utilizzare per questo o un operatore di concatenazione; che usi dovrebbe essere basato sul giudizio della situazione, non sul dogma. Quanto è facile scrivere il codice è del tutto irrilevante perché lo farai solo una volta.
print(f"{hello} {world}")
, ha la leggibilità della concatenazione poiché le variabili sono viste dove si trovano nella stringa ed è più veloce di str.format
.