×
produktlogotitle

Seite: bbb_index
Diese Seite wurde aktualisiert am 14.09.2021

LOGIN
Benutzer:
Passwort:
 
   if1.net-schulbuch.de

Python als Taschenrechner

Verschiedene Arten von Zahlen

Natürlich kann man das Python-System dazu nutzen, um Berechnungen auszuführen, so dass das System wie ein Taschenrechner funktioniert.

Die Grundrechenarten Addieren +, Subtrahieren - funktionieren so, wie du es erwartest! Und Multiplikation gibt es natürlich ebenfalls, benutzbar mit dem Zeichen *.  

Die Division muss noch besonders beleuchtet werden. Dazu musst du wissen, dass es in Python zwei Arten von Zahlen gibt:

  • Ganze Zahlen so wie 5, 42, -13, 12345, ... Es sind also Folgen von Ziffern, ggf. mit dem Minuszeichen vorne.
    • Sie werden in Python mit int bezeichnet.
  • Dezimalzahlen, erkennbar an einem Dezimalpunkt(!)
    • Man bezeichnet sie mit float.

Also sind z.B. 3.14 oder auch -42.56 solche Dezimalzahlen; aber auch 5.0 ist eine Zahl vom Typ float, da sie ein solches Dezimalkomma enthält.

Division
Dividiert man in Python zwei Zahlen (ganze Zahlen oder Dezimalzahlen) mit Hilfe des Divisionszeichens /, so ist das Ergebnis immer eine Zahl vom Typ float.

Daneben gibt es noch eine weitere Art der Division: die sogenannte ganzzahlige Division mit Hilfe der Zeichen //

Ganzzahlige Division 
Wenn man zwei ganze Zahlen mit Hilfe von // dividiert, ist das Ergebnis eine Ganze Zahl. Falls die (mathematische) Division einen Rest haben sollte, wird dieser Rest ignoriert.
Also gilt z.B.
22 // 8 = 2

Natürlich ist es bei der Division von ganzen Zahlen wichtig, den Divisionsrest zu ermitteln:

Divisionsrest
Um den Rest bei der Division zweier ganzer Zahlen zu ermitteln, gibt es die Rechenoperation %, genannt Modulo-Operator. 
So ist z.B. 
22 % 8 = 6

 

Der Divisionsrest wird uns später z.B helfen, Primzahlen zu erkennen:
  • So ist z.B. 27 keine Primzahl, da 3 ein Teiler von 27 ist. Das sagt uns hier der Divisionsrest, denn man kann 27 ohne Rest durch 3 dividieren. Und genau das liefert die Python-Anfrage 27 % 3 = 0
  • Wenn man jedoch beispielsweise die Zahl 17 untersucht, so wird man für alle Probeteiler 2, 3, 4, ..., 16 niemals den Divisionsrest 0 finden.

Schließlich kann man Zahlen auch potenzieren. Das erfolgt mit den Zeichen **.

Also ist z.B.

3 ** 4 = 81

 

Bei allen diesen Rechenoperationen gelten die aus der Mathematik bekannten Rechen- und Vorrangregeln:

  • Falls es gibt Klammern gibt, werden deren Inhalte zuerst berechnet.
  • Dann werden alle Potenzen berechnet (sofern in dem Term vorhanden).
  • Anschließend werden die Multiplikationen und die Divisionen ausgeführt.
  • Und schließlich berechnet man alle Additionen und Subtraktionen.
  • Falls es mehrere gleichberechtigte Operationen gibt, werden sie von links nach rechts ausgeführt.
    • Eine Besonderheit bei den Potenzen muss hier jedoch noch erwähnt werden. Ein Term der Form `2^(3^4)` wird in Python - wie in der Mathematik üblich - interpretiert als `2^((3^4))` und nicht als `(2^3)^4` Man führt also die Potenzen von rechts nach links aus.

Dies können wir jetzt einmal in Python ausprobieren:

 

Kopiere den PythonCode in deine Thonny-Umgebung und probiere die verschiedenen Rechenoperationen aus. Verwende auch Dezimalzahlen (float) statt der ganzen Zahlen (int).

taschenrechner_1.py.txt

# Python als Taschenrechner

print(12//8)        ## Die ganzzahlige Division
print(12/8)         ## Division
print(12%8)         ## Divisionsrest
print(2**3**2)      ## Mehrfachpotenz
print((2**3)**2)
print(2**(3**2))

 

Aufgabe 1

Lade das nebenstehende Python-Programm und fülle die Zuweisungen in den einzelnen Zeilen, wie dort als Kommentar angegeben, aus.

Beobachte dann die Ausgabe.

Wieso ist das Ergebnis unabhängig von der Eingabe in der ersten Zeile? Begründe dies.

 

taschenrechner_2.py.txt

# Ein Zaubertrick: Fülle die Zeilen korrekt aus!
z =    ### Denk dir eine Zahl aus und weise sie in dieser Zeile z zu
a1 =   ### z mit 5 multiplizieren
a2 =   ### a1 verdoppeln
a3 =   ### Teile a2 jetzt durch die Zahl, die du Dir am Anfang ausgedacht hast.
## Ist die normale Division richtig? Oder benutze die ganzzahlige Division!
## Gibt es manchmal einen Divisionsrest? Teste das im Programm!

a4 =   ### Subtrahiere davon 7

print(a4)

### egal, was du für z einsetzt, es wird immer ??? geliefert

Erstellt man nacheinander die Terme für die einzelnen Variablen, so ergibt sich:

  1. a1 = 5*z
  2. a2 = 2*a1 = 10*z
  3. a3 = a2/z = 10
  4. a4 = a3 - 7 = 3

so dass die Ausgabe also - unabhängig von der Wahl von z - immer 3 ist!

 

Aufgabe 2   

Lade das nebenstehende Python-Programm und fülle die Zuweisungen in den einzelnen Zeilen, wie dort als Kommentar angegeben, aus.

Die Ausgabe zeigt dir ein sogenanntes magisches Quadrat. Es ist deshalb etwas Besonderes, da die Summen aller Zeilen, aller Spalten und der beiden Diagonalen identisch sind. Das nennen wir einmal die magische Eigenschaft.

  1. Prüfe diese Eigenschaft bei verschiedenen Eingaben nach.
  2. Schreibe ein dem Python-Programm Anweisungen, die die magische Eigenschaft für dich testen.
  3. Begründe ohne Python-Code die magische Eigenschaft.
  4. Welche Werte muss man eingeben, damit das magische Quadrat alle Zahlen von 1 bis 16 enthält?

taschenrechner_3_teil.py.txt

at = input("Gib einen Wert für a ein:")
bt = input("Gib einen Wert für b ein:")
a = int(at)
b=int(bt)
print("Die Summe aller Reihen, Spalten und Diagonalen ist:",a*21 + b)
# Magisches Quadrat ausgeben:
print("------------------------------------------------------------")
print(a+b, a, 12*a, 7*a)
print(11*a, 8*a, b, 2*a)
print(5*a, 10*a, 3*a, 3*a + b)
print(4*a, 2*a + b, 6*a, 9*a)
print("------------------------------------------------------------")

Das erweiterte Python-Programm:

taschenrechner_3.py.txt

at = input("Gib einen Wert für a ein:")
bt = input("Gib einen Wert für b ein:")
a = int(at)
b=int(bt)
print("Die Summe aller Reihen, Spalten und Diagonalen ist:",a*21 + b)
# Magisches Quadrat ausgeben:
print("------------------------------------------------------------")
print(a+b, a, 12*a, 7*a)
print(11*a, 8*a, b, 2*a)
print(5*a, 10*a, 3*a, 3*a + b)
print(4*a, 2*a + b, 6*a, 9*a)
print("------------------------------------------------------------")

z1 = a+ b + a + 12*a + 7*a
z2 = 11*a + 8*a + b + 2*a
z3 = 5*a + 10*a + 3*a + 3*a + b
z4 = 4*a + 2*a + b + 6*a + 9*a

s1 = a+b + 11*a + 5*a + 4*a
s2 = a + 8*a + 10*a + 2*a + b
s3 = 12*a + b + 3*a + 6*a
s4 = 7*a + 2*a + 3*a + b + 9*a

d1 = a+b + 8*a + 3*a + 9*a
d2 = 7*a + b + 10*a + 4*a

print("z1=", z1)
print("z2=", z2)
print("z3=", z3)
print("z4=", z4)
print("s1=", s1)
print("s2=", s2)
print("s3=", s3)
print("s4=", s4)
print("d1=", d1)
print("d2=", d2)

Wenn man die entsprechenden Summen, wie in dem Programm angegeben, bildet, erkennt man die magische Eigenschaft. Denn alle Summen haben den Wert 21*a + b

 

 

Aufgabe 3

Prüfe mit einem Python-Programm, ob 17 (19, 21) tatsächlich eine Primzahl ist.

In dem Jupyter-Notebook, das du hier starten kannst, findest du in dem ersten Teil die Möglichkeit, Python als Taschenrechner zu nutzen.

Python zum Rechnen

 

 

 

 

Impressum
© 2023  Net-Schulbuch.de
10.00  0.1161  8.1.28