1. 程式人生 > >python實戰演練(三)購物車程序

python實戰演練(三)購物車程序

%s end src mage imp sdi gin gif 名稱

一.實現功能

作業需求:

用戶入口:

1.商品信息存在文件裏

2.已購商品,余額記錄。第一次啟動程序時需要記錄工資,第二次啟動程序時談出上次余額

3.允許用戶根據商品編號購買商品

4.用戶選擇商品後,檢測是否夠,夠就直接扣款,不夠就提醒

5.可隨時退出,退出時,打印移購買商品和余額

商家入口:

1.可以添加商品,修改商品價格1. 運行程序輸出第一級菜單

二.流程圖

技術分享圖片

三.代碼

買家入口

技術分享圖片
#-*- Coding:utf-8 -*-
# Author: kking
‘‘‘
購物車需求
    用戶入口:
1.商品信息存在文件裏
2.已購商品,余額記錄。第一次啟動程序時需要記錄工資,第二次啟動程序時談出上次余額
3.允許用戶根據商品編號購買商品
4.用戶選擇商品後,檢測是否夠,夠就直接扣款,不夠就提醒
5.可隨時退出,退出時,打印移購買商品和余額
    商家入口:
1.可以添加商品,修改商品價格
‘‘‘ import os,sys def user_shoping(): #定義一個用戶購買商品操作函數 while True: user_salary = input(請輸入您的充值金額>>>:) if user_salary.isdigit(): #判斷充值金額是否為數字 user_salary = int(user_salary) user_shop_file.write(login_name + \t) user_shop_file.write(str(user_salary)
+ \n) for item in porduct_lists: #循環遍歷商品列表 print(porduct_lists.index(item), item) #使用index方法打印列表序號,item為列表元素 p_index = porduct_lists.index(item) #定義p_index方法存儲列表序號 while True: user_choises = input(請選擇您所需購買的商品編號>>>:退出請按:Q:
) if user_choises.isdigit(): #判斷用戶輸入的商品編號是否為數字 user_choises = int(user_choises) if user_choises <= p_index and user_choises >= 0: #用戶輸入編號小於列表序號 p_item = porduct_lists[user_choises] #定義p_item方法獲取用戶選擇的商品 p_item[1] = int(p_item[1]) #將商品金額強制轉換為int類型 if user_salary >= p_item[1]: #判斷用戶金額是否買得起商品 shop_lists.append(p_item) #將已購買的商品信息存儲到shop_lists列表中 user_salary -= p_item[1] #扣除商品金額=還剩余額 user_shop_file.write(login_name + \t) user_shop_file.write(str(user_salary) + \n) #將用戶信息和余額信息寫入user_shop文本中 print("商品 \033[32;1m%s\033[0m 已加入購物車...您還剩\033[32;1m%s\033[0m余額" % (p_item[0], user_salary)) else: print(\033[31;1m對不起您的金額不足,請去充值!\033[0m) print(已購商品清單.center(30, *)) print(shop_lists) sys.exit() else: print(\033[31;1m請輸入範圍內商品編號\033[0m) elif user_choises == q or user_choises == Q: print(已購商品清單.center(30, *)) print(shop_lists) sys.exit() else: print(\033[31;1m請輸入有效商品編號\033[0m) else: print(\033[31;1m請輸入有效充值金額\033[0m) def user_top(): #定義一個用戶充值操作函數 while True: user_salary = input(請輸入您的充值金額>>>:) if user_salary.isdigit(): user_salary = int(user_salary) user_salary += int(shop[-1]) #用戶現有余額=充值金額+上次還剩余額 user_shop_file.write(shop[0] + \t) user_shop_file.write(str(user_salary)+\n) #將用戶名和現有余額(充值完成後還剩余額)寫入user_shop文本中 print(您當前余額為:\033[32;1m%s\033[0m%user_salary) for item in porduct_lists: print(porduct_lists.index(item), item) p_index = porduct_lists.index(item) while True: user_choises = input(請選擇您所需購買的商品編號>>>:退出請按:Q:) if user_choises.isdigit(): user_choises = int(user_choises) if user_choises <= p_index and user_choises >= 0: p_item = porduct_lists[user_choises] if user_salary >= int(p_item[1]): shop_lists.append(p_item) user_salary -= int(p_item[1]) user_shop_file.write(shop[0] + \t) user_shop_file.write(str(user_salary) + \n) print("商品 \033[32;1m%s\033[0m 已加入購物車...您還剩\033[32;1m%s\033[0m余額" % (p_item[0], user_salary)) else: print(\033[31;1m對不起您的金額不足,請去充值!\033[0m) print(已購商品清單.center(30, *)) print(shop_lists) sys.exit() else: print(\033[31;1m請輸入範圍內商品編號\033[0m) elif user_choises == q or user_choises == Q: print(已購商品清單.center(30, *)) print(shop_lists) sys.exit() else: print(\033[31;1m請輸入有效商品編號\033[0m) else: print(\033[31;1m請輸入有效充值金額\033[0m) def porduct_shop(): #定義一個讀取porduct_shop(商品信息文本)函數 user_porduct_file = open(porduct_shop, r+, encoding=utf-8) user_porduct_lists = user_porduct_file.readlines() #以列表形式讀取porduct_shop商品信息文本內容 for user_porduct_list in user_porduct_lists: #循環遍歷user_porduct_lists列表 porduct_lists.append(user_porduct_list.split()) #將讀取內容存儲到porduct_lists商品列表中 login_name = ‘‘ shop_lists = [] porduct_lists = [] porduct_shop() #調用porduct_shop(讀取賣家商品信息)操作函數 user_shop_file = open(user_shop,r+) user_shop_lists = user_shop_file.readlines() for user_shop_list in user_shop_lists: #循環遍歷user_shop(用戶信息及余額)文本內容 shop = user_shop_list.split() if len(user_shop_lists) == 0: #判斷user_shop文本信息內容是否為空 login_name = input(請輸入用戶名>>>:) #如果為空,則判斷為首次登陸,需要填寫用戶名和密碼 user_info_file = open(user_info,r+) user_info_lists = user_info_file.readlines() for user_info_list in user_info_lists: #循環遍歷user_info(用戶信息:用戶名和密碼)文本內容 user = user_info_list.split() if login_name in user: #判斷輸入的用戶名是否存在 while True: login_pwd = input(請輸入密碼>>>:) #判斷用戶輸入密碼是否正確 if login_pwd == user[1]: print(歡迎 \033[33;1m%s\033[0m 登錄英雄聯盟收銀臺 % login_name) #登陸成功 user_shoping() #調用user_shopping用戶購買商品操作函數 else: print(\033[31;1m密碼錯誤請重新輸入密碼\033[0m) else: sys.exit(\033[31;1m用戶名不存在\033[31;1m) else: #用戶不是首次登陸操作 print(歡迎 \033[33;1m%s\033[0m 登錄英雄聯盟收銀臺,您的余額還剩\033[32;1m%s\033[0m元 % (shop[0], shop[-1])) user_top() #調用 user_top(用戶第二次登陸和充值操作)函數
View Code

賣家入口

技術分享圖片
# -*- coding:utf-8 -*-
# Author:kking

seller_shop =  open(porduct_shop,a,encoding=utf-8)
seller_shop.write(小學生皮膚+\t)             #賣家添加商品名稱
seller_shop.write(80 + \n)                   #賣家添加商品價格信息
seller_shop.flush()
View Code

python實戰演練(三)購物車程序