Dodawanie wielu ciągów została odrzucona, ponieważ:
- to naprawdę nie jest czytelny, w porównaniu do alternatyw.
- nie jest tak skuteczna jak alternatywy.
- Jeśli masz inne typy, musisz ręcznie zadzwonić pod numer
str
.
I, tak, jest naprawdę stary. :-)
Teoretycznie dodawanie ciągów tworzy nowy ciąg. Załóżmy, że dodajesz ciągi znaków n
, a następnie musisz utworzyć ciągi znaków n-1
, ale wszystkie z nich, z wyjątkiem jednego, są odrzucane, ponieważ interesuje Cię tylko wynik końcowy. Struny są zaimplementowane jako tablice, więc istnieje wiele potencjalnie drogich (re-) alokacji bez żadnych korzyści.
Jeśli masz ciąg znaków z symbolami zastępczymi, jest on nie tylko bardziej czytelny (nie ma między nimi żadnych +
i str
), ale python może także obliczyć długość ciągu końcowego i przydzielić tylko jedną tablicę dla ciągu końcowego. i wstaw wszystko.
W praktyce tak naprawdę nie jest to, co się dzieje, ponieważ Python sprawdza, czy łańcuch jest pośrednikiem i dokonuje jakiejś optymalizacji. Więc nie jest tak źle, jak tworzenie niepotrzebnych tablic.
W przypadku małych napisów i/lub interakcyjnego użycia nie zauważy się różnicy. Ale inne sposoby mają tę zaletę, że są bardziej czytelne.
Alternatywy mogłoby być (dwa pierwsze są kopiowane z @MKemps odpowiedzieć):
"Total score for {} is {}".format(name, score)
"Total score for %s is %s" % (name, score)
(również stary!)
"Total score for {name} is {score}".format(name=name, score=score)
f"Total score for {name} is {score}"
(bardzo nowy - wprowadzony w Pythonie 3.6)
Szczególnie te dwa ostatnie przykłady pokazują, że można nawet odczytać ciąg szablonów bez konieczności wstawiania czegokolwiek.
Zanim wprowadzono nowe hasła, takie jak https://www.python.org/dev/peps/pep-3101/, wprowadzono nowe (lepsze, prawdopodobnie) sposoby formatowania ciągów znaków – Pythonista
Odrzucono? Masz na myśli przestarzałe lub stare? –
Oto trochę dokumentacji zewnętrznej. https://pyformat.info –