Python에서 팁 및 분할 계산기를 만드는 방법
게시 됨: 2023-01-06Python에서 Tip and Split 계산기를 만드는 방법을 알아보겠습니다.
Python 기술을 연습하기 위해 빌드할 수 있는 훌륭한 개인 프로젝트입니다. 또한 이 자습서에서는 명령줄 도구와 GUI 도구의 두 가지 방법으로 응용 프로그램을 만드는 방법을 알려줍니다.
시사
우리는 두 가지 방법으로 애플리케이션을 구축할 것입니다. 먼저 사용자에게 입력을 요청하고 출력을 작성하는 간단한 Python 셸 스크립트를 빌드합니다.
둘째, 프로그램에 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 컴파일러가 있습니다.
명령줄 인터페이스로 계산기 만들기
프로젝트 폴더 생성
시작하려면 시스템의 빈 폴더로 이동합니다. 저의 경우 우분투 22.04를 사용하고 있기 때문에 폴더를 생성하고 터미널을 이용하여 이동합니다. 다음 명령을 입력해야 합니다.
mkdir tip-calculator && cd tip-calculator
파이썬 파일 생성
다음으로 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)
팁 및 분할 계산기 테스트
마지막으로 스크립트 파일은 다음과 같아야 합니다.
# 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>
' 문자열로 표시됩니다. 이벤트를 이벤트 핸들러에 바인딩하기 위해 버튼의 bind 메소드를 사용합니다. 함수 정의 아래에 다음 코드 줄을 추가합니다.
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
마지막으로 창을 계속 실행하기 위해 window
개체의 mainloop
메서드를 호출합니다.
window.mainloop()
그리고 끝났습니다!
팁 및 분할 계산기 테스트
다음 명령을 사용하여 애플리케이션을 실행할 수 있습니다.
python3 gui.py
그러면 다음과 같이 창이 열립니다.
샘플 입력으로 계산기를 실행할 수 있습니다.
마지막 말
이 자습서에서는 두 가지 방법으로 팁 및 분할 계산기를 만들었습니다. 첫 번째는 터미널 기반 CLI 도구를 사용합니다. 두 번째는 Python의 Tkinter를 사용하는 GUI 도구입니다. 이 자습서에서는 간단한 Python 프로젝트를 빌드하는 방법을 보여줍니다. Python 기술을 연마하거나 연마해야 하는 경우 여기 Datacamp 과정이 있습니다.
다음으로 Python에서 임의 암호 생성기를 만드는 방법을 확인할 수 있습니다.