1. 程式人生 > >初識python: 列表(list)

初識python: 列表(list)

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)