1.购物商城的需求分析:

1、输出欢迎界面还有登录注册菜单:

1.登陆

2.注册  :保留用户信息,目前做不到固话,先注册,注册成功之后再选择登录进去

用户信息包括:用户名-密码-初始金额

2.购物菜单:

1.查看商品信息

2.充值金额

3.购买商品

4.查看购物清单

5.退出

2.代码示例:

简单实现购物功能,代码不是非常完善。

不建议将大部分的代码都写在函数体内,函数只是用来实现某一个小的功能,能够进行多次调用。接受用户输入等语句,尽量写在主菜单里面,而不是函数体内。

"""
@name : shopping.py
@author : xieshan
@projectname: 火影忍者
@time : 2022/3/24
"""#存放已有的原始用户
user = {'root': {'passwd': '123456', '余额': 300},'admin': {'passwd': '123123', '余额': 400}}
#存放商品信息
dict = {'F001': {'name': '苹果', 'price': 4.2, 'count': 100}, 'F002': {'name': '香蕉', 'price': 3.2, 'count': 100},'F003': {'name': '棉花糖', 'price': 10, 'count': 100},'F004': {'name': '饼干', 'price': 5.2, 'count': 100}, 'F005': {'name': '芒果', 'price': 9.0, 'count': 100},'F006': {'name': '鸡蛋', 'price': 3.0, 'count': 100},'F007': {'name': '果冻', 'price': 3.2, 'count': 100}, 'F008': {'name': '辣条', 'price': 3.5, 'count': 100},'F009': {'name': '牛奶', 'price': 5.0, 'count': 100}}#注册函数
def register(uname1, upasswd1, umoney):if umoney >= 100:user.update({uname1: {'passwd': upasswd1, '余额': umoney}})print(f"亲爱的{uname1},恭喜您注册成功!您的账户余额为{umoney},赶紧去登陆吧!")elif umoney < 100:print(f"您充值的金额低于100,注册失败,请重新注册")#登陆函数
def login(uname2,upasswd2):global cif upasswd2 == user[uname2]['passwd']:print(f"欢迎{uname2}用户登陆成功!您的账户余额为{user[uname2]['余额']}")c = 1elif uname2 in user and upasswd2 != user[uname2]['passwd']:print(f"抱歉!亲爱的{uname2},您的密码输入错误!请重新输入!您还有{3 - i}次机会")c = 0#购买商品函数
def shop():print("购买界面".center(100, '*'))sig2 = input("请将您选中的商品编号输入在此(退出请按'q'):")if sig2 in dict:sig3 = input(f"请将{dict[sig2]['name']}的购买数量输入在此:")if sig3.isdigit():sig3 = int(sig3)if sig3 <= dict[sig2]['count']:total = sig3 * dict[sig2]['price']if total <= user[uname2]['余额']:umoney = user[uname2]['余额'] - totaluser.update({uname2: {'passwd': upasswd2, '余额': umoney}})dict.update({sig2:{'name':dict[sig2]['name'],'price':dict[sig2]['price'],'count':dict[sig2]['count']-sig3}})shopcar.append({'商品名称': dict[sig2]['name'], '购买数量': sig3})print(f"已购买{sig3}个{dict[sig2]['name']},花费{total}元,您的余额为{umoney} ")else:print("抱歉!您的余额不足,不能进行购买!请充值")return recharge()else:print("抱歉,本商品仓库数量不足")else:print("您输入的购买数量有误!请重新输入")return shop()elif sig2 == 'q':passelse:print("您输入的编号有误!请重新输入!")return shop()#充值函数
def recharge():print("充值界面".center(100, '*'))print(f"亲爱的{uname2}用户,目前您的账户余额为 :{user[uname2]['余额']}元")r_moeny = input("请输入您要充值的金额(退出请按q):")if int(r_moeny) < 50:print("充值金额不得低于50哦!")return recharge()if r_moeny == 'q':passelse:r_moeny = float(r_moeny)umoney = r_moeny + user[uname2]['余额']for k in range(1,4):upasswd3 = input("请输入您的登陆密码进行验证: ")if upasswd3 == user[uname2]['passwd']:user.update({uname2: {'passwd': upasswd2, '余额': umoney}})print(f"恭喜您,充值成功,目前您的账户余额为:{user[uname2]['余额']}元")breakelse:print(f"抱歉!亲爱的{uname2},您的密码输入错误!充值失败!请重新输入!您还有{3 - k}次机会")#购物清单函数
def shop_car():print("购物清单界面".center(100, '*'))if shopcar == [] :print("小主,这里空空如也,赶紧到三乐购物商城去选购商品吧!")else:print("您的购物清单如下:")for j in shopcar:print(j)#主菜单
count = 0
while count == 0:print("欢迎来到三乐购物系统!".center(100, '-'))print("1.注册".center(80))print("2.登陆".center(80))print("3.退出".center(80))option = input("请输入您的选择: ")if option == '1':print("登陆界面".center(100, '-'))uname1 = input("请设置您的用户名(请将用户名设置为3-10个字符串的小写字母): ")if uname1 in user.keys():print("用户名已经存在,请重新注册!")elif uname1.islower() and 2 < len(uname1) < 11:upasswd1 = input("请设置您的密码:(请将密码设置为6位数字) ")if upasswd1.isdigit() and len(upasswd1) == 6:umoney = input("请输入您要充值的金额(初次充值不得低于100):")umoney = float(umoney)register(uname1, upasswd1, umoney)else:print("您设置的密码不符合规范!注册失败,请重新注册")else:print("您设置的用户名不符合规范,请重新设置!")elif option == '2':print("注册界面".center(100, '-'))flag = 0while flag == 0:uname2 = input("请输入您注册的用户名: ")if uname2 not in user and uname2 == 'new come':flag = 1elif uname2 not in user:print(f"抱歉!{uname2} 此用户名不存在!请重新输入或者注册!输入'new come'进入菜单页面")flag = 0continueelif uname2 in user:for i in range(1, 4):upasswd2 = input("请输入您的密码: ")login(uname2,upasswd2)if c == 1:flag = 1count = 1shopcar = []       #用列表存放用户已购买的商品while 1:print("三乐购物系统".center(100, '#'))print("1、查看商品".center(80))print("2、账户充值".center(80))print("3、购买商品".center(80))print("4、查看购物清单".center(80))print("5、退出系统".center(80))option2 = input("请输入您的选择:")if option2 == '1':print("目前三乐购物系统中有的商品信息如下".center(100, "#"))for i in dict:print(i, end=': ')print(dict[i])elif option2 == '2':recharge()elif option2 == '3':shop()elif option2 == '4':shop_car()elif option2 == '5':print("\033[1;36m三乐购物系统欢迎您的下次光临!\033[0m")exit()else:print("您的输入有误!请重新输入!")print("请重新登陆!或者输入'new come'进入菜单页面".center(100, '-'))elif option == '3':print("\033[1;36m三乐购物系统欢迎您的下次光临!\033[0m")exit()else:print("您的输入有误,请重新输入!")

python实现一个简单的网上购物系统相关推荐

  1. 利用python写一个简单的双色球彩票系统

    利用python写一个简单的双色球彩票系统 1.设置每次买的号码一样 写一个双色球彩票系统,系统可以随机产生一组数据,一组彩票数据有六位数,这六位数的的取值范围是0和1. 一张彩票是两块钱,用户可以选 ...

  2. 【html】【一个简单的网上购物页面代码】

    先看结果 代码 <!DOCTYPE html> <html><head><title>网上购物</title><meta http-e ...

  3. (附源码)Springboot网上购物系统 毕业设计 311236

    Springboot网上购物系统的开发 摘  要 随着Internet的使用越来越广泛,在传统的商业模式中,对于日常各类商品,人们习惯于到各种商家店铺购买.然而在快节奏的新时代中,人们不一定能为购买各 ...

  4. spring boot网上购物系统毕业设计源码311236

    Springboot网上购物系统的开发 摘  要 随着Internet的使用越来越广泛,在传统的商业模式中,对于日常各类商品,人们习惯于到各种商家店铺购买.然而在快节奏的新时代中,人们不一定能为购买各 ...

  5. (附源码)spring boot网上购物系统 毕业设计 311236

    Springboot网上购物系统的开发 摘  要 随着Internet的使用越来越广泛,在传统的商业模式中,对于日常各类商品,人们习惯于到各种商家店铺购买.然而在快节奏的新时代中,人们不一定能为购买各 ...

  6. 基于JavaWeb的网上购物系统开发(含代码)

    为了开发一个JavaWeb的网上购物系统,我们可以使用一些常见的技术,如Java.Spring.Spring MVC.Hibernate等.下面是一个简单的购物系统开发的步骤以及在这个过程中用到的一些 ...

  7. 基于Springboot网上购物系统 毕业设计-附源码311236

    Springboot网上购物系统的开发 摘 要 随着Internet的使用越来越广泛,在传统的商业模式中,对于日常各类商品,人们习惯于到各种商家店铺购买.然而在快节奏的新时代中,人们不一定能为购买各类 ...

  8. 多用户网上购物系统主要功能_免费搭建的流程步骤_OctShop

    当前,大部分互联网用户的网购,一般都会去:淘宝.天猫.京东.拼多多等大型的网上购物平台.而这种平台的模式就是:多用户的网上购物系统. 商家或品牌可以入驻网上购物平台,商家.店铺.平台都有自己的管理系统 ...

  9. 基于python的系统构建_利用python构建一个简单的推荐系统

    摘要: 快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫. 本文将利用python构建一个简单的推荐系统,在此之前读者需要对pandas和numpy等数据分析包有所了解. 什 ...

  10. java调python 监控_利用Python实现一个简单的系统监控图表

    作为运维人员,想必大家肯定都做过这样的事情:为了监控系统资源使用情况,开了若干个窗口,来回切换看输出: 只要我切得够快,性能异常点就逃不过我的眼睛! 这个时候你要是有个监控工具自然是很好的,例如我们美 ...

最新文章

  1. python opencv local_threshold_Python-OpenCV中的cv2.threshold
  2. 奉劝程序员们:写再多代码,还不如提升这两大能力有价值!
  3. c语言实现椭圆曲线算法,椭圆曲线加密算法的C语言设计和实现
  4. 百万并发下的Nginx,技术人不得不知的那些事
  5. HDU多校7 - 6853 Jogging(bfs+结论)
  6. AS3.0第一个实例:(Hello World)
  7. 史上最成功的数学预测:用狄拉克方程推导出电子自旋
  8. 原生js实现类似jq的trigger
  9. 四合一图床HTML网站源码
  10. 搭建你的持续集成server - CruiseControl step by step(1)
  11. [转]微软代码示例:ASP.NET 2.0 三层架构应用程序教程系列
  12. 【华为云技术分享】基于自动机器学习的心脏病预测模型(1)
  13. create-react-app中配置antd按需加载、less、proxy、路径别名
  14. POJ3494Largest Submatrix of All 1’s[单调栈]
  15. 贪吃蛇游戏设计算法及创新
  16. mysql最左前缀原则学习笔记,in也可以走索引
  17. Shawn找到组织了!!!!!!!!
  18. linux 怎么彻底删除用户,linux如何完全删除用户
  19. mysql 死锁分析_【mysql】MySQL知识整理-死锁分析-性能优化等
  20. KeyTweak 键盘按键功能修改

热门文章

  1. 使用Ghost还原系统为什么容易出问题?
  2. 2020 iOS拼多多(多多进宝)APP端接入,打开拼多多商品详情与授权
  3. for循环:100以内奇数之和
  4. 初识Unity SRP
  5. 宾馆酒店如何对客人进行实名认证登记?
  6. MATLAB 官方文档
  7. OpenCV图像灰度化的六种方法
  8. Arduino智能小车直线控制-模糊PID控制
  9. UML图的画法,简单详细,以实战代码为例子画UML
  10. BLE相关:低功耗蓝牙原理