Seite 1 von 1

Verständnisproblem format()

Verfasst: Freitag 1. Juli 2016, 11:59
von Dirki
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!

Re: Verständnisproblem format()

Verfasst: Freitag 1. Juli 2016, 12:05
von BlackJack
@Dirki: Warum hast Du denn nach der Gesamtzahl 8 einen Punkt und eine 1? Was mag das denn bedeuten? ;-)

Re: Verständnisproblem format()

Verfasst: Freitag 1. Juli 2016, 13:05
von Dirki
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!

Re: Verständnisproblem format() (gelöst)

Verfasst: Freitag 1. Juli 2016, 13:06
von Dirki
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!

Re: Verständnisproblem format()

Verfasst: Freitag 1. Juli 2016, 13:46
von Pywolf
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?

Re: Verständnisproblem format()

Verfasst: Freitag 1. Juli 2016, 14:00
von BlackJack
@Pywolf: Das liegt daran das sich beide Platzhalter auf das erste Argument von `format()` beziehen. :-)

Re: Verständnisproblem format()

Verfasst: Freitag 1. Juli 2016, 14:21
von Pywolf
@Blackjack

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