時隔半年再寫購物車程序並改進
時隔了半年時間,重新把購物車程序拿出來再寫一遍,感覺對於循環語句比之前熟悉多了,腦子裏面開始有程序流程圖,之前懵懵懂懂地跟著老師來寫,現在基本可以自己寫,自己判斷問題出在哪裏了。
這段程序沒用pycharm來寫,直接用NOTEPAD++,感覺還很不錯,昨天調試了NOTEPAD++運行python的環境,簡單輕度的程序都可以試著用這個寫了。界面還是很漂亮的。
編程要求和編程日誌思考:
1、寫一段商城程購物車序的代碼
2、用列表把商城的商品清單存儲下來
(1)不能用字典,因為字典無法用序列號打印,用列表中存儲元祖的方式。
(2)存到列表 shopping_mail,打印購物車的序列號及表單內容,用enumerate()函數,學習一下使用enumerate()函數。
enumerate是翻譯過來是枚舉的意思,看下它的方法原型:
enumerate(sequence, start=0),返回一個枚舉對象。sequence必須是序列或叠代器iterator,或者支持叠代的對象。
enumerate()返回對象的每個元素都是一個元組,每個元組包括兩個值,一個是計數,一個是sequence的值,計數是從start開始的,start默認為0。
//
3、購物車的列表為shopping_cart
4、用戶首先輸入工資金額,判斷輸入為數字
(1)判斷輸入是否是數字需要使用.isdigit()方法(判斷字符串是否只由數字組成)
例如:
//
str = "123456"
print str.isdigit()
str = "this is string example....wow!!!"
print str.isdigit()
結果:FALSE
//
//
While Ture:語句的運算速度比While 1:運算速度要慢,所以盡量while true都用 while 1:來寫
同時,if x==ture的運算速度比 if x:慢,所以盡量用if x:來替代。
//
5、用戶從商城購物清單中選擇購買物品,每次購買成功就用工資減去物品單價
6、判斷用戶金額是否足夠,不足夠提示用戶
//
(1)shopping_mail是一個表格內嵌了元祖,購物車shopping_cart是一個空表格
(2)choice是選擇的數值,可以根據購物清單上的序列號來進行選擇。這個簡化了購物流程。需要判斷choice必須是在0和len(shopping_mail)之間,否則就會出錯
(4)如果直接把元祖p_item與工資進行對比,計算機會報錯,因為元祖裏面包含2個元素
//
7、如果用戶不想再繼續購物,則按Q鍵退出菜單
8、用戶退出之後,將用戶購買的清單打印出來。
9、盡量學習帶顏色輸出幾個重點信息字符。
//
(1)字符串*數值可以用來控制空格,橫杠等。
(2)/n是回車;/t是類似TAB鍵
//
1 space="-"*25 2 shopping_cart=[] 3 shopping_mail= [ 4 (‘Iphone‘,5800), 5 (‘Mac Pro‘,9800), 6 (‘Bike‘,800), 7 (‘Watch‘,10600), 8 (‘Coffee‘,31), 9 (‘Alex Python‘,120), 10 ] 11 salary=input("請輸入您的工資金額:") 12 if salary.isdigit()==True: 13 salary=int(salary) 14 while 1: 15 for i in shopping_mail: 16 print(space) 17 print(shopping_mail.index(i),i) 18 print(space) 19 choice=input("請輸入您選擇的商品序號: ") 20 if choice.isdigit(): 21 choice=int(choice) 22 if choice>-1 and choice<len(shopping_mail): 23 p_item=shopping_mail[choice] 24 if p_item[1]<=salary: 25 shopping_cart.append(p_item) 26 salary=salary-p_item[1] 27 print("\n您選購的商品是:{}".format(p_item)) 28 print("\n您的工資余額是:{}\n".format(salary)) 29 else: 30 print ("\n您的余額不足\n") 31 elif choice==‘q‘: 32 print("\n您本次購買的商品是:{}".format(shopping_cart)) 33 print("\n您的工資余額為:{}".format(salary)) 34 break 35 36 else: 37 print("輸入錯誤,只能輸入商品序列號相關數字!") 38 39 else: 40 print("輸入錯誤,只能輸入數字!")
時隔半年再寫購物車程序並改進