CodeGym /Java Kurs /Python SELF DE /Arbeiten mit Zahlentypen

Arbeiten mit Zahlentypen

Python SELF DE
Level 5 , Lektion 3
Verfügbar

3.1 Zahlentypen: int, float, complex

Python bietet mehrere Zahlentypen, die sich für verschiedene Aufgaben und Datenverarbeitung eignen. Wir haben bereits die Datentypen int, float, complex sowie die booleschen Typen bool erwähnt, die Unterklassen von Ganzzahlen sind. Schauen wir uns diese Typen nun genauer an.

int (Ganze Zahlen):

Dies ist wahrscheinlich der am häufigsten verwendete Zahlentyp in Python. Ganze Zahlen können positiv oder negativ sein und haben keine Dezimalstellen. Python unterstützt beliebige Genauigkeit, was bedeutet, dass es praktisch keine Einschränkungen für die Größe der Zahlen gibt, die du verarbeiten kannst, abgesehen von den Speicherbeschränkungen deines Computers.

float (Gleitkommazahlen):

Diese Zahlen werden verwendet, um reelle Zahlen darzustellen und können Dezimalstellen enthalten. Python implementiert Gleitkommazahlen gemäß dem IEEE 754-Standard für Double-Precision, was eine Genauigkeit von etwa 15 Dezimalstellen nach dem Komma bietet.

complex (Komplexe Zahlen):

Komplexe Zahlen haben einen Real- und einen Imaginärteil. Beide werden als Gleitkommazahlen dargestellt. In Python wird der imaginäre Teil durch das Suffix j oder J bezeichnet. Zum Beispiel kann eine komplexe Zahl so erstellt werden:

complex_number = 3 + 5j

bool (Boolesche Werte):

In Python sind True und False spezialisierte Versionen von Ganzzahlen und funktionieren wie 1 und 0 entsprechend. Dadurch können sie in arithmetischen Operationen und anderen mathematischen Ausdrücken verwendet werden.

Arithmetische Operationen:

Python unterstützt alle grundlegenden arithmetischen Operationen, einschließlich Addition, Subtraktion, Multiplikation, Division, Ganzzahl-Division, Modulo und Potenzierung. Zum Beispiel:

  • Addition: 3 + 2
  • Subtraktion: 5 - 2
  • Multiplikation: 2 * 3
  • Division: 7 / 2
  • Ganzzahl-Division: 7 // 2
  • Modulo: 7 % 2
  • Potenzierung: 2 ** 3

Typkonvertierung:

Wir haben schon über Typkonvertierung (oder -umwandlung) gesprochen. Zahlen können mithilfe von Umwandlungsfunktionen in andere Typen konvertiert werden, wie int(), float() und complex().

Einige Aspekte der Typkonvertierung haben wir bereits behandelt, andere werden wir ausführlicher in späteren Vorträgen besprechen.

3.2 Pseudozufallszahlen

Manchmal steht ein Programmierer vor scheinbar einfachen Aufgaben: „einen zufälligen Film für den Abend aus einer bestimmten Liste auswählen“, „den Gewinner einer Lotterie ziehen“, „eine Playlist beim Schütteln des Smartphones mischen“, „eine Zufallszahl für die Verschlüsselung einer Nachricht wählen“. Dabei stellt sich jedes Mal eine sehr logische Frage: Wie generiert man diese Zufallszahl?

Eine „echte“ Zufallszahl zu erzeugen, ist ziemlich schwierig. Bis zu dem Punkt, dass in Computer spezielle mathematische Koprozessoren eingebaut werden, die solche Zahlen generieren können, die alle Anforderungen an „echte Zufälligkeit“ erfüllen.

Deshalb haben Programmierer ihre eigene Lösung entwickelt – Pseudozufallszahlen. Pseudozufallszahlen sind eine Folge, deren Zahlen auf den ersten Blick zufällig erscheinen, aber ein Experte kann bei genauer Analyse bestimmte Muster erkennen. Für die Verschlüsselung geheimer Dokumente sind solche Zahlen nicht geeignet, aber für die Simulation eines Würfelwurfs in einem Spiel durchaus.

Es gibt viele Algorithmen zur Erzeugung von Pseudozufallszahlfolgen und fast alle von ihnen generieren die nächste Zufallszahl basierend auf der vorherigen und einigen anderen Hilfszahlen.

Zum Beispiel gibt dieses Programm 1000 einzigartige Zahlen aus:


a = 41
c = 11119
m = 11113
seed = 1
                   

def get_next_random():
    global seed
    seed = (a * seed + c) % m
    return seed
                   
for t in range(1000):
    x = get_next_random()
    print(x)              

Übrigens, wir sprechen nicht von Pseudozufallszahlen, sondern von einer Folge solcher Zahlen. Denn anhand einer einzigen Zahl kann man nicht erkennen, ob sie zufällig ist oder nicht.

Eine Zufallszahl kann auf verschiedene Weise erzeugt werden:

def get_random_number():
    return 4  # das ist definitiv eine zufällige Zahl (ich habe sie mit Würfeln geworfen), siehe "Dice Joke"               

3.3 Bibliothek random

In Python gibt es eine eingebaute Bibliothek random, mit der du sicherlich gerne arbeiten wirst. Wie du vielleicht schon aus dem Namen erraten hast, kannst du mit dieser Bibliothek [pseudo]zufällige Zahlen generieren.

Die Bibliothek random, auch wenn sie eingebaut ist, ist dennoch eine separate Bibliothek, also muss sie vor der Verwendung in unseren Code importiert werden. Das geschieht mit dem Schlüsselwort import. Beispiel:


import random 

Die Bibliothek random bietet viele interessante Methoden, aber heute lernen wir nur zwei davon kennen: Methode random() und Methode randint(). Sie erfüllen ähnliche, aber unterschiedliche Aufgaben:

Methode random.random():

Diese Methode gibt eine zufällige Gleitkommazahl zwischen 0.0 und 1.0 zurück. Die Zahlen werden gleichmäßig in diesem Bereich generiert. Das bedeutet, dass jede Zahl innerhalb des Intervalls die gleiche Wahrscheinlichkeit hat, ausgewählt zu werden.


import random 

probability = random.random()
print("Zufällige Wahrscheinlichkeit:", probability)               

Methode random.randint(a, b):

Diese Funktion gibt eine zufällige ganze Zahl im Bereich von a bis b einschließlich zurück. Im Unterschied zu random.random(), die eine zufällige Gleitkommazahl im Bereich von 0 bis 1 zurückgibt, wird randint() verwendet, wenn eine ganze Zahl ausgewählt werden soll. Zum Beispiel, random.randint(1, 10) kann jede ganze Zahl von 1 bis 10 zurückgeben, einschließlich beider Endwerte.


import random

dice_roll = random.randint(1, 6)  # Simulation eines Würfelwurfs
print("Gewürfelte Zahl:", dice_roll)               

Das sind sehr nützliche und interessante Methoden, also nutzt sie ruhig und viel.

3.4 Bibliothek math

Also, wenn wir schon dabei sind, lass mich dich mit einer weiteren interessanten Bibliothek bekanntmachen. Das ist die Bibliothek math. Sie enthält grundlegende mathematische Funktionen und Konstanten, wie die Zahlen π und e.

Und ebenso wie die Bibliothek random muss sie vor der Verwendung importiert werden:


import math 

Hier ist eine Tabelle mit den Hauptfunktionen und Konstanten der Bibliothek math in Python:

Funktion/Konstante Beschreibung
math.pi Konstante π, ungefähr 3.14159
math.e Basis des natürlichen Logarithmus, ungefähr 2.71828
math.sqrt(x) Gibt die Quadratwurzel von x zurück
math.exp(x) Gibt e hoch x zurück
math.log(x[, base]) Gibt den Logarithmus von x zur Basis base zurück, wenn base angegeben ist; andernfalls den natürlichen Logarithmus.
math.cos(x) Gibt den Kosinus von x zurück, wobei x in Radiant angegeben ist
math.sin(x) Gibt den Sinus von x zurück, wobei x in Radiant angegeben ist
math.tan(x) Gibt den Tangens von x zurück, wobei x in Radiant angegeben ist
math.ceil(x) Rundet die Zahl auf das nächste Ganze auf
math.floor(x) Rundet die Zahl auf das nächste Ganze ab
math.factorial(x) Gibt die Fakultät von x zurück

Auch wenn du nicht so sehr an Mathe interessiert bist und diese Funktionen in den nächsten 10 Jahren nicht verwenden willst, gibt es hier mindestens drei sehr nützliche:

  • sqrt() — Quadratwurzel einer Zahl
  • ceil() — Aufrunden auf das nächste Ganze
  • floor() — Abrunden auf das nächste Ganze

Beispiele:


import math

number = 9.7
rounded_up = math.ceil(number)  # Rundet auf, Ergebnis 10 
rounded_down = math.floor(number)  # Rundet ab, Ergebnis 9 
            
print("Aufgerundete Zahl:", rounded_up)
print("Abgerundete Zahl:", rounded_down)              
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION