Python3.5 Day2做業:購物車程序

需求:python

      1. 啓動程序後,用戶經過帳號密碼登陸,而後打印商品列表。git

      2. 容許用戶根據商品編號購買商品。app

      3. 用戶選擇商品後,檢測餘額是否足夠,夠就直接扣款,不夠就提醒充值。spa

      4. 可隨時退出,退出時,打印已購買的商品和餘額。
code

  1 #!/usr/bin/env python
  2 # -*- coding: utf-8 -*-
  3 
  4 count = 0  # 計數器
  5 username = "aaa"  # 登陸用戶名
  6 userpassword = "asd"  # 登陸密碼
  7 
  8 
  9 #建立黑名單表
 10 f=open('name.txt','a')
 11 f.close()
 12 #建立用戶餘額存放地址
 13 f = open('salary.txt', 'a')
 14 f.close()
 15 
 16 f = open("name.txt", "r")
 17 file_list = f.readlines()
 18 f.close()
 19 
 20 lock = []
 21 name = input("登陸用戶名:")
 22 
 23 # 判斷用戶是否在黑名單
 24 for i in file_list:
 25     line = i.strip("\n")
 26     lock.append(line)
 27 if name in lock:
 28     print("您的帳號已鎖定,請聯繫管理員。")
 29     exit()
 30 else:
 31     # 若是用戶沒有在黑名單,判斷用戶是否存在。
 32     if name == username:
 33         # 若是密碼連續輸錯三次,鎖定帳號。
 34         while count < 3:
 35             password = input("登陸密碼:")
 36             if name == username and password == userpassword:
 37                 print("\033[92mWelcome to Mr.wang mall\033[0m")
 38                 break
 39             else:
 40                 print("帳號密碼不匹配")
 41                 count += 1
 42                 if count ==3:
 43                     print("對不起,您的帳號連續輸錯三次帳號已鎖定,請聯繫管理員。")
 44                     f = open("aaa.txt", "w+")
 45                     li = ['%s' % username]
 46                     f.writelines(li)
 47                     f.close()
 48                     exit()
 49         else:
 50             print("對不起,您的帳號連續輸錯三次帳號已鎖定,請聯繫管理員。")
 51             f = open("name.txt", "w+")
 52             li = ['%s' % username]
 53             f.writelines(li)
 54             f.close()
 55     else:
 56         print("用戶名不存在,請輸入正確的用戶名。")
 57         exit()
 58 
 59 #用戶購買商品列表
 60 shopping_list = []
 61 #用戶購買物品名稱存放列表
 62 goods = []
 63 #用戶購買物品價格存放列表
 64 price = []
 65 #商品價格列表
 66 product_list = [
 67     ['Iphone',5800],
 68     ['Mac Pro',9800],
 69     ['Bike',800],
 70     ['Watch',10600],
 71     ['Coffee',31],
 72     ['Alex Python',120],
 73 ]
 74 
 75 #讀取用戶的餘額,若是首次登錄餘額爲0
 76 f1 = open("salary.txt", "r")
 77 file_list = f1.readlines()
 78 f1.close()
 79 salary = []
 80 if file_list:
 81     print("")
 82 else:
 83     f2 = open("salary.txt", "w")
 84     f2.write("0")
 85     f2.close()
 86 f1 = open("salary.txt", "r")
 87 fil_list = f1.readlines()
 88 f1.close()
 89 for i in fil_list:
 90     lin = i.strip("\n")
 91     salary.append(lin)
 92 
 93 salary = int(salary[0])
 94 
 95 #商品購買循環
 96 while True:
 97                          #循環打印商品目錄
 98                          for j in range(1):
 99                              print("----shopping list----")
100                              for i,ele in enumerate(product_list):
101                               print (i,ele[0],ele[1])
102                          var = (input("\033[94m請輸入你要買的商品序列號(充值:t 餘額:b 購買:y 退出:q):\033[0m"))
103                          #判斷用戶輸入的是否爲商品序號是否爲數字
104                          if var.isdigit():
105                              var = int(var)
106                              #判斷用戶輸入的商品序號是否在範圍內
107                              if var >=0 and len(product_list) > var:
108                                    p = product_list[var]
109                                    #判斷用戶的餘額是否足夠買想要的商品
110                                    if p[1] <= salary:
111                                        shopping_list.append(p)
112                                        goods.append(p[0])
113                                        price.append(p[1])
114                                        salary = salary -p[1]
115                                        print("\033[94m您購買\033[0m\033[95m%s\033[0m\033[94m已加入購物車後,您的餘額還有\033[0m\033[95m%s\033[0m"%(p[0],salary))
116                                    else:
117                                        print("\033[91m您的餘額不足(餘額:%s),請充值後購買(充值:t)。\033[0m"%salary)
118                              else:
119                                  print("\033[91m沒有找到您想要的商品,請從新輸入商品編號。\033[0m")
120                                  continue
121                          elif var == "t":
122                             num1 = input("\033[94m請輸入充值金額:\033[0m")
123                             if num1.isdigit():
124                               num1 = int(num1)
125                               salary = salary + num1
126                               print("您如今的總餘額是:",salary)
127                             else:
128                               print("\033[91m請輸入正確的充值金額\033[0m")
129                               num1 = input("\033[94m請輸入充值金額:\033[0m")
130                               continue
131                          elif var == "q":
132                              exit()
133                          elif var == "b":
134                              print("\033[91m您當前餘額爲:%s\033[0m"%salary)
135                          elif  var == "y":
136                              print("--------shopping list------")
137                              goods.sort()
138                              s = set(goods)
139                              for item in s:
140                                  print (" %s     x   %d"%(item,goods.count(item)))
141                              sum = 0
142                              for j in price:
143                                  sum = sum +j
144                              print("您總計消費:\033[95m % s\033[0m餘額:\033[95m % s\033[0m"%(sum,salary))
145                              print("\033[94m歡迎您下次購物\033[0m")
146                              f = open("salary.txt", "w+")
147                              la = ['%s' %salary]
148                              f.writelines(la)
149                              f.close()
150                              exit()
151                          else:
152                              print("\033[91m請輸入正確的商品編號。\033[0m")
153                              continue
相關文章
相關標籤/搜索