购物车程序需求:用户信息为:

{'wyf':{'password': '12', 'role': '2', 'money': '100000', 'carts': ['iphone6', 'mi5']},

'fei': {'password': '12', 'role': '2', 'money': '100000', 'carts': ['iphone6', 'mi5']}}

用户角色role:1代表管理员,2,代表普通用户

普通用户的权限有:

1.查看所有商品;

2.输入商品名称购买商品,购买后加入到购物车里面,钱要减去.购买后的商品追加到购物车里面。

3.可以查看自己的余额,和 购物车商品

4.退出

管理员用户:

1.添加商品,输入商品名称和余额

2.充值,输入用户名,给他价钱

3.退出

思路解析:把每一个小的操作分枝封装成一个小函数,最后用户调用即可。本次运用到的知识点有:函数,文件修改,菜单。当前程序还有不足的地方,代码如下

def op_file(file_name,content=None):

f = open(file_name, 'a+')

f.seek(0)

if content:

f.truncate()

f.write(str(content))

f.flush()

res = None

else:

res = eval(f.read())

f.close()

return res

def user_balance(name):#查询用户余额,以及购物车内商品

# open_file("user.txt")

op_file("user.txt",content=None)

name = username

print("您当前的余额为: " + str(user_info[name]["money"]))

carts_list = user_info[name]["carts"]

# print("购车内的商品有: " + str(user_info[name]["carts"]))

print("您购物车包含的商品为:%s" % ','.join(carts_list))

def use_user_balance():

name = username

user_balance(name)

def add_product(inp_product,inp_price): #已存在的商品修改价格,不存在的商品以及价格直接添加.

product_dict = op_file("product.txt")

product_dict[inp_product] = {'price':inp_price}

print(product_dict)

product_list = list(product_dict)

print("店铺商品共有:" + " , ".join(product_list))

content = str(product_dict)

def use_add_product():

inp_product = input("请输入您要添加的商品:")

inp_price = input("请输入您的商品价格:")

add_product(inp_product,inp_price)

def all_product():

# product_list = open_file("product.txt")

product_list = op_file("product.txt",content=None)

print("店铺商品共有:" + " , ".join(product_list))

print("商品&价格:" + str(product_list))

def buy_product(inp_product,name): #用户购买商品,购买成功后写入购物车里面

# f = open("user.txt","r+")

# fw = open('product.txt')

# user_info = eval(f.read())

product_list = op_file('product.txt')

user_info = op_file('user.txt')

if inp_product not in product_list:

print("对不起,您输入的商品不存在,请输入正确的商品")

else:

user_money = int(user_info[name]["money"])

product_price = int(product_list[inp_product]["price"])

if user_money >= product_price:

print("购买成功!")

balance = user_money - product_price

# f.seek(0)

user_info[name]['money'] = balance

carts_list = user_info[name]['carts']

carts_list.append(inp_product)

print("您购物车包含的商品为:%s"% ','.join(carts_list))

print("欢迎下次光临")

# f.truncate()

# f.write(str(user_info))

# f.flush()

content = str(user_info)

# op_file(product.txt,content)

else:

print("对不起,您的账户余额不足,请联系管理员充值!")

def use_buy_product():

name = username

all_product()

inp_product = input("请输入您要购买的商品名称:")

buy_product(inp_product, name)

def user_add_money(name,inp_money):#输入用户名给用户充值

f = open('user.txt','r+')

f.seek(0)

user_info = eval(f.read())

# print(user_info)

if name in user_info:

new_money = int(user_info[name]['money']) + int(inp_money)

user_info[name]['money'] = new_money

print("当前用户余额为:",new_money)

f.seek(0)

f.truncate()

f.write(str(user_info))

f.flush()

else:

print("您输入的用户名不存在,请输入正确的用户名进行充值!")

def use_user_add_money():

name = input("需要充值的用户:").strip()

# inp_money = input("本次充值多少元(请输入整数):")

while True:

inp_money = input("本次充值多少元:").strip()

if inp_money.isdigit():

break

else:

print("充值的金额必须为整数哦~")

user_add_money(name, inp_money)

def exit_sys():

exit('退出程序')

def admin_menu():

admin_choice = input('请选择您的操作:【1】.添加商品 【2】.用户充值 【3】.退出\n请选择:')

if admin_choice == '1':

use_add_product()

print("***************添加商品成功,即将返回上一级菜单***************")

elif admin_choice == '2':

use_user_add_money()

print("**************用户充值成功,即将返回上一级菜单***************")

elif admin_choice == '3':

exit_sys()

else:

print("请选择正确的操作!")

admin_menu()

def user_menu():

user_choice = input('请选择您的操作:【1】.查看所有商品 【2】.购买商品 【3】.查看余额以及已购商品 【4】.退出\n请选择:')

if user_choice == '1':

all_product()

print("**************查看商品完毕,即将返回上一级菜单***************")

elif user_choice == '2':

use_buy_product()

print("**************购买商品成功,即将返回上一级菜单***************")

elif user_choice == '3':

use_user_balance()

print("**************账户信息查询成功,即将返回上一级菜单***************")

elif user_choice == '4':

exit_sys()

else:

print("操作异常,请选择正确的操作!")

user_menu()

# user_info = open_file('user.txt')

user_info = op_file('user.txt',content=None)

username = input("请输入您的用户名:").strip()

password = input("请输入您的密码:").strip()

if username not in user_info:

print("用户名不正确,请重试")

else:

if password == user_info[username]["password"]:

print("欢迎 " + username + " 进入店铺")

if user_info[username]["role"] == '1':

print("您好,您是管理员")

admin_choice = input('请选择您的操作:【1】.添加商品 【2】.用户充值 【3】.退出\n请选择:')

if admin_choice == '1':

use_add_product()

print("***************添加商品成功,即将返回上一级菜单***************")

admin_menu()

elif admin_choice == '2':

use_user_add_money()

print("**************用户充值成功,即将返回上一级菜单***************")

admin_menu()

elif admin_choice == '3':

exit_sys()

else:

print("请选择正确的操作!")

else:

print("您好,您是普通用员")

user_choice = input('请选择您的操作:【1】.查看所有商品 【2】.购买商品 【3】.查看余额以及已购商品 【4】.退出\n请选择:')

if user_choice == '1':

all_product()

print("**************查看商品完毕,即将返回上一级菜单***************")

user_menu()

elif user_choice == '2':

use_buy_product()

print("**************购买商品成功,即将返回上一级菜单***************")

user_menu()

elif user_choice == '3':

use_user_balance()

print("**************账户信息查询成功,即将返回上一级菜单***************")

user_menu()

elif user_choice == '4':

exit_sys()

else:

print("操作异常,请选择正确的操作!")

else:

print("密码不正确!请重试")

python 购物车分析_python 简易购物车程序解析相关推荐

  1. python 轨迹分析_Python语言:程序代码分析铅球运动轨迹

    铅球也是体育竞技中一种项目,在比赛时通常.通过铅球运动的远近,来决定输赢. 铅球运动距离,我们也可以编程来进行分析.通过把速度数值和力量方向,角度等参数输入进去. 最后应用程序就能得到铅球运动的距离, ...

  2. python购物车结算_python中购物车

    python的基础语法 python数据类型:(按特征划分) 数字类型: 1.整形:布尔形.长整型L.标准整形 2.非整形:双精度型.复数.decimal(不是内建类型) 序列类型: 1.字符串(st ...

  3. python getopt使用_Python命令行参数解析模块getopt使用实例

    这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...

  4. python 购物车分析_Python购物车

    一.Locust工具介绍 1.概述 Locust是一款易于使用的分布式负载测试工具,完全基于事件,使用python开发,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gev ...

  5. python爬虫分析_Python爬虫解析网页的4种方式

    文章目录 爬虫的价值 正则表达式 requests-html BeautifulSoup lxml的XPath 爬虫的价值 常见的数据获取方式就三种:自有数据.购买数据.爬取数据.用Python写爬虫 ...

  6. python实验报告内容实现购物车系统_Python 实践--购物车功能简单实现

    实验环境: operating system: Centos 6.3 Python version:Python 2.6.6 知识点: Python 基本数据类型的常用操作 #!/usr/bin/en ...

  7. python二进制反码例题_Python 简易实现二进制反码求和

    参考链接 二进制反码求和 UDP 检验和的回卷是什么意思? Python 计算 UDP 检验和 目录 1. 前言说明 2. 例子分析 3. 相关代码 4. 结果展示 5. 心得总结 一.前言说明 ↶ ...

  8. python 内存分析_python内存管理分析

    本文较为详细的分析了python内存管理机制.分享给大家供大家参考.具体分析如下: 内存管理,对于Python这样的动态语言,是至关重要的一部分,它在很大程度上甚至决定了Python的执行效率,因为在 ...

  9. python 贪吃蛇_python简易贪吃蛇

    python简易贪吃蛇 前言 开始 献上代码 from tkinter.messagebox import showinfo as msg from random import randint as ...

最新文章

  1. NGUI Label Color Code
  2. linux4安装gcc,当ubuntu已有gcc4时安装gcc3
  3. 全球首发!计算机视觉Polygon Mesh Processing读书笔记6——微分几何中的Metric Properties
  4. python tkinter获取屏幕大小_使用Python构建属于自己的Markdown编辑器
  5. python基于情感词典的情感分析
  6. Win10系统利用注册表完美设置桌面图标的技巧
  7. RK3399 ALC5640芯片配置
  8. 黑苹果快捷键修改_小米air13.3安装黑苹果教程
  9. 软件项目管理相关(生存期模型、FP、PERT)
  10. WIFI工具移植之IW工具移植
  11. 华为云官网前端的技术演进与低代码实践
  12. 计算机管理磁盘分区,一分钟搞定电脑磁盘分区,再也不求人!
  13. html5设置谷歌浏览器兼容性,谷歌浏览器如何设置兼容性视图_谷歌浏览器设置兼容性视图的方法-系统城...
  14. 快递面单打印报错:“print selected is not valid” 解决方案
  15. Matlab的一些常用功能
  16. 从0开发豆果美食小程序——项目搭建
  17. 1.5 极限的存在准则和两个重要极限
  18. 联想拯救者y7000p加内存条_联想 拯救者Y7000P 如何插入SD卡?
  19. 基于OpenCV的视频场景切割神器
  20. 家里宽带使用有线连接网速很快但是使用无线连接网速很慢的解决方法

热门文章

  1. linux 开机启动文件夹,Linux开机启动流程
  2. html 加入li的作用,HTML的li有什么作用?
  3. adobe字体_Adobe发布全新LOGO!字体颜色变红了
  4. 转 ajax.dll 与 ajaxpro.dll的用法
  5. SQL语句快速回忆——SQL基础知识点汇总
  6. 20200523dedis笔记
  7. 寄存器---汇编学习笔记
  8. STM32F4 HAL库开发 -- NVIC 中断优先级管理
  9. MAX3232和MAX232的具体差别
  10. DVRRDK, EZSDK和DVSDK这三者有什么区别