Seite 1 von 1

String formatting

Verfasst: Freitag 6. Oktober 2017, 21:39
von Slim Shady
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

Re: String formatting

Verfasst: Samstag 7. Oktober 2017, 12:33
von __deets__
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.

Re: String formatting

Verfasst: Samstag 7. Oktober 2017, 22:10
von Sirius3
@__deets__: Du kannst auch bei Zahlen %s verwenden. Du bist also ganz unnötigerweise umgestiegen. Aber .format ist trotzdem mächtiger.