當(dāng)前位置:
首頁 >
Python 练习
發(fā)布時(shí)間:2023/12/19
33
生活家
功能說明:
1.用戶輸入總資產(chǎn)例如:2000
2.顯示商品列表,讓用戶根據(jù)序號(hào)選擇商品,加入購物車
3.購買,如果商品總額大于總資產(chǎn),提示賬戶余額不足,否則,購買成功。
使用說明:
1.輸入賬戶金額,驗(yàn)證輸入的是合法數(shù)字。
2.輸入商編號(hào),或者輸入q退出。
3.可以輸入多次商品。
4.輸入q,將計(jì)算出賬戶金額,是否可以購買選擇的商品,如果購買計(jì)算出總共花了多少錢,如果不夠顯示還差多少錢并退出
代碼:
#!/usr/bin/Python
# -*- coding:utf-8 -*-
#商品列表
goods = [
{"name": "電腦", "price": 1999},
{"name": "鼠標(biāo)", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
#輸入總資產(chǎn),
while True:
zhanghu = input("請(qǐng)輸入總資產(chǎn)")#輸入金額
if zhanghu.isdigit() == True and int(zhanghu) > 0:#判斷輸入的內(nèi)容必須是數(shù)字以及大于0
break
else:
print("請(qǐng)輸入正確金額!")
print("-----------------------------")
num = 0#聲明z變量
for i in goods:#遍歷輸出所以商品帶編號(hào)
print("編號(hào)%d:"%num,i["name"],i["price"])
num+=1
shops = {}#證明字典用于存放購買的商品
shop_item = 0
while True:#循環(huán)器
shop_num = input("請(qǐng)輸入商編號(hào),或者輸入q退出")#1.輸入編號(hào)或輸入q退出結(jié)賬
if shop_num.lower() == "quit":#2.判斷輸入的內(nèi)容如果輸入是q(不管是大寫或者小寫)break退出while循環(huán)
break#
if shop_num.isdigit() == True:# 3.如果輸入的是數(shù)字判斷是否小于goods列表的長(zhǎng)度
c = int(shop_num)
if c < len(goods):#如果小于goods字典的長(zhǎng)度有效
k = goods[c]["name"]#將輸入的下標(biāo)轉(zhuǎn)換成商品名稱
if k in shops.keys():#如果此商品在shops字典的keys中存在,num增加一個(gè)
shops[goods[c]["name"]]['num']+=1#
else:#如果item["name"]不存在shop集合中,創(chuàng)建一個(gè)集合,ite["price"]是金額
shops[k] = {"num":1,"money":goods[c]["price"]}
else:
print("請(qǐng)輸入合法編號(hào)")
else:
print("請(qǐng)輸入合法編號(hào)")
total_money = 0#總金額
for k,v in shops.items():#遍歷shops字典
total_money += (v["money"] * v["num"])#總金額=(金額*數(shù)量)+總金額
if total_money <= int(zhanghu):#如果總金額小于等于賬戶金額
print("購物成功共消費(fèi):%s元"% total_money)
print("購物清單%s"%shops)
else:
y = total_money - int(zhanghu)
print("余額不足還差:%s元"%y)
總結(jié)
- 上一篇: 显示SAP Spartacus每个pag
- 下一篇: 支付宝健康码红码怎么办?红码解决方法说明