python3 從零單排3 函式 購買商品小程式

2021-08-18 19:25:19 字數 3341 閱讀 9509

題目如下:

商品檔案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 ...