Kasa defteri uygulaması hk. yardım

Başlatan aaltay90, 12 Ocak 2021 - 18:28:57

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

aaltay90

Merhaba arkadaşlar. Kendi dükkanımız için kasa defteri uygulaması yapıyorum şimdilik pycharm konsolunda çalıştırıyorum daha sonra kullanıcı arayüzü oluşturacağım ancak takıldığım bir durum var. günlük işlerin fiyat bölümünü hesaplarken sorun yok ancak işi düzeltmek veya silmek istediğimde de silinen ve ya düzeltilen işin fiyatını tekrar topluyor yani değiştirilmiş ürünün fiyatının üzerine tekrar fiyat ekliyor ayrıca işi her listelediğimde fiyat artıyor bu sorunu nasıl çözebilirim?

elif sec==2:    # GÜNLÜK İŞ LİSTELE kod bloğunun altını inceleye bilirsiniz

menu="""
1- Günlük iş gir.
2- Günlük işi listele.
3- Gün sonu kasa.
0- Çıkış
"""
toplamTL=0

gunluk_IS=[]

while True:
    print(menu)
    sec=int(input("Yapmak istediğiniz işlem: "))

    if sec==1:  # GÜNLÜK İŞ GİRİŞİ
        IS=input("İş: ")
        Fiyat=int(input("Fiyat: "))
        Para_Birimi=input("Para birimi: ")
        girilecek_veri={
            "is":IS.upper(),
            "fiyat":Fiyat,
            "para birimi":Para_Birimi.upper()
        }
        gunluk_IS.append(girilecek_veri)
        print("Günlük iş girildi...")

    elif sec==2:    # GÜNLÜK İŞ LİSTELE
        print("{:<4}{:<15}{:<10}{:<5}".format("NO","İŞ","FİYAT","PARA BİRİMİ"))
        for key,value in enumerate(gunluk_IS):
            print("{:<4}{:<15}{:<10}{:<5}".format(key+1,value["is"],value["fiyat"],value["para birimi"]))
        for key, value in enumerate(gunluk_IS):
            toplamTL += value["fiyat"]
        print("Günlük Kazanç: ", toplamTL)
        sil_degistir=int(input("1- Sil / 2- Değiştir / 3- Çıkış / Yapmak istediğin işlem: "))

        if sil_degistir==1: # İŞ SİL
            sil=int(input("Silmek istediğin iş no: "))
            del gunluk_IS[sil-1]
            print("İş silindi...")

        elif sil_degistir==2:   # İŞ DEĞİŞTİR
            IS = input("İş: ")
            Fiyat = int(input("Fiyat: "))
            Para_Birimi = input("Para birimi: ")
            degistirilecek_veri = {
                "is": IS.upper(),
                "fiyat": Fiyat,
                "para birimi": Para_Birimi.upper()
            }
            degistir=int(input("Değiştirmek istediğin iş no: "))
            degis=degistir-1
            gunluk_IS[degis]=degistirilecek_veri
            print("İş değiştirildi...")

        else:
            print("Hatalı işlem...")

    elif sec==3:    # GÜN SONU KASA
        pass
    elif sec==0:    # ÇIKIŞ
        print("Çıkış...")
        break
    else:   # HATALI İŞLEM
        print("Hatalı işlem...")


alquirel

Python diiline hakim olmamakla birlikte genel algoritma mantığı olarak bir tavsiyem olacak.

Toplam fiyatı hesapladığınız şu döngünün öncesinde toplam değişkenini sıfırlardım ben olsam.
Çünkü bu haliyle toplamTL değişkeni sadece program başladığında bir kez sıfır oluyor. Menü-2 her seçildiğinde bir önceki toplamın üstüne tekrar topluyor gibi görünüyor şu haliyle.


        for key, value in enumerate(gunluk_IS):
            toplamTL += value["fiyat"]

aaltay90

#2
Alıntı yapılan: alquirel - 12 Ocak 2021 - 18:37:32
Python diiline hakim olmamakla birlikte genel algoritma mantığı olarak bir tavsiyem olacak.

Toplam fiyatı hesapladığınız şu döngünün öncesinde toplam değişkenini sıfırlardım ben olsam.
Çünkü bu haliyle toplamTL değişkeni sadece program başladığında bir kez sıfır oluyor. Menü-2 her seçildiğinde bir önceki toplamın üstüne tekrar topluyor gibi görünüyor şu haliyle.


        for key, value in enumerate(gunluk_IS):
            toplamTL += value["fiyat"]


Evet hocam haklısın menü-2 her seçildiğinde tekrar topluyor. fikir için teşekkürler.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 12 Ocak 2021 - 18:59:12

Tamamdır arkadaşlar sorunu çözdüm programın en başında toplam değişkenini menü 2 nin içine ekledim menü 2 her seçildiğinde toplam değişmiyor ve silme ve değiştirme işleminde sorun yaşamıyorum.[mention=655136]@alquirel[/mention] saol hocam tavsiye için  :)