Capisco che dovremmo usare %sper 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 %se %de 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?
%snon è 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.