初識python: 列表(list)
阿新 • • 發佈:2018-09-13
span count ping 金額 小程序 avi clear str auth
使用列表函數寫一個“購物車”小程序:
#!/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"] # 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() #清空列表 # print(names.reverse()) #將列表值反轉 # 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‘)) #查找指定值對應的位置 ‘‘‘
初識python: 列表(list)