国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python3實(shí)現(xiàn)購(gòu)物車(chē)功能

2020-02-22 23:42:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

購(gòu)物車(chē)要求:

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

2、允許用戶(hù)根據(jù)商品編號(hào)購(gòu)買(mǎi)商品

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

4、可隨時(shí)退出,退出時(shí),打印已購(gòu)買(mǎi)商品和余額

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

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

7、允許查詢(xún)之前的消費(fèi)記錄

邏輯圖:

執(zhí)行代碼:

#!/usr/bin/env python3# Author: Robert# --*-- coding: utf-8 --*--set = False  #設(shè)置set 當(dāng)輸入為q就可以退出file = open("購(gòu)物車(chē)用戶(hù)信息檔案.txt","r+",encoding="utf-8")  #讀取購(gòu)物車(chē)用戶(hù)信息文件f = str(file.read())  #將文件內(nèi)容轉(zhuǎn)化成字符串for line in f:  file_str = str(f)data = eval(file_str)  #將字符串轉(zhuǎn)換為字典dataname = input("輸入姓名:")password = input("輸入密碼:")while True:  if name in data:      #用戶(hù)在檔案中    if password in data[name]:     #密碼和用戶(hù)名對(duì)應(yīng),校驗(yàn)正確,登錄。      salary = float(data[name][password])      print('''/033[32;1m歡迎登錄,當(dāng)前余額為%s/033[0m'''%salary)      break    else:      #否則密碼錯(cuò)誤,請(qǐng)重新輸入      password = input("密碼錯(cuò)誤,請(qǐng)重新輸入:")      continue  else:      #否則判斷為首次登錄,將用戶(hù)名,密碼,工資存到用戶(hù)信息文件中    password_salary = {}    salary_str = input("歡迎首次登錄,請(qǐng)輸入你的工資:")    salary = float(salary_str)    password_salary[password] = salary     #工資對(duì)應(yīng)到密碼    data[name] = password_salary      #將密碼-工資對(duì)應(yīng)到用戶(hù)名    file.seek(0)    file.write(str(data))    file.tell()    breaklist = [#購(gòu)物清單  ["iphone",5800],  ["sifei",800],  ["macbook",17500],  ["book",75],  ["apple",5]]file_list_r = open("歷史購(gòu)物信息.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是否需要查詢(xún)歷史購(gòu)物記錄(y/n):")if choose == 'y':  print("/n/n---------->歷史購(gòu)物記錄<----------")  print(shoppinglist)  print("---------->結(jié)束<----------")while not set:   #購(gòu)物車(chē)開(kāi)始  print("---------->商品清單<----------")  for index,item in enumerate(list,1):    print(index,item)  print("---------->結(jié)束<----------")  number = input("請(qǐng)輸入想購(gòu)買(mǎi)商品編號(hào):")  if number == "q":    set = True    data[name][password] = str(salary)    file.seek(0)    file.write(str(data))    file.tell()    print("---------->購(gòu)物清單<----------")    print(shoppinglist)    print("您的余額:",salary)    print("---------->結(jié)束<----------")    shoppinglist.extend(shoppinglist)    shoppinglist_dict[name] = shoppinglist  elif number.isdigit() == False:    print("/033[31;1m輸入不是編號(hào)內(nèi)容,請(qǐng)重新輸入/033[0m")  elif int(number)>int(len(list)) or int(number)<= 0:     #輸入值不在清單中,報(bào)錯(cuò)    print("/033[31;1m您所購(gòu)買(mǎi)的商品不在清單中/033[0m")  else:    number_buy = int(number)-1    if list[number_buy][1]<(salary):      #如果余額足夠,提示購(gòu)買(mǎi)成功并顯示余額。      salary = salary - int(list[number_buy][1])      msg = '/033[32;1m您已經(jīng)將%s加入購(gòu)物車(chē)中,余額為%d/033[0m'%(list[number_buy][0],salary)      print(msg)      shoppinglist.append(list[number_buy])      #將本次購(gòu)物信息加到購(gòu)買(mǎi)記錄中    else:      print("/033[31;1m余額不足,無(wú)法購(gòu)買(mǎi)!/033[0m")      #提示余額不足            
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永清县| 从化市| 台南县| 抚顺市| 成武县| 德阳市| 东乡| 青神县| 宿松县| 嘉禾县| 云浮市| 宁乡县| 海南省| 陇西县| 台湾省| 望城县| 宜良县| 博罗县| 昌平区| 庆云县| 会宁县| 韶山市| 雷波县| 勐海县| 容城县| 肥乡县| 木兰县| 二连浩特市| 大名县| 苗栗市| 中宁县| 吴忠市| 桂阳县| 肃宁县| 乐至县| 大余县| 江口县| 炉霍县| 自治县| 渑池县| 渑池县|