balance money 思路 def car username 角色 new cart
购物车程序需求:用户信息为:
- {‘wyf‘:{‘password‘: ‘12‘, ‘role‘: ‘2‘, ‘money‘: ‘100000‘, ‘carts‘: [‘iphone6‘, ‘mi5‘]},
- ‘fei‘: {‘password‘: ‘12‘, ‘role‘: ‘2‘, ‘money‘: ‘100000‘, ‘carts‘: [‘iphone6‘, ‘mi5‘]}}
- 用户角色role:1代表管理员,2,代表普通用户
普通用户的权限有:
1.查看所有商品;
- 2.输入商品名称购买商品,购买后加入到购物车里面,钱要减去.购买后的商品追加到购物车里面。
3.可以查看自己的余额,和 购物车商品
4.退出
管理员用户:
1.添加商品,输入商品名称和余额
2.充值,输入用户名,给他价钱
3.退出
思路解析:把每一个小的操作分枝封装成一个小函数,最后用户调用即可。本次运用到的知识点有:函数,文件修改,菜单。当前程序还有不足的地方,代码如下
- def user_balance(name):#查询用户余额,以及购物车内商品
- f = open("user.txt","r+")
- user_info = eval(f.read())
- print(user_info)
- print("您的余额为: " + str(user_info[name]["money"]))
- print("购车内的商品有: " + str(user_info[name]["carts"]))
- def use_user_balance():
- name = username
- user_balance(name)
- def add_product(inp_product,inp_price): #已存在的商品修改价格,不存在的商品以及价格直接添加.
- fw = open(‘product.txt‘,‘a+‘)
- fw.seek(0)
- product_dict = eval(fw.read())
- product_dict[inp_product] = {‘price‘:inp_price}
- print(product_dict)
- fw.seek(0)
- fw.truncate()
- fw.write(str(product_dict))
- fw.flush()
- def use_add_product():
- inp_product = input("请输入您要添加的商品:")
- inp_price = input("请输入您的商品价格:")
- add_product(inp_product,inp_price)
- def all_product():
- f = open("product.txt","r+")
- product_list = eval(f.read())
- print("本店的商品有:" + str(product_list))
- def buy_product(inp_product,name): #用户购买商品
- f = open("user.txt","r+")
- fw = open(‘product.txt‘)
- user_info = eval(f.read())
- product_list = eval(fw.read())
- if inp_product not in product_list:
- print("对不起,您输入的商品不存在,请输入正确的商品")
- else:
- user_money = int(user_info[name]["money"])
- product_price = int(product_list[inp_product]["price"])
- if user_money > product_price:
- print("可以购买")
- balance = user_money - product_price
- f.seek(0)
- user_info[name][‘money‘] = balance
- carts_list = user_info[name][‘carts‘]
- carts_list.append(inp_product)
- f.truncate()
- f.write(str(user_info))
- f.flush()
- else:
- print("对不起,您的账户余额不足,请联系管理员充值!")
- def use_buy_product():
- name = username
- inp_product = input("请输入您要购买的商品名称:")
- buy_product(inp_product, name)
- def user_add_money(name,inp_money):#输入用户名给用户充值
- f = open(‘user.txt‘,‘r+‘)
- f.seek(0)
- user_info = eval(f.read())
- # print(user_info)
- new_money = int(user_info[name][‘money‘]) + int(inp_money)
- user_info[name][‘money‘] = new_money
- print(user_info)
- f.seek(0)
- f.truncate()
- f.write(str(user_info))
- f.flush()
- def use_user_add_money():
- name = input("需要充值的用户:")
- inp_money = input("本次充值多少元:")
- user_add_money(name, inp_money)
- def exit_sys():
- exit(‘退出程序‘)
- f = open("user.txt", "r+")
- user_info = eval(f.read())
- username = input("请输入您的用户名:")
- password = input("请输入您的密码:")
- if username not in user_info:
- print("用户名不正确,请重试")
- else:
- if password == user_info[username]["password"]:
- print("欢迎 " + username + " 登录购物车!")
- if user_info[username]["role"] == ‘1‘:
- print("您好,您是管理员")
- choice = input(‘请选择您的操作:1.添加商品 2.用户充值 3.退出‘)
- menu1 = {
- "1": use_add_product,
- "2": use_user_add_money,
- "3": exit_sys
- }
- menu1[choice]()
- else:
- print("您好,您是普通用员")
- choice = input(‘请选择您的操作:1.查看所有商品 2.购买商品 3.查看余额以及已购商品 4.退出‘)
- menu2 = {
- "1": all_product,
- "2": use_buy_product,
- "3": use_user_balance,
- "4": exit_sys
- }
- menu2[choice]()
- else:
- print("密码不正确!请重试")
python 简易购物车程序解析
来源: http://www.bubuko.com/infodetail-2354093.html