如何在 Python 中创建提示和拆分计算器
已发表: 2023-01-06让我们学习如何在 Python 中创建 Tip and Split 计算器。
这是一个很棒的个人项目,可以用来练习您的 Python 技能。 此外,本教程将教您如何以两种方式创建应用程序,第一种是作为命令行工具,第二种是作为 GUI 工具。
预习
我们将以两种方式构建应用程序。 首先,我们将构建一个简单的 Python shell 脚本,提示用户输入并写入输出。
其次,我们将使用 Tkinter 为程序提供图形用户界面。
程序规范
该程序接收三个输入:
- 账单金额
- 小费百分比
- 分担账单的人数
使用这些输入,程序将计算以下输出:
- 每个人对账单的贡献
- 每个人对小费的贡献
- 每个人的总贡献
算法
为此,Tip and Split 计算器将遵循下面概述的非常简单的算法:
- 接收输入
: bill_amount
、tip_percentage
、number_of_people
- 通过乘以
bill_amount
*tip_percentage / 100
计算小费amount
- 将
bill_amount
除以number_of_people
得到每个人对账单的贡献。 - 将
tip_amount
除以number_of_people
得到每个人对小费的贡献。 - 最后,将对账单的贡献和小费相加以获得应付总额。
先决条件
要学习本教程,您应该知道并理解 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
使用 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_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>
”表示。 要将事件绑定到事件处理程序,我们使用按钮的绑定方法。 在函数定义下方添加这行代码:
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
最后,为了保持窗口运行,我们调用window
对象的mainloop
方法。
window.mainloop()
我们完成了!
测试 Tip and Split 计算器
您可以使用以下命令运行该应用程序:
python3 gui.py
这应该打开如下窗口:
您可以使用示例输入运行计算器:
最后的话
在本教程中,我们以两种方式创建了小费和拆分计算器。 第一个使用基于终端的 CLI 工具。 第二个是使用 Python 的 Tkinter 的 GUI 工具。 本教程展示了如何构建一个简单的 Python 项目。 如果您需要温习或提高您的 Python 技能,这里有一个 Datacamp 课程。
接下来,您可以查看如何在 Python 中创建随机密码生成器。