So erstellen Sie ein einfaches Taschenrechnerprogramm in Python 3

Einführung

Die Programmiersprache Python ist ein großartiges Werkzeug, um mit Zahlen zu arbeiten und mathematische Ausdrücke auszuwerten. Diese Qualität kann genutzt werden, um nützliche Programme zu erstellen.

In diesem Tutorial wird eine Lernübung vorgestellt, mit der Sie ein einfaches Kommandozeilenrechnerprogramm in Python 3 erstellen können. Während wir einen möglichen Weg durchlaufen, um dieses Programm zu erstellen, gibt es viele Möglichkeiten, den Code zu verbessern und einen stabileren Taschenrechner zu erstellen.

Wir verwenden math operator, https://www.digitalocean.com / community / tutorials / wie man Variablen in Python 3 benutzt [variables], https://www.digitalocean.com/community/tutorials/how-to-write-conditional-statements-in-python- 3-2 [bedingte Anweisungen], functions, und verarbeiten Sie Benutzereingaben, um unseren Rechner zu erstellen.

Voraussetzungen

Für dieses Lernprogramm sollten Sie Python 3 auf Ihrem lokalen Computer installiert und eine Programmierumgebung auf dem Computer eingerichtet haben. Wenn Sie Python installieren oder die Umgebung einrichten müssen, können Sie dies unter https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local- tun. Programmierumgebung für Python-3 [entsprechende Anleitung für Ihr Betriebssystem].

Schritt 1 - Benutzer zur Eingabe auffordern

Taschenrechner funktionieren am besten, wenn ein Mensch Gleichungen bereitstellt, die der Computer lösen kann. Wir werden unser Programm an dem Punkt schreiben, an dem der Mensch die Zahlen eingibt, mit denen der Computer arbeiten soll.

Dazu verwenden wir die in Python integrierte Funktion "+ input () ", mit der vom Benutzer über die Tastatur generierte Eingaben akzeptiert werden. Innerhalb der Klammern der Funktion " input () +" können wir eine string übergeben, um den Benutzer aufzufordern . Wir weisen die Benutzereingaben einer Variablen zu.

Für dieses Programm möchten wir, dass der Benutzer zwei Zahlen eingibt. Lassen Sie das Programm also zwei Zahlen eingeben. Wenn Sie nach einer Eingabe fragen, sollten Sie am Ende unserer Zeichenfolge ein Leerzeichen einfügen, damit zwischen der Benutzereingabe und der Eingabeaufforderung ein Leerzeichen bleibt.

number_1 = input('Enter your first number: ')
number_2 = input('Enter your second number: ')

Nachdem wir unsere beiden Zeilen geschrieben haben, sollten wir das Programm speichern, bevor wir es ausführen. Wir können dieses Programm "+ calculator.py " aufrufen und in einem Terminalfenster das Programm mit dem Befehl " python calculator.py +" in unserer Programmierumgebung ausführen. Sie sollten in der Lage sein, auf jede Eingabeaufforderung hin in das Terminalfenster zu tippen.

OutputEnter your first number:
Enter your second number:

Wenn Sie dieses Programm einige Male ausführen und Ihre Eingabe ändern, werden Sie feststellen, dass Sie nach Aufforderung alles eingeben können, einschließlich Wörter, Symbole, Leerzeichen oder nur die Eingabetaste. Dies liegt daran, dass "+ input () +" Daten als strings einliest und nicht weiß, dass wir das sind auf der Suche nach einer Nummer.

Wir möchten eine Zahl in diesem Programm aus zwei Gründen verwenden: 1) um das Programm in die Lage zu versetzen, mathematische Berechnungen durchzuführen, und 2) um zu bestätigen, dass die Benutzereingabe eine numerische Zeichenfolge ist.

Abhängig von unseren Anforderungen an den Taschenrechner möchten wir möglicherweise die Zeichenfolge, die von der Funktion "+ input () " eingeht, in eine Ganzzahl oder eine Gleitkommazahl konvertieren. Für uns passen ganze Zahlen zu unserem Zweck, deshalb werden wir die Funktion ` input () ` in die Funktion ` int () +` einschließen, um https://www.digitalocean.com/community/tutorials/how- in-python-3-datentypen konvertieren [konvertieren] Sie die Eingabe in die integer data Art.

calculator.py

number_1 = input('Enter your first number: ')
number_2 = input('Enter your second number: ')

Wenn wir nun zwei Ganzzahlen eingeben, wird kein Fehler angezeigt:

OutputEnter your first number:
Enter your second number:

Bei der Eingabe von Buchstaben, Symbolen oder anderen Nicht-Ganzzahlen tritt jedoch der folgende Fehler auf:

OutputEnter your first number: sammy
Traceback (most recent call last):
 File "testing.py", line 1, in <module>
   number_1 = int(input('Enter your first number: '))
ValueError: invalid literal for int() with base 10: 'sammy'

Bisher haben wir zwei Variablen eingerichtet, um Benutzereingaben in Form von Ganzzahldatentypen zu speichern. Sie können auch experimentieren, um die Eingabe in Floats umzuwandeln.

Schritt 2 - Hinzufügen von Operatoren

Bevor unser Programm abgeschlossen ist, fügen wir insgesamt 4 mathematical operator hinzu: + für die Addition, + - + für die Subtraktion, + * + für die Multiplikation und + / + für die Division.

Während wir unser Programm ausbauen, möchten wir sicherstellen, dass jedes Teil richtig funktioniert. Deshalb beginnen wir hier mit der Einrichtung von Addition. Wir fügen die beiden Zahlen in einer Druckfunktion hinzu, damit die Person, die den Taschenrechner verwendet, die Ausgabe sehen kann.

calculator.py

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))

Führen Sie das Programm aus und geben Sie zwei Zahlen ein, wenn Sie dazu aufgefordert werden, um sicherzustellen, dass es wie erwartet funktioniert:

OutputEnter your first number:
Enter your second number:

Die Ausgabe zeigt uns, dass das Programm ordnungsgemäß funktioniert. Fügen Sie also einen weiteren Kontext hinzu, damit der Benutzer während der Laufzeit des Programms umfassend informiert wird. Zu diesem Zweck verwenden wir string formatatters, um unseren Text richtig zu formatieren und Rückmeldung geben. Wir möchten, dass der Benutzer eine Bestätigung über die von ihm eingegebenen Zahlen und den Operator erhält, der neben dem erzeugten Ergebnis verwendet wird.

calculator.py

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))


print(number_1 + number_2)

Wenn wir das Programm jetzt ausführen, erhalten wir eine zusätzliche Ausgabe, mit der der Benutzer den vom Programm ausgeführten mathematischen Ausdruck bestätigen kann.

OutputEnter your first number:
Enter your second number:
+  =

Durch die Verwendung der Zeichenfolgenformatierer erhalten die Benutzer mehr Feedback.

An dieser Stelle können Sie den Rest der Operatoren mit demselben Format zum Programm hinzufügen, das wir zum Hinzufügen verwendet haben:

calculator.py

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))

# Addition
print('{} + {} = '.format(number_1, number_2))
print(number_1 + number_2)

# Subtraction



# Multiplication



# Division

Wir haben die restlichen Operatoren "+ - ", " * " und " / +" zum obigen Programm hinzugefügt. Wenn wir das Programm zu diesem Zeitpunkt ausführen, führt das Programm alle oben genannten Vorgänge aus. Wir möchten das Programm jedoch auf jeweils nur einen Vorgang beschränken. Dazu verwenden wir bedingte Anweisungen.

Schritt 3 - Bedingte Anweisungen hinzufügen

Mit unserem Programm + calculator.py + möchten wir, dass der Benutzer zwischen den verschiedenen Operatoren wählen kann. Beginnen wir also mit dem Hinzufügen einiger Informationen am oberen Rand des Programms und einer Auswahl, damit die Person weiß, was zu tun ist.

Wir werden einen String in ein paar verschiedenen Zeilen mit dreifachen Anführungszeichen schreiben:

'''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
'''

Wir verwenden jedes der Operatorsymbole, damit Benutzer ihre Wahl treffen können. Wenn der Benutzer also eine Division durchführen möchte, geben sie "+ / +" ein. Wir können jedoch beliebige Symbole auswählen, wie z. B. "+1" für Addition + "oder" + b "für Subtraktion +".

Da wir Benutzer zur Eingabe auffordern, möchten wir die Funktion + input () + verwenden. Wir werden den String in die Funktion "+ input () " einfügen und den Wert dieser Eingabe an eine Variable übergeben, die wir " operation +" nennen.

calculator.py

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))

print('{} + {} = '.format(number_1, number_2))
print(number_1 + number_2)

print('{} - {} = '.format(number_1, number_2))
print(number_1 - number_2)

print('{} * {} = '.format(number_1, number_2))
print(number_1 * number_2)

print('{} / {} = '.format(number_1, number_2))
print(number_1 / number_2)

Wenn wir jetzt unser Programm ausführen, spielt es keine Rolle, was wir bei der ersten Eingabeaufforderung eingeben. Fügen wir also unsere bedingten Anweisungen in das Programm ein. Aufgrund der Struktur unseres Programms werden in der Anweisung "+ if ", in der die Addition ausgeführt wird, 3 else-if- oder " elif " -Anweisungen für jeden der anderen Operatoren und die Anweisung " else +" angegeben wird eingerichtet, um einen Fehler zu behandeln, wenn die Person kein Bedienersymbol eingegeben hat.

calculator.py

operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
''')

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))

if operation == '+':
   print('{} + {} = '.format(number_1, number_2))
   print(number_1 + number_2)

elif operation == '-':
   print('{} - {} = '.format(number_1, number_2))
   print(number_1 - number_2)

elif operation == '*':
   print('{} * {} = '.format(number_1, number_2))
   print(number_1 * number_2)

elif operation == '/':
   print('{} / {} = '.format(number_1, number_2))
   print(number_1 / number_2)

else:
   print('You have not typed a valid operator, please run the program again.')

Zum Durchlaufen dieses Programms wird der Benutzer zunächst aufgefordert, ein Bediensymbol einzugeben. Wir sagen, der Benutzer gibt "+ * " ein, um zu multiplizieren. Als nächstes fragt das Programm nach 2 Zahlen und der Benutzer gibt " 58 " und " 40 +" ein. Zu diesem Zeitpunkt zeigt das Programm die ausgeführte Gleichung und das Produkt.

OutputPlease type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division

Please enter the first number:
Please enter the second number:
*  =

Aufgrund der Struktur des Programms erhält der Benutzer, wenn er bei der ersten Eingabeaufforderung nach einer Operation gefragt wird, "+% +", erst nach Eingabe von Zahlen eine Rückmeldung, wenn er es erneut versucht. Möglicherweise möchten Sie andere mögliche Optionen für den Umgang mit verschiedenen Situationen in Betracht ziehen.

Zu diesem Zeitpunkt haben wir ein voll funktionsfähiges Programm, aber wir können keinen zweiten oder dritten Vorgang ausführen, ohne das Programm erneut auszuführen. Fügen Sie dem Programm also weitere Funktionen hinzu.

Schritt 4 - Funktionen definieren

Um das Programm so oft ausführen zu können, wie der Benutzer möchte, definieren wir einige Funktionen. Fügen wir zunächst unseren vorhandenen Codeblock in eine Funktion ein. Wir benennen die Funktion mit "+ berechne () +" und fügen der Funktion selbst eine zusätzliche Einrückungsebene hinzu. Um sicherzustellen, dass das Programm ausgeführt wird, rufen wir die Funktion am Ende unserer Datei auf.

calculator.py

# Define our function

   operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
''')

   number_1 = int(input('Please enter the first number: '))
   number_2 = int(input('Please enter the second number: '))

   if operation == '+':
       print('{} + {} = '.format(number_1, number_2))
       print(number_1 + number_2)

   elif operation == '-':
       print('{} - {} = '.format(number_1, number_2))
       print(number_1 - number_2)

   elif operation == '*':
       print('{} * {} = '.format(number_1, number_2))
       print(number_1 * number_2)

   elif operation == '/':
       print('{} / {} = '.format(number_1, number_2))
       print(number_1 / number_2)

   else:
       print('You have not typed a valid operator, please run the program again.')

# Call calculate() outside of the function

Als nächstes erstellen wir eine zweite Funktion, die aus mehr bedingten Anweisungen besteht. In diesem Codeblock möchten wir dem Benutzer die Wahl geben, ob er erneut berechnen möchte oder nicht. Wir können dies auf der Grundlage unserer bedingten Taschenrechneranweisungen begründen. In diesem Fall verfügen wir jedoch nur über ein "+ if ", ein " elif " und ein " else +", um Fehler zu behandeln.

Wir benennen diese Funktion "+ again () " und fügen sie unterhalb unseres " def berechne (): +" - Codeblocks hinzu.

calculator.py

...
# Define again() function to ask user if they want to use the calculator again


   # Take input from user





   # If user types Y, run the calculate() function



   # If user types N, say good-bye to the user and end the program



   # If user types another key, run the function again



# Call calculate() outside of the function
calculate()

Obwohl es bei der obigen else-Anweisung eine Fehlerbehandlung gibt, könnten wir wahrscheinlich ein wenig besser tun, um beispielsweise zusätzlich zu den Großbuchstaben "+ Y " und " n " auch ein Kleinbuchstaben " Y " und "" zu akzeptieren + N +. Fügen Sie dazu die Funktion string + str.upper () + hinzu:

calculator.py

...
def again():
   calc_again = input('''
Do you want to calculate again?
Please type Y for YES or N for NO.
''')

   # Accept 'y' or 'Y' by adding str.upper()
   if calc_again == 'Y':
       calculate()

   # Accept 'n' or 'N' by adding str.upper()
   elif calc_again == 'N':
       print('See you later.')

   else:
       again()
...

An dieser Stelle sollten wir die Funktion + again () + am Ende der Funktion + berechne () + hinzufügen, damit wir den Code auslösen können, der den Benutzer fragt, ob er fortfahren möchte oder nicht.

calculator.py

def calculate():
   operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
''')

   number_1 = int(input('Please enter the first number: '))
   number_2 = int(input('Please enter the second number: '))

   if operation == '+':
       print('{} + {} = '.format(number_1, number_2))
       print(number_1 + number_2)

   elif operation == '-':
       print('{} - {} = '.format(number_1, number_2))
       print(number_1 - number_2)

   elif operation == '*':
       print('{} * {} = '.format(number_1, number_2))
       print(number_1 * number_2)

   elif operation == '/':
       print('{} / {} = '.format(number_1, number_2))
       print(number_1 / number_2)

   else:
       print('You have not typed a valid operator, please run the program again.')

   # Add again() function to calculate() function


def again():
   calc_again = input('''
Do you want to calculate again?
Please type Y for YES or N for NO.
''')

   if calc_again.upper() == 'Y':
       calculate()
   elif calc_again.upper() == 'N':
       print('See you later.')
   else:
       again()

calculate()

Sie können Ihr Programm jetzt mit "+ python calculator.py +" in Ihrem Terminalfenster ausführen und so oft berechnen, wie Sie möchten.

Schritt 5 - Verbesserung des Codes

Wir haben jetzt ein schönes, voll funktionsfähiges Programm. Sie können jedoch noch viel mehr tun, um diesen Code zu verbessern. Sie können beispielsweise eine Begrüßungsfunktion hinzufügen, mit der die Programmteilnehmer am oberen Rand des Programmcodes begrüßt werden:

def welcome():
   print('''
Welcome to Calculator
''')
...
# Don’t forget to call the function
welcome()
calculate()

Es besteht die Möglichkeit, im gesamten Programm mehr Fehlerbehandlung einzuführen. Für den Anfang können Sie sicherstellen, dass das Programm weiterhin ausgeführt wird, auch wenn der Benutzer bei der Eingabe einer Nummer "+ Plankton " eingibt. Da das Programm gerade ausgeführt wird, wird dem Benutzer eine Fehlermeldung angezeigt, wenn " number_1 " und " number_2 " keine ganzen Zahlen sind, und das Programm wird angehalten. In Fällen, in denen der Benutzer den Divisionsoperator (" / ") auswählt und " 0 " für seine zweite Nummer (" number_2 ") eingibt, erhält der Benutzer außerdem einen " ZeroDivisionError: Division durch Null " Error. Dazu möchten Sie möglicherweise die Ausnahmebehandlung mit dem Befehl ` try …​ verwenden. außer + `Anweisung.

Wir haben uns auf 4 Operatoren beschränkt, aber Sie können weitere Operatoren hinzufügen, wie in:

...
   operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division


''')
...
# Don’t forget to add more conditional statements to solve for power and modulo

Darüber hinaus möchten Sie möglicherweise einen Teil des Programms mit einer Schleifenanweisung neu schreiben.

Es gibt viele Möglichkeiten, mit Fehlern umzugehen und jedes Codierungsprojekt zu ändern und zu verbessern. Es ist wichtig zu bedenken, dass es keinen einzigen richtigen Weg gibt, um ein Problem zu lösen, mit dem wir konfrontiert werden.

Fazit

In diesem Tutorial wurde ein möglicher Ansatz zum Erstellen eines Taschenrechners in der Befehlszeile vorgestellt. Nach Abschluss dieses Lernprogramms können Sie den Code ändern und verbessern sowie an anderen Projekten arbeiten, für die Benutzereingaben in der Befehlszeile erforderlich sind.

Wir sind daran interessiert, Ihre Lösungen für dieses einfache Kommandozeilenrechner-Projekt zu sehen! Bitte zögern Sie nicht, Ihre Taschenrechnerprojekte in den Kommentaren unten zu posten.

Als nächstes möchten Sie vielleicht ein textbasiertes Spiel wie Tic-Tac-Toe oder Rock-Paper-Scissors erstellen.