Python'da Bahşiş ve Bölme Hesaplayıcısı Nasıl Oluşturulur

Yayınlanan: 2023-01-06

Python'da bir Tip and Split hesaplayıcısının nasıl oluşturulacağını öğrenelim.

Python becerilerinizi geliştirmek için inşa edebileceğiniz harika bir kişisel projedir. Ayrıca, bu eğitim size uygulamayı iki şekilde nasıl oluşturacağınızı öğretecek, ilk olarak bir komut satırı aracı ve ikinci olarak bir GUI aracı olarak.

Ön izleme

Uygulamayı iki şekilde oluşturacağız. İlk olarak, kullanıcıdan girdi isteyen ve çıktıyı yazan basit bir Python kabuk betiği oluşturacağız.

2023-01-05-19-30-39 ekran görüntüsü

İkinci olarak, programa Tkinter kullanarak bir Grafik Kullanıcı Arayüzü vereceğiz.

2023-01-05-15-11-29 ekran görüntüsü

Program Şartnamesi

Program üç girdi alır:

  • fatura tutarı
  • Bahşiş yüzdesi
  • Faturayı paylaşan kişi sayısı

Program bu girdileri kullanarak aşağıdaki çıktıyı hesaplayacaktır:

  • Her kişinin faturaya katkısı
  • Bahşiş için her kişinin katkısı
  • Her kişinin toplam katkısı

algoritma

Bunu başarmak için Bahşiş ve Ayırma hesaplayıcısı, aşağıda özetlenen çok basit bir algoritmayı izleyecektir:

  1. Girişleri alın : bill_amount , tip_percentage , number_of_people
  2. bill_amount * tip_percentage / 100 ile çarparak bahşiş amount hesaplayın
  3. Her kişinin faturaya katkısını almak için number_of_people bill_amount .
  4. Her kişinin bahşiş katkısını almak için number_of_people tip_amount .
  5. Son olarak, ödenecek toplam tutarı almak için faturaya katkıları ve bahşişi ekleyin.

Önkoşullar

Bu öğreticiyi takip etmek için Python programlama dilini bilmeli ve anlamalısınız. Bu öğretici için, işlevler ve sınıflar da dahil olmak üzere temel kavramlar bilgisi gereklidir.

Ayrıca sisteminizde Python kurulu olmalıdır. Değilse, Python web sitesine gidin ve indirin. Alternatif olarak Geekflare, Python kodunuzu hiçbir ortam kurulumu olmadan tarayıcıda çalıştırabileceğiniz çevrimiçi bir Python derleyicisine sahiptir.

Hesap Makinesini Komut Satırı Arayüzüyle Oluşturma

Bir Proje Klasörü Oluşturun

Başlamak için, sisteminizde boş bir klasöre gidin. Benim durumumda, bir klasör oluşturmak ve terminali kullanarak ona gitmek için Ubuntu 22.04 kullanıyorum; Aşağıdaki komutu girmem gerekiyor:

 mkdir tip-calculator && cd tip-calculator

Python Dosyasını Oluşturun

Ardından, Python betiğini yazacağımız betik dosyasını oluşturun. Benim durumumda, bunu yapmak için touch komutunu kullanacağım:

 touch main.py

Komut Dosyasını Favori Kod Düzenleyicinizle Açın

Komut dosyasına kod yazmaya başlamak için, dosyayı favori kod düzenleyicinizle açın. Terminal tabanlı bir metin editörü olan nano kullanacağım.

 nano main.py

Girdiyi Al

Bunu yaptıktan sonra, dosyanın en üstüne aşağıdaki kod satırlarını ekleyebiliriz:

 # 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: "))

Temel olarak, bu girdiyi alır ve her girdinin veri türünü bir diziden en uygun türe çevirir.

Bahşiş Miktarını Hesapla

Ardından, bahşiş yüzdesini fatura tutarıyla çarparak bahşiş miktarını hesaplıyoruz.

 tip_amount = bill_amount * tip_percentage / 100

Faturayı Böl ve Her Kişinin İkiye Katkısını Almak İçin Bahşiş Ver

 # 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

Toplam Katkıyı Hesaplayın

Ardından, kişi başına toplam katkıyı belirlemek için bireysel katkıları ekleyin.

 total_contribution = bill_contribution + tip_contribution

Sonuçları Görüntüle

Son olarak, sonuçları kullanıcıya çıkarın.

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

Bahşiş ve Ayırma Hesaplayıcısını Test Etme

Son olarak, betik dosyanız şöyle görünmelidir:

 # 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)

Bu noktada, aşağıdaki komutu kullanarak uygulamanızı test etmekten çekinmeyin:

 python3 main.py
2023-01-05-19-32-16 ekran görüntüsü

Bahşiş ve Ayırma Hesaplayıcısını GUI ile Oluşturma

Bu eğitimin bir sonraki bölümünde, aynı uygulamayı bir Grafik Kullanıcı Arayüzü ile uygulayacağız. GUI'yi oluşturmak için Tkinter adlı bir paket kullanacağız.

Kurulum

Tkinter, Python'un Standart Kitaplığında yerleşik bir pakettir. Bu, Python'u kurduğunuzda varsayılan olarak kurulduğu anlamına gelir.

Ancak Python'un varsayılan olarak kurulu olduğu Linux makinelerinde, yerden tasarruf etmek için TKinter önceden kurulmamıştır. Bu nedenle, aşağıdaki komutu kullanarak manuel olarak kurmanız gerekir:

 sudo apt-get install python3-tk

Bir Proje Dosyası Oluşturun

Başlamak için, Python betiğinin depolanacağı bir dosya oluşturun. Dosyayı oluşturduktan sonra tercih ettiğiniz metin düzenleyiciyle açın.

 touch gui.py

Tkinter'ı içe aktar

Ardından, dosyanın başına aşağıdaki satırı ekleyerek Tkinter paketini içe aktarın.

 import tkinter from tk

Kullanıcı Arayüzünü Oluşturun

Ardından, kullanıcı arayüzünü oluşturmaya başlayabiliriz.

 # 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")

Yukarıdaki kod, tüm Kullanıcı Arayüzü widget'larını içeren bir pencere oluşturdu. Ek olarak, pencerenin başlığı olarak hizmet edecek bir etiket oluşturdu.

Ardından, üç girdi için etiketler ve giriş alanları oluşturdu: bill_amount , tip_percentage ve number_of_people . Son olarak, kullanıcının hesaplamayı çalıştırmak için tıklayacağı bir düğme oluşturdu.

Çıktıları Hesaplamak için Bir İşlev Oluşturun

Bundan sonra, Enter düğmesinin tıklanmasını işlemek için bir işlev oluşturabiliriz. Bu işlev, giriş alanlarının değerlerini alacak ve bunları daha önce belirtilen algoritmayı kullanarak çıktıları hesaplamak için kullanacaktır. Son olarak, çıktıyı görüntülemek ve pencereyi güncellemek için bir etiket oluşturacaktır.

 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()

Yukarıdaki işlevdeki kod, her bir ana adımı açıklayan yorumlarla açıklanmıştır.

Olay İşleyiciyi Düğmeye Ekleme

Ardından, olay işleyicisini düğme tıklama olayına bağlarız. Tkinter'daki button click olayı ' <Button-1> ' dizgisi ile temsil edilir. Olayı olay işleyiciye bağlamak için düğmenin bind yöntemini kullanırız. İşlev tanımının altına bu kod satırını ekleyin:

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

Son olarak, pencereyi çalışır durumda tutmak için, window nesnesinin ana mainloop yöntemini çağırıyoruz.

 window.mainloop()

Ve işimiz bitti!

Bahşiş ve Ayırma Hesaplayıcısını Test Etme

Aşağıdaki komutu kullanarak uygulamayı çalıştırabilirsiniz:

 python3 gui.py

Bu, pencereyi aşağıdaki gibi açmalıdır:

2023-01-05-20-27-26 ekran görüntüsü

Hesaplayıcıyı örnek girdi ile çalıştırabilirsiniz:

2023-01-05-20-29-09 ekran görüntüsü

Son sözler

Bu eğitimde, iki şekilde bir bahşiş ve bölme hesap makinesi oluşturduk. İlki, terminal tabanlı bir CLI aracı kullanır. İkincisi, Python'un Tkinter'ını kullanan bir GUI aracıdır. Bu öğretici, basit bir Python projesinin nasıl oluşturulacağını gösterir. Python becerilerinizi tazelemeniz veya cilalamanız gerekiyorsa işte bir Datacamp kursu.

Ardından, Python'da nasıl rastgele bir parola oluşturucu oluşturacağınızı kontrol edebilirsiniz.