Python小練習之購物車

2021-08-18 19:00:32 字數 4595 閱讀 3916

---

1、啟動程式後,輸入使用者名稱密碼後,如果是第一次登入,讓使用者輸入工資,然後列印商品列表

2、允許使用者根據商品編號購買商品

3、使用者選擇商品後,檢測餘額是否夠,夠就直接扣款,不夠就提醒 

4、可隨時退出,退出時,列印已購買商品和餘額

5、在使用者使用過程中, 關鍵輸出,如餘額,商品已加入購物車等訊息,需高亮顯示

6、使用者下一次登入後,輸入使用者名稱密碼,直接回到上次的狀態,即上次消費的餘額什麼的還是那些,再次登入可繼續購買

7、允許查詢之前的消費記錄

main.py

import judgment_user

def main():

with open("user.txt","r",encoding="utf-8") as f:#獲取user.txt內容

user_info = f.read() # 顯示文字內容

#print(user_info)

user_list = user_info.split() # 加入列表

#print(user_list)

user_dic = {} # 定義空字典

for itme in user_list: # 迴圈user_list列表

user_list = itme.split("-") # 擷取-

#print(user_list)

user_dic[user_list[0]] = user_list[1] # 把文字中的內容擷取----後加入字典

#print(user_dic)

count = 0 # count從0開始

while count < 3:

username = input("\033[38;1m請輸入使用者名稱-->>\033[0m:")

if username in user_dic: #判斷username是否在字典中

#r+為讀寫模式

with open("lock.txt", "r+", encoding="utf-8") as f:

lock_info = f.read()

lock_list = lock_info.split() #擷取文字中的空格

if username in lock_list: # 判斷輸入的使用者是否在被鎖定檔案中

else:

password = input("\033[38;1m請輸入密碼-->>\033[0m:")

#print(user_dic)

if password == user_dic[username]:#判斷字典中帳號密碼是否正確

print("%s:\033[36;1m登入成功!\033[0m"%username)

judgment_user.mkdir(username)

exit()

else:

count +=1 #密碼每次錯誤數量加1

if count==3: #錯誤3次帳號鎖定

f.write('\n'+username)

print("\033[31;1m密碼錯誤3次,帳號已被鎖定\033[0m")

else:

print("\033[31;1m密碼錯誤,還可以再試%s次\033[0m"%(3-count))

else:

print("\033[31;1m使用者名稱輸入錯誤!\033[0m")

if __name__ == '__main__':

main()

judgment_user.py

import shoppingcart

def mkdir(path):

'判斷是否是第一次登入'

# 引入模組

import os

# 去除首位空格

# path = path.strip()

# 去除尾部 \ 符號

# path = path.rstrip("\\")

# 判斷路徑是否存在

# 存在 true

# 不存在 false

i***ists = os.path.exists(path)

# 判斷結果

if not i***ists:

# 如果不存在則建立目錄

print(path + ' 使用者第一次登陸')

salary = input("請輸入工資:")

# 建立目錄操作函式

os.makedirs(path)

shoppingcart.shoppingcart(path, salary)

return true

else:

# 如果目錄存在則不建立,並提示目錄已存在

print(path + ' 使用者已登陸過')

choose = input("\033[36;1m 是否查詢之前消費記錄(查詢請輸入y,不查詢任意鍵)-->> \033[0m:")

shoppingcart.query_the_records(choose, path)

with open('./' + path + "/salary.txt", "r+", encoding="utf-8") as f:

salary = f.read()

print("餘額剩餘:", salary)

shoppingcart.shoppingcart(path, salary)

return false

shopppingcart.py

#本模組包換購物車主體函式、購物記錄查詢函式

def shoppingcart(username,salary):

' 購物車主體函式 '

# salary = input("請輸入工資:")

product_list = [

('iphone',5800),

('mac',9800),

('bike',800),

('watch',5800),

('coffee',31),

('alex',100)

]shopping_list =

if salary.isdigit() :

salary = int(salary)

while true:

for item in product_list:

print(product_list.index(item),item)

user_choice = input("選擇要買嗎,輸入q退出》:")

if user_choice.isdigit():

user_choice = int(user_choice)

if user_choice < len(product_list) and user_choice >= 0:

p_item = product_list[user_choice]

if p_item[1] <= salary:

# print(shopping_list, "\033[36;1放入購物車成功!\033[0m")

salary -=p_item[1]

print("\033[36;1m added %s into shopping cart ,your current balance is %s \033[0m" %(p_item,salary))

else:

print("\033[41;1m 你的餘額只剩[%s] \033[0m" %salary)

else:

print("product code [%s] is not exist!" %user_choice)

elif user_choice == 'q':

print('------shoping list------')

for p in shopping_list:

with open('./' + username + "/recording.txt", "a+", encoding="utf-8") as f:

p = str(p)

f.write(p+'\n')

print(p)

with open('./' + username + "/salary.txt", "w+", encoding="utf-8") as f:

salary = str(salary)

f.write(salary)

print("your current balance:", salary)

exit()

else:

print("invalid option")

def query_the_records(choose,username):

'購物車記錄查詢'

if choose == 'y':

with open('./' + username + "/recording.txt", "r", encoding="utf-8") as f:

recording = f.read() # 顯示文字內容

print(recording)

else:

pass

github專案位址

Python基礎練習之購物車

前置知識點 enumerate list 輸出乙個元組,第乙個為下標,第二個為元素 a 1,2,3,4 for i in enumerate a print i 0,1 1,2 2,3 3,4 for i,item in enumerate a print i,item 0 1 1 22 3 3 4...

python之購物車

下面是我們這個程式的框架 下面說一些 中比較難理解的 下面這個自己領會就好啦,本人不多做介紹 a if not a print a列表為空的 else print a列表不為空 下面主要介紹一下index這個函式,index在英語中是索引的意思,在這裡也一樣,它是用來看看某個值在列表中的索引是多少,...

Python購物車小程式

問題描述 商店有一系列商品,給出購買序列,然後輸入你的金額,然後選擇要購買的商品序號或是退出,如果持續購買餘額不足則提醒使用者餘額不足,然後如果使用者退出則列印使用者購買的商品列表,並列印使用者餘額。購物車程式 product list mac 9000 kindle 8000 tesla 9000...