python,希望能帮我找一下下面代码中存在的bug,并且能提出解决办法,最好是直接能有个新的代码
'''原程序
https://www.cnblogs.com/zhangxinqi/p/7593011.html'''
'''登陆购物车:'''
#!/usr/bin/env python
#coding:utf8
#file:Administrator
#time:20170926
import sys,os
#用户密码字典
name_pass = {'user1': '123', 'user2': '456', 'user3': '789'}
#商品列表
shop_list = [
['iphone7', 6500],
['iphone6', 4500],
['金立s10', 3400],
['华为r79', 2888],
['魅族NOTE5', 1888],
['oppoR9', 3600], ]
shop_out = [] #购物车
all_kaixiao = 0 #统计值
#统计三次用户错误锁定
count = 0
for i in range(10):
name_input = input('请输入用户名:')
if name_input in name_pass.keys(): #判断用户存在否
passwd_input = input('请输入密码:')
if passwd_input == name_pass[name_input]: #判断对应用户密码
print('恭喜登陆成功!')
break
else:
if count > 1:
print('3次输入错误,您账号已锁定')
break
print('{}用户名不存在或密码错误,请重新输入!'.format(name_input))
count += 1
else:
print('{}用户不存在'.format(name_input))
continue
money = eval(input('请输入你的预购金额:'))
print('++++++++++商品清单++++++++++++++')
for num, i in enumerate(shop_list, 1):
if isinstance(i, list):
shop_li = i[0]+"\t"+str(i[1])
print(num, shop_li)
else:
print(i)
print('q 退出\n p 打印清单')
while True:
shop_name = input('\n请输入要购买的商品编号:')
shop_name = str(shop_name)
if shop_name == 'q':
exit()
elif shop_name == 'p': #打印购物明细
print('------购物明细------')
for number, i in enumerate(shop_out, 1):
if isinstance(i, list):
hehe = i[0]+":"+str(i[1])
print(number, hehe)
else:
print(number, i)
print('---总计金额:%s---' % (all_kaixiao))
continue #跳出循环,不然会输出非法信息
if shop_name.isdigit() == 1: #判断是否为数字
shop_name = int(shop_name)
else:
print('您的输入非法,请重新输入')
continue
unm1 = int(len(shop_list))
if shop_name not in range(1, unm1+1): #判断输入商品编号是否在序列中
print('输入有误,请重新输入!')
continue
else:
price = int(shop_list[shop_name - 1][1]) #商品单价
if money < price:
print('您的金额不足,无法购买')
continue
money = money - price # 剩余金额
out = shop_list[shop_name - 1][:] # 购买商品信息
shop_out.append(out[:]) # 加入购物车
all_kaixiao += price #汇总消费
print('您购买的商品是:{}单价:{}元'.format(*out))
print('您还可以消费:{}'.format(money))