2 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
這里不需要一個(gè)函數(shù),沒(méi)有它就可以輕松完成。
stock ={
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}
prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}
shopping_cart = ["pear", "orange", "apple"]
shopping_cart = [("pear",1), ("orange", 3), ("apple",10)]
for i in shopping_cart:
if stock[i[0]] - i[1] < 0:
shopping_cart.pop(shopping_cart.index(i))
else:
stock[i[0]] -= i[1]
print("----------------")
print(" Bill")
print("----------------")
for i in shopping_cart:
print(f"{i[0]} x{i[1]} @ £{prices[i[0]]}")
print("----------------")
print(sum([prices[i[0]] * i[1] for i in shopping_cart]))
print("----------------")
解釋?zhuān)?/p>
購(gòu)物車(chē)
由元組組成
第一個(gè)元素 it 項(xiàng)目
第二是金額
第一個(gè) for 循環(huán)
檢查是否有足夠的庫(kù)存來(lái)購(gòu)買(mǎi)該商品,如果有,則從庫(kù)存中刪除該金額并繼續(xù)進(jìn)行
如果沒(méi)有,它會(huì)從購(gòu)物車(chē)中刪除該商品(是的,您可以修改它,當(dāng)庫(kù)存不足但庫(kù)存> 0時(shí),您可以向用戶出售剩余庫(kù)存。)
第二個(gè)for循環(huán)
使用 f 字符串格式化輸出
sum(列表理解)
輕松獲得商品價(jià)格*購(gòu)買(mǎi)金額之和!

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使該函數(shù)compute_bill返回當(dāng)前商品、價(jià)格,并檢查該商品是否有庫(kù)存。如果可以的話,減少數(shù)量。
stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}
prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}
def compute_bill(shopping_list):
for item in shopping_list:
if stock.get(item, 0) > 0:
yield item, prices.get(item, 0),
stock[item] -= 1
shopping_list = ["pear", "orange", "apple"]
print("Items Purchased")
print("---------------")
total = 0
for item, value in compute_bill(shopping_list):
print('{:<10} @{}'.format(item.title(), value))
total += value
print("---------------")
print("Total: £{:.2f}".format(total))
印刷:
Items Purchased
---------------
Pear @3
Orange @1.5
---------------
Total: £4.50
添加回答
舉報(bào)