程序需求:
1. 啟動程序后创译,讓用戶輸入工資,然后打印商品列表
2. 允許用戶根據(jù)商品編號購買商品
3. 用戶選擇商品后刷喜,檢測余額是否夠互订,夠就直接扣款,不夠就提醒
4. 可隨時退出氮墨,退出時吐葵,打印已購買商品和余額
一、入門版
#!/usr/bin/env python
#Auther:Lewis
#Email:devopslewis@outlook.com
product_list = [
('Mac Book Pro',13888),
('Iphone7 PLUS',7000),
('Mac Book Air',6388),
('IWATCH',4000)
]
shopping_list = []
print("歡迎來到Python購物程序")
while True:
salary = input("請輸入您的工資:")
if salary.isdigit()>0:
salary = int(salary)
break
else:
print("工資必須是整數(shù)并且大于0")
continue
while True:
print('編號 產(chǎn)品名稱\t\t價格')
for e,i in enumerate(product_list):
print(e,'\t',i[0],'\t',i[1],'元')
choose = input("請輸入您想要購買產(chǎn)品編號(按Q或者q退出):")
if choose.strip().isdigit():
choose = int(choose)
if choose <= len(product_list) and choose >= 0:
sp = product_list[choose]
if sp[1] > salary:
print("您的余額不足猛铅,請重新輸入工資凤藏,在虛擬世界獲得滿足揖庄。")
else:
shopping_list.append(product_list[choose])
salary -= sp[1]
print("您購買了",sp[0])
print('您的余額還剩%d'% salary)
else:
print("沒有這個編號,請重新輸入")
elif choose.strip() == 'Q' or 'q':
a=1
if shopping_list:
for i in shopping_list:
print(a,'.您購買了:商品名稱:',i[0],'商品價格:',i[1])
a+=1
print("您剩余工資為:%d" % salary)
print('您已退出!')
exit()
else:
print("您沒有購買任何東西疙筹!已經(jīng)退出購物車")
exit()
else:
print("請輸入正確的選項(xiàng)")
二禁炒、進(jìn)階版
#!/usr/bin/env python3
#-*- coding:utf-8 -*-
'''
需求:
1. 啟動程序后,讓用戶輸入工資暴备,然后打印商品列表
2. 允許用戶根據(jù)商品編號購買商品
3. 用戶選擇商品后们豌,檢測余額是否夠阁危,夠就直接扣款汰瘫,不夠就提醒
4. 可隨時退出擂煞,退出時对省,打印已購買商品和余額
'''
product = {'1' : ['物品A',826],
'2' : ['物品B',658],
'3' : ['物品C',456],
'4' : ['物品D',210]}
#列出商品列表函數(shù)
def product_list():
print("\n商品列表:")
print("編號 物品 價格")
for k,v in sorted(product.items()):
f = 0
for i in v:
if (not f):
p_name = i
f = 1
print("%2s %8s %8s" % (k,p_name,i))
#選擇購買函數(shù)
def buy(salary):
num = input("\n請輸入欲購買的產(chǎn)品編號:(按q退出)")
flag = 0 #flag為1表示編號有效,為0表示編號無效
while 1:
if (not num.isdigit() and (num == 'Q' or num == 'q')):#判斷輸入的是商品編號還是退出符
return num
else:
for k,v in product.items():#判斷輸入的編號是否在列表內(nèi)
if (k == num):
flag = 1
for x in v:
price = x #記錄下編號對應(yīng)的價格
break
if (not flag):
num = input("編號輸入有誤哀托,請重輸(按q退出):")
flag = 0
if (flag): #判斷余額是否充足
if (price > int(salary)):
num = input("您的余額不足仓手!請重輸(按q退出):")
flag = 0
else:
break
return num
#添加購物車函數(shù)
def add(salary):
buy_list = []
buy_dict = {}
while int(salary) > 0:
num = buy(salary)
if (not num.isdigit() and (num == 'Q' or num == 'q')):#判斷輸入的是商品編號還是退出符
print("已成功退出玻淑!")
print("\n您此次購買的產(chǎn)品列表為:")
for k,v in buy_dict.items():
print("%2s %8s" % (k, v)) #輸出購買清單
print("\n您的余額為:%s" % salary) #輸出余額
break
else:
buy_list.append(num) #往購買清單中添加商品
n = 0
for i in buy_list:
f = 0
for k,v in product.items():
if (i == k):
for x in v:
if (not f):
p_name = x
f = 1
n = n + 1
buy_dict.setdefault(n, p_name)
salary = int(salary) - x
print("\n您的余額為: %s" % salary)
return buy_dict
#主函數(shù)開始
salary = input("請輸入您的工資:")
while 1:
if ((not salary.isdigit()) or (int(salary) <= 0)):#判斷工資是否是數(shù)字并且大于0
salary = input("輸入工資有誤补履,請重輸:")
else:
break
product_list()
add(salary)
<b>簡單的小程序,閑暇時的練習(xí)題