1. 程式人生 > >python3 從零單排3_函數(購買商品小程序)

python3 從零單排3_函數(購買商品小程序)

pan encoding txt 初始 函數 read odin tro and

  題目如下:
商品文件products.txt裏存的內容如下:
{‘mac‘: 6500, ‘被子‘: 100.0, ‘手機‘: 1.0, ‘寶馬‘: 100}
用戶文件user.txt裏存的內容如下:
{‘dalei‘: {‘money‘: 1003.0, ‘role‘: 2, ‘pass‘: ‘123456‘, ‘products‘: [‘mac‘]},‘xg‘: {‘money‘: 1000, ‘role‘: 1, ‘pass‘: ‘123456‘, ‘products‘: [‘mac‘]}}
  管理員可以操作:
1.給用戶充值,輸入用戶名,修改money,100000
2.添加商品
3.logout
  普通用戶可以操作:
1.看商品信息
2.買東西,a.東西加products,money要修改
3.查看自己的商品和余額
4.退出

  需求分析:
1.商品、用戶文件 初始化數據
2.登錄 讀取用戶文件
3.登錄獲取角色,給出相應菜單 字典獲取用戶角色,定義字典 給用戶選擇相應的操作
4.管理員
  1.給用戶充值,輸入用戶名,修改money,100000
  2.添加商品
  3.logout
5.用戶
  1.看商品信息
  2.買東西,a.東西加products,money要修改
  3.查看自己的商品和余額
  4.退出

  代碼如下:

#定義讀寫文件
def op_file(filename,content=None):
    if content:
        with open(filename,
w,encoding=utf-8) as f: f.write(str(content)) else: with open(filename,r,encoding=utf-8) as f: res=eval(f.read()) return res #定義校驗money的輸入合法性 def checkmoney(money): if money.isdigit(): return True elif money.count(.)==1:
if money.split(.)[0].isdigit() and money.split(.)[1].isdigit(): return True return False #定義登錄 def login(): username=input(用戶名:) password=input(密碼:) users=op_file(user.txt) if username in users and users[username][pass]==password: print(歡迎【%s】登錄%username) return username,users[username][role] else: print(登錄失敗!) #管理員 #1.給用戶充值,輸入用戶名,修改money,100000 def charge(): username = input(用戶名:).strip() money = input(金額:).strip() users = op_file(user.txt) if username in users and checkmoney(money): users[username][money]+=float(money) op_file(user.txt,content=users) # 2.添加商品 def add(): sp_name = input(商品名稱:).strip() sp_money = input(金額:).strip() sp = op_file(products.txt) if checkmoney(sp_money): sp[sp_name]=float(sp_money) op_file(products.txt, content=sp) # 3.logout def logout(): exit(退出程序) #5.用戶 # 1.看商品信息 def show(): sp = op_file(products.txt) for i in sp: print(商品:%s,價錢:%s%(i,sp[i])) # 2.買東西,a.東西加products,money要修改 def buy(user): pro=input(買的商品migncheng:) sp = op_file(products.txt) users = op_file(user.txt) if pro in sp: if users[user][money]>=sp[pro]: users[user][money] -= sp[pro] users[user][products].append(pro) op_file(user.txt, content=users) else: print(請聯系管理員充值!) else: print(商品未上架!) buy(user) # 3.查看自己的商品和余額 def look(user): users = op_file(user.txt) print(您的購物車有:%s%str(users[user][products])) print(您余額為:%.2f%users[user][money]) choice_admin={1:charge,2:add,3:logout} choice_user={1:show,2:buy,3:look,4:logout} def run(): user,role=login() if role==1: while True: choice=input(請輸入您的選擇:1.充值;2.添加商品;3.退出) if choice==1 or choice==2 or choice==3: choice_admin[choice]() else: print(輸入有誤!) else: while True: choice=input(請輸入您的選擇:1.查看商品;2.購買;3.查詢購物車和余額;4.退出) if choice==1 or choice==4: choice_user[choice]() elif choice==2 or choice==3: choice_user[choice](user) else: print(輸入有誤!) if __name__==__main__: run()

python3 從零單排3_函數(購買商品小程序)