import os
print('welcome!!')
product_list = [
['商品1',100],
['商品2',200],
['商品3',300],
['商品4',500],
['商品5',1000],
['商品6',3000],
['商品7',5000]]
current_user_info = []
membership_card = {}
shopping_cart = {}
db_file = r'dbfile.txt'
def myregistered():
print('welcome!')
member_name = input('please input your member name : ')
with open(r'dbfile.txt', 'r', encoding='utf-8') as read_db_file:
for line in read_db_file:
db_user_info = line.strip('\n').split('|')
if member_name in db_user_info:
print("you are already a member!")
return
while True :
password = input('please input your password : ')
password2 = input('please input your password again: ')
if password.isdigit() and password2.isdigit() :
password = int(password)
password2 = int(password2)
else :
print('please try again !')
continue
if password == password2 :
break
else :
continue
Balance = input('please input how much do you want choice :')
with open(r'dbfile.txt','a',encoding='utf-8') as write_db_file :
write_db_file.write('%s|%s|%s\n'%(member_name,password,Balance))
print('registration success!')
c = input('Whether to log in now ? y/n')
if c == 'y' :
mylogin()
else :
pass
def mylogin():
n = 1
while True :
m_name = input('please input your Member name: ').strip()
m_pwd = input('please input your password : ').strip()
if n == 3 :
print("Too many attempts !")
b = input('do you want more try ? y/n')
if b == 'y':
n = 0
else:
print('Welcome to visit next time! ')
return
if m_pwd.isdigit():
m_pwd = int(m_pwd)
else :
n += 1
continue
with open(r'dbfile.txt','r',encoding='utf-8') as read_db_file:
for line in read_db_file :
db_user_info = line.strip('\n').split('|')
if m_name == db_user_info[0] and m_pwd == int(db_user_info[1]):
current_user_info.append(m_name)
current_user_info.append(db_user_info[2])
print('welcome! \n member name : %s \n Balance : %s '%(current_user_info[0],current_user_info[1]))
print('login successful!')
return
else :
print('mamber name or password is wrong! please try again!')
n += 1
continue
while True:
print('1.shopping \n2.login \n3.registered\n4.Balance\n5.shopping_cart')
d = input('make your choice pleace >>:')
if d.isdigit():
d = int(d)
if d == 1:
for index, product in enumerate(product_list):
print(index + 1, product)
while True:
for index, product in enumerate(product_list):
print(index + 1, product)
choice = input('which one do you want ? >>>: ').strip()
if choice.isdigit():
choice = int(choice)
if choice < len(product_list) and choice >= 0:
pname = product_list[choice - 1][0]
pprice = product_list[choice - 1][1]
if product_list[choice - 1][0] in shopping_cart:
shopping_cart[pname]['count'] += 1
else:
shopping_cart[pname] = {'pprice': pprice, 'count': 1}
# ([product_list[choice-1][0],product_list[choice-1][1],1])
print(shopping_cart)
elif choice == 'q':
if current_user_info == []:
print('please login >> :')
mylogin()
for index, product in enumerate(product_list):
print(index + 1, product)
print('已购买%s'%shopping_cart)
continue
elif current_user_info != []:
print(shopping_cart)
x = input('do you want to pay the bill? y/n')
if x == 'y' :
t = 0
for key in shopping_cart :
t = t + shopping_cart[key]['count']*shopping_cart[key]['pprice']
print('您一共消费%s'%t)
if t < int(current_user_info[1]) :
current_user_info[1] = int(current_user_info[1]) - t
print('扣款成功,您的余额为%s'%current_user_info[1])
with open(r'dbfile.txt','r',encoding='utf-8') as read_dbfile ,\
open(r'dbfile.swap','w',encoding='utf-8') as write_dbfile:
for line in read_dbfile:
if line.startswith(current_user_info[0]):
l = line.strip('\n').split('|')
l[-1] = str(current_user_info[1])
line = '|'.join(l) + '\n'
write_dbfile.write(line)
os.remove('dbfile.txt')
os.rename('dbfile.swap', 'dbfile.txt')
shopping_cart = {}
continue
else :
print('sorry,钱不够')
print(shopping_cart)
else :
print(shopping_cart)
for index, product in enumerate(product_list):
print(index + 1, product)
elif d == 2:
mylogin()
elif d == 3:
myregistered()
elif d == 4:
if current_user_info != []:
print('Balance : %s '%current_user_info[1])
else :
print('please login !')
mylogin()
elif d == 5 :
print(shopping_cart)
else :
print("plecse try again >>:")
continue
# 必须先注册,后shopping 登陆,登陆时用户不存在没有提示注册