Format metodu ile eleman çekemiyorum

Merhabalar arkadaşlar. Babamın işletmesi için satışların kaydını tutan ve daha sonra bunların analizlerini yapacak bir program yazıyorum. Öncelikle dükkandaki ürünlerin ekleneceği sözlük veri tipli bir liste oluşturdum. Daha sonra bu listedeki ürünleri görüntülemek için for döngüsü koydum ve format metodu ile eleman çekmem gerekiyordu. Editör bana hiç bir hata göstermiyor fakat çalıştırdığımda program hata veriyor.

import os

Urunler = dict()

def main():

print("""

[1] Ürün Ekle

[2] Ürünleri Gör

[3] Günlük Satışlar

[4] Haftalık Satışlar

[5] Satış Analizleri

[Q] Çıkış

""")

def UrunEkle():

print("Ürün listenize eklendi!")

print(input("Menu'ye dönmek için enter'a basın!"))

while True:

os.system("cls")

main()

secim = input("select a move  :")

if secim == "1":

    UrunAdi = str(input("Ürün adını giriniz          :"))

    UrunFiyati = float(input("Ürün fiyatini giriniz    :"))

    Urunler[UrunAdi] = UrunFiyati

    UrunEkle()

elif secim == "2":

    for i,j in Urunler.items():

        print("Ürün Adı  : {} Ürün Fiyatı   : {}".format(Urunler[UrunAdi],Urunler[UrunFiyati]

Hata ise şöyle

Lütfen kodlarınızı surada anlatıldığı gibi düzenler misiniz

1 Beğeni

ilk gönderiniz için tebrikler, aramıza hoşgeldiniz.

@alioner Yardımcı olabilmemiz için kodlarınızın tamamını buraya yazmanız lazım. Listenizdeki verileri görmemiz lazım. Ayrıca daha faydalı, kontrollü ve koşullu döngüler kurarak programı daha iyi kullanmanıza fayda sağlayabiliriz. Ayrıca sqlite3 bilginiz varsa bu program o şekilde daha hoş bir çalışma düzenine sahip olur.

Kodlarınızın tamamını buraya atarken başına ve sonuna ``` işaretini koyun daha okunaklı olacaktır. (bu işareti yapabilmek için alt gr + ; (noktalı virgül)

örnek;

def main():
    print("kodlar daha güzel görünüyor")
    #ışıklı mışıklı oldu baksana üf
    print("{0} deniyoruz birşeyler".format("oylooo"))
1 Beğeni

olarak yapmışsın çalışan şekli

olması gerekiyor …
ufak bi düzenleme yaptım işini görürse ne mutlu bize…

import os

urunler=dict()

def ana():

    print("""

            [1] Ürün Ekle

            [2] Ürünleri Gör

            [3] Günlük Satışlar

            [4] Haftalık Satışlar

            [5] Satış Analizleri

            [6] Çıkış

            """)



def urunEkle():        

       urunAdi= str(input("Ürün Adını Giriniz : "))
	   
       urunFiyat= float(input("Ürün Fiyatını Giriniz : "))
	   
       urunler[urunAdi]=urunFiyat
	   
       print(urunler)
	   
       print("*"*25)
       
       ana()
       
def urunleriOku():   

    for i , j in urunler.items():
        
        print("Ürün adı : {}\nÜrün Fiyatı : {}""".format(i,j))#sorun burdaydı
        
        print("*"*25)
        
    ana()

ana()#ilk çalışmada gelmesi için burda

while  True:
    
    secim=int(input("Seçtiğiniz işlemin numarasını Girin : "))    

    if secim ==1:
              
        urunEkle()
        
    elif secim==2:
        
        urunleriOku() 
    
    elif secim==6:
        
       break
              


@tevhidulvahset 'in dediği gibi veri tabanına veya başka bir yere kaydedersen daha sağlıklı çalışır

1 Beğeni

python için aldığım kurs bitmişti ve direkt kalıcı olması adına böyle küçük projeler yapmak istedim. Sqlite’i ise öğrenme aşamasındayım. Yardımınız için çok teşekkür ederim :slight_smile:

Öğrendiklerini pekiştirmek için proje fikri ihtiyacınız oluşursa özelden yazın yardımcı olurum. Başarılar.

:rofl:


json gibi veri tipleri de kullanışlı aslında :thinking:

1 Beğeni

@tevhidulvahset daha Python’u tamamen öğrenmemiş kisilere SQL öğretip database ile uğraştırmak doğru değil bence. Zaten buradaki basit işlem için json veya pickle iş görür.

2 Beğeni

@EkremDincel demişim fark ettiysen.

1 Beğeni

json daha uygun gibi SQL den