Kurz: Python kennt drei Zahlentypen: int (ganze Zahlen), float (Kommazahlen) und complex (komplexe Zahlen). Zwischen Ganzzahlen und Kommazahlen wechselt Python beim Rechnen automatisch, wenn es nötig ist.
Teil des Kurses Python
Python kennt drei Zahlentypen: int (ganze Zahlen), float (Kommazahlen) und complex (komplexe Zahlen). Zwischen Ganzzahlen und Kommazahlen wechselt Python beim Rechnen automatisch, wenn es nötig ist.
Ganzzahlen
Ein int kann beliebig groß werden, es gibt keinen Überlauf wie in vielen anderen Sprachen:
print(2 ** 10)
print(2 ** 100)
print(1_000_000 + 1) # Unterstriche machen große Zahlen lesbar
print(0xFF, 0b1010, 0o17) # hexadezimal, binär, oktalAusgabe:
1024
1267650600228229401496703205376
1000001
255 10 15Kommazahlen
Das Dezimaltrennzeichen ist der Punkt. Mit e schreibst du Zehnerpotenzen:
print(3.14 * 2)
print(2.5e3)
print(1 / 3)Ausgabe:
6.28
2500.0
0.3333333333333333Achtung
floatrechnet binär und ist deshalb manchmal minimal ungenau. Das ist keine Python-Eigenheit, sondern gilt in allen Sprachen:
print(0.1 + 0.2)
print(0.1 + 0.2 == 0.3)
print(round(0.1 + 0.2, 2) == 0.3)Ausgabe:
0.30000000000000004
False
TrueFür Geldbeträge und andere exakte Rechnungen gibt es das Modul decimal:
from decimal import Decimal
print(Decimal("0.1") + Decimal("0.2"))Ausgabe:
0.3Rechenarten
print(7 + 3) # Addition
print(7 - 3) # Subtraktion
print(7 * 3) # Multiplikation
print(7 / 2) # Division: immer ein float
print(7 // 2) # ganzzahlige Division (abgerundet)
print(7 % 2) # Rest (Modulo)
print(7 ** 2) # Potenz
print(divmod(7, 2))Ausgabe:
10
4
21
3.5
3
1
49
(3, 1)Bei negativen Zahlen rundet // zur kleineren Zahl ab, und der Rest hat das Vorzeichen des Teilers:
print(-7 // 2)
print(-7 % 2)Ausgabe:
-4
1Eingebaute Funktionen
print(abs(-5))
print(round(3.14159, 2))
print(round(2.5), round(3.5)) # rundet zur nächsten geraden Zahl bei .5
print(min(4, 9, 2), max(4, 9, 2))
print(sum([1, 2, 3, 4]))
print(pow(2, 8))Ausgabe:
5
3.14
2 4
2 9
10
256Das Modul math
Für mehr Mathematik importierst du math:
import math
print(math.sqrt(16))
print(math.pi)
print(math.floor(2.7), math.ceil(2.1))
print(math.sin(math.pi / 2))
print(math.gcd(12, 18))Ausgabe:
4.0
3.141592653589793
2 3
1.0
6Zufallszahlen
import random
random.seed(1) # macht das Ergebnis wiederholbar
print(random.randint(1, 6))
print(random.choice(["rot", "grün", "blau"]))
print(round(random.random(), 3))Ausgabe:
2
blau
0.847Ohne seed ist das Ergebnis bei jedem Start anders; ein Würfelwurf liefert also random.randint(1, 6).
Merke
/ergibt immer einenfloat,//rundet ab,%liefert den Rest,**potenziertintist beliebig groß,floatist leicht ungenau (0.1 + 0.2)- Exakte Dezimalrechnung:
decimal.Decimal round(),abs(),min(),max(),sum()sind eingebautmathbringtsqrt,pi,floor,ceilund mehr;randomliefert Zufall
Übungsaufgabe
Berechne aus einem Bruttopreis von 119 Euro den Nettopreis bei 19 % Mehrwertsteuer und runde auf zwei Nachkommastellen.
Quiz zur Selbstkontrolle
Was ergibt 7 // 2?
- 3 (richtig)
- 3.5
- 4
- 1
Warum ist 0.1 + 0.2 == 0.3 in Python falsch?
- Kommazahlen werden binär gespeichert und sind leicht ungenau (richtig)
- Python kann nicht mit Kommazahlen rechnen
- Der Vergleich mit == ist bei Zahlen verboten
- Der Interpreter hat einen Fehler
Welches Modul liefert die Quadratwurzel math.sqrt()?
- math (richtig)
- random
- numbers
- calc
Weiter im Kurs
Zurück: Datentypen im Überblick
Weiter: Operatoren
Alle Kapitel: Python im Überblick