溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python3實現(xiàn)購物車功能

發(fā)布時間:2020-10-17 20:43:15 來源:腳本之家 閱讀:157 作者:愛跳舞的青年君 欄目:開發(fā)技術(shù)

本文實例為大家分享了Python3實現(xiàn)購物車功能的具體代碼,供大家參考,具體內(nèi)容如下

購物車要求:

1、啟動程序后,輸入用戶名密碼后,如果是第一次登錄,讓用戶輸入工資,然后打印商品列表

2、允許用戶根據(jù)商品編號購買商品

3、用戶選擇商品后,檢測余額是否夠,夠就直接扣款,不夠就提醒

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

5、在用戶使用過程中, 關(guān)鍵輸出,如余額,商品已加入購物車等消息,需高亮顯示

6、用戶下一次登錄后,輸入用戶名密碼,直接回到上次的狀態(tài),即上次消費的余額什么的還是那些,再次登錄可繼續(xù)購買

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

邏輯圖:

Python3實現(xiàn)購物車功能

執(zhí)行代碼:

#!/usr/bin/env python3
# Author: Robert
# --*-- coding: utf-8 --*--

set = False  #設(shè)置set 當輸入為q就可以退出
file = open("購物車用戶信息檔案.txt","r+",encoding="utf-8")  #讀取購物車用戶信息文件
f = str(file.read())  #將文件內(nèi)容轉(zhuǎn)化成字符串
for line in f:
  file_str = str(f)
data = eval(file_str)  #將字符串轉(zhuǎn)換為字典data

name = input("輸入姓名:")
password = input("輸入密碼:")
while True:
  if name in data:      #用戶在檔案中
    if password in data[name]:     #密碼和用戶名對應(yīng),校驗正確,登錄。
      salary = float(data[name][password])
      print('''\033[32;1m歡迎登錄,當前余額為%s\033[0m'''%salary)
      break
    else:      #否則密碼錯誤,請重新輸入
      password = input("密碼錯誤,請重新輸入:")
      continue
  else:      #否則判斷為首次登錄,將用戶名,密碼,工資存到用戶信息文件中
    password_salary = {}
    salary_str = input("歡迎首次登錄,請輸入你的工資:")
    salary = float(salary_str)
    password_salary[password] = salary     #工資對應(yīng)到密碼
    data[name] = password_salary      #將密碼-工資對應(yīng)到用戶名
    file.seek(0)
    file.write(str(data))
    file.tell()
    break

list = [#購物清單
  ["iphone",5800],
  ["sifei",800],
  ["macbook",17500],
  ["book",75],
  ["apple",5]
]

file_list_r = open("歷史購物信息.txt","r+",encoding="utf-8")
file_list_r = str(file_list_r.read())
shoppinglist_dict = eval(file_list_r)
if name not in shoppinglist_dict:
  shoppinglist_dict[name] = []
shoppinglist = shoppinglist_dict[name]
shoppinglist_dict_now = []
choose = input("\n是否需要查詢歷史購物記錄(y/n):")
if choose == 'y':
  print("\n\n---------->歷史購物記錄<----------")
  print(shoppinglist)
  print("---------->結(jié)束<----------")

while not set:   #購物車開始
  print("---------->商品清單<----------")
  for index,item in enumerate(list,1):
    print(index,item)
  print("---------->結(jié)束<----------")
  number = input("請輸入想購買商品編號:")
  if number == "q":
    set = True
    data[name][password] = str(salary)
    file.seek(0)
    file.write(str(data))
    file.tell()
    print("---------->購物清單<----------")
    print(shoppinglist)
    print("您的余額:",salary)
    print("---------->結(jié)束<----------")
    shoppinglist.extend(shoppinglist)
    shoppinglist_dict[name] = shoppinglist
  elif number.isdigit() == False:
    print("\033[31;1m輸入不是編號內(nèi)容,請重新輸入\033[0m")
  elif int(number)>int(len(list)) or int(number)<= 0:     #輸入值不在清單中,報錯
    print("\033[31;1m您所購買的商品不在清單中\(zhòng)033[0m")
  else:
    number_buy = int(number)-1
    if list[number_buy][1]<(salary):      #如果余額足夠,提示購買成功并顯示余額。
      salary = salary - int(list[number_buy][1])
      msg = '\033[32;1m您已經(jīng)將%s加入購物車中,余額為%d\033[0m'%(list[number_buy][0],salary)
      print(msg)
      shoppinglist.append(list[number_buy])      #將本次購物信息加到購買記錄中
    else:
      print("\033[31;1m余額不足,無法購買!\033[0m")      #提示余額不足

購物車用戶信息檔案.txt

{'name': {'password': '10000'}, 'cx': {'123': '725.0'}, 'robert': {'qw': '440.0'}, 'cv1': {'1': 100.5}, 'ROBERT': {'QW': 1560.0}, 'qwe': {'qw': '1555.0'}}

歷史購物信息.txt

{'name': [['iphone', 5800],['bike', 800]], 'cx':[['iphone', 5800],['apple', 5],['apple', 5], ['book', 75]]}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI