Python3で電卓プログラムを作成する方法
序章
Pythonプログラミング言語は、数値を操作したり数式を評価したりするときに使用する優れたツールです。 この品質は、有用なプログラムを作成するために利用できます。
このチュートリアルでは、Python3でコマンドライン計算プログラムを作成する方法の概要を説明する学習演習を紹介します。 この計算機は基本的な計算しか実行できませんが、このガイドの最後のステップは、コードを改善してより堅牢な計算機を作成する方法の開始点として機能します。
数学演算子、変数、条件文、関数を使用し、ユーザー入力を処理して電卓を作成します。
前提条件
このチュートリアルでは、Python 3をローカルコンピューターにインストールし、プログラミング環境をマシンにセットアップする必要があります。 Pythonをインストールしたり、環境をセットアップしたりする必要がある場合は、オペレーティングシステムに適したガイドに従ってください。
ステップ1—ユーザーに入力を促す
電卓は、人間がコンピューターに解く方程式を提供するときに最もよく機能します。 人間がコンピューターで使用したい番号を入力した時点から、プログラムの作成を開始します。
まず、プログラム用のファイルを作成します。 この例では、テキストエディタnano
を使用して、ファイルにcalculator.py
という名前を付けます。
- nano calculator.py
次に、このファイルにコンテンツを追加してプログラムを実行します。 このプログラムでは、ユーザーに2つの数字を入力させるので、ユーザーに2つの数字の入力を求めるようにプログラムに指示します。 これを行うには、Pythonの組み込みinput()
関数を使用して、キーボードからのユーザー生成入力を受け入れます。 input()
関数の括弧内に、 string を渡してユーザーにプロンプトを表示し、ユーザーの入力を変数に割り当てることができます。 入力を求めるときは、文字列の最後にスペースを含めて、ユーザーの入力とプロンプト文字列の間にスペースを空けると便利な場合があることに注意してください。
number_1 = input('Enter your first number: ')
number_2 = input('Enter your second number: ')
2行を書き込んだ後、実行する前にプログラムを保存する必要があります。 nano
を使用している場合は、CTRL + X
、Y
、ENTER
の順に押すと終了できます。
次のコマンドを使用してプログラムを実行します。
- python calculator.py
これにより、プログラムのプロンプトが開始され、ターミナルウィンドウで応答できます。
OutputEnter your first number: 5
Enter your second number: 7
このプログラムを数回実行して入力を変えると、プロンプトが表示されたら、単語、記号、空白、Enterキーなど、好きなものを入力できることに気付くでしょう。 これは、input()
がデータを文字列として取り込み、数値を探していることを認識していないためです。
このプログラムでは、次の2つの理由で数字を使用する必要があります。
- プログラムが数学計算を実行できるようにする
- ユーザーの入力が数値文字列であることを検証します
電卓のニーズに応じて、input()
関数からの文字列を整数または浮動小数点数に変換することをお勧めします。 このチュートリアルでは、整数が目的に合っているため、input()
関数をint()
関数でラップして、入力を整数データ型に変換します。 :
number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))
ここで、プログラムを実行して2つの整数を入力しても、エラーは発生しません。
OutputEnter your first number: 23
Enter your second number: 674
ただし、文字、記号、またはその他の非整数を入力すると、次のエラーが発生します。
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'
これまで、整数データ型の形式でユーザー入力を格納するために2つの変数を設定しました。 入力をfloatに変換して実験することもできます。
ステップ2—演算子を追加する
プログラムが完了する前に、合計4つの数学演算子を追加します。加算には+
、減算には-
、乗算には*
、除算は/
。
プログラムを作成するときは、各部分が正しく機能していることを確認する必要があるため、追加の設定から始めます。 電卓を使用している人が内容を確認できるように、印刷関数内に2つの数値を追加します。
number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))
print(number_1 + number_2)
プログラムを実行し、プロンプトが表示されたら2つの数字を入力して、期待どおりに機能していることを確認します。
OutputEnter your first number: 8
Enter your second number: 3
11
出力は、プログラムが正しく機能していることを示しています。 ここで、プログラムの実行時にユーザーに完全に通知するためのコンテキストを追加します。 これを行うには、文字列フォーマッターを使用して、テキストを適切にフォーマットし、フィードバックを提供します。 入力している数値と、生成された結果と一緒に使用されている演算子についての確認をユーザーが受け取るようにします。
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)
これで、プログラムを実行すると、プログラムによって実行されている数式をユーザーが確認できるようにする追加の出力が得られます。
OutputEnter your first number: 90
Enter your second number: 717
90 + 717 =
807
文字列フォーマッタを使用すると、ユーザーにより多くのフィードバックが提供されます。
この時点で、追加に使用したのと同じ形式で残りの演算子をプログラムに追加できます。
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
print('{} - {} = '.format(number_1, number_2))
print(number_1 - number_2)
# Multiplication
print('{} * {} = '.format(number_1, number_2))
print(number_1 * number_2)
# Division
print('{} / {} = '.format(number_1, number_2))
print(number_1 / number_2)
ここでは、残りの演算子-
、*
、および/
を上記のプログラムに追加しています。 この時点でプログラムを実行すると、プログラムは上記のすべての操作を実行します。 ただし、一度に1つの操作を実行するようにプログラムを制限する必要があります。 これを行うには、条件付きステートメントを使用します。
ステップ3—条件文を追加する
calculator.py
プログラムの目的は、ユーザーがさまざまな演算子から選択できるようにすることです。 プログラムの上部にいくつかの情報を追加し、選択内容を追加して、その人が何をすべきかを理解できるようにすることから始めます。
三重引用符を使用して、いくつかの異なる行に文字列を記述します。
'''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
'''
このプログラムは、ユーザーが選択するために各演算子記号を使用するため、ユーザーが除算を実行したい場合は、/
と入力します。 ただし、1 for addition
やb for subtraction
など、任意の記号を選択できます。
ユーザーに入力を求めているので、input()
関数を使用します。 文字列をinput()
関数内に配置し、その入力の値をoperation
という名前の変数に渡します。
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: '))
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)
この時点で、プログラムを実行すると、最初のプロンプトで何を入力しても、何も起こりません。 これを修正するには、プログラムにいくつかの条件ステートメントを追加します。 プログラムの構成方法により、if
ステートメントは加算が実行される場所になり、他の各演算子には3つのelse-ifまたはelif
ステートメントがあり、[ X202X]