pythonは簡単なショッピングモールを実現します。


この文章は皆さんにショッピングモールの小さいプログラムを共有しました。
ソフトウェアバージョン: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のプログラム設計を勉強するのに役立ちます。