python 购物车分析_python 简易购物车程序解析
購物車程序需求:用戶信息為:
{'wyf':{'password':?'12',?'role':?'2',?'money':?'100000',?'carts':?['iphone6',?'mi5']},
'fei':?{'password':?'12',?'role':?'2',?'money':?'100000',?'carts':?['iphone6',?'mi5']}}
用戶角色role:1代表管理員,2,代表普通用戶
普通用戶的權(quán)限有:
1.查看所有商品;
2.輸入商品名稱購買商品,購買后加入到購物車?yán)锩?#xff0c;錢要減去.購買后的商品追加到購物車?yán)锩妗?/p>
3.可以查看自己的余額,和 購物車商品
4.退出
管理員用戶:
1.添加商品,輸入商品名稱和余額
2.充值,輸入用戶名,給他價錢
3.退出
思路解析:把每一個小的操作分枝封裝成一個小函數(shù),最后用戶調(diào)用即可。本次運(yùn)用到的知識點有:函數(shù),文件修改,菜單。當(dāng)前程序還有不足的地方,代碼如下
def op_file(file_name,content=None):
f = open(file_name, 'a+')
f.seek(0)
if content:
f.truncate()
f.write(str(content))
f.flush()
res = None
else:
res = eval(f.read())
f.close()
return res
def user_balance(name):#查詢用戶余額,以及購物車內(nèi)商品
# open_file("user.txt")
op_file("user.txt",content=None)
name = username
print("您當(dāng)前的余額為: " + str(user_info[name]["money"]))
carts_list = user_info[name]["carts"]
# print("購車內(nèi)的商品有: " + str(user_info[name]["carts"]))
print("您購物車包含的商品為:%s" % ','.join(carts_list))
def use_user_balance():
name = username
user_balance(name)
def add_product(inp_product,inp_price): #已存在的商品修改價格,不存在的商品以及價格直接添加.
product_dict = op_file("product.txt")
product_dict[inp_product] = {'price':inp_price}
print(product_dict)
product_list = list(product_dict)
print("店鋪商品共有:" + " , ".join(product_list))
content = str(product_dict)
def use_add_product():
inp_product = input("請輸入您要添加的商品:")
inp_price = input("請輸入您的商品價格:")
add_product(inp_product,inp_price)
def all_product():
# product_list = open_file("product.txt")
product_list = op_file("product.txt",content=None)
print("店鋪商品共有:" + " , ".join(product_list))
print("商品&價格:" + str(product_list))
def buy_product(inp_product,name): #用戶購買商品,購買成功后寫入購物車?yán)锩?/p>
# f = open("user.txt","r+")
# fw = open('product.txt')
# user_info = eval(f.read())
product_list = op_file('product.txt')
user_info = op_file('user.txt')
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)
print("您購物車包含的商品為:%s"% ','.join(carts_list))
print("歡迎下次光臨")
# f.truncate()
# f.write(str(user_info))
# f.flush()
content = str(user_info)
# op_file(product.txt,content)
else:
print("對不起,您的賬戶余額不足,請聯(lián)系管理員充值!")
def use_buy_product():
name = username
all_product()
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)
if name in user_info:
new_money = int(user_info[name]['money']) + int(inp_money)
user_info[name]['money'] = new_money
print("當(dāng)前用戶余額為:",new_money)
f.seek(0)
f.truncate()
f.write(str(user_info))
f.flush()
else:
print("您輸入的用戶名不存在,請輸入正確的用戶名進(jìn)行充值!")
def use_user_add_money():
name = input("需要充值的用戶:").strip()
# inp_money = input("本次充值多少元(請輸入整數(shù)):")
while True:
inp_money = input("本次充值多少元:").strip()
if inp_money.isdigit():
break
else:
print("充值的金額必須為整數(shù)哦~")
user_add_money(name, inp_money)
def exit_sys():
exit('退出程序')
def admin_menu():
admin_choice = input('請選擇您的操作:【1】.添加商品 【2】.用戶充值 【3】.退出\n請選擇:')
if admin_choice == '1':
use_add_product()
print("***************添加商品成功,即將返回上一級菜單***************")
elif admin_choice == '2':
use_user_add_money()
print("**************用戶充值成功,即將返回上一級菜單***************")
elif admin_choice == '3':
exit_sys()
else:
print("請選擇正確的操作!")
admin_menu()
def user_menu():
user_choice = input('請選擇您的操作:【1】.查看所有商品 【2】.購買商品 【3】.查看余額以及已購商品 【4】.退出\n請選擇:')
if user_choice == '1':
all_product()
print("**************查看商品完畢,即將返回上一級菜單***************")
elif user_choice == '2':
use_buy_product()
print("**************購買商品成功,即將返回上一級菜單***************")
elif user_choice == '3':
use_user_balance()
print("**************賬戶信息查詢成功,即將返回上一級菜單***************")
elif user_choice == '4':
exit_sys()
else:
print("操作異常,請選擇正確的操作!")
user_menu()
# user_info = open_file('user.txt')
user_info = op_file('user.txt',content=None)
username = input("請輸入您的用戶名:").strip()
password = input("請輸入您的密碼:").strip()
if username not in user_info:
print("用戶名不正確,請重試")
else:
if password == user_info[username]["password"]:
print("歡迎 " + username + " 進(jìn)入店鋪")
if user_info[username]["role"] == '1':
print("您好,您是管理員")
admin_choice = input('請選擇您的操作:【1】.添加商品 【2】.用戶充值 【3】.退出\n請選擇:')
if admin_choice == '1':
use_add_product()
print("***************添加商品成功,即將返回上一級菜單***************")
admin_menu()
elif admin_choice == '2':
use_user_add_money()
print("**************用戶充值成功,即將返回上一級菜單***************")
admin_menu()
elif admin_choice == '3':
exit_sys()
else:
print("請選擇正確的操作!")
else:
print("您好,您是普通用員")
user_choice = input('請選擇您的操作:【1】.查看所有商品 【2】.購買商品 【3】.查看余額以及已購商品 【4】.退出\n請選擇:')
if user_choice == '1':
all_product()
print("**************查看商品完畢,即將返回上一級菜單***************")
user_menu()
elif user_choice == '2':
use_buy_product()
print("**************購買商品成功,即將返回上一級菜單***************")
user_menu()
elif user_choice == '3':
use_user_balance()
print("**************賬戶信息查詢成功,即將返回上一級菜單***************")
user_menu()
elif user_choice == '4':
exit_sys()
else:
print("操作異常,請選擇正確的操作!")
else:
print("密碼不正確!請重試")
總結(jié)
以上是生活随笔為你收集整理的python 购物车分析_python 简易购物车程序解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: adguard拦截规则存在哪里_AdGu
- 下一篇: 西门子200恒压供水梯形图_求西门子pl