1. 程式人生 > >Python小練習更改版(更改一部分代碼,與錯誤)

Python小練習更改版(更改一部分代碼,與錯誤)

print items isdigit 對不起 pro 轉換成 efault adl confirm

之前上傳的發現有部分代碼錯誤,重新上傳;

更改了第一次的代碼與錯誤,增加了註釋與商店部分功能;

沒有每天堅持更新博客,與初衷相差甚遠,堅持!每天進步一點點!

user_list.txt 部分代碼:

{‘test1‘: ‘test1‘, ‘test3‘: ‘test3‘, ‘test2‘: ‘test2‘}
lock_list.txt 部分代碼:
[‘test1‘]
money_list.txt 部分代碼:
{‘test1‘: 2000, ‘test3‘: 3000, ‘test2‘: 500 }
  1 #!/usr/bin/env python
  2 #coding:utf-8
  3 import
sys 4 class Shop(object): 5 def __init__(self): 6 self.Red = "\033[1;31m" 7 self.Gre = "\033[1;32m" 8 self.Res = "\033[0m" 9 self.shop_list = [{"1:phone": 2000}, {"2:ipad": 1500}, {"3:ice_box": 500}] 10 self.cars = [] 11 self.customer_expense = 0
12 with open(user_file.txt,r) as fp: 13 user_list = eval(fp.readline()) # 用戶的名字與密碼轉換成字典 14 with open(lock_name.txt,r) as fp2: 15 lock_name = eval(fp2.readline()) # 鎖定的用戶為列表 16 with open(money_list.txt,r) as fp3: 17 money_list = eval(fp3.readline())
18 19 def nameCheck(self,a): #########名字檢測狀態函數 20 if a in self.user_list and a not in self.lock_name: 21 return 0 #如果名字在user_file裏面,且沒在鎖定文件裏面的話,返回0 22 elif a in self.user_list and a in self.lock_name: 23 return 1 #名字在user_file裏面,且被鎖定,返回1 24 else: 25 return 2 #否則返回2 26 27 def passwdCheck(self,a,b): ##########密碼檢測函數 28 count = 3 29 while count > 1: 30 try: 31 if b == self.user_list[a]: 32 return 0 33 else: 34 count -= 1 35 print self.Red,"密碼錯誤,剩余%d次" % count,self.Res 36 b = raw_input("請再次輸入你的密碼: ") ######更改部分給用戶機會輸入密碼 37 except KeyError : 38 return 2 39 else: 40 return 1 41 42 43 def checkAfter(self,b,c,dd): ##########狀態檢測完成後的動作 44 if b == 0 and c == 0 : 45 print self.Gre,"恭喜你(%s),登陸成功!!!,歡迎你來到我們的商店!"%dd,self.Res #成功後動作進到商店 46 self.shopCounts() 47 return self.money_list[dd] 48 49 elif b == 1 : 50 print self.Red,"對不起,你(%s)的賬號被鎖定,請聯系客服!!!"%dd,self.Res #不成功則動作回到初始位置 51 return error 52 elif c == 1 : 53 print self.Red,"密碼錯誤,賬號將被鎖定",self.Res 54 self.nameLock(dd) 55 return right 56 else: 57 prompts = self.Red+"賬號(%s)不存在,是否創建用戶(q|Q退出): "%dd+self.Res#不存在則動作到註冊位置 58 confirm = raw_input(prompts) 59 if confirm.upper() == "Q": #######增加退出接口 60 return error 61 else: 62 self.signName() 63 return right 64 65 66 def signName(self): #########註冊賬號函數 67 while True: 68 sign_name = raw_input("請輸入你要註冊的賬號(q|Q退出!):") 69 value = self.nameCheck(sign_name) 70 if sign_name.upper() == "Q": #####增加退出接口 71 break 72 passwd = raw_input("輸入你的密碼: ") 73 if value == 2: 74 print self.Gre,"congratulations,賬號可用",self.Res 75 money = raw_input("輸入賬號資金: ") 76 if money.isdigit(): 77 print self.Red,"""name: %s 78 passwd: %s 79 money: %d""" %(sign_name,passwd,int(money)),self.Res 80 confirm = raw_input("是否確認以上信息(y|Y確認,其它返回重來): ") 81 if confirm.upper() == "Y": 82 self.user_list.setdefault(sign_name, passwd) #######更改部分,用戶不確認也會將信息存入文件 83 self.money_list.setdefault(sign_name, int(money)) ####### 84 with open(user_file.txt,r+) as fp: 85 fp.write(str(self.user_list)) 86 with open(money_list.txt,r+) as fp3: 87 fp3.write(str(self.money_list)) 88 break 89 90 else: 91 print self.Red,"重新來過",self.Res 92 continue 93 else: 94 print self.Red,"資金錯誤,返回重來",self.Res 95 continue 96 else: 97 print self.Red,"賬號不可用",self.Res 98 continue 99 def nameLock(self,a): ##########鎖定賬號函數 100 self.lock_name.append(a) 101 with open(lock_name.txt,r+) as fp2: 102 fp2.write(str(self.lock_name)) 103 104 def shopCounts(self): #########商店部分函數 105 # for key,value in shop_list.items(): 106 # print key," : ",value #打印商店內容 107 for i in range(3): 108 for key,value in self.shop_list[i].items(): 109 print key,value 110 111 112 def shoping(self,b): ##########購買函數 113 while True: 114 prompts = self.Gre+"請選擇你要的商品編號(q|Q,退出結算): "+self.Res 115 index = raw_input(prompts) 116 if index.upper() == "Q": 117 print self.Red,"購物結束,去結算!",self.Res 118 print b 119 self.money_list[name] = b #####結算部分 120 print self.money_list 121 with open(money_list.txt,w) as fp3: ########此處若是r+ 模式則會出現編碼,暫時沒弄明白!!! 122 fp3.writelines(str(self.money_list)) 123 print "#"*20 124 # print fp3.read() 125 break 126 if index.isdigit(): 127 index = int(index) 128 b = self.shopcar(index,b) 129 else: 130 print self.Red,"你選擇的商品不存在,請確認你的選擇!!!",self.Res 131 self.shopCounts() 132 133 def shopcar(self,a,b): ####購物車函數 134 try: 135 shop_money = self.shop_list[(a-1)].values()[0] 136 # print b 137 if b >= shop_money: 138 print self.Gre, "congratulations!,商品已加入購物車", self.Res 139 self.cars.append(shop_money) 140 b -= shop_money 141 self.customer_expense += shop_money 142 print self.cars 143 return b 144 else: 145 print self.Red, "賬戶余額可能不足哦,還剩%d" % b, self.Res 146 return b 147 except Exception,e: 148 print self.Red,"你選擇的商品不存在!",self.Res 149 return b 150 151 152 153 154 155 maomao = Shop() 156 157 if __name__ == "__main__": 158 while True: 159 name = raw_input("請輸入你的賬號(q|Q退出):") 160 161 if name.upper() == "Q": 162 sys.exit() 163 else: 164 passwd = raw_input("請輸入你的密碼:") 165 b = maomao.nameCheck(name) ######接收用戶檢測狀態值 166 c = maomao.passwdCheck(name,passwd) #####接收用戶密碼檢測狀態值 167 d = maomao.checkAfter(b,c,name) ########接收用戶的moneye值 168 if str(d).isdigit() : 169 maomao.shoping(d) ####處理用戶購物動作



Python小練習更改版(更改一部分代碼,與錯誤)