String formatting

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Slim Shady
User
Beiträge: 15
Registriert: Dienstag 15. November 2016, 22:36
Wohnort: Wuppertal

Hallo,

bin letztens auf ein neues Tutorial gestoßen.
Habe dort direkt einmal das "Intermediate"-Tutorial ausprobiert.
Direkt auf der erste Seite ist mir das hier aufgefallen:

Code: Alles auswählen

who = "Gary"
how_many = 12

print("{} bought {} apples today!".format(who, how_many))
Was ist der Vorteil gegenüber der %s-Methode und der +-Methode?
Ich habe vorher immer die %s-Methode benutzt, überlege aber, umzusteigen.
Dafür brauche ich allerdings einen Grund.

- Marshall
:!: :?:
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mein wichtigster Grund fuer format: ich kann {} schreiben und muss mich nicht kuemmern, ob ich einen String oder eine Zahl uebergebe. Bei der alten printf-style Stringinterpolation muss man das spezifisch machen - %s vs %i.

Ausserdem ist die format-Syntax maechtiger. Du kannst zB Attribute auslesen ( "Name: {.name}".format(user_objekt)), und auch eigene Formatierungen entwickeln.

Es ist also eine Verbesserung, die mehr in Richtung eines maechtigen Templateing-Systems geht. Nicht revolutionaer, aber gute Evolution.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@__deets__: Du kannst auch bei Zahlen %s verwenden. Du bist also ganz unnötigerweise umgestiegen. Aber .format ist trotzdem mächtiger.
Antworten