Python でチップとスプリットの計算機を作成する方法
公開: 2023-01-06Python で Tip and Split 計算機を作成する方法を学びましょう。
これは、Python のスキルを練習するために構築する優れた個人プロジェクトです。 さらに、このチュートリアルでは、2 つの方法でアプリケーションを作成する方法を説明します。1 つ目はコマンド ライン ツールとして、2 つ目は GUI ツールです。
プレビュー
2 つの方法でアプリケーションをビルドします。 最初に、ユーザーに入力を求めて出力を書き込む単純な Python シェル スクリプトを作成します。

次に、Tkinter を使用してプログラムにグラフィカル ユーザー インターフェイスを提供します。

プログラム仕様
プログラムは 3 つの入力を受け取ります。
- お会計金額
- チップの割合
- 請求書を共有する人数
これらの入力を使用して、プログラムは次の出力を計算します。
- 法案への各人の貢献
- 一人一人のチップへの貢献
- 一人一人の貢献度合計
アルゴリズム
これを実現するために、Tip and Split 計算機は、以下に概説する非常に単純なアルゴリズムに従います。
- 入力を受け取ります
: bill_amount
、tip_percentage
、number_of_people
-
bill_amount
*tip_percentage / 100
を掛けて、チップのamount
を計算します。 - 請求額を
number_of_people
でbill_amount
て、請求書に対する各人の貢献度を取得します。 -
tip_amount
をnumber_of_people
で割って、各人のチップへの貢献度を取得します。 - 最後に、請求書への寄付とチップを追加して、支払うべき合計金額を取得します。
前提条件
このチュートリアルに従うには、Python プログラミング言語を理解している必要があります。 このチュートリアルでは、関数やクラスなどの基本概念の知識が必要です。
さらに、システムに Python がインストールされている必要があります。 そうでない場合は、Python の Web サイトにアクセスしてダウンロードしてください。 あるいは、Geekflare にはオンラインの Python コンパイラがあり、環境をまったく設定せずにブラウザで Python コードを実行できます。
コマンド ライン インターフェイスを使用した電卓のビルド
プロジェクト フォルダを作成する
まず、システム内の空のフォルダーに移動します。 私の場合、Ubuntu 22.04 を使用しているため、フォルダーを作成し、ターミナルを使用してフォルダーに移動します。 次のコマンドを入力する必要があります。
mkdir tip-calculator && cd tip-calculator
Python ファイルを作成する
次に、Python スクリプトを記述するスクリプト ファイルを作成します。 私の場合は、 touch
コマンドを使用してこれを行います。
touch main.py
お気に入りのコード エディタでスクリプト ファイルを開く
スクリプトへのコードの書き込みを開始するには、お気に入りのコード エディターでファイルを開きます。 ターミナルベースのテキストエディタであるnano
を使用します。
nano main.py
入力を受け取る
これが完了したら、次のコード行をファイルの先頭に追加できます。
# Receiving input for bill amount as a floating point number bill_amount = float(input("Bill amount: ")) # Receiving input for the tip percentage as a floating point number tip_percentage = float(input("Tip percentage: ")) # Receiving the input for the number of people as an integer number_of_people = int(input("Number of people: "))
基本的に、これは入力を受け取り、各入力のデータ型を文字列から最も適切な型にキャストします。
チップの金額を計算する
次に、チップのパーセンテージに請求金額を掛けて、チップの金額を計算します。
tip_amount = bill_amount * tip_percentage / 100
請求書とチップを分割して、2 人への各人の貢献を得る
# Calculating each person's bill contribution bill_contribution = bill_amount / number_of_people # Calculating each person's tip contribution tip_contribution = tip_amount / number_of_people
総貢献を計算する
次に、個々の貢献を追加して、1 人あたりの合計貢献を決定します。
total_contribution = bill_contribution + tip_contribution
結果を表示する
最後に、結果をユーザーに出力します。
# Displayinnng the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
チップとスプリット計算機のテスト
最終的に、スクリプト ファイルは次のようになります。
# Receiving input for bill amount as a floating point number bill_amount = float(input("Bill amount: ")) # Receiving input for the tip percentage as a floating point number tip_percentage = float(input("Tip percentage: ")) # Receiving the input for the number of people as an integer number_of_people = int(input("Number of people: ")) tip_amount = bill_amount * tip_percentage / 100 # Calculating each person's bill contribution bill_contribution = bill_amount / number_of_people # Calculating each person's tip contribution tip_contribution = tip_amount / number_of_people total_contribution = bill_contribution + tip_contribution # Displaying the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
この時点で、次のコマンドを使用してアプリケーションを自由にテスト実行してください。

python3 main.py

GUI を使用したチップとスプリットの計算機の構築
このチュートリアルの次の部分では、同じアプリケーションを実装しますが、グラフィカル ユーザー インターフェイスを使用します。 GUI を構築するには、Tkinter というパッケージを使用します。
セットアップ
Tkinter は、Python の標準ライブラリに組み込まれているパッケージです。 これは、Python をインストールしたときにデフォルトでインストールされたことを意味します。
ただし、デフォルトで Python がインストールされている Linux マシンでは、スペースを節約するために TKinter はプリインストールされていません。 したがって、次のコマンドを使用して手動でインストールする必要があります。
sudo apt-get install python3-tk
プロジェクト ファイルを作成する
まず、Python スクリプトを保存するファイルを作成します。 ファイルを作成したら、好みのテキスト エディターで開きます。
touch gui.py
Tkinter のインポート
次に、ファイルの先頭に次の行を追加して、Tkinter パッケージをインポートします。
import tkinter from tk
ユーザー インターフェイスを作成する
次に、ユーザー インターフェイスの作成を開始できます。
# Creating the window window = tk.Tk() # Creating the Window title tk.Label(text="Tip and Split Calculator").pack() # Create an input field tk.Label(text="Enter bill amount").pack() ent_bill = tk.Entry(width=40) ent_bill.pack() # Create and entry for the tip percentage tk.Label(text="Enter tip percentage").pack() ent_tip = tk.Entry(width=40) ent_tip.pack() # Create an entry for the number of people tk.Label(text="Enter the number of people").pack() ent_people = tk.Entry(width=40) ent_people.pack() # Create the Enter button btn_enter = tk.Button(text="Enter")
上記のコードは、すべてのユーザー インターフェイス ウィジェットを含むウィンドウを作成しました。 さらに、ウィンドウのタイトルとして機能するラベルを作成しました。
次に、3 つの入力 ( bill_amount
、 tip_percentage
、 number_of_people
) のラベルと入力フィールドを作成しました。 最後に、ユーザーがクリックして計算を実行するボタンを作成しました。
出力を計算する関数を作成する
この後、Enter ボタンのクリックを処理する関数を作成できます。 この関数は、入力フィールドの値を取得し、それらを使用して、前述のアルゴリズムを使用して出力を計算します。 最後に、出力を表示してウィンドウを更新するためのラベルを作成します。
def handle_click(event): # Collecting the inputs from the entry fields using the get method # Also type casting the inputs from the default string data type bill_amount = float(ent_bill.get()) tip_percentage = float(ent_tip.get()) number_of_people = int(ent_people.get()) # Calcuating the amount to be paid as a tip tip_amount = bill_amount * tip_percentage / 100 # Calculating the bill contribution of each person at the table bill_contribution = bill_amount / number_of_people # Calculating the tip contribution of each person at the table tip_contribution = tip_amount / number_of_people # Calculating the total contribution of each person total_contribution = bill_contribution + tip_contribution # Creating the output string output = f'Bill per person: {bill_contribution} \n Tip per person: {tip_contribution} \n Total per person: {total_contribution}' # Creating a label for the output text tk.Label(text=output).pack() # Updating the window to reflect the UI changes window.update()
上記の関数のコードは、各主要なステップを説明するコメントを通じて説明されています。
イベント ハンドラをボタンにアタッチする
次に、イベント ハンドラーをボタン クリック イベントにバインドします。 Tkinter のボタン クリック イベントは、文字列 ' <Button-1>
' で表されます。 イベントをイベント ハンドラーにバインドするには、ボタンの bind メソッドを使用します。 関数定義の下に次のコード行を追加します。
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
最後に、ウィンドウを実行し続けるために、 window
オブジェクトのmainloop
メソッドを呼び出します。
window.mainloop()
これで完了です。
チップとスプリット計算機のテスト
次のコマンドを使用してアプリケーションを実行できます。
python3 gui.py
これにより、次のようにウィンドウが開きます。

サンプル入力で計算機を実行できます。

最後の言葉
このチュートリアルでは、2 つの方法でチップとスプリットの計算機を作成しました。 1 つ目は、端末ベースの CLI ツールを使用します。 2 つ目は、Python の Tkinter を使用した GUI ツールです。 このチュートリアルでは、単純な Python プロジェクトをビルドする方法を示します。 Python のスキルをブラッシュアップまたは磨く必要がある場合は、Datacamp コースをご利用ください。
次に、Python でランダム パスワード ジェネレーターを作成する方法を確認できます。