需求:
商家入口:
1、商品列表永久保存(暂时使用存储在文件,也可以使用sqlite)里。
2、商家可以增加商品,也可以修改商品价格
买家入口:
1、购物车信息永久保存,暂时使用存储在文件,也可以使用sqlite。
2、信息包括余额以及已经购买的商品的数量。
商家代码:
products.txt: iphone 400 block 1000 bike 200 cup 50 as 35 ff 78 productM.py: #!/usr/bin/env python #Author:windtalker import re products={} f = open('products.txt','r+') contents = f.readlines() f.close() for con in contents: lcon = con.split(' ') products[lcon[0]] = int(lcon[1].replace('\n','')) print(products) while True: inp = input('input your set:') linp = re.split('\s+',inp) if inp == 'q': break elif len(linp) ==2 and linp[1].isdigit(): products[linp[0]] = int(linp[1]) else: print('input error') f = open('products.txt','r+') f.truncate() for k in products: print(k,products[k]) str ='''%s %d\n''' % (k,products[k]) f.write(str) f.close()
买家代码:
#!/usr/bin/env python #Author:windtalker import re fshopping = open('shoppingcart.txt','r+') fprodcuts=open('products.txt','r') products={} lines=fprodcuts.readlines() fprodcuts.close() for line in lines: pro = re.split('\s+',line) products[pro[0]] = int(pro[1]) s_line= fshopping.readline() carts={} if not s_line: money_inp=input('show your money:') if money_inp.isdigit(): total_money = int(money_inp) else: total_money = re.split('\s+',s_line)[1] for nextline in fshopping.readlines(): res = re.split('\s+', nextline) carts[res[0]] = int(res[1]) while True: #for inx,pr in enumerate(products,1): #print(inx,pr) pros = list(enumerate(products.items(), 0)) #prolist = list(pros) #print(pros) for ind,pro in pros : #print('why') print('%d : %s' % (ind,pro)) shop_inp = input('please shopping:') if shop_inp == 'q': break elif shop_inp.isdigit() and int(shop_inp) >= 0 and int(shop_inp) < len(pros): tmpinfo = pros[int(shop_inp)] if tmpinfo[1][0] not in carts.keys(): carts[tmpinfo[1][0]] = 1 else: carts[tmpinfo[1][0]] += 1 total_money -= tmpinfo[1][1] else: print('error input') fshopping.write('total_money %d\n'% total_money) for k in carts: fshopping.write('%s %d\n' % (k, carts[k])) fshopping.close()