Python作業之購物車

来源:http://www.cnblogs.com/spykids/archive/2016/01/27/5163108.html
-Advertisement-
Play Games

實現情況: 可自主註冊, 登陸系統可購物,充值(暫未實現),查詢餘額。 擼了兩天一夜的代碼,不多說,直接上碼,註釋神馬的後面再說 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 shopping_list = [ 4 ['Iphone 6s pl...


實現情況:

可自主註冊,

登陸系統可購物,充值(暫未實現),查詢餘額。

擼了兩天一夜的代碼,不多說,直接上碼,註釋神馬的後面再說

  1 #!/usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 shopping_list = [
  4         ['Iphone 6s plus',5800],
  5         ['Lumia',3800],
  6         ['Charge',45],
  7         ['Data line',35],
  8         ['MI 5 PRO',2299],
  9         ['MX4',1999],
 10 ]
 11 salary = 100000
 12 total = 0
 13 shop_list = []
 14 
 15 while True:
 16     welcome_1 = "歡迎使用XXX購物商城"
 17     we_1 = welcome_1.center(30,'*')
 18     print(we_1)
 19     choice_1 = "1.註冊 2.登陸 q.退出"
 20     ch_1 = choice_1.center(32,'*')
 21     exit_1 = "謝謝使用,歡迎下次光臨"
 22     ex_1 = exit_1.center(30,'*')
 23     error_1 = "您輸入的用戶已存在,請重新輸入"
 24     e_1 = error_1.center(30,'-')
 25     error_2 = "密碼不能為空,請重新輸入"
 26     e_2 = error_2.center(30,'-')
 27     error_3 = "您輸入的密碼太短,請重新輸入"
 28     e_3 = error_3.center(30,'-')
 29     error_4 = "您的輸入有誤, 請重新輸入"
 30     e_4 = error_4.center(26,'*')
 31     error_5 = " 您的賬號已被鎖定,請聯繫管理員 "
 32     e_5 = error_5.center(12,'*')
 33     print(ch_1 )
 34     sr_1 = input("Please input:")
 35     if sr_1 == '1':
 36         while True:
 37             with open('ming.txt','r')as r_1:
 38                 temp = r_1.readlines()
 39                 tlist = []
 40             for tline in temp:
 41                 tline = tline.strip().split(':')
 42                 tlist.append(tline[0])
 43             useradd = input("Please create user:")
 44             success_1 = "成功創建用戶:%s" %(useradd)
 45             if useradd in tlist:
 46                 print(e_1 )
 47             elif useradd == "exit":
 48                 break
 49             else:
 50                 passwd = input("Please create a password(Letters and numbers):")
 51                 length = len(passwd)
 52                 if length == 0 :
 53                     print(e_2)
 54                 elif length > 7:
 55                     with open('ming.txt','a')as r_3:
 56                         w_1 = '%s:%s:0\n' %(useradd,passwd)
 57                         r_3.write(w_1)
 58                         s_1 = success_1.center(30,'-')
 59                         print(s_1)
 60                         break
 61                 else:
 62                     print(e_3)
 63 
 64     elif sr_1 == '2':
 65         flag = False
 66         while True:
 67             username = input("Please enter a user name:")
 68             l = open('lock.txt','r')
 69             for lline in l.readlines():
 70                 lline = lline.strip()
 71                 if username == lline:
 72                     print("賬號被鎖")
 73                     flag = True
 74                     l.close()
 75                     break
 76             if  flag == True:
 77                 break
 78 
 79             u = open('ming.txt','r')
 80             for uline in u.readlines():
 81                 user,password,mony = uline.strip().split(':')
 82 
 83                 if username == user:
 84                     i = 0
 85                     while  i < 3:
 86                         passwd = input('Please enter a password:')
 87                         i +=1
 88                         if passwd == password:
 89                             print('歡迎%s登陸線上購物平臺' % username)
 90                             flag = True
 91                             u.close()
 92                             break
 93                         else:
 94                             if i >= 3:
 95                                 with open('lock.txt','a') as l_2:
 96                                     l_2.write(username + '\n')
 97                                     l.close()
 98                                 exit("試了太多次,將被鎖定,請聯繫管理員")
 99                             print('密碼輸入錯誤,還有%d次機會' % (3 - i))
100                     break
101             else:
102                 print("用戶輸入錯誤,請重新輸入")
103 
104 
105             while True:
106                 print("1.購物 2.查看購物車 3.查詢餘額 4.充值 b.返回登陸 q.退出")
107                 print("------------------------------------------------")
108                 choice_2 = input("輸入序號:")
109                 flag_1 = False
110                 while True:
111                     if choice_2 == "1":
112                         while True:
113                             for index,g in enumerate(shopping_list):
114                                 print(index,g[0],g[1])
115                             print("-------------------------")
116                             print("c.查看購物車 b.返回 q.退出")
117                             print("-------------------------")
118                             choice = input("鍵入數字選擇商品:").strip()
119                             if choice.isdigit():
120                                 choice = int(choice)
121                                 p_price = shopping_list[choice][1]
122                                 if p_price < salary:
123                                     shop_list.append(shopping_list[choice])
124                                     total += p_price
125                                     salary -= p_price
126                                     print("-------------------------")
127                                     print("您購買了%s,餘額為%s"%(shopping_list[choice][0],salary))
128                                     print("-------------------------")
129                                 else:
130                                     print("-------------------------")
131                                     print("您的餘額不足")
132                                     print("-------------------------")
133                             elif choice == "c":
134                                 while True:
135                                     print("----------購物車----------")
136                                     for k,v in enumerate(shop_list):
137                                         print(k,v[0],v[1])
138                                     print("已消費金額為:%s"%total)
139                                     print("您的可用餘額:%s"%salary)
140                                     print("-------------------------")
141                                     print("d.刪除商品 b.返回購物 q.結算退出")
142                                     print("-------------------------")
143                                     choice_1 = input("請鍵入字母選擇功能:")
144                                     print("-------------------------")
145                                     if choice_1 == "d":
146                                         print("-------------------------")
147                                         print("輸入數字為刪除商品,輸入字母b為返回購物車")
148                                         print("-------------------------")
149                                         while True:
150                                             choice_2 = input("請選擇:")
151                                             if choice_2.isdigit():
152                                                 choice_2 = int(choice_2)
153                                                 d_price = shop_list[choice_2][1]
154                                                 shop_list.remove(shop_list[choice_2])
155                                                 total -= d_price
156                                                 salary += d_price
157                                                 print("-------------------------")
158                                                 print("商品%s刪除成功,可用餘額為:%s"%(shop_list[choice_2][0],salary))
159                                                 print("-------------------------")
160                                             elif choice_2 == "b":
161                                                 break
162                                     elif choice_1 == "b":
163                                         flag = True
164                                         break
165                                     else:
166                                         print("----------購物清單----------")
167                                         for k,v in enumerate(shop_list):
168                                             print(k,v[0],v[1])
169                                         print("總消費金額為:%s"%total)
170                                         print("您的可用餘額:%s"%salary)
171                                         print("--------歡迎下次再來-------")
172                                         exit(0)
173                             elif choice == "b":
174                                 break
175                             elif choice == "q":
176                                 print("----------購物清單----------")
177                                 for k,v in enumerate(shop_list):
178                                     print(k,v[0],v[1])
179                                 print("總消費金額為:%s"%total)
180                                 print("您的可用餘額:%s"%salary)
181                                 print("--------歡迎下次再來--------")
182                                 exit(0)
183                             else:
184                                 print("-------------------------")
185                                 print("您的輸入有誤,請重新輸入")
186                                 print("-------------------------")
187                         if flag == True:
188                             break
189                     elif choice_2 == "2":
190                         print("----------購物車----------")
191                         for k,v in enumerate(shop_list):
192                             print(k,v[0],v[1])
193                         print("已消費金額為:%s"%total)
194                         print("您的可用餘額:%s"%salary)
195 
196                         print("-------------------------")
197                         break
198                     elif choice_2 == "3":
199                         with open('ming.txt','r')as m_1:
200                             mony_1 = m_1.readlines()
201                         for mline in mony_1:
202                             (user,password,mony) = mline.strip().split(':')
203                             print(salary)
204                             flag_1 = True
205                             break
206                         break
207 
208                     elif choice_2 == "4":
209                         z  = 0
210                         while z < 1:
211                             chongzhi = int(input("輸入金額:"))
212                             passwd_1 = input("請輸入密碼:")
213                             m = open('ming.txt','r+')
214                             m_2 = m.readlines()
215 
216                             for mline in m_2:
217                                 (user,password,mony) = mline.strip().split(':')
218 
219                                 if passwd_1 == password:
220                                     mony_2 = (chongzhi + int(mony))
221 
222                                     w_2 = '%s:%s:%s\n' %(username,password,mony_2)
223                                     m.write(w_2)
224                                     print("充值成功")
225                                     print(mony)
226                                     flag = True
227                                     break
228                                 continue
229                             break
230                         if flag == True:
231                             break
232 
233                     elif choice_2 == "b":
234                         flag = True
235                         break
236 
237                     elif choice_2 == "q":
238                         exit(ex_1)
239                     else:
240                         print(e_4)
241                         break
242                     break
243                 if flag == True:
244                     break
245             break
246     elif sr_1 == 'q':
247         exit(ex_1)
248     else:
249         print(e_4)
250         print('                                   ')
251 
252 
253 
購物車
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 通過對比.net枚舉來重新理解java的枚舉,它是一個比較特殊的數據類型,除了具備值存儲的能力還擁有class特性,作用範圍相比.net要大,但實現更加複雜些。
  • 在windows環境下搭建redis是一般是為了測試,官方redis並沒有給windows版redis但是微軟有。 windows版下載地址:https://github.com/MSOpenTech/redis/releases 直接下載 Redis-***.mis後安裝即可 環境安裝後修改app
  • maven profiles, 預設激活一個 profile 有兩種方式: 方式1: <activation> <activeByDefault>true</activeByDefault> </activation> 方式2: <activation> <property>!Foo<propert
  • 有時需要對List排序,這時可以利用Collections的sort()方法來排序,不用自己再去排序。 package myTest; import java.util.ArrayList; import java.util.Collections; import java.util.Compara
  • 1.1 什麼是高速電路 信號的最高頻率成分是取決於有效頻率,而不是周期頻率。 高速電路的定義是根據信號的有效頻率來計算的,在現實世界中,任何信號都是由多個頻率分量的正弦波疊加而成的。定義各正弦波分量的幅值為VN,則VN = 2 / (3.14 x N),可見各級諧波分量的幅值與頻率成反比。現實信號,
  • 2016.1.27 試題描述 現在一共有4種硬幣,面值各不相同,分別為ci(i=1,2,3,4)。某人去商店買東西,去了tot次,每次帶di枚ci硬幣,購買價值為si的貨物。請問每次有多少種付款方法。 輸入 第一行包括五個數,分別為c1,c2,c3,c4和tot 接下來有tot行,每行五個數,第i+
  • lambda只是一個表達式,函數體比def簡單很多。 lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。 lambda表達式是起到一個函數速寫的作用。允許在代碼內嵌入一個函數的定義。 如下例子: 定義了一個lambda表達式,求三個數的和。 再看一個例
  • 複習之餘,做點筆記<C語言之數據類型> 一、整數數據類型 (1)整數數據類型 整數類型 char 字元型變數 1位元組(8Bit) short 短整型 2位元組(16Bit) int 整形變數 取決於編譯器 long 長整形變數 取決於編譯器 對int的理解:在電腦中有CPU和記憶體,在CPU中有寄存器
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...