題目如下:
商品檔案products.txt裡存的內容如下:
使用者檔案user.txt裡存的內容如下:
,'xg': }
管理員可以操作:
1.給使用者充值,輸入使用者名稱,修改money,100000
2.新增商品
3.logout
普通使用者可以操作:
1.看商品資訊
2.買東西,a.東西加products,money要修改
3.檢視自己的商品和餘額
4.退出
需求分析:
1.商品、使用者檔案 初始化資料
2.登入 讀取使用者檔案
3.登入獲取角色,給出相應選單 字典獲取使用者角色,定義字典 給使用者選擇相應的操作
4.管理員
1.給使用者充值,輸入使用者名稱,修改money,100000
2.新增商品
3.logout
5.使用者
1.看商品資訊
2.買東西,a.東西加products,money要修改
3.檢視自己的商品和餘額
4.退出
**如下:
#定義讀寫檔案def op_file(filename,content=none):
if content:
with open(filename,'w',encoding='utf-8') as f:
f.write(str(content))
else:
with open(filename,'r',encoding='utf-8') as f:
res=eval(f.read())
return res
#定義校驗money的輸入合法性
def checkmoney(money):
if money.isdigit():
return true
elif money.count('.')==1:
if money.split('.')[0].isdigit() and money.split('.')[1].isdigit():
return true
return false
#定義登入
def login():
username=input('使用者名稱:')
password=input('密碼:')
users=op_file('user.txt')
if username in users and users[username]['pass']==password:
print('歡迎【%s】登入'%username)
return username,users[username]['role']
else:
print('登入失敗!')
#管理員
#1.給使用者充值,輸入使用者名稱,修改money,100000
def charge():
username = input('使用者名稱:').strip()
money = input('金額:').strip()
users = op_file('user.txt')
if username in users and checkmoney(money):
users[username]['money']+=float(money)
op_file('user.txt',content=users)
# 2.新增商品
def add():
sp_name = input('商品名稱:').strip()
sp_money = input('金額:').strip()
sp = op_file('products.txt')
if checkmoney(sp_money):
sp[sp_name]=float(sp_money)
op_file('products.txt', content=sp)
# 3.logout
def logout():
exit('退出程式')
#5.使用者
# 1.看商品資訊
def show():
sp = op_file('products.txt')
for i in sp:
print('商品:%s,價錢:%s'%(i,sp[i]))
# 2.買東西,a.東西加products,money要修改
def buy(user):
pro=input('買的商品migncheng:')
sp = op_file('products.txt')
users = op_file('user.txt')
if pro in sp:
if users[user]['money']>=sp[pro]:
users[user]['money'] -= sp[pro]
op_file('user.txt', content=users)
else:
else:
print('商品未上架!')
buy(user)
# 3.檢視自己的商品和餘額
def look(user):
users = op_file('user.txt')
print('您的購物車有:%s'%str(users[user]['products']))
print('您餘額為:%.2f'%users[user]['money'])
choice_admin=
choice_user=
def run():
user,role=login()
if role==1:
while true:
choice=input('請輸入您的選擇:1.充值;2.新增商品;3.退出')
if choice=='1' or choice=='2' or choice=='3':
choice_admin[choice]()
else:
print('輸入有誤!')
else:
while true:
choice=input('請輸入您的選擇:1.檢視商品;2.購買;3.查詢購物車和餘額;4.退出')
if choice=='1' or choice=='4':
choice_user[choice]()
elif choice=='2' or choice=='3':
choice_user[choice](user)
else:
print('輸入有誤!')
if __name__=='__main__':
run()
Python3 從零單排5 內建函式
python一些常用的內建函式及作用請見以下 lis 1,4,3,8,2,9,10,0 print all lis 判斷可迭代物件裡頭是否存在不為真的元素,如果存在不為真的元素則返回false,否則true print any lis 判斷可迭代物件裡頭是否存在為真的元素,如果存在為真的元素則返回t...
Python3 從零單排18 封裝
隱藏屬性 申明類時,資料屬性或者函式屬性,在屬性名稱前加上兩個下劃線,就實現了屬性隱藏,但在python裡不存在絕對的隱藏,它只是在申明的時候定義了它的呼叫方式。class a country china def def self print self.country a a print a.cou...
Python3 從零單排19 組合 多型
組合 物件1的屬性是物件2,物件1就擁有了物件2的資料和函式屬性,這就是組合。a型別和b型別沒有共性,不可以繼承,但是a有b的特性,比如a是人,b是家,a和b沒有繼承關係,但是人有家,a有b的關係,那麼就可以把b的屬性都給a用 class people def init self,name,age ...