Python ürün stok kontrolü ve toplam fiyat

Mehmet Kağan

Kilopat
Katılım
11 Ağustos 2018
Mesajlar
337
Çözümler
4
Yer
İstanbul
Herkese iyi akşamlar. Python öğrenmeye yeni başladım. Basit bir program olmasına rağmen saatlerdir çözemedim.
Amacımız stok içinde gözüken ürün sayısı 0 olana kadar o ürünü birer birer azaltmak. Bu sırada ürünün fiyat değerini her seferinde faturaya eklemek. Örneğin elimizde 3 tane Renault araç var. Bizim bundan elde edeceğimiz gelir 9 birim paradır. Bunu hesaplayan bir fonksiyon yazmak istedim ama başaramadım. Bu fonksiyonu her araç için yazıp en son çıkan sonuçların hepsini toplayabilirim. Eğer tek seferde bütün gelirleri hesaplayabilen bir fonksiyon olursa o da güzel olur.
Fatura:
Renault için; 3*3 = 9
Mercedes için; 0*4 = 0
Toyota için; 11*5, 5 = 60,5
Volvo için; 7*2 = 14.
Umarım derdimi anlatabilmişimdir 😂

Python:
itemlist = ["renault","mercedes","toyota","volvo"]

stock = { "renault": 3,
"mercedes": 0,
"toyota": 11,
"volvo": 7 }

prices = { "renault": 3,
"mercedes": 4,
"toyota": 5.5,
"volvo": 2 }
 
Son düzenleyen: Moderatör:
Eğer birer birer azaltmadan toptan hesaplamak istiyorsanız:

[CODE lang="python" title="Kod 1"]itemlist = ["renault","mercedes","toyota","volvo"]

stock = { "renault": 3,
"mercedes": 0,
"toyota": 11,
"volvo": 7 }

prices = { "renault": 3,
"mercedes": 4,
"toyota": 5.5,
"volvo": 2 }

def calcPrice():
total = 0
for item in itemlist:
total += stock[item] * prices[item]
return total


print(calcPrice())[/CODE]

Eğer illa ki birer birer azaltmanız gerekiyorsa:

[CODE lang="python" title="Kod 2"]itemlist = ["renault", "mercedes", "toyota", "volvo"]

stock = {"renault": 3, "mercedes": 0, "toyota": 11, "volvo": 7}

prices = {"renault": 3, "mercedes": 4, "toyota": 5.5, "volvo": 2}


def count_brand(item):
item_total = 0
while stock[item] > 0:
item_total += prices[item]
stock[item] -= 1
return item_total


def calc_price():
total = 0
for item in itemlist:
total += count_brand(item)
return total

print(calc_price())[/CODE]
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı