pythonは簡単なショッピングモールを実現します。
8018 ワード
この文章は皆さんにショッピングモールの小さいプログラムを共有しました。
ソフトウェアバージョン:python 3.x
機能:簡単ショッピングモールの実現
1.ユーザーがどれぐらいのものを買うかを選択することができます。
2.マルチユーザー登録を許可して、次のログイン後、前回の残高を押して引き続き購入します。
3.ユーザーに以前の購入記録を確認させる(購買時間を表示する)
4.商品リストの階層展示
操作:
1.デフォルトのユーザ、パン、li、パスワードは123です。
2.ログイン後はユーザー名とパスワードを正しく入力する必要があります。
3.ヒント通りにチャージの金額を選択します。
4.購入した商品を選択し、qを押して退出し、cを押して購入記録を確認し、sを押して現在購入した商品を確認する。
注:file_lock.txt,username_file.txtは事前に作成する必要があります。
コードは以下の通りです
ソフトウェアバージョン:python 3.x
機能:簡単ショッピングモールの実現
1.ユーザーがどれぐらいのものを買うかを選択することができます。
2.マルチユーザー登録を許可して、次のログイン後、前回の残高を押して引き続き購入します。
3.ユーザーに以前の購入記録を確認させる(購買時間を表示する)
4.商品リストの階層展示
操作:
1.デフォルトのユーザ、パン、li、パスワードは123です。
2.ログイン後はユーザー名とパスワードを正しく入力する必要があります。
3.ヒント通りにチャージの金額を選択します。
4.購入した商品を選択し、qを押して退出し、cを押して購入記録を確認し、sを押して現在購入した商品を確認する。
注:file_lock.txt,username_file.txtは事前に作成する必要があります。
コードは以下の通りです
#!/usr/bin/env python
#coding:utf-8
#Auto:Panwenbin
#function:
import shelve
import time
shop_list={ #
' ':{' ':'8000',' ':'10000',' ':'3800',' ':'3600'},
' ':{' ':'288',' ':'300',' ':'6',' ':'4'},
' ':{' ':'999999',' X5':'550000',' ':'250000',' ':'100000'},
' ':{' ':'888',' ':'666',' ':'388',' ':'259'},
}
count=0#
jiage=[]
shop_list1={}
shop_name=list(shop_list.keys()) #
lock_file=open('file_lock.txt','r+')
user_pass=open('username_file.txt','r+')
count=0
def show_list():#
for i,j in enumerate(shop_list):
print('%d:%s'%(i,j))
def show_menu(user_choise):#
user_choise=int(user_choise)
a=shop_name[user_choise]
for index,key in enumerate(shop_list[a]): #
print('%d:%s %s'%(index,key,shop_list[a][key]))
def show_menu2(user_choise,user_choise2):# ,
user_choise=int(user_choise)
if user_choise2.isdigit() and int(user_choise2) < len(shop_list[shop_name[int(user_choise)]]):# ,
user_choise2=int(user_choise2)
# if user_choise2==0:
jiage.clear()
for v,k in enumerate(shop_list[shop_name[user_choise]]): #
jiage.append(shop_list[shop_name[user_choise]][k])#
jiage2=(int(jiage[user_choise2]))
global jiage2
def quit_time():#
for i in [3,2,1]:
print('\033[32;1m , .....\033[1m',i)
time.sleep(1)
def start():
while True:
if user_choise.isdigit() and int(user_choise) <len(shop_list):# ,
show_menu(user_choise)# show_menu ,
break
else:
print('\033[31;1m , \033[1m')#
break
########################################################################################################################
while count <3:# 3
print('\033[31;1m :pan,123 li,123\033[1m')
username=input('\033[34;1m :\033[1m')
for i in lock_file.readlines(): #
i=i.split()
if username in i[0]:
print('\033[31;1m %s \033[1m'%username)
exit()
match = False
for j in user_pass.readlines():
user,password = j.strip('
').split() #
, user,passwd
if username == user: #
passwd=input ('\033[30;1m :')
if password == passwd:
match = True
break
elif password != passwd:# ,
for i in range(2):
passwd=input ('\033[31;1m , :\033[1m')
if password == passwd:
match =True
break
else:
print('\033[31;1m , , \033[1m')
lock_file.write('%s
'%username)
lock_file.close()
user_pass.close()
exit()
if username != user:
print('\033[31;1m , \033[1m')
exit()
elif match==True:
break
########################################################################################################################
f=shelve.open('user.db','c+')
try:
if f[user] >0:
pay=f[user]
chong_zhi=input('\033[33;1m %d, ? , , q:\033[1m'%f[user])
if chong_zhi.isdigit() and int(chong_zhi) > 0:
pay=int(chong_zhi)+int(pay)
print('\033[35;1m \033[1m',pay)
except KeyError:
chong_zhi=input('\033[36;1m 0, ? , q:\033[1m')
while True:
if chong_zhi.isdigit() and int(chong_zhi) > 0:
pay=int(chong_zhi)
print('\033[33;1m \033[1m',pay)
break
elif chong_zhi=='q':
print('\033[36;1m \033[1m')
exit()
else:
pass
# pay=input(' 0, ? , q:')
########################################################################################################################
while True:
show_list()# show_list ,
user_choise=input('\033[32;1m :\033[1m') #
start()# start
user_choise2=input('\033[36;1m 。 q , c , s , ,:\033[0m')#
# user_num=input('\033[35;1m , 1:\033[0m')#
if user_choise2.isdigit() and int(user_choise2) < len(shop_list[shop_name[int(user_choise)]]):# ,
user_num=input('\033[35;1m , 1:\033[1m')#
show_menu2(user_choise,user_choise2)# show_menu2 , ,
if user_num.strip() =='':# , 1
user_num=int(1)
elif user_num.isdigit and int(user_num) > 1:# 1,
user_num=int(user_num)
else:
user_num=int(1)#
pay=int(pay)
if pay > jiage2*user_num:# *
pay=pay-jiage2*user_num
choise=list(shop_list[shop_name[int(user_choise)]].keys())#
count+=1 #
goumai_jilu=shelve.open('goumai_jilu.txt','a+') # shelve
goumai_jilu[str(count)]=choise[int(user_choise2)],jiage2,user_num,time.ctime()# ,
goumai_jilu.close()#
a=choise[int(user_choise2)]# ,choise
if a in shop_list1: #
shop_list1[a][0]=int(shop_list1[a][0])+user_num #
shop_list1[a][1]=int(shop_list1[a][1])+int(shop_list1[a][1]*user_num) #
else:
shop_list1[a]=list([1,jiage2])
print('\033[32;1m :\033[1m',pay)
else:
print('\033[32;1m , :\033[0m')
elif user_choise2=='b':#
continue
elif user_choise2=='q':#
f=shelve.open('user.db','a+')
f[user]=pay
f.close()
exit()
elif user_choise2=='c':
goumai_jilu=shelve.open('goumai_jilu.txt','a+')
print('\033[32;1m :\033[1m')
for i in goumai_jilu.items(): #
print('{} {}'.format(i[0],goumai_jilu[i[0]]))#
print('\033[32;1m################################################\033[0m')
quit_time()
elif user_choise2=='s':
print('\033[32;1mp_name num total_price\033[1m')
print('\033[32;1m%-10s%-10s%-10s\033[1m'%(a,shop_list1[a][0],shop_list1[a][1]))# ,
print('\033[32;1m################################################\033[0m')
quit_time()
else:
print('\033[41;33m , :\033[0m')
continue
以上が本文の全部です。Pythonのプログラム設計を勉強するのに役立ちます。