Stellenangabe mit print Formatierung

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
duodiscus
User
Beiträge: 97
Registriert: Sonntag 6. April 2014, 16:10

Hallo, eine kurze Frage zu meinem kleinen Testprogramm. Wieso gibt er mir nicht die vorkommazahlen aus, die wie in der variablen hinterlegt sind. Bei den Nachkommastellen tut er es ja! Danke für eine Erläuterung dazu!

Code: Alles auswählen

import random
vor = 5
nach = 8
zahl = random.uniform(0,785654)

print('%*.*f' % (vor, nach, zahl))

259964.12219568
Sirius3
User
Beiträge: 18335
Registriert: Sonntag 21. Oktober 2012, 17:20

@duodiscus: die erste Zahl vor dem Punkt gibt nicht die Anzahl der Stellen vor dem Komma an, sondern die Minimalanzahl der Zeichen insgesamt:

Code: Alles auswählen

>>> "%3.3f" % 1.23456
'1.235'
>>> "%3.3f" % 1.23456 # 5 Zeichen sind mehr als 3
'1.235'
>>> "%7.3f" % 1.23456 # Links werden zwei Leerzeichen eingefügt, damit der Ausdruck 7 Zeichen hat
'  1.235'
>>> "%07.3f" % 1.23456 # Links werden Nullen eingefügt, damit der Ausdruck 7 Zeichen hat
'001.235'
Antworten