Python 02 基础作业
购物车简版
#!/usr/bin/env python # -*- coding: utf-8 -*- menu_list = [ ('iPhone7', 5388), ('MacBook', 13888), ('iWatch', 2188), ('128G USB3.0', 299), ('ThinkPad x270', 6599), ('250G SSD', 669), ] shopping_list = [] money = input("请输入您的工资:") if money.isdigit(): money = int(money) while True: for k, v in enumerate(menu_list): print(k, v) tmp_list = input("请输入购买产品序号,或输入'q'退出:") if tmp_list == "q": #输入q退出 print("您的余额:%s,您购买的商品:%s" % (money, shopping_list)) break elif money >= int(menu_list[int(tmp_list)][1]): #判断如果钱大于等于购买物品金额则购买 shopping_list.append(menu_list[int(tmp_list)]) money = money - menu_list[int(tmp_list)][1] print("您的余额:%s,您购买的商品:%s" % (money, shopping_list)) else: print("您的余额不足%s,无法添加该商品" % (menu_list[int(tmp_list)][1]))
购物车升级版用户接口
1、用户购买信息记录保存。
2、商家可以上货记录保存。
1.用户接口user.py(用户文件zzz.user,用户上次购买物品记录zzz,商品列表goos_list.txt)
zzz.user格式如下(用户名,密码,用户余额)
zzz,123,20000
zzz格式如下(商品名,商品单价,商品数目)
iWatch,2188,1
goods_list.txt格式如下(商品名,商品单价,商品数目)
iPhone7,5388,10
MacBook,13888,20
iWatch,2188,20
128G USB3.0,299,30
ThinkPad x270,6599,50
250G SSD,669,40
#!/usr/bin/env python # -*- coding: utf-8 -*- import os,sys,platform def input_handle(s): #整数转换函数 if str.isdigit(s): s = int(s) return s def user_list(user_file): with open(user_file, 'r') as pwd_file: #读取文件内容添加到相应列表中 user_list = [] pwd_list = [] money_list = [] user_all_list = [] for i in pwd_file: user_all_list.append(i.strip()) user_list.append(i.split(",")[0]) pwd_list.append(i.split(",")[1]) money_list.append(int(i.split(",")[2])) return (user_list,pwd_list,money_list) def user_login(user_list,pwd_list,money_list): #用户登录函数 username_input = input('user:') password_input = input('pwd:') if username_input in user_list: username_id = user_list.index(username_input) #取index位置 username = user_list[username_id] password = pwd_list[username_id] money = money_list[username_id] if username_input == username and password_input == password: print("欢迎%s登陆,XXX商城!您的余额是%s" % (username,money)) return (username,password,money) else: print("用户名密码错误!") exit() else: print("用户名密码错误!") exit() def user_login_write(username,password,money): #用户余额回写函数 with open(user_file, 'w') as pwd_file: a = ('%s,%s,%s' %(username,password,money)) pwd_file.write(a) def user_shopping_list(username): #用户购物车显示函数 user_shopping_all_list = [] user_shopping_name_list = [] user_shopping_money_list = [] user_shopping_number_list = [] with open(username,'r+') as user_shopping_list: print('商品名称\t\t商品价格\t购买数量') for i in user_shopping_list: #print('-----',json.dumps(i.strip())) i = i.strip().split(',') user_shopping_all_list.append(i) user_shopping_name_list.append(i[0]) user_shopping_money_list.append(i[1]) user_shopping_number_list.append(i[2]) print('%-16s %-8s %-8s' %(i[0], i[1], i[2])) return (user_shopping_all_list,user_shopping_name_list,user_shopping_money_list,user_shopping_number_list) def user_shopping_write(username,shop_all_list): #用户购物车回写函数 with open(username,'w') as user_shopping_write: for i in shop_all_list: a = ('%s,%s,%s' %(i[0],i[1],i[2])) user_shopping_write.write(a+'\n') def shop_list(): #商品列表显示函数 shop_all_list = [] shop_name_list = [] shop_money_list = [] shop_number_list = [] with open('goos_list.txt','r') as shop_list: for k,i in enumerate(shop_list): i = i.strip().split(',') shop_all_list.append(i) shop_name_list.append(i[0]) shop_money_list.append(i[1]) shop_number_list.append(i[2]) return (shop_all_list,shop_name_list,shop_money_list,shop_number_list) def shop_list_write(shop_all_list): with open('goos_list.txt.new', 'w') as shop_list: #商品列表回写函数 for i in shop_all_list: a = ('%s,%s,%s\n' %(i[0],i[1],i[2])) shop_list.write(a) system = platform.system() if system == 'Windows': os.system('move goos_list.txt goos_list.txt.bak') os.system('move goos_list.txt.new goos_list.txt') elif system == 'Linux': os.system('mv goos_list.txt goos_list.txt.bak') os.system('mv goos_list.txt.new goos_list.txt') if __name__ == '__main__': user_file = 'zzz.user' shopping_list = [] (user_list, pwd_list, money_list) = user_list(user_file) #初始化user_list (username, password, money) = user_login(user_list, pwd_list, money_list) #初始化user_login (shop_all_list, shop_name_list, shop_money_list, shop_number_list) = shop_list() #初始化shop_list if username != '': print('\033[32;1m==========请查看您上次登录购买到的商品==========\033[0m') user_shopping_list(username) while True: print('\033[31;1m===========商品列表=========\033[0m') print('商品编号\t商品名称\t商品价格\t商品数量') for h,j in enumerate(shop_all_list): #输出商品列表 print('%-10s %-16s %-8s %-8s' %(h,j[0], j[1], j[2])) shopping_input = input('请选择您想购买的商品编号,输入q退出:') shopping_input = input_handle(shopping_input) if shopping_input == 'q': exit('欢迎再次光临') elif shopping_input < len(shop_name_list) and shop_name_list[shopping_input]: number_input = input('您选择的商品%s,剩余数量%s请输入您的购买数量' % (shop_name_list[shopping_input],shop_number_list[shopping_input])) number_input = input_handle(number_input) if number_input < int(shop_number_list[shopping_input]): money_start = number_input*int(shop_money_list[shopping_input]) if money_start <= int(money): number_end = str(int(shop_number_list[shopping_input]) - number_input) shop_all_list[shopping_input][2] = number_end shop_number_list[shopping_input] = number_end money = int(money) - money_start shopping_list.append([shop_name_list[int(shopping_input)],money_start,number_input]) print('您购买到的商品列表') print('商品名称 价格 数量') for i in shopping_list: print('%-10s %-10s %-10s' %(i[0],i[1],i[2])) print('您的余额%s' % money) opt_input = input('是否继续购物输入y继续,输入q结束:') if opt_input == 'q': user_shopping_write(username,shopping_list) user_login_write(username, password, money) shop_list_write(shop_all_list) exit('欢迎再次光临') elif opt_input == 'y': continue else: print('\033[34;1m您的余额不足请重新选择商品:\033[0m') continue else: print('您输入的有误请重新输入:') continue break
2.商家接口busniss.py(用户文件www.user,商品列表goos_list.txt)
www.user格式如下(用户名,密码)
www,123
goods_list.txt格式如下(商品名,商品单价,商品数目)与用户相同
#!/usr/bin/env python # -*- coding: utf-8 -*- import os,sys,platform def input_handle(s): #整数转换函数 if str.isdigit(s): s = int(s) return s def user_list(user_file): with open(user_file, 'r') as pwd_file: #读取文件内容添加到相应列表中 user_list = [] pwd_list = [] user_all_list = [] for i in pwd_file: user_all_list.append(i.strip()) user_list.append(i.split(",")[0]) pwd_list.append(i.split(",")[1]) return (user_list,pwd_list) def user_login(user_list,pwd_list): #用户登录函数 username_input = input('user:') password_input = input('pwd:') if username_input in user_list: username_id = user_list.index(username_input) #取index位置 username = user_list[username_id] password = pwd_list[username_id] if username_input == username and password_input == password: print("欢迎%s登陆,XXX商城后台!" % (username)) return (username,password) else: print("用户名密码错误!") exit() else: print("用户名密码错误!") exit() def shop_list(): # 商品列表显示函数 shop_all_list = [] shop_name_list = [] shop_money_list = [] shop_number_list = [] with open('goos_list.txt', 'r') as shop_list: for k, i in enumerate(shop_list): i = i.strip().split(',') shop_all_list.append(i) shop_name_list.append(i[0]) shop_money_list.append(i[1]) shop_number_list.append(i[2]) return (shop_all_list, shop_name_list, shop_money_list, shop_number_list) def shop_list_write(shop_all_list): with open('goos_list.txt.busniss', 'w') as shop_list: #商品列表回写函数 for i in shop_all_list: a = ('%s,%s,%s\n' %(i[0],i[1],i[2])) shop_list.write(a) system = platform.system() if system == 'Windows': os.system('move goos_list.txt goos_list.txt.bak') os.system('move goos_list.txt.busniss goos_list.txt') elif system == 'Linux': os.system('mv goos_list.txt goos_list.txt.bak') os.system('mv goos_list.txt.busniss goos_list.txt') if __name__ == '__main__': user_file = 'www.user' shopping_list = [] (user_list, pwd_list) = user_list(user_file) (username, password) = user_login(user_list, pwd_list) (shop_all_list, shop_name_list, shop_money_list, shop_number_list) = shop_list() if username != '': print('\033[32;1m==========欢迎登陆商品后台==========\033[0m') while True: print('\033[31;1m===========商品列表=========\033[0m') print('商品编号\t商品名称\t商品价格\t商品数量') for h,j in enumerate(shop_all_list): #输出商品列表 print('%-10s %-16s %-8s %-8s' %(h,j[0], j[1], j[2])) shopping_input = input('请选择您想上货的商品编号,输入q退出:') shopping_input = input_handle(shopping_input) if shopping_input == 'q': exit('欢迎再次光临') elif shopping_input < len(shop_name_list) and shop_name_list[shopping_input]: number_input = input('您选择的商品%s,剩余数量%s请输入您上货数量' % (shop_name_list[shopping_input],shop_number_list[shopping_input])) number_input = input_handle(number_input) money_start = shop_money_list[shopping_input] number_end = str(int(shop_number_list[shopping_input]) + number_input) shop_all_list[shopping_input][2] = number_end shop_number_list[shopping_input] = number_end shopping_list.append([shop_name_list[int(shopping_input)],money_start,number_input]) print('您要上货的商品列表') print('商品名称 价格 数量') for i in shopping_list: print('%-10s %-10s %-10s' % (i[0], i[1], i[2])) opt_input = input('是否继续购物输入y继续,输入q结束:') if opt_input == 'q': shop_list_write(shop_all_list) exit('欢迎再次光临') elif opt_input == 'y': continue break