python实战演练_python实战演练(三)购物车程序
#-*- Coding:utf-8 -*-#Author: kking
'''購物車需求
用戶入口:
1.商品信息存在文件里
2.已購商品,余額記錄。第一次啟動程序時需要記錄工資,第二次啟動程序時談出上次余額
3.允許用戶根據商品編號購買商品
4.用戶選擇商品后,檢測是否夠,夠就直接扣款,不夠就提醒
5.可隨時退出,退出時,打印移購買商品和余額
商家入口:
1.可以添加商品,修改商品價格'''
importos,sysdef user_shoping(): #定義一個用戶購買商品操作函數
whileTrue:
user_salary= input('請輸入您的充值金額>>>:')if user_salary.isdigit(): #判斷充值金額是否為數字
user_salary =int(user_salary)
user_shop_file.write(login_name+ '\t')
user_shop_file.write(str(user_salary)+ '\n')for item in porduct_lists: #循環遍歷商品列表
print(porduct_lists.index(item), item) #使用index方法打印列表序號,item為列表元素
p_index = porduct_lists.index(item) #定義p_index方法存儲列表序號
whileTrue:
user_choises= input('請選擇您所需購買的商品編號>>>:退出請按:Q:')if user_choises.isdigit(): #判斷用戶輸入的商品編號是否為數字
user_choises =int(user_choises)if user_choises <= p_index and user_choises >= 0: #用戶輸入編號小于列表序號
p_item = porduct_lists[user_choises] #定義p_item方法獲取用戶選擇的商品
p_item[1] = int(p_item[1]) #將商品金額強制轉換為int類型
if user_salary >= p_item[1]: #判斷用戶金額是否買得起商品
shop_lists.append(p_item) #將已購買的商品信息存儲到shop_lists列表中
user_salary -= p_item[1] #扣除商品金額=還剩余額
user_shop_file.write(login_name + '\t')
user_shop_file.write(str(user_salary)+ '\n') #將用戶信息和余額信息寫入user_shop文本中
print("商品 \033[32;1m%s\033[0m 已加入購物車...您還剩\033[32;1m%s\033[0m余額" %(p_item[0], user_salary))else:print('\033[31;1m對不起您的金額不足,請去充值!\033[0m')print('已購商品清單'.center(30, '*'))print(shop_lists)
sys.exit()else:print('\033[31;1m請輸入范圍內商品編號\033[0m')elif user_choises == 'q' or user_choises == 'Q':print('已購商品清單'.center(30, '*'))print(shop_lists)
sys.exit()else:print('\033[31;1m請輸入有效商品編號\033[0m')else:print('\033[31;1m請輸入有效充值金額\033[0m')def user_top(): #定義一個用戶充值操作函數
whileTrue:
user_salary= input('請輸入您的充值金額>>>:')ifuser_salary.isdigit():
user_salary=int(user_salary)
user_salary+= int(shop[-1]) #用戶現有余額=充值金額+上次還剩余額
user_shop_file.write(shop[0] + '\t')
user_shop_file.write(str(user_salary)+'\n') #將用戶名和現有余額(充值完成后還剩余額)寫入user_shop文本中
print('您當前余額為:\033[32;1m%s\033[0m'%user_salary)for item inporduct_lists:print(porduct_lists.index(item), item)
p_index=porduct_lists.index(item)whileTrue:
user_choises= input('請選擇您所需購買的商品編號>>>:退出請按:Q:')ifuser_choises.isdigit():
user_choises=int(user_choises)if user_choises <= p_index and user_choises >=0:
p_item=porduct_lists[user_choises]if user_salary >= int(p_item[1]):
shop_lists.append(p_item)
user_salary-= int(p_item[1])
user_shop_file.write(shop[0]+ '\t')
user_shop_file.write(str(user_salary)+ '\n')print("商品 \033[32;1m%s\033[0m 已加入購物車...您還剩\033[32;1m%s\033[0m余額" %(p_item[0], user_salary))else:print('\033[31;1m對不起您的金額不足,請去充值!\033[0m')print('已購商品清單'.center(30, '*'))print(shop_lists)
sys.exit()else:print('\033[31;1m請輸入范圍內商品編號\033[0m')elif user_choises == 'q' or user_choises == 'Q':print('已購商品清單'.center(30, '*'))print(shop_lists)
sys.exit()else:print('\033[31;1m請輸入有效商品編號\033[0m')else:print('\033[31;1m請輸入有效充值金額\033[0m')def porduct_shop(): #定義一個讀取porduct_shop(商品信息文本)函數
user_porduct_file = open('porduct_shop', 'r+', encoding='utf-8')
user_porduct_lists= user_porduct_file.readlines() #以列表形式讀取porduct_shop商品信息文本內容
for user_porduct_list in user_porduct_lists: #循環遍歷user_porduct_lists列表
porduct_lists.append(user_porduct_list.split()) #將讀取內容存儲到porduct_lists商品列表中
login_name= ''shop_lists=[]
porduct_lists=[]
porduct_shop()#調用porduct_shop(讀取賣家商品信息)操作函數
user_shop_file= open('user_shop','r+')
user_shop_lists=user_shop_file.readlines()for user_shop_list in user_shop_lists: #循環遍歷user_shop(用戶信息及余額)文本內容
shop =user_shop_list.split()if len(user_shop_lists) == 0: #判斷user_shop文本信息內容是否為空
login_name = input('請輸入用戶名>>>:') #如果為空,則判斷為首次登陸,需要填寫用戶名和密碼
user_info_file = open('user_info','r+')
user_info_lists=user_info_file.readlines()for user_info_list in user_info_lists: #循環遍歷user_info(用戶信息:用戶名和密碼)文本內容
user =user_info_list.split()if login_name in user: #判斷輸入的用戶名是否存在
whileTrue:
login_pwd= input('請輸入密碼>>>:') #判斷用戶輸入密碼是否正確
if login_pwd == user[1]:print('歡迎 \033[33;1m%s\033[0m 登錄英雄聯盟收銀臺' % login_name) #登陸成功
user_shoping() #調用user_shopping用戶購買商品操作函數
else:print('\033[31;1m密碼錯誤請重新輸入密碼\033[0m')else:
sys.exit('\033[31;1m用戶名不存在\033[31;1m')else: #用戶不是首次登陸操作
print('歡迎 \033[33;1m%s\033[0m 登錄英雄聯盟收銀臺,您的余額還剩\033[32;1m%s\033[0m元' % (shop[0], shop[-1]))
user_top()#調用 user_top(用戶第二次登陸和充值操作)函數
總結
以上是生活随笔為你收集整理的python实战演练_python实战演练(三)购物车程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11月去缅甸有什么好玩的,11月去缅甸要
- 下一篇: 求电影名啊