• List item代码实现了一个简单的购物系统,包含了用户注册、登录、添加余额、查看余额、查看购物车、查看商品列表、购买商品、移除购物车中的商品、结账等功能。

代码分为两个类:UserShoppingMarket

  1. User 类:

    • __init__ 方法初始化用户对象,接收用户名和密码作为参数,并设置初始余额为0,购物车为空列表,购物车总价为0。
    • display_info 方法用于显示用户信息,打印用户名和余额。
    • modify_info 方法用于修改用户信息,通过用户输入的新用户名和密码来更新用户对象的属性。
    • add_balance 方法用于添加余额,接收金额作为参数,并将金额累加到用户对象的余额上。
    • view_balance 方法用于查看当前余额,打印用户对象的余额。
    • view_cart 方法用于查看购物车,如果购物车为空,则打印提示信息;否则,逐个打印购物车中商品的名称、价格和数量。
    • add_to_cart 方法用于将商品加入购物车,接收商品名称、价格和数量作为参数,将商品信息以列表形式添加到购物车列表中,并更新购物车总价。
    • remove_from_cart 方法用于从购物车中移除商品,接收商品名称、价格和数量作为参数,遍历购物车列表找到对应商品,更新购物车总价和商品数量,并在数量为0时将商品从购物车列表中移除。
    • checkout 方法用于结账,接收收货地址和手机号作为参数,检查余额是否足够支付购物车中商品的总价,如果余额足够,则从余额中扣除总价,并打印结账成功的提示信息,同时打印购买的商品手机号和收货地址;清空购物车列表和购物车总价。
  2. ShoppingMarket 类:

    • __init__ 方法初始化购物市场对象,创建一个空的用户字典和一个商品字典,商品字典中包含一些示例商品及其对应的价格。
    • register 方法用于用户注册,接收用户名和密码作为参数,检查用户名是否已存在,如果存在则打印提示信息,否则创建一个新的 User 对象,并将其添加到用户字典中。
    • login 方法用于用户登录,接收用户名和密码作为参数,检查用户名是否存在于用户字典中,如果存在则检查密码是否匹配,如果匹配则打印欢迎信息并返回相应的用户对象,否则打印密码错误的提示信息;如果用户名不存在,则打印相应的提示信息。
  3. market 对象是一个 ShoppingMarket 类的实例,用于实际运行购物市场系统。

代码主要部分是一个循环,用户可以根据提示选择不同的操作:

  • 如果选择 “1”,则进行用户注册操作,输入用户名和密码后调用 register 方法进行注册。
  • 如果选择 "2

",则进行用户登录操作,输入用户名和密码后调用 login 方法进行登录。如果登录成功,进入子菜单循环,可以进行余额管理、购物车操作、商品浏览、结账等操作。

  • 如果选择 “3”,则退出系统。
  • 如果输入的选项无效,则打印相应的提示信息。

子菜单循环中的操作包括:

  • 添加余额:输入要添加的金额后调用 add_balance 方法进行余额增加操作。
  • 查看余额:调用 view_balance 方法显示当前余额。
  • 查看购物车:调用 view_cart 方法显示购物车中的商品信息。
  • 查看所有商品:遍历商品字典并打印所有商品的名称和价格。
  • 购买商品:根据商品编号、数量等信息调用 add_to_cart 方法将商品加入购物车。
  • 移除购物车中的商品:根据商品编号、数量等信息调用 remove_from_cart 方法从购物车中移除商品。
  • 结账:输入收货地址和手机号后调用 checkout 方法进行结账操作。
  • 查询用户信息:调用 display_info 方法显示当前用户的信息。
  • 修改用户信息:输入新的用户名和密码后调用 modify_info 方法进行用户信息修改。
  • 返回上级菜单:跳出子菜单循环,返回到登录菜单。
class User:def __init__(self, name, password):self.name = nameself.password = passwordself.balance = 0self.cart = []self.price = 0# 添加新的方法用来显示用户信息def display_info(self):print(f"用户名:{self.name}")print(f"余额:{self.balance}")# 添加新的方法用来修改用户信息def modify_info(self):name = input("请输入新的用户名:")password = input("请输入新的密码:")self.name = nameself.password = passwordprint("用户信息修改成功")def add_balance(self, amount):self.balance += amountprint(f"成功添加余额:{amount},当前余额为:{self.balance}")def view_balance(self):print(f"当前余额为:{self.balance}")def view_cart(self):if not self.cart:print("购物车为空")else:print("购物车内的商品有:")for item in self.cart:print(f"{item[0]} - 价格:{item[1]} - 数量:{item[2]}")def add_to_cart(self, item, price, quantity):self.cart.append([item, price, quantity])self.price += price * quantityprint(f"成功将商品 {item} 加入购物车")def remove_from_cart(self, item, price, quantity):for cart_item in self.cart:if cart_item[0] == item:self.price -= price * quantitycart_item[2] -= quantityif cart_item[2] <= 0:self.cart.remove(cart_item)print(f"成功移除购物车中的商品:{item}")returnprint(f"购物车中没有商品:{item}")def checkout(self, address, phone):if self.price > self.balance:print("余额不足,无法结账")returnself.balance -= self.priceprint("结账成功")print(f"购买的商品的手机号:{phone}")print(f"收货地址:{address}")self.cart.clear()self.price = 0class ShoppingMarket:def __init__(self):self.users = {}self.products = {'产品1': 10, '产品2': 20, '产品3': 30}def register(self, name, password):if name in self.users:print("用户名已存在")else:self.users[name] = User(name, password)print("注册成功")def login(self, name, password):if name in self.users:user = self.users[name]if user.password == password:print(f"欢迎回来,{name}!")return userelse:print("密码错误")return Noneelse:print("用户名不存在")return Nonemarket = ShoppingMarket()while True:print("1. 注册")print("2. 登录")print("3. 退出系统")choice = input("请选择操作:")if choice == "1":name = input("请输入用户名:")password = input("请输入密码:")market.register(name, password)elif choice == "2":name = input("请输入用户名:")password = input("请输入密码:")user = market.login(name, password)if user:while True:print("1. 添加余额")print("2. 查看余额")print("3. 查看购物车")print("4. 查看所有商品")print("5. 购买商品")print("6. 移除购物车中的商品")print("7. 结账")print("8. 查询用户信息")  # 新增操作print("9. 修改用户信息")  # 新增操作print("10. 返回上级菜单")  # 编号改为10sub_choice = input("请选择操作:")if sub_choice == "1":amount = float(input("请输入要添加的余额:"))user.add_balance(amount)elif sub_choice == "2":user.view_balance()elif sub_choice == "3":user.view_cart()elif sub_choice == "4":print("所有商品列表:")for i, (product, price) in enumerate(market.products.items(), start=1):print(f"{i}. {product} - 价格:{price}")elif sub_choice == "5":item_num = int(input("请输入要购买的商品编号:"))if 1 <= item_num <= len(market.products):item = list(market.products.keys())[item_num - 1]price = market.products[item]quantity = int(input("请输入购买的数量:"))user.add_to_cart(item, price, quantity)else:print("无效的商品编号")elif sub_choice == "6":item_num = int(input("请输入要移除的商品编号:"))if 1 <= item_num <= len(market.products):item = list(market.products.keys())[item_num - 1]price = market.products[item]quantity = int(input("请输入移除的数量:"))user.remove_from_cart(item, price, quantity)else:print("无效的商品编号")elif sub_choice == "7":address = input("请输入收货地址:")phone = input("请输入手机号:")user.checkout(address, phone)elif sub_choice == "8":user.display_info()  # 查询用户信息elif sub_choice == "9":user.modify_info()  # 修改用户信息elif sub_choice == "10":breakelse:print("无效的操作")else:continueelif choice == "3":print("退出系统")breakelse:print("无效的操作")

python商城购物系统相关推荐

  1. [附源码]Python计算机毕业设计Django文具商城购物系统

    项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs. 项目技术: dj ...

  2. java基于springboot的网上商城购物系统

    项目介绍 随着社会的快速发展,计算机的影响是全面且深入的.人们生活水平的不断提高,日常生活中人们对网上商城购物系统方面的要求也在不断提高,购物的人数更是不断增加,使得网上商城购物系统的开发成为必需而且 ...

  3. nodejs基于vue 网上商城购物系统

    可定制框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发 目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本 ...

  4. 【计算机毕业设计】512网上商城购物系统

    一.系统截图(需要演示视频可以私聊) 摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,网上商城购物系统当然也不能排除在外.网上商城 ...

  5. 商城购物系统【用户登录注册,购物页面,购物车页面,订单页面】

    商城购物系统 文章目录 商城购物系统 前言 一.使用Mysql数据库建立需要用的商品表,用户表 二.利用html+cs+js对前台进行设计 效果如下 2.对商品页与购物车页进行设计 总结 前言 这学期 ...

  6. 基于Java的商城购物系统

    源码编号:F-A14 项目类型:Java SE项目(GUI图形界面) 项目名称:商城购物系统,开源免费 用户类型:双角色(会员.管理员) 主要技术:java.awt.swing.等技术 开发工具:Ec ...

  7. Java毕设项目网上商城购物系统(java+VUE+Mybatis+Maven+Mysql)

    Java毕设项目网上商城购物系统(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Web ...

  8. 基于SSM实现的云商城购物系统

    基于SSM实现的云商城购物系统 目录 1.项目简介 2 1.1背景分析 2 1.2系统描叙 2 1.3系统功能 2 1.4开发平台 3 1.5数据库环境 3 2.具体需求 3 2.1功能需求 3 2. ...

  9. springboot+vue+elementui实现前后端分离的网上商城购物系统

    文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclip ...

最新文章

  1. ORCAD常用元件库说明
  2. opencv 仪表数字切割
  3. 我是一只IT小小鸟读书笔记3
  4. Zuul默认路由规则
  5. docker --- 梳理 Dockerfile docker-compose.yml
  6. 为什么我们应该使用 Flutter?
  7. power bi 雷达图_空天院研制的调频连续波激光雷达实现公里级成像
  8. (4.10)mysql备份还原——利用binlog+全备恢复误删表【不推荐使用】
  9. 解决python3报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xaa in position 1: ordinal not in ra
  10. Linux界面介绍及基础知识
  11. Visual Studio 6/2005/2008/2010 各版本编译器 下载
  12. 洛谷 桶哥的问题——吃桶——题解
  13. Apache2.4 HTTP服务器配置反向代理和负载均衡
  14. 昆虫大战电子计算机软件,风雨的昆虫大战AI双图版
  15. perl中grep用法总结
  16. css 宽度为百分比, 高度和宽度相等的设置
  17. Python对接api接口爬取音乐
  18. WinSCP 连接错误:列出‘/‘的目录项时出错。
  19. 用水晶报表制作张坤需要的报表格式
  20. 木马生成器源代码-资源法(VC++)

热门文章

  1. FLOWSERVE 520MD+37-W1D200-000-0000
  2. 内网如何架设传奇世界私服 (包含传送,脚本教程,专用怪物,不定期更新)...
  3. CSM认证培训知识汇总
  4. 今日关注-网络创业和工作环境
  5. 百宝箱:几乎所有项目都会用到的Portlet开发
  6. 数字图像处理——图像艺术化处理OpenCV实验四艺术化效果和风格化效果
  7. 64qam带宽计算_传输带宽计算
  8. PageAdmin个性化建站心得——图片处理
  9. 深度学习———戴子龙一周小结
  10. 使用awk命令分析nginx日志定位响应慢的java接口