购物车作业 自己写的

'''
购物车 作业要求:(用函数写)

1. 用户先给自己的账户充钱:比如先充3000元。
2. 页面显示 序号 + 名称 + 价格 , 如:
[===========有如下商品供您选择:===========]
序号 名称 价格
1 电脑 1999
2 鼠标 10
3 游艇 20
4 美女 998
n或N 购物车结算
q或Q 退出程序(如不结算购物车可直接退出)]
[==========================================]
购物车结算
3. 用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车,用户还可继续添加商品。
4. 如果用户输入的商品序号有误,则提示输入有误,并重新输入。
5. (1)用户输入n为购物车结算,依次显示用户购物车里面的商品,数量及单价
(2)若充值的钱数不足则让用户删除某商品,直至可以购买,若充值的钱数充足,则可以直接购买退出
(3)退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少
6. 用户输入Q或者q 直接退出程序。

'''

charge_money = input('请输入充值金额:').strip()
while 1:
if charge_money.isdigit() and int(charge_money) > 0:
break
else:
charge_money = input('请重新输入充值金额:').strip()
charge_money = int(charge_money)
buy_car = {'name' :['电脑', '鼠标', '游艇', '美女'], 'price' :[1999, 10, 20, 998], 'count' : [0, 0, 0, 0]} # 购物车字典
while 1:
print('''
[===========有如下商品供您选择:===========]
序号 名称 价格
1 电脑 1999
2 鼠标 10
3 游艇 20
4 美女 998
n或N 购物车结算
q或Q 退出程序(如不结算购物车可直接退出)]
[==========================================]
'''
)
num_of_choice = input('请输入商品序号:/输入Q或者q退出程序/n或N进行购物车结算').strip()
if num_of_choice.upper() == 'N': #结算购物车
for i in range(len(buy_car['count'])):
print('购买的商品为:{}, 数量为:{}, 价格为:{}'.format(buy_car['name'][i],buy_car['count'][i],buy_car['price'][i])) # 打印购买的物品
sum = 0
for j in range(len(buy_car['count'])):
sum += buy_car['count'][j] * buy_car['price'][j] # 计算所有购买商品的价格
if sum > charge_money: # 删除商品
del_num = input('余额不足,请删除某种商品:1 电脑,2 鼠标, 3 游艇, 4 美女')
del_num = int(del_num) - 1
del buy_car['name'][del_num]
del buy_car['price'][del_num]
del buy_car['count'][del_num]
else:break
elif num_of_choice.upper() == 'Q':
buy_car = {'name': ['电脑', '鼠标', '游艇', '美女'], 'price': [1999, 10, 20, 998], 'count': [0, 0, 0, 0]} # 直接退出,清空购物车数据
break
elif num_of_choice.isdigit():
num_of_choice = int(num_of_choice)
if num_of_choice > 0 and num_of_choice <= len(buy_car['name']): #打印对应商品和价格
print(buy_car['name'][num_of_choice - 1]) # 打印名称
print(buy_car['price'][num_of_choice - 1]) # 打印价格
buy_car['count'][num_of_choice - 1] = buy_car['count'][num_of_choice - 1] + 1 # 对应商品数量加一
else:
print('输入有误,请重新输入:') #误输入
total_spend = 0
for k in range(len(buy_car['count'])):
total_spend += buy_car['price'][k] * buy_car['count'][k] # 购买商品的所有花费
rest_money = charge_money - total_spend
for v in range(len(buy_car['count'])):
print('购买的商品为:{}, 数量为:{}, 价格为:{}'.format(buy_car['name'][v],buy_car['count'][v],buy_car['price'][v])) # 打印购物单
print('此次总共消费:{}, 账户余额为:{}'.format(total_spend,rest_money)) # 打印所有花费 账户余额

 

posted @ 2020-06-16 21:28  遗失的panda  阅读(108)  评论(0)    收藏  举报