def pay(username,user_file,shopping_car_list): ''' :param username: :param user_file: :param shopping_car_list: :return:返回值为结算后的帐户余额 ''' price = 0 for i in shopping_car_list: price += product[i] money_ye = balance.balance(username,user_file) if price > money_ye: print_color.print_color('余额不足,结算失败,请充值后再结算!','red') return False else: money_ye = money_ye - price return money_ye
def pay(username, user_file, shopping_car_list): ''' :param username: :param user_file: :param shopping_car_list: :return:返回值为结算后的帐户余额 ''' price = 0 for i in shopping_car_list: price += product[i] money_ye = balance.balance(username, user_file) if price > money_ye: print_color.print_color('余额不足,结算失败,请充值后再结算!', 'red') return False else: money_ye = money_ye - price return money_ye
def show_shopping_car_list(username, user_file, shopping_car_list): ''' :param username: :param user_file: :return: 返回值为商品总价格 和 帐户余额。都为正整数.返回 False,说明购物车为空 ''' if len(shopping_car_list) == 0: print_color.print_color("购物车为空,赶紧购物吧!!", 'green') return False else: total_price = 0 car_dic = {} print('*' * 51) print('%-6s%-30s%-15s' % ('编号', '商品名称', '价格')) for i, v in enumerate(shopping_car_list): #print('*'*51) print('%-8s%-30s%-15s' % (i, v, str(product[v]))) total_price += product[v] car_dic[i] = v print('*' * 51) money_ye = balance.balance(username, user_file) return car_dic
def show_shopping_car_list(username,user_file,shopping_car_list): ''' :param username: :param user_file: :return: 返回值为商品总价格 和 帐户余额。都为正整数.返回 False,说明购物车为空 ''' if len(shopping_car_list) == 0: print_color.print_color("购物车为空,赶紧购物吧!!",'green') return False else: total_price = 0 car_dic = {} print('*'*51) print('%-6s%-30s%-15s' % ('编号','商品名称','价格')) for i,v in enumerate(shopping_car_list): #print('*'*51) print('%-8s%-30s%-15s' % (i,v,str(product[v]))) total_price += product[v] car_dic[i] = v print('*'*51) money_ye = balance.balance(username,user_file) return car_dic
def shopping_car_fun_menu(): #if money_ye < total_price: # print_color.print_color("1 '充值' e '编辑购物车' q '退出系统'", 'yellow' ) #else: print_color.print_color("p '结算' a '充值' e '编辑购物车' x '继续购物'", 'yellow')
def shopping(login_user, user_file): shopping_car_list = [] flag1 = True flag2 = True while flag1: product_list_dic = show_product_list() print_color.print_color('b 返回主菜单', 'yellow') choice_product = input("请输入您想购买的商品编号:") if choice_product == 'b': break elif choice_product.isdigit(): if int(choice_product) in product_list_dic: add_car(shopping_car_list, product_list_dic[int(choice_product)]) while flag2: print_color.print_color('当前购物车商品', 'green') car_dic = show_shopping_car_list( login_user, user_file, shopping_car_list) #购物车商品名称及编号 shopping_car_fun_menu() choice_fu = input('请输入您想要的操作编号:') if choice_fu == 'e': while True: choice_del = input('请输入您想要删除的商品编号:') if int(choice_del) in car_dic: shopping_car_list.remove( car_dic[int(choice_del)]) print_color.print_color('删除成功!', 'green') break else: print_color.print_color( '您输入的不正确,请重新输入!', 'red') continue elif choice_fu == 'x': break elif choice_fu == 'a': while True: money_cz = input('请输入你想要充值的金额,只能充入正整数金额:') if money_cz.isdigit(): money_ye = balance.balance( login_user, user_file) money_ye = money_ye + int(money_cz) result = icbc.icbc(login_user, user_file, money_ye) if result == True: print_color.print_color( '充值成功!!本次充值金额:%s' % money_cz, 'green') balance.balance(login_user, user_file) break else: print_color('充值失败,系统将返回购物车列表!', 'red') break else: print_color.print_color( '你输入的金额不正确,请重新输入!', 'red') continue elif choice_fu == 'p': money = pay(login_user, user_file, shopping_car_list) if money == False: continue else: result = icbc.icbc(login_user, user_file, str(money)) if result == True: print_color.print_color( '结算成功,东西就不给你了,哈哈哈!', 'green') balance.balance(login_user, user_file) shopping_car_list = [] while True: print_color.print_color( 'b 回到主菜单 q 退出系统', 'yellow') choice_last = input("请选择对应的操作编号:") if choice_last == 'q': print_color.print_color( '感谢访问oldboy商城!欢迎下次光临,再见!', 'green') exit() elif choice_last == 'b': flag2 = False flag1 = False break else: print_color.print_color( '您输入的不正确,请重新输入!') continue else: print_color.print_color('结算失败,返回购物车列表') continue else: print_color.print_color('您的输入不正确,请重新输入!', 'red') else: print_color.print_color('您输入的不正确,请重新输入', 'red') continue else: print_color.print_color('您输入的不正确,请重新输入', 'red')
def shopping(login_user,user_file): shopping_car_list = [] flag1 = True flag2 = True while flag1: product_list_dic = show_product_list() print_color.print_color('b 返回主菜单','yellow') choice_product = input("请输入您想购买的商品编号:") if choice_product == 'b': break elif choice_product.isdigit(): if int(choice_product) in product_list_dic: add_car(shopping_car_list,product_list_dic[int(choice_product)]) while flag2: print_color.print_color('当前购物车商品','green') car_dic = show_shopping_car_list(login_user,user_file,shopping_car_list) #购物车商品名称及编号 shopping_car_fun_menu() choice_fu = input('请输入您想要的操作编号:') if choice_fu == 'e': while True: choice_del = input('请输入您想要删除的商品编号:') if int(choice_del) in car_dic: shopping_car_list.remove(car_dic[int(choice_del)]) print_color.print_color('删除成功!','green') break else: print_color.print_color('您输入的不正确,请重新输入!','red') continue elif choice_fu == 'x': break elif choice_fu == 'a': while True: money_cz = input('请输入你想要充值的金额,只能充入正整数金额:') if money_cz.isdigit(): money_ye = balance.balance(login_user,user_file) money_ye = money_ye + int(money_cz) result = icbc.icbc(login_user,user_file,money_ye) if result == True: print_color.print_color('充值成功!!本次充值金额:%s' % money_cz,'green') balance.balance(login_user,user_file) break else: print_color('充值失败,系统将返回购物车列表!','red') break else: print_color.print_color('你输入的金额不正确,请重新输入!','red') continue elif choice_fu == 'p': money = pay(login_user,user_file,shopping_car_list) if money == False: continue else: result = icbc.icbc(login_user,user_file,str(money)) if result == True: print_color.print_color('结算成功,东西就不给你了,哈哈哈!','green') balance.balance(login_user,user_file) shopping_car_list = [] while True: print_color.print_color('b 回到主菜单 q 退出系统','yellow') choice_last = input("请选择对应的操作编号:") if choice_last == 'q': print_color.print_color('感谢访问oldboy商城!欢迎下次光临,再见!','green') exit() elif choice_last == 'b': flag2 = False flag1 = False break else: print_color.print_color('您输入的不正确,请重新输入!') continue else: print_color.print_color('结算失败,返回购物车列表') continue else: print_color.print_color('您的输入不正确,请重新输入!', 'red') else: print_color.print_color('您输入的不正确,请重新输入','red') continue else: print_color.print_color('您输入的不正确,请重新输入','red')
def shopping_car_fun_menu(): #if money_ye < total_price: # print_color.print_color("1 '充值' e '编辑购物车' q '退出系统'", 'yellow' ) #else: print_color.print_color("p '结算' a '充值' e '编辑购物车' x '继续购物'", 'yellow' )
def login(user_file,locked_file): #计数器 n = 1 #声明变量,配合计数器用 username_temp = '' while n < 3: username = input("请输入用户名:") password = input("请输入密码:") #验证用户名或密码是否为空,为空则重新输入 if username == '' or password == '': print_color.print_color('用户名或密码不能为空,请重新输入!','red') continue #验证用户是否被锁定 with open(locked_file,'r') as f: for line in f.readlines(): #print(line) if username == line.strip(): print_color.print_color("用户已被锁定,系统即将退出!",'red') exit() #验证用户名密码是否正确 with open(user_file,'r') as f: for line in f.readlines(): if username == line.strip().split()[0] and password == line.strip().split()[1]: print_color.print_color('欢迎登录oldboy商城!!祝您购物愉快!','green') money = line.strip().split()[-1] return username,money else: if username_temp == username: n += 1 print_color.print_color('你已输错%s次,还有%s次机会!'% (n,3-n),'red') else: username_temp = username n = 1 print_color.print_color('用户名或密码错误,请重新输入!','red') continue #验证连续三次失败的已存在的用户加入locked文件 with open(user_file,'r') as f: for line in f.readlines(): if username == line.strip().split()[0]: with open(locked_file,'a') as f1: f1.write('%s\n' % username) print_color.print_color("尝试太多次,用户已被锁定,你已无法登录商城!系统即将退出",'red') return False,0
def upload(args): # spider id _id = args.id # dir dir_ = args.dir if dir_ is None: dir_ = os.path.abspath('.') # name name = args.name if name is None: name = os.path.basename(dir_) # create spider if args.create: try: _id = create_spider(name=name, col_name=args.col_name, cmd=args.cmd) print_color(f'created spider {name} (id: {_id})', tag='success', tag_color='green', color='white') except HttpException: print_color(f'create spider {name} failed', tag='error', tag_color='red', color='white') return # stats stats = { 'success': 0, 'error': 0, } # iterate files for root, dirs, files in os.walk(dir_): for file_name in files: # file path file_path = os.path.join(root, file_name) # ignored file if is_ignored(file_path): continue # target path target_path = file_path.replace(dir_, '') # upload file try: upload_file(_id, file_path, target_path) print_color(f'uploaded {file_path}', tag='success', tag_color='green', color='white') stats['success'] += 1 except HttpException: print_color(f'failed to upload {file_path}', tag='error', tag_color='red', color='white') stats['error'] += 1 # logging print_color(f'uploaded spider {name}', tag='success', tag_color='green', color='white') print_color(f'success: {stats["success"]}', tag='info', tag_color='cyan', color='white') print_color(f'failed: {stats["error"]}', tag='info', tag_color='cyan', color='white')
def balance(username, user_file): ''' :param username: :param user_file: :return:返回值为正整数 ''' with open(user_file, 'r') as f: for line in f.readlines(): if line.strip().split()[0] == username: money = line.strip().split()[-1] money = int(money) if money < 1000: print('当前用户:', end='') print_color.print_color('%s' % username, 'green'), print('帐户余额:', end=''), print_color.print_color( '%s' % num_three.num_three(str(money)), 'red') if money >= 1000 and money <= 2500: print('当前用户:', end=''), print_color.print_color('%s' % username, 'green'), print('帐户余额:', end=''), print_color.print_color( '%s' % num_three.num_three(str(money)), 'yellow') if money > 2500: print('当前用户:', end=''), print_color.print_color('%s' % username, 'green'), print('帐户余额:', end=''), print_color.print_color( '%s' % num_three.num_three(str(money)), 'green') return money
def balance(username,user_file): ''' :param username: :param user_file: :return:返回值为正整数 ''' with open(user_file,'r') as f: for line in f.readlines(): if line.strip().split()[0] == username: money = line.strip().split()[-1] money = int(money) if money <1000: print('当前用户:',end='') print_color.print_color('%s' % username, 'green'), print('帐户余额:',end=''), print_color.print_color('%s' % num_three.num_three(str(money)),'red') if money >=1000 and money <= 2500: print('当前用户:',end=''), print_color.print_color('%s' % username, 'green'), print('帐户余额:',end=''), print_color.print_color('%s' % num_three.num_three(str(money)),'yellow') if money > 2500: print('当前用户:',end=''), print_color.print_color('%s' % username, 'green'), print('帐户余额:',end=''), print_color.print_color('%s' % num_three.num_three(str(money)),'green') return money
def login(user_file, locked_file): #计数器 n = 1 #声明变量,配合计数器用 username_temp = '' while n < 3: username = input("请输入用户名:") password = input("请输入密码:") #验证用户名或密码是否为空,为空则重新输入 if username == '' or password == '': print_color.print_color('用户名或密码不能为空,请重新输入!', 'red') continue #验证用户是否被锁定 with open(locked_file, 'r') as f: for line in f.readlines(): #print(line) if username == line.strip(): print_color.print_color("用户已被锁定,系统即将退出!", 'red') exit() #验证用户名密码是否正确 with open(user_file, 'r') as f: for line in f.readlines(): if username == line.strip().split( )[0] and password == line.strip().split()[1]: print_color.print_color('欢迎登录oldboy商城!!祝您购物愉快!', 'green') money = line.strip().split()[-1] return username, money else: if username_temp == username: n += 1 print_color.print_color('你已输错%s次,还有%s次机会!' % (n, 3 - n), 'red') else: username_temp = username n = 1 print_color.print_color('用户名或密码错误,请重新输入!', 'red') continue #验证连续三次失败的已存在的用户加入locked文件 with open(user_file, 'r') as f: for line in f.readlines(): if username == line.strip().split()[0]: with open(locked_file, 'a') as f1: f1.write('%s\n' % username) print_color.print_color("尝试太多次,用户已被锁定,你已无法登录商城!系统即将退出", 'red') return False, 0