Python でチップとスプリットの計算機を作成する方法

公開: 2023-01-06

Python で Tip and Split 計算機を作成する方法を学びましょう。

これは、Python のスキルを練習するために構築する優れた個人プロジェクトです。 さらに、このチュートリアルでは、2 つの方法でアプリケーションを作成する方法を説明します。1 つ目はコマンド ライン ツールとして、2 つ目は GUI ツールです。

プレビュー

2 つの方法でアプリケーションをビルドします。 最初に、ユーザーに入力を求めて出力を書き込む単純な Python シェル スクリプトを作成します。

スクリーンショット-2023-01-05-19-30-39 から

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

スクリーンショット-2023-01-05-15-11-29 から

プログラム仕様

プログラムは 3 つの入力を受け取ります。

  • お会計金額
  • チップの割合
  • 請求書を共有する人数

これらの入力を使用して、プログラムは次の出力を計算します。

  • 法案への各人の貢献
  • 一人一人のチップへの貢献
  • 一人一人の貢献度合計

アルゴリズム

これを実現するために、Tip and Split 計算機は、以下に概説する非常に単純なアルゴリズムに従います。

  1. 入力を受け取ります: bill_amounttip_percentagenumber_of_people
  2. bill_amount * tip_percentage / 100を掛けて、チップのamountを計算します。
  3. 請求額をnumber_of_peoplebill_amountて、請求書に対する各人の貢献度を取得します。
  4. tip_amountnumber_of_peopleで割って、各人のチップへの貢献度を取得します。
  5. 最後に、請求書への寄付とチップを追加して、支払うべき合計金額を取得します。

前提条件

このチュートリアルに従うには、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
スクリーンショット-2023-01-05-19-32-16 から

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_amounttip_percentagenumber_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

これにより、次のようにウィンドウが開きます。

スクリーンショット-2023-01-05-20-27-26 から

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

スクリーンショット-2023-01-05-20-29-09 から

最後の言葉

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

次に、Python でランダム パスワード ジェネレーターを作成する方法を確認できます。