1. 程式人生 > >用python簡單寫了個購物車

用python簡單寫了個購物車

暫時只懂識別輸入的是否為整數,但是浮點數就沒辦法了

網上看了一下可以用正則來識別,暫時還沒學到,先放著了,這個比較簡單,主要是列表元素的刪除用了幾種方法,發現del比較理想

'''
購物車小程式
要求:
1.可以輸入客戶的餘額
2.列出可選物品清單,包含價格
3.可以新增到購物車
4.可以從購物車中刪除物品
5.可以隨時退出,即結算,結算後輸出購物清單和總價,若餘額不足則提示
'''

print("歡迎!\n")


list=[('Iphone 8',8000,),
      ('Mac book',12000,),
      ('PS4',3000,),
      ('IWatch',3500,),
      ('Alien ware',20000)]
shoppinglist=[]#購物車列表
print("-----可選購物清單----\n")
for index,item in enumerate(list):
    print (index+1,item)

def settle():#結算函式
    i=0
    sum=0
    while i<len(shoppinglist):
        sum+=shoppinglist[i][1]
        i+=1
    if sum<=balance:
        print('結算後餘額為:',balance-sum,'不過之後會清零哦')
    else:
        print('錢不夠呢')
    print('結算完畢,歡迎下次繼續使用!')

while True:
    balance=input('輸入你的餘額:')
    if balance.isdigit():#暫時只支援判斷輸入的是否為整數
        balance=int(balance)
        while True:
            choice=input("請根據編號選擇你需要的商品,如需要刪除請按b後根據編號選擇,退出結算請按q\n")
            if choice.isdigit():
                choice=int(choice)
                if choice >=1 and choice<=len(list):
                    shoppinglist.append(list[choice-1])
                    print("你已選擇:")
                    for index,item in enumerate(shoppinglist):
                        print(index+1,item)
                else:
                    print("沒有該商品,請重新輸入")
            elif choice=='b':
                deletechoice=input('輸入你要刪除的物品編號:')
                if deletechoice.isdigit():
                    deletechoice=int(deletechoice)
                    if deletechoice>=1 and deletechoice<=len(shoppinglist):
                        del shoppinglist[deletechoice-1]#刪除改商品
                        print('刪除後的結果為:')
                        for index,item in enumerate(shoppinglist):
                            print(index+1,item)
                    else:
                        print('商品不存在購物車中.')
                else:
                    print('輸入錯誤,請重試')
            elif choice=='q':
                settle()#呼叫結算函式
                exit()
            else:
                print('請輸入正確的指令')
    else:
        print("請輸入一個正確的整數")