#!/usr/bin/env python
#Author:Li QW

'''
程序需求:
1、启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表
2、允许用户根据商品编号购买商品
3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
4、可随时退出,退出时,打印已购买商品和余额
5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示
6、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买(未实现)
7、允许查询之前的消费记录

流程图可供参考


import sys
product_list=[('Iphone',7000),('Watch',333),('Water',10),('coffer',54),('Xiaomi',2490),
]###将文件转换成字典
f=open('user.txt','r')
user_lis=f.read()
f.close()
user_info=user_lis.split("#")
user_dict={}
###工资
salary=10000
sa=[]
###历史购物车
show_shopping_log=[]
###购物车
add_cart=[]for item in user_info:item_list=item.split(":")user_dict[item_list[0]]=item_list[-1]print(user_dict)while True:####用户部分####print("输入1:用户注册,输入2:老用户登录,输入q退出")login_num=input("请选择: ")if login_num.isdigit():login_num=int(login_num)if login_num==1:while True:user_1=input("输入注册用户名:")if user_1 in user_dict:   ###判断注册用户是否存在,存在则退出当前循环print("用户已存在,请重新注册")continueelse:pass_1=input("请设置密码:") ###设置新用户密码f=open('user.txt','a+')  ###将注册用户与密码保存账户文件中(a+,追加内容,不会覆盖原本内容)f.write("#%s:%s"%(user_1,pass_1))f.close()a1="恭喜,注册成功"a11=a1.center(20,"-")print(a11)break  ####注册成功,返回初始界面elif login_num==2:while True:with open('user.txt','r') as f:user_lis2=f.read()user_info2=user_lis2.split("#")user_dict1={}for item1 in user_info2:item_list1 = item1.split(":")user_dict1[item_list1[0]] = item_list1[-1]print(user_dict1)user_2=input("输入用户名登录:")if user_2 in user_dict1:pass_2=input("输入密码:")if pass_2 == user_dict[user_2]:a2="登录成功,欢迎进入"a22=a2.center(20,'-')print(a22)while True:print("选择a购物/选择b查询余额/选择c充值/选择q退出")print("------------------------------------------------")choice_1=str(input("根据提示选择模式>>>"))if choice_1 =="a": ###购物模式while True:for index,t in enumerate(product_list):###添加索引print(index,t)  #打印商品print("------------------------------")print("选择a查询购物车、选择b返回、q退出")user_choice1=input("选择购买的商品序号或进入其它菜单>>>>>")  #选择购买的商品if user_choice1.isdigit():   #修整字符类型user_choice1=int(user_choice1)if 0<=user_choice1<len(product_list): #不在范围内,表示商品不存在p_item = product_list[user_choice1]print(p_item)if p_item[1] <=salary:  ###判断余额print("您已购买商品")salary -= p_item[1] #减去金额add_cart.append(p_item)  ###加入购物车show_shopping_log=add_cart.copy()  ###拷贝到购物历史中print("您已购买\033[31;1m{}\033[0m,余额还剩\033[31;1m{}\033[0m".format(p_item,salary))continueelse:print('----------已购商品---------')print("-----退出a购物模式------")print(show_shopping_log)breakelse:print("----------------------------")print("您输入的商品不存在,请重新购买")elif user_choice1=="a": #####a查询购物车print("-----购物车------")print("已购买",show_shopping_log)elif user_choice1 == 'b':  ###退出当前模式,并打印已购买商品。print("                      ")print('返回-----已购买商品如下')print(add_cart)breakelif user_choice1=='q': ###退出购物sys.exit()elif choice_1=="b": ###b查看余额print("-----还剩\033[31;1m{}\033[0m-----".format(salary))continueelif choice_1=="c":  ##c充值while True:print("您的余额不足,是否充值。(充值1/返回b)")salary_11 = input("请确认是否充值:")if salary_11.isdigit():salary_11 = int(salary_11)if salary_11 == 1:print("------输入充值金额-------")salary_22 = int(input("充值>>>"))salary += salary_22print("充值完成后,还剩\033[31;1m{}\033[0m".format(salary))continueelif salary_11=="b":breakelif choice_1=="q":  ###退出购物sys.exit()else:a3="密码错误,请重新输入"print(a3.ljust(13,"!"))  #字符串补位continueelse:a4="用户不存在,请重新输入"print(a4.ljust(14,'!'))continueelif login_num=='q':sys.exit()

转载于:https://blog.51cto.com/000011211684/2049545

【18】Python半成品购物车相关推荐

  1. python模拟购物车购物过程_Python 模拟购物车的实例讲解

    1.功能简介 此程序模拟用户登陆商城后购买商品操作.可实现用户登陆.商品购买.历史消费记查询.余额和消费信息更新等功能.首次登陆输入初始账户资金,后续登陆则从文件获取上次消费后的余额,每次购买商品后会 ...

  2. 小猪的Python学习之旅 —— 18.Python微信转发小宇宙早报

    小猪的Python学习之旅 -- 18.Python微信转发小宇宙早报 标签:Python 一句话概括本文: 利用itchat,监控特定信息,转发到特定微信群- 引言: 上一篇 小猪的Python学习 ...

  3. python练习---购物车

    购物车功能要求:要求用户输入总资产,例如:2000显示商品列表,让用户根据序号选择商品,加入购物车购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功.购买成功,打印购买的商品列表扩展:登录 ...

  4. python编程购物车_python编写购物车新写法

    用另一种方式完成购物车的功能实现 #!/usr/bin/python zijin = input("请输入资金:") if zijin.isdigit(): zijin = int ...

  5. 利用python开发购物车系统

    python3实现购物车小程序,优化后将程序分成函数,用文件注册和验证用户名密码. #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 20 ...

  6. python实现购物车总结_python3简单购物车实现

    今天突然有人向我讨要一份简单的购物车代码,而凑巧那份代码是我在我很早之前就写过了.所以现在把之前写的一份源码贴出来和大家分享下,肯定存在些许不足和问题,希望大家能帮我指出,好让我进行修改. 现在就附上 ...

  7. python实现购物车总结,Python实现的购物车功能示例

    本文实例讲述了Python实现的购物车功能.分享给大家供大家参考,具体如下: 这里尝试用python实现简单的购物车程序... 基本要求: 用户输入工资,然后打印购物菜单 用户可以不断的购买商品,直到 ...

  8. 18.Python爬虫之Scrapy框架

    scrapy 框架 01. Scrapy 链接 02. Scrapy 的爬虫流程 03. Scrapy入门 04. setting.py文件中的常用设置 4.1. logging模块的使用 4.2. ...

  9. 18.Python字符串类型及常用内置方法

    文章目录 1.字符串 2.字符串的定义 3.打印引号 4.类型转换 5.索引取值 6.遍历 7.长度统计 8.字符串复制与拼接 8.1字符串的复制 8.2加号拼接 8.3join拼接 8.4字符截取拼 ...

最新文章

  1. 计算机组成原理两数相加指令,计算机组成原理复习题
  2. python3精要(54)-文件读写与异常处理
  3. My97DatePicker在asp.net项目中的使用
  4. django 跳转其他网站_Django 实战 | 搭一个 GitHub 用户展示网站 04
  5. Lync 客户端功能对比之IM功能
  6. 2010-03-29 路由过程
  7. 45. 将脚本放在底部(6)
  8. MM模块采购收货的错误解决方案(2)
  9. Intellij IDEA 导入Maven项目
  10. nginx企业级优化实战
  11. python3 爬妹子图片网站实战 代码简明易懂
  12. Biztalk AS2开发经验总结
  13. ModuleNotFoundError: No module named ‘views‘
  14. 2020年陕西省高等职业院校技能大赛信息安全管理与评估赛项竞赛手册
  15. jca 实例 java_jca工具分析was的javacore实例解析
  16. 如何写出一份优秀的简历和求职信?
  17. 【学习笔记】SBT学习笔记
  18. php DOS word在线预览,如何在 Zoho Docs 中在线预览文件
  19. c++接口与虚析构函数作用
  20. 可以完美在 wps中使用zotero的方法

热门文章

  1. [Java] 蓝桥杯ALGO-42 算法训练 送分啦
  2. 蓝桥杯 ALGO-67 算法训练 最大值与最小值的计算
  3. 【操作系统】虚拟存储器(下)-思维导图
  4. SpringSecurity应用(二)
  5. 【运维安全】-HTTP协议
  6. Docker(二十九)k8s 创建动态存储,基于nfs 的storageclass
  7. Android 升级到Android Studio2.2 后打不开以前版本的项目
  8. DBA+北京社群第三次线下沙龙归来
  9. Session保存到指定数据库中
  10. 网络请求(HTTP协议)小结