Verständnisproblem format()

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
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Hallo zusammen!

Wie schon mal erwähnt versuche ich gerade Python zu lernen. Irgendwie weigert sich mein Gehirn die Import-Funktion zu verstehen.

Ich habe folgendes kleines Skript:

Code: Alles auswählen

#Tabellenkopf
print("{0:>8}{1:>8}".format("inch","cm"))

#Werte
inch=2.54

for i in range(15,45,5):
    cm =  i * inch
    print("{0:8.1f}{0:8.1f}".format(i,cm))
Das gibt ja folgendes aus:

Code: Alles auswählen

   15.0   38.1
   20.0   50.8
   25.0   63.5
   30.0   76.2
   35.0   88.9
   40.0  101.6
Das 0 die laufende Nummer, und 8 die Gesamtzahl ist, habe ich begriffen. Gibt es denn auch eine Möglichkeit auf 2 Nachkommastellen zu runden, bzw mit Nullen aufzufüllen, wie das sowas bei rauskommen würde?

Code: Alles auswählen

   15.0   38.1
   20.00   50.80
   25.00   63.50
   30.00   76.20
   35.00  88.90
   40.00  101.60
In der Forum-Suche habe ich nichts gefunden, was ich als Lösung meines Verständnisproblems erkannt habe. (Das nicht heißt das es das nicht gäbe) ;)

Danke euch!
BlackJack

@Dirki: Warum hast Du denn nach der Gesamtzahl 8 einen Punkt und eine 1? Was mag das denn bedeuten? ;-)
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Manchmal bin ich doch echt ein Volldepp. Ich hatte das getestet, aber ich habe dann wohl das falsche Skript gestartet. Klarer Fall von Eigendau.
Manchmal will ich einfach zu viel auf einmal und dann geht nichts. ;)

Danke!
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Dirki hat geschrieben:Hallo zusammen!

Wie schon mal erwähnt versuche ich gerade Python zu lernen. Irgendwie weigert sich mein Gehirn die Import-Funktion zu verstehen.

Ich habe folgendes kleines Skript:

Code: Alles auswählen

#Tabellenkopf
print("{0:>8}{1:>8}".format("inch","cm"))

#Werte
inch=2.54

for i in range(15,45,5):
    cm =  i * inch
    print("{0:8.1f}{0:8.1f}".format(i,cm))
Das gibt ja folgendes aus:

Code: Alles auswählen

   15.0   38.1
   20.0   50.8
   25.0   63.5
   30.0   76.2
   35.0   88.9
   40.0  101.6
Das 0 die laufende Nummer, und 8 die Gesamtzahl ist, habe ich begriffen. Gibt es denn auch eine Möglichkeit auf 2 Nachkommastellen zu runden, bzw mit Nullen aufzufüllen, wie das sowas bei rauskommen würde?

Code: Alles auswählen

   15.0   38.1
   20.00   50.80
   25.00   63.50
   30.00   76.20
   35.00  88.90
   40.00  101.60
In der Forum-Suche habe ich nichts gefunden, was ich als Lösung meines Verständnisproblems erkannt habe. (Das nicht heißt das es das nicht gäbe) ;)

Danke euch!
Benutzeravatar
Pywolf
User
Beiträge: 5
Registriert: Dienstag 10. Mai 2016, 08:49

Ich bekomme übrigens folgende Ausgabe:

Code: Alles auswählen

    inch      cm
   15.00   15.00
   20.00   20.00
   25.00   25.00
   30.00   30.00
   35.00   35.00
   40.00   40.00
Liegt das daran, dass i vom Typ int ist, und versucht wird, i als Float darzustellen?
This is the end.
BlackJack

@Pywolf: Das liegt daran das sich beide Platzhalter auf das erste Argument von `format()` beziehen. :-)
Benutzeravatar
Pywolf
User
Beiträge: 5
Registriert: Dienstag 10. Mai 2016, 08:49

@Blackjack

Ah, danke. Guter Lerneffekt! :)
Da war ich wohl nur auf die Nachkomma-Formatierung hinter dem Punkt fixiert.
This is the end.
Antworten