Python에서 Tip and Split 계산기를 만드는 방법을 알아보겠습니다.
Python 기술을 연습하기 위해 빌드할 수 있는 훌륭한 개인 프로젝트입니다. 또한 이 자습서에서는 명령줄 도구와 GUI 도구의 두 가지 방법으로 응용 프로그램을 만드는 방법을 알려줍니다.
목차
시사
우리는 두 가지 방법으로 애플리케이션을 구축할 것입니다. 먼저 사용자에게 입력을 요청하고 출력을 작성하는 간단한 Python 셸 스크립트를 빌드합니다.
둘째, 프로그램에 Tkinter를 사용하여 그래픽 사용자 인터페이스를 제공합니다.
프로그램 사양
이 프로그램은 세 가지 입력을 받습니다.
- 청구 금액
- 팁 비율
- 청구서를 공유하는 사람의 수
이러한 입력을 사용하여 프로그램은 다음 출력을 계산합니다.
- 법안에 대한 각 개인의 기부금
- 팁에 대한 각 사람의 기여도
- 각 개인의 총 기부금
연산
이를 달성하기 위해 Tip and Split 계산기는 아래에 설명된 매우 간단한 알고리즘을 따릅니다.
전제 조건
이 자습서를 따르려면 Python 프로그래밍 언어를 알고 이해해야 합니다. 이 자습서에서는 함수 및 클래스를 비롯한 기본 개념에 대한 지식이 필요합니다.
또한 시스템에 Python이 설치되어 있어야 합니다. 그렇지 않은 경우 Python 웹 사이트로 이동하여 다운로드하십시오. 또는 koreantech.org에는 환경 설정이 전혀 없이 브라우저에서 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의 버튼 클릭 이벤트는 ‘
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
마지막으로 창을 계속 실행하기 위해 창 개체의 mainloop 메서드를 호출합니다.
window.mainloop()
그리고 끝났습니다!
팁 및 분할 계산기 테스트
다음 명령을 사용하여 애플리케이션을 실행할 수 있습니다.
python3 gui.py
그러면 다음과 같이 창이 열립니다.
샘플 입력으로 계산기를 실행할 수 있습니다.
마지막 말
이 자습서에서는 두 가지 방법으로 팁 및 분할 계산기를 만들었습니다. 첫 번째는 터미널 기반 CLI 도구를 사용합니다. 두 번째는 Python의 Tkinter를 사용하는 GUI 도구입니다. 이 자습서에서는 간단한 Python 프로젝트를 빌드하는 방법을 보여줍니다. Python 기술을 연마하거나 연마해야 하는 경우 여기 Datacamp 과정이 있습니다.
다음으로 Python에서 임의 암호 생성기를 만드는 방법을 확인할 수 있습니다.