Was ist der Unterschied zwischen !r und %f in Python?
Wie der Titel besagt, was ist der Unterschied zwischen diesen beiden Fahnen? Es scheint, dass Sie beide konvertieren Sie den Wert in eine Zeichenfolge mit repr()?
Auch in dieser code-Zeile:
"{0!r:20}".format("Hello")
Was bedeutet die 0 vor der !r tun?
- Die 0 bedeutet "verwenden Sie die 0. positions-argument", Sie brauchen nur es, wenn du meinst, verwenden Sie eine der position Argumente mehr als einmal oder wenn Sie benötigen, um Unterstützung von Python 2.6.
"{} {}"
.format(...)` wird automatisch nummeriert, so behandelt werden, als"{0} {1}".format(...)
in Python 2.7 und 3.x. - Mögliche Duplikate von Python Zeichenkette formatieren: % gegenüber .- format
Du musst angemeldet sein, um einen Kommentar abzugeben.
%r
ist kein Gültiger Platzhalter in derstr.format()
Formatierung; es funktioniert nur in old-style%
- string-Formatierung. In der Tat wandelt das Objekt in eine Darstellung durch dierepr()
Funktion.In
str.format()
,!r
ist das äquivalent, das heißt aber auch, dass Sie jetzt alle format-codes für eine Zeichenfolge. Normalerweisestr.format()
rufen dieobject.__format__()
Methode auf das Objekt selbst, sondern durch!r
,repr(object).__format__()
verwendet.Gibt es auch die
!s
und (in Python 3)!a
- Wandler; diese gelten diestr()
undascii()
Funktionen ersten.Den
0
in der front zeigt an, was als argument derstr.format()
Methode wird verwendet, um fill-slot; positionelle argument0
ist"Hello"
in Ihrem Fall. Könnten Sie namens Argumente zu, und übergeben Sie Objekte, die als Schlüsselwort-Argumente:Es sei denn, Sie sind mit Python 2.6, die Sie weglassen können, diese slots ohne Indizes oder Namen werden automatisch durchnummeriert; die ersten
{}
ist0
, die zweite{}
nimmt das zweite argument im index1
usw.:
Doppelpunkt übergeben werden, dieobject.__format__()
Methode und sind somit spezifisch. Floating-point-zahlen akzeptieren, unterschiedliche Formatierung codes von strings. Wenn also das Objekt ist ein float, die Sie verwenden würden, eine andere Formatierung codes aus, wenn Sie hinzufügen!r
.