Projekt Taschenrechner
Eingabe von Zahlen
Für einen echten Taschenrechner brauchen wir die Möglichkeit einer Eingabe von 2 oder mehr Zahlen.
Eingaben in Python werden mit der Funktion input()
realisiert. Nehmen wir wieder den Code mit der String-Ausgabe und ergänzen ihn in den Zeilen 1 und 2:
zahl_1 = input('1. Zahl eingeben: ')
zahl_2 = input('2. Zahl eingeben: ')
print('Datentyp zahl_1 =', type(zahl_1))
print('Datentyp zahl_2 =', type(zahl_2))
summe = zahl_1 + zahl_2
#differenz = zahl_1 - zahl_2
#produkt = zahl_1 * zahl_2
#quotient = zahl_1 / zahl_2
print('Summe = ', summe, " ist vom Typ : ", type(summe))
#print('Differenz = ', differenz, " ist vom Typ : ", type(differenz))
#print('Produkt = ', produkt, " ist vom Typ : ", type(produkt))
#print('Quotient = ', quotient, " ist vom Typ : ", type(quotient))
Die Funktion führt dazu, dass zuerst auf die Eingabe der zahl_1 gewartet wird (muss man unten in der Kommandozeile eingeben und mit Enter bestätigen), wenn diese erfolgt ist, wird auf die Eingabe von zahl_2 gewartet:
Wie man in der Ausgabe sieht, sind beide Zahlen nun wieder vom Typ String, genau wie die Summe:
Merke: Eingaben sind aber immer vom Typ String!
Wie können wir nun aber damit rechnen?
Dafür gibt es weitere Funktionen, deren Anwendung sich "casting"
nennt. Dabei weist man das Programm an, zum Beispiel einen String
in einen Integer
-Wert umzuwandeln. Aber auch andere "castings"
sind möglich. In unserem Fall wandeln wir aber nur einen "String"
in einen "Integer"
um.
input()
-Funktion in die int()
-Funktion eingebunden wird:
zahl_1 = int(input('1. Zahl eingeben: '))
zahl_2 = int(input('2. Zahl eingeben: '))
print('Datentyp zahl_1 =', type(zahl_1))
print('Datentyp zahl_2 =', type(zahl_2))
summe = zahl_1 + zahl_2
#differenz = zahl_1 - zahl_2
#produkt = zahl_1 * zahl_2
#quotient = zahl_1 / zahl_2
print('Summe = ', summe, " ist vom Typ : ", type(summe))
#print('Differenz = ', differenz, " ist vom Typ : ", type(differenz))
#print('Produkt = ', produkt, " ist vom Typ : ", type(produkt))
#print('Quotient = ', quotient, " ist vom Typ : ", type(quotient))
Das Ergebnis ist jetzt, dass zahl_1
und zahl_2
vom Typ "Integer"
sind, und damit dann auch die Variable summe
:
Damit funktioniert die Berechnung wieder für alle Rechenarten:
Noch ein Hinweis, geben wir statt einer Zahl irgendwelche Buchstaben ein, bricht das Programm mit einer Fehlermeldung ab:
Gleiches gilt aber leider auch für die Eingabe von Fließkommazahlen:
Okay, das können wir erst einmal verschmerzen. Sonst sieht das ja schon ganz gut aus, das Programm wird aber immer nur einmal ausgeführt, nach Abschluss der Berechnung schließt es sich.
Erweitern wir unser Programm also um eine Schleife und lassen wir auch gleich das Rechenzeichen mit einlesen:
# Programmstart
berechnen = True
while berechnen:
zahl_1 = int(input('1. Zahl eingeben: '))
zahl_2 = int(input('2. Zahl eingeben: '))
rechenzeichen = input('Rechenzeichen : ')
if rechenzeichen == '+':
summe = zahl_1 + zahl_2
print('Summe = ', summe)
elif rechenzeichen == '-':
differenz = zahl_1 - zahl_2
print('Differenz = ', differenz)
elif rechenzeichen == '*':
produkt = zahl_1 * zahl_2
print('Produkt = ', produkt)
elif rechenzeichen == '/':
quotient = zahl_1 / zahl_2
print('Quotient = ', quotient)
elif rechenzeichen == 'x':
break
else:
print('Rechenzeichen nicht erkannt')
berechnen = False
Zeile 2 führt eine boolesche Variable ein, wir erinnern uns, also eine Variable, die nur 2 Zustände hat, "True"
also "an" oder "False"
oder "aus".
Die while-Schleife wird solange wieder und wieder durchlaufen, bis sie auf "False"
gesetzt wird. Das geschieht dann, wenn das Rechenzeichen nicht "+", "-", "*", "/" oder "x" ist (Zeile 21).
Bei Eingabe der Grundrechenarten wird die jeweilige Berechnung durchgeführt, bei Eingabe von "x" wird die Schleife mit dem Befehl "break"
verlassen.
Geben wir zum Beispiel ein "n" ein, erfolgt die Ausgabe der Fehlermeldung und das Programm wird beendet, indem der Schalter „berechnen“ auf "False"
gesetzt wird.
Soweit verständlich, oder?
Sehr gut, dann geht es jetzt weiter mit der Funktion eval()
Inhaltsverzeichnis:
1. Vorwort2. Das Projekt
3. Vorarbeiten
4. Projekt Snake
4.1. Der Funktionsumfang
4.2. Die Planung der Umsetzung
4.3. Das Coden
4.3.1. Datentypen in Python
4.3.2. Eingabe von Zahlen
4.3.3. Rechnen mit der Funktion
eval()
4.3.4. Das Fenster mit
PySimpleGui
4.3.5. Die Button
5. Abschluss