初识python: 列表(list)
使用列表函数写一个“购物车”小程序:
#!/user/bin env python # author:Simple-Sir # 20180908 ''' 需求: 1、启动程序后,让用户输入工资,然后打印商品列表 2、允许用户根据商品编号购买商品 3、用户选着商品后,检测余额是否够,够就直接扣款,不够就提醒 4、可随时退出,退出时,打印已购买商品和余额 ''' #定义商品 shangping = [ ['1','苹果','10'], ['2','香蕉','20'], ['3','芒果','30'], ['4','西瓜','40'], ['5','葡萄','50'], ['6','榴莲','60'] ] shangping_total = int(shangping[-1][0]) #取最后一个商品的编号 input_money = int(input('请输入您的预算:')) #预算金额 balance = input_money #余额 shangping_kx=[] #可选商品 yx_sp = [] #已选购商品 yx_sp_money = 0 #已选购商品总价 while balance >= int(shangping[0][2]): for i in range(0,shangping_total): if balance >= int(shangping[i][2]): shangping_kx.append(shangping[i]) else: continue print('您可选购以下商品:') for j in shangping_kx: print(j) sp_no = input('请输入您想选购的商品编码:') yx_sp.append(shangping_kx[int(sp_no)-1]) dq_xg_money = 0 dq_xg_money = shangping_kx[int(sp_no)-1][2] yx_sp_money = int(yx_sp_money) + int(dq_xg_money) print('您已选购以下商品:') for k in yx_sp: print(k) print('您当前已选购商品总价为:',yx_sp_money,'元') balance = balance - int(dq_xg_money) print('你当前余额为:',balance,'元') shangping_kx.clear() if balance > 0 : is_continue = input('您是否还要继续选购商品?(Y/N)') if str.upper(is_continue) != 'Y': print('欢迎您下次光临!') exit() else: print('您当前余额已不足,请充值后再选购!')
列表知识点:
#!/user/bin env python # author:Simple-Sir # 20180908 # 列表测试 # names = ["lzh1","lzh2",["lhy1","lhy2"],"lzh4","lzh3","lzh4"] # print(len(names)) # names.append("lzh_add") #添加,追加至最后位置 # names.insert(1,"lzh2_add") #插入,插入到指定位置 # names[2] ="lzh_update" #修改 # names.remove("lzh3") #删除指定值 # del names[0] #删除指定位置值 # names.pop(0) #删除指定位置值,默认删除最后一个值 # print(names.index("lzh4")) #查找指定值的位置 # print(names[names.index("lzh4")]) #通过位置查找值 # print(names.count("lzh4")) #统计指定值数量 # names.clear() #清空列表 # names.sort(reverse=True) # 对列表进行排序,reverse=True 从大到小,反之,从小到大 # names.reverse() #将列表值反转 # print(names) # names2 = [1,2,3,4] # names.extend(names2) #合并 # del names2 #删除合并值 # names2 = names.copy() #复制names,实际复制内存地址 # import copy # names2 = copy.deepcopy(names) # 深copy,完全复制 # names[0] = "列表1" # names[2][0] = "列表1" #列表中含有列表,浅copy,只复制第一层 -->name,names2 一起更改 # 列表循环 # for i in names: # print(i) # print(names[0:3:2]) #间隔2个值,切片 类似:range(0:3:2) # print(names[1:3]) #切片:包括起始位置,不包含结束位置“顾头不顾尾” # print(names[-1]) # 取最后一个值 # print(names[-2:]) #取最后2个值 # print(names[:2]) #取前2个 等价于 print(names[0:2]) # print(names[:]) #取所有值 ''' #浅copy: import copy person = ['name',['saving',100]] p1 = person[:] #将person的值复制给p1 p2 = person[:] #将person的值复制给p2 p1[0] = 'lzh' #修改name的值,只有p1变(外层) p2[0] = 'lhy' #修改name的值,只有p2变(外层) p1[1][1] = '50' #修改100的值,p1、p2都变(内层) print(p1) print(p2) ''' ''' # 元组 names = ('lzh','lhy') print(names.count('lzh')) #统计指定值数量 print(names.index('lhy')) #查找指定值对应的位置 ''' # 列表转字符串 li = ['11','sf','das'] print(''.join(li))
世风之狡诈多端,到底忠厚人颠扑不破;
末俗以繁华相尚,终觉冷淡处趣味弥长。
posted on 2018-09-12 22:13 Simple-Sir 阅读(300) 评论(0) 编辑 收藏 举报