流程图:
实现情况:
可自主注册,
登陆系统可购物,充值(暂未实现),查询余额。
撸了两天一夜的代码,不多说,直接上码,注释神马的后面再说
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