如何在 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 中创建随机密码生成器。