2.9. Formattierte Strings#

Strings mit formattierten Zahlen werden immer dann benutzt, wenn Zahlen, insbesondere Gleitkommazahlen, für den Menschen lesbar ausgegeben oder abgespeichert werden sollen. Bei dieser Aufgabe sollen Sie sich mit den Formatierungsoptionen vertraut machen.

Aufgabenteil A#

Testen Sie die aufgeführten Strings und versuchen Sie zu verstehen, was die einzelnen Formattierungssymbole bedeuten:

  1. f"Dezimalzahl mit festgelegter Größe {144:6d}.". Wie sieht die Zahl im Hexadezimalsystem aus?

  2. f"Gleitkommerzahlen können sowohl natürlich, z.B. {1015.39:12.4f} oder wissenschaftlich, {1015.39:e}, dargestellt werden."

  • Verändern Sie die natürliche Schreibwese so, dass nur noch eine Stelle nach dem Komma angezeigt wird. Was fält auf?

  • Verändern Sie die wissenschaftliche Schreibweiso so, dass anstelle von e die Zehnerbasis mit E beschrieben wird.

  1. f"{42:<8d} {42:08d} {42:+8d}", was sind die Auswirkungen von <, 0 und +?

Lösung#

Hide code cell content
print(f"1. Hexadezimalzahl mit festgelegter Größe {144:6x}.")
print(f"2. Gleitkommerzahlen können sowohl natürlich, z.B. {1015.39:12.1f} oder wissenschaftlich, {1015.39:E}, dargestellt werden.")
print(f"3. {42:<8d} '<' formatiert die Zahl linksbündig,\n   {42:08d} '0' füllt ungenutzte stellen mit Nullen auf und\n   {42:+8d} '+' zeigt das Vorzeichen auch dann, wenn die Zahl positiv ist.")
1. Hexadezimalzahl mit festgelegter Größe     90.
2. Gleitkommerzahlen können sowohl natürlich, z.B.       1015.4 oder wissenschaftlich, 1.015390E+03, dargestellt werden.
3. 42       '<' formatiert die Zahl linksbündig,
   00000042 '0' füllt ungenutzte stellen mit Nullen auf und
        +42 '+' zeigt das Vorzeichen auch dann, wenn die Zahl positiv ist.

Aufgabenteil B#

Erstellen Sie mit Hilfe der formatierten Zeichenketten eine Tabelle, welche die Spalten x, x2 und x3 für Zahlen zwischen -2 und 2 im Abstand von 0.25 auflistet.

Lösungshinweis#

Die Tabelle könnte wie folgt aussehen:

x	x**2	x**3
---------------------
-2.00	 4.00	-8.00
-1.75	 3.06	-5.36
-1.50	 2.25	-3.38
-1.25	 1.56	-1.95
-1.00	 1.00	-1.00
-0.75	 0.56	-0.42
-0.50	 0.25	-0.12
-0.25	 0.06	-0.02
 0.00	 0.00	 0.00
 0.25	 0.06	 0.02
 0.50	 0.25	 0.12
 0.75	 0.56	 0.42
 1.00	 1.00	 1.00
 1.25	 1.56	 1.95
 1.50	 2.25	 3.38
 1.75	 3.06	 5.36
 2.00	 4.00	 8.00

Lösungsvorschlag#

Hide code cell content
print("x\tx**2\tx**3")
print("-"*21)

xmin = -2
xmax = 2
step = 0.25

n = int((xmax - xmin) / step)
for i in range(n+1):
    x = xmin + i*step
    print(f"{x:5.2f}\t{x**2:5.2f}\t{x**3:5.2f}")
x	x**2	x**3
---------------------
-2.00	 4.00	-8.00
-1.75	 3.06	-5.36
-1.50	 2.25	-3.38
-1.25	 1.56	-1.95
-1.00	 1.00	-1.00
-0.75	 0.56	-0.42
-0.50	 0.25	-0.12
-0.25	 0.06	-0.02
 0.00	 0.00	 0.00
 0.25	 0.06	 0.02
 0.50	 0.25	 0.12
 0.75	 0.56	 0.42
 1.00	 1.00	 1.00
 1.25	 1.56	 1.95
 1.50	 2.25	 3.38
 1.75	 3.06	 5.36
 2.00	 4.00	 8.00