如何在 Python 中創建提示和拆分計算器

已發表: 2023-01-06

讓我們學習如何在 Python 中創建 Tip and Split 計算器。

這是一個很棒的個人項目,可以用來練習您的 Python 技能。 此外,本教程將教您如何以兩種方式創建應用程序,第一種是作為命令行工具,第二種是作為 GUI 工具。

預習

我們將以兩種方式構建應用程序。 首先,我們將構建一個簡單的 Python shell 腳本,提示用戶輸入並寫入輸出。

截圖來自-2023-01-05-19-30-39

其次,我們將使用 Tkinter 為程序提供圖形用戶界面。

截圖來自-2023-01-05-15-11-29

程序規範

該程序接收三個輸入:

  • 賬單金額
  • 小費百分比
  • 分擔賬單的人數

使用這些輸入,程序將計算以下輸出:

  • 每個人對賬單的貢獻
  • 每個人對小費的貢獻
  • 每個人的總貢獻

算法

為此,Tip and Split 計算器將遵循下面概述的非常簡單的算法:

  1. 接收輸入: bill_amounttip_percentagenumber_of_people
  2. 通過乘以bill_amount * tip_percentage / 100計算小費amount
  3. bill_amount除以number_of_people得到每個人對賬單的貢獻。
  4. tip_amount除以number_of_people得到每個人對小費的貢獻。
  5. 最後,將對賬單的貢獻和小費相加以獲得應付總額。

先決條件

要學習本教程,您應該知道並理解 Python 編程語言。 對於本教程,需要了解基本概念,包括函數和類。

此外,您的系統中應該安裝了 Python。 如果不是,請轉到 Python 網站並下載它。 或者,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

劃分賬單和小費以獲得每個人對兩人的貢獻

# 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

顯示結果

最後將結果輸出給用戶。

 # Displayinnng the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)

測試 Tip and Split 計算器

最後,您的腳本文件應如下所示:

 # 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 構建 Tip and Split 計算器

在本教程的下一部分中,我們將實現相同的應用程序,但使用圖形用戶界面。 要構建 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")

上面的代碼創建了一個包含所有用戶界面小部件的窗口。 此外,它還創建了一個將用作窗口標題的標籤。

接下來,它為三個輸入創建了標籤和輸入字段: 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> ”表示。 要將事件綁定到事件處理程序,我們使用按鈕的綁定方法。 在函數定義下方添加這行代碼:

 btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()

最後,為了保持窗口運行,我們調用window對象的mainloop方法。

 window.mainloop()

我們完成了!

測試 Tip and Split 計算器

您可以使用以下命令運行該應用程序:

 python3 gui.py

這應該打開如下窗口:

截圖來自-2023-01-05-20-27-26

您可以使用示例輸入運行計算器:

截圖來自-2023-01-05-20-29-09

最後的話

在本教程中,我們以兩種方式創建了小費和拆分計算器。 第一個使用基於終端的 CLI 工具。 第二個是使用 Python 的 Tkinter 的 GUI 工具。 本教程展示瞭如何構建一個簡單的 Python 項目。 如果您需要溫習或提高您的 Python 技能,這裡有一個 Datacamp 課程。

接下來,您可以查看如何在 Python 中創建隨機密碼生成器。