老男孩第十四期 python 自动化运维第二周
- 列表、元组操作
- 字符串操作
- 字典操作
- 集合操作
- 文件操作
- 字符编码与转码
1-6 :alex https://www.cnblogs.com/alex3714/articles/5717620.html
三元运算符:
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
>>> a,b,c = 1,3,5 >>> d = a if a > b else c >>> d 5 >>> d = a if a< b else c >>> d 1 >>>
字符编码和解码:
encode 和 decode
encode 和decode 的utf-8 编码和解码 主要应用于中文,英文和数字、符号都未发现能编码,只有中文有编码
>>> 'abc123我的世界'.encode('utf-8') b'abc123\xe6\x88\x91\xe7\x9a\x84\xe4\xb8\x96\xe7\x95\x8c' >>> b'abc123\xe6\x88\x91\xe7\x9a\x84\xe4\xb8\x96\xe7\x95\x8c'.decode('utf-8') 'abc123我的世界' >>>
编码详解
https://www.cnblogs.com/yuanchenqi/articles/5956943.html
解决爬虫网页中文乱码问题
https://www.cnblogs.com/xiaolee-tech/p/12344592.html
购物车程序
''' 作者:潘富家 功能: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 版本:1.0 创建时间:忘了 ''' product_list = [] product_file = 'product.csv' with open('product.csv','r') as f: for i in f.read().split('\n')[1:]: product_list.append(i.split(',')) shopping_list = []#记录步骤 salary = input('Input yor salary:') user = input('') if salary.isdigit(): salary = int(salary) while True: for index,item in enumerate(product_list): print(index,item) user_choice = input('选择要买嘛?>>>:') if user_choice.isdigit():#判断编号是否为数字 user_choice = int(user_choice) if user_choice < len(product_list) and user_choice >= 0 :#编号范围从0到数组长度-1 p_item = product_list[user_choice] #获取正确商品编号的元组 if p_item[1] <= salary:#买得起 shopping_list.append(p_item)#记录添加 salary -= p_item[1] print("Added %s into shopping cart,your current balance is \033[31:1m%s\033[0m" %(p_item[0],p_item[1])) else:# print('\033[41:1m你的余额只剩[%s]啦,还买个毛线\033[0m'% salary) else: #不存在商品编号 print("product code [%s] is not exist!"% user_choice) elif user_choice == 'q':#退出 输出购买商品以及剩余余额 print('shopping list'.center(40,'-')) for p in shopping_list: print(p) print("Your current balance:",salary) exit() else: print('invalid option')
购物车优化
流程图

用户接口
''' 作者:潘富家 功能: 用户接口 商品信息存在文件里 已购商品, 余额记录 版本:1.0 创建时间:忘了 ''' import os product_list = [] #商品信息 user_list = [] #用户信息 product_file_text = 'product.csv'#商品表名 user_file_text = 'user_information.csv' #用户表名 if not os.path.isfile(product_file_text): with open(product_file_text,'w') as product_file: text= '''product,money IPhone,5800 Mac Pro,9800 Bike,800 Watch,10600 Coffee,31 Alex Python,5800''' product_file.write(text) if not os.path.isfile(user_file_text): with open(user_file_text,'w') as user_file: user_file.write('user,money,shopping_information') with open(product_file_text,'r') as product_file:#取出商品信息表 p_f = product_file.read().split('\n') for i in p_f: if len(i) >1: text = i.split(',') product_list.append(text) for i in range(1,len(product_list)):#对商品价格进行类型转换(文档默认为string) product_list[i][1] = int(product_list[i][1]) with open(user_file_text,'r') as user_file:#用户信息录入 u_f = user_file.read().split('\n') for i in u_f: text = i.split(',') user_list.append(text) print(product_list) print(user_list) shopping_list = []#记录步骤 bool = False user = input('请输入用户') for i in user_list: if user in i[0]: salary = i[1] bool = True if not bool: salary = input('Input yor salary:') if salary.isdigit(): salary = int(salary) while True: for index,item in enumerate(product_list[1:]): print(index,item) user_choice = input('选择要买嘛?>>>:') if user_choice.isdigit():#判断编号是否为数字 user_choice = int(user_choice)+1 if user_choice < len(product_list) and user_choice >= 0 :#编号范围从0到数组长度-1 p_item = product_list[user_choice] #获取正确商品编号的元组 if p_item[1] <= salary:#买得起 shopping_list.append(p_item)#记录添加 salary -= p_item[1] print("Added %s into shopping cart,your current balance is \033[31:1m%s\033[0m" %(p_item[0],p_item[1])) else:# print('\033[41:1m你的余额只剩[%s]啦,还买个毛线\033[0m'% salary) else: #不存在商品编号 print("product code [%s] is not exist!"% user_choice) elif user_choice == 'q':#退出 输出购买商品以及剩余余额 print('shopping list'.center(40,'-')) with open(user_file_text,'w') as user_file:#用户文件写入 text_s = ''#购买信息存储 for p in shopping_list: #print(p) text_s += "{}:{} ".format(p[0],p[1]) if not bool: user_list.append([user, salary,text_s]) for i in user_list: if len(i) ==3: if i[0] == user:#当用户为用户表用户 #print(i[2]) #print(text_s) text_s = i[2] + text_s#本次购买信息 加上之前购买信息 i[1] = str(salary)#更新工资 i[2] = text_s user_file.write('{},{},{}\n'.format(i[0],i[1],i[2]))#写入用户信息表 ''' user_dict = {abc[i]:user_list[0][i] for i in range(len(user_list[0]))} print(user_dict) user_file.write('{a},{b},{c}'.format_map(user_dict)) user_file.write('{},{},{}'.format(user,str(salary),text_s))''' print("user:"+user) print("Your current balance:",salary) exit() else: print('invalid option')
管理员接口
''' 作者:潘富家 功能: 管理员接口,商品的增删改 版本:1.0 创建时间:忘了 ''' import os product_list = [] product_file_text='product.csv' if not os.path.isfile(product_file_text):#当没有文件时进行初始化 with open(product_file_text, 'w') as product_file: text = '''product,money IPhone,5800 Mac Pro,9800 Bike,800 Watch,10600 Coffee,31 Alex Python,5800''' with open(product_file_text,'r') as product_file:#取出商品信息表 p_f = product_file.read().split('\n') for i in p_f: if len(i) >1: text = i.split(',') product_list.append(text) for i in range(1,len(product_list)):#对商品价格进行类型转换(文档默认为string) product_list[i][1] = int(product_list[i][1]) while True: for i in range(len(product_list)):#输出所有商品信息 if str(product_list[i][1]).isdigit(): print(str(i),product_list[i][0],product_list[i][1]) product_text = input('请问添加商品(a),还是修改商品(u):') print(product_text=='u') if product_text == 'u':#更改商品 product_number = input('请输入编号') if product_number.isdigit() and int(product_number)<len(product_list):#判断编号是否为数字 product_number = int(product_number) product_number_text = input('修改格式 商品名:价格') p_n_t_s = product_number_text.split(':')[1] if p_n_t_s.isdigit(): product_list[product_number] = p_n_t_s else: print('输入价格错误') elif product_text == 'a':#添加商品 product_number_text = input('添加格式 商品名:价格') p_n_t_s = product_number_text.split(':')[1] if p_n_t_s.isdigit(): product_list.append(p_n_t_s) else: print('输入价格错误') if product_text == 'q': break with open(product_file_text,'w') as product_file: for i in product_list: if len(i) == 2: product_file.write('{},{}\n'.format(i[0],i[1]))
posted on 2020-12-24 10:26 成前无人知成后有人明 阅读(107) 评论(0) 收藏 举报
浙公网安备 33010602011771号