# Hinweis: # Um nur bestimmte Zeilen aus dieser Textdatei auszufuehren, muss lediglich das Hashtag-Symbol "#" # aus derselben Zeile entfernt oder hinzugefuegt werden und das .py-Skript ausgefuehrt werden ''' In Python2 gibt es 4 Zahlen-Datentypen - int - long - float - complex Um den Typen einer Zahl zu bestimmen, kann die type()-Funktion verwendet werden, z.B. ''' print(type(1)) # ''' Alle Zahlen haben einen Maximalwert, bei dessen Ueberschreitung sie entweder an Genauigkeit verlieren oder den Datentypen aendern, z.B. int -> long Dieser Maximalwert kann mithilfe des sys-Moduls ermittelt werden ''' import sys # importiert das sys-Modul in unser Programm print(sys.maxint) # gibt des Maximalwert fuer den Datentyp "int" an ''' Wenn der Maximalwert in Pyhton ueberschrieben wird, wird der Datentyp auf den naechstgroesseren gesetzt ''' a = sys.maxint + 1 print(type(a)) # ''' Zahlendatentypen koennen auch bei der Initialisierung der Zahlen manuell festgelegt werden fuer longs muss ein "L" an das Ender der Zahl angefuegt werden ''' a = 1L print(type(a)) # ''' Gleitkommazahlen oder "floats" werden automatisch von Python nach dem Einfuegen eines Kommas erkannt Hinweis: Da Python englisch ist, muss ein Punkt anstelle des Kommas eingefuegt werden ''' b = 3.3 print(type(b)) # ''' Komplexe Zahlen oder "complex" werden automatisch von Python nach dem Einfuegen eines "j" erkannt Hinweis: Das Einsetzen eines "i" fuer die komplexe Einheit ist nicht zulaessig und fuehrt zu Fehlern ''' c = 1 + 3j print(type(c)) # ''' Bei den Zahlen-Datentypen von Python gibt es eine Hierarchie int < long < float < complex Diese Heirarchie legt fest, welche Datentyp in welchem anderen Datentyp enthalten ist, z.B. ist "int" in allen anderen Datentypen enthalten ''' print(1 == 1L) # True, weil "int" in "long" print(1 == 1.0) # True, weil "int" in "float" print(1 == 1 + 0j) # True, weil "int" in "complex" ''' aber andersherum geht das nicht, weil z.B. eine "echt" komplexe Zahl mit einem echten komplexen Anteil nicht als "int" darstellbar ist und dasselbe gilt fuer "flaots" ''' print(type(3.3)=='int') # False, weil "float" nicht in "int" print(type(1 + 1j)=='int') # False, weil "complex" nicht in "int" ''' Arithmetik Python bietet wie jede andere Programmiersprache die Moeglichekeit, mit Zahlen zu rechnen. In der Standardversion von Python gibt es die 4 Grundrechnenarten "+", "-", "*", "/" und das Potenzieren von Zahlen "**" Hinweis: Beim Addieren/Dividieren/Multiplizieren oder Subtrahieren konvertiert Python beide Zahlen auf dieseleb Hierarchie-Ebene, bevor er beide miteinander verrechnet, z.B. "int" + "float" = "flaot" "float" * "complex" = "complex" ''' print(1 + 2) # 3 print(3.2 - 1) # 2.2 print((4 + 3j) * 2) # 8 + 6j print(4 ** 2) # 16 ''' In Python gibt es 3 verschiedene Arten der Division - die ganzzahlige Division "/", bei der nur ganze Zahlen geteilt werden und der Rest ignoriert wird - den Modulo-Operator "%", bei der Rest ausgegeben wird und die Ganzzahl ignoriert wird - die "normale" Division "/", welche die ganzzahlige Division durchfuehrt und auch etwaige Kommabetraege ausgibt (die herkoemmliche und allgemein bekannte Division). Diese Rechenart wird durch die Division von "floats" initiiert ''' print(7 / 5) # ganzzahlige Division, die 5 passt nur einmal in 7, also 7 / 5 -> 1 print(13 / 5) # 5 passt zweimal ganzzahlig in 13, also 13 / 5 -> 2 print(7 % 5) # hier wird nur der Rest betrachtet und bei 7 / 5 ist der Rest 2 print(13 % 5) # hier bleibt ein Rest von 3 print(7.0 / 5) # herkoemmliche Division, Zaehler ist "float" print(7 / 5.0) # herkoemmliche Division, Nenner ist "float" print(13.0 / 5) # herkoemmliche Division, Zaehler ist "float" print(13 / 5.0) # herkoemmliche Division, Nenner ist "float"