python字典购物车实现的功能是_python实现购物车

该程序使用Python字典实现购物车功能,包括用户登录、工资输入、商品选择、余额检测、高亮显示关键信息、购物状态保存及消费记录查询。用户输入商品编号购买,系统检查余额,不足时提示,购物完成后更新并保存购物车状态。
摘要由CSDN通过智能技术生成

程序需求:

1、启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表

2、用户根据商品编号购买商品

3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒

4、可随时退出,退出时,打印已购买商品和余额

5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示

6、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买

7、允许查询之前的消费记录

流程图:

先用json创建一个以字典形式存贮用户信息的文件user_info{}:

import json

#创建user_info文件,保存用户信息字典user_info{}

user_info={'user1':["123",[],"0"]}

user_info=json.dumps(user_info)

with open('user_info','w+',encoding='utf-8') as f:

f.write(user_info)

购物车程序代码如下:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# Author: Sign

import json

#商品列表:

product_list=[

('iphone8',5888),

('iphone8plus',6888),

('iphone x',8388),

('小米mix2',3299),

('小米note3',2499),

('小米mix2至尊版',4699)

]

#购物车商品列表:

bought_list=[]

#从文件中读取用户信息

f=open('user_info','r+',encoding="utf-8")

user_info=eval(f.read())

f.close()

#用户登录

while True:

user = input("请输入你的账号:\n")

if user in user_info:

password = input("请输入你的密码:\n")

if password == user_info[user][0]:

#登录成功 读取购物车列表和余额

salary = int(user_info[user][-1])

bought_list = user_info[user][1]

if bought_list==[]:#初次登录

salary=input("欢迎来到京东,首次登录请输入你的工资:\n")

if salary.isdigit():

salary=int(salary)

break

else:#老用户登录

print("欢迎回来继续购物")

print("你已选择商品:")

for p in bought_list:#打印购物车里的商品

print(p)

choice2=input("继续购物g,退出q\n")

if choice2=='g':

break

elif choice2=='q':

exit()

else:

print("密码错误,重新输入")

while True:

for index,item in enumerate(product_list):#取下标,打印商品列表

print(index,item)

choice = input("请输入你想要购买的商品标号,退出请输q:\n")

if choice.isdigit():

choice = int(choice)

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

p_item = product_list[choice]

if p_item[1] <= salary: #

bought_list.append(p_item)#添加商品到购物车列表

salary -= p_item[1] #余额

print("添加%s到购物车,你的余额为\033[31;1m%s\033[0m\n" % (p_item, salary))

else:

print("\033[41;1m你的余额为[%s],无法购买\033[0m" % salary)

else:

print("商品不存在")

elif choice == "q":

print("已选择商品:\n")

for p in bought_list:#打印购物车列表

print(p)

print("你的余额为%s" % salary)

#将用户新的信息(购物车列表,余额)保存到文件中

user_info[user][1]=bought_list

user_info[user][-1]=salary

user_info= json.dumps(user_info)

with open('user_info', 'r+', encoding='utf-8') as f:

f.write(user_info)

exit()

else:

print("无效选项")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值