一、 功能:

  1、 用户充值余额

    判断余额输入格式是否正确,正确则转换成float型。

  2、 显示商品列表

    根据已有商品显示所有商品的序号、商品名称、和价格供用户选择

  3、 用户选择商品

    判断用户输入

    (1) 若输入为数字则判断是否为负或超出商品序号范围

    (2) 若输出为“q”则打印已选择商品,并退出

    (3) 若前者都不是则判断非法,重新选择

  4、 用户选择商品后判断余额是否能够支付已选择商品的总价格

    (1) 可以支付则继续选择

    (2) 不可支付则提醒充值,充值完成后继续选择购买

二、 流程图

  

三、 代码

  

 # Author:晴空无云
#购物车存储列表
cartlist = []
#商品列表
goodslist = [[,'note',1.0],[,'Python Struct',88.0],[,'Java',55.0],[,'C++',1.0],]
#余额,
balance = input("请充值:")
#判断余额是否合法
if balance.isdigit():
#将balance转置成float
balance = float(balance)
while balance>=:#余额不为负
print("*******商品列表********")
for index,item in enumerate(goodslist,start=):
print(item)
user_choice = input("请选择购买商品:")
if user_choice.isdigit():# 判断商品选择是否合法
# 选择商品从1开始,列表下标是0
user_choice = int(user_choice)-
if user_choice < :
print("非法输入,商品序号不能为负")
elif (user_choice < len(goodslist)):
price = goodslist[user_choice][]
if balance - price >= :
balance = balance - price
print("选择的商品为:",goodslist[user_choice])
print("余额为:", balance)
cartlist.extend(goodslist[user_choice])
else:
now_salar = input("余额不足,请充值:")
if now_salar.isdigit():
now_salar = int(now_salar)
balance = balance + now_salar
print("余额为:", balance)
else:
print("非法输入") else:
print("选择商品不存在")
elif user_choice=="q":
print("-----已选购商品-----")
print(cartlist)
print("-----余额------")
print(balance, '元')
break
else:
print("商品序号非法输入")
else:
print("余额输入非法")

四、 测试结果

  1. 余额输入非法

  

请充值:d
余额输入非法
**********
请充值:-
余额输入非法

  2. 测试打印商品列表

  

请充值:
*******商品列表********
[, 'note', 1.0]
[, 'Python Struct', 88.0]
[, 'Java', 55.0]
[, 'C++', 1.0]
请选择购买商品:

  3.测试购买商品

  

请选择购买商品:
选择的商品为: [, 'note', 1.0]
余额为: 98.0
*******商品列表********
[, 'note', 1.0]
[, 'Python Struct', 88.0]
[, 'Java', 55.0]
[, 'C++', 1.0]
请选择购买商品:
选择的商品为: [, 'Python Struct', 88.0]
余额为: 10.0
*******商品列表********
[, 'note', 1.0]
[, 'Python Struct', 88.0]
[, 'Java', 55.0]
[, 'C++', 1.0]
请选择购买商品:

  4. 测试余额不足下充值

  

余额为: 9.0
*******商品列表********
[, 'note', 1.0]
[, 'Python Struct', 88.0]
[, 'Java', 55.0]
[, 'C++', 1.0]
请选择购买商品:
余额不足,请充值:
余额为: 64.0
*******商品列表********
[, 'note', 1.0]
[, 'Python Struct', 88.0]
[, 'Java', 55.0]
[, 'C++', 1.0]
请选择购买商品:

  5. 测试商品序号非法输入

  

*******商品列表********
[1, 'note', 1.0]
[2, 'Python Struct', 88.0]
[3, 'Java', 55.0]
[4, 'C++', 1.0]
请选择购买商品:0
非法输入,商品序号不能为0
*******商品列表********
[1, 'note', 1.0]
[2, 'Python Struct', 88.0]
[3, 'Java', 55.0]
[4, 'C++', 1.0]
请选择购买商品:-1
商品序号非法输入
*******商品列表********
[1, 'note', 1.0]
[2, 'Python Struct', 88.0]
[3, 'Java', 55.0]
[4, 'C++', 1.0]
请选择购买商品:5
选择商品不存在
*******商品列表********
[1, 'note', 1.0]
[2, 'Python Struct', 88.0]
[3, 'Java', 55.0]
[4, 'C++', 1.0]
请选择购买商品:dd
商品序号非法输入
*******商品列表********
[1, 'note', 1.0]
[2, 'Python Struct', 88.0]
[3, 'Java', 55.0]
[4, 'C++', 1.0]
请选择购买商品:

  6. 测试退出购买

请充值:999
*******商品列表********
[1, 'note', 1.0]
[2, 'Python Struct', 88.0]
[3, 'Java', 55.0]
[4, 'C++', 1.0]
请选择购买商品:1
选择的商品为: [1, 'note', 1.0]
余额为: 998.0
*******商品列表********
[1, 'note', 1.0]
[2, 'Python Struct', 88.0]
[3, 'Java', 55.0]
[4, 'C++', 1.0]
请选择购买商品:3
选择的商品为: [3, 'Java', 55.0]
余额为: 943.0
*******商品列表********
[1, 'note', 1.0]
[2, 'Python Struct', 88.0]
[3, 'Java', 55.0]
[4, 'C++', 1.0]
请选择购买商品:2
选择的商品为: [2, 'Python Struct', 88.0]
余额为: 855.0
*******商品列表********
[1, 'note', 1.0]
[2, 'Python Struct', 88.0]
[3, 'Java', 55.0]
[4, 'C++', 1.0]
请选择购买商品:4
选择的商品为: [4, 'C++', 1.0]
余额为: 854.0
*******商品列表********
[1, 'note', 1.0]
[2, 'Python Struct', 88.0]
[3, 'Java', 55.0]
[4, 'C++', 1.0]
请选择购买商品:q
-----已选购商品-----
[1, 'note', 1.0]
[3, 'Java', 55.0]
[2, 'Python Struct', 88.0]
[4, 'C++', 1.0]
-----总消费------
145.0
-----余额------
854.0 元

python实现购物车的更多相关文章

  1. Python之购物车

    Python之购物车 msg_list = [ ['iphone',8888], ['coffe',38], ['book',90], ['Tesla',100000], ['RR',10000000 ...

  2. Python初探-购物车程序

    要求: 1,用户进入后,有欢迎语并提示用户输入本金 2.用户输入正确的内容后有购物菜单显示给用户 3.当用户的本金不足以购买商品的时候有提示余额不足并告知差额 4.成功购物后提示已购买内容和购买后的余 ...

  3. python之购物车的编写(熬夜撸代码中。。。)

    购物车的编写对于我这种不是很精通函数的小白来说,简直太难了.各种坑,各种无奈啊!不过总算也是写出来了! 不多说,直接上代码! #!/usr/bin/env python#用户名 sanjiang#密码 ...

  4. Python练习----购物车

    要求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时 ...

  5. python复习购物车程序

    个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...

  6. 【python】——购物车

    作业需求: 用户名和密码存放于文件中,格式为:egon|egon123 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序 允许用户根据商品编号购买商品 ...

  7. Python学习-购物车程序

    程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...

  8. python设计购物车

    设计购物车 一需求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提 ...

  9. python编写购物车新写法

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

随机推荐

  1. NATAPP 内网映射,Visual Studio ,C# 实现本地开发微信公众号,本地调试无需服务器

    点击软件安装教程,根据安装教程,注册帐号,下载软件,配置软件.配置完后如下图,途中红色位置免费版本是随机的. 红色位置是自己的映射域名. 打开VS,并且打开项目,右键项目,在web 选项中修改项目UR ...

  2. Mock API是如何在开发中发光发热的?

    在长期的服务过程中,我们经常会遇到前来咨询的用户与我们反馈以下这种情况:咨询者是一个前端人员,在项目开发的过程中需要与后端进行对接,遇到后端还没完成数据输出的情况下,他只好写静态模拟数据,在遇到大型项 ...

  3. ASP.NET MVC5 Forms登陆+权限控制(控制到Action)

    一.Forms认证流程 请先参考如下网址: http://www.cnblogs.com/fish-li/archive/2012/04/15/2450571.html 本文主要介绍使用自定义的身份认 ...

  4. Python之递归函数

    递归函数 初识递归函数 递归函数的定义:在一个函数里再调用这个函数本身 Python为了考虑保护内存占用情况,有一个递归深度的限制. 探究递归的默认最大深度: def foo(n): print(n) ...

  5. Dijkstra的双栈算术表达式求值算法

    这次来复习一下Dijkstra的双栈算术表达式求值算法,其实这就是一个计算器的实现,但是这里用到了不一样的算法,同时复习了栈. 主体思想就是将每次输入的字符和数字分别存储在两个栈中.每遇到一个单次结束 ...

  6. java Hibernate 处理 oracle xmltype类型

    网上关于如何处理oracle xmltype类型的博客很多,我现在分享的是针对具体业务来的,我在oracle数据库entity表中detail插入了一条xmltype类型的数据 xml的详细内容如下: ...

  7. vue.js初识(一)

    一 什么是vue? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不 ...

  8. Linux查看文件指定某些行的内容

    查看从第5行开始的100行内容,并把结果重定向到一个新的文件 cat file | tail -n +5 | head -n 100 > newfile.txt 查看第5行到100行的内容,并把 ...

  9. mysql如何选择合适的数据类型1:CHAR与VARCHAR

    CHAR和VARCHAR类型类似,都用来存储字符串,但它们"保存"和"检索"的方式不同.CHAR属于"固定长度"的字符串,而VARCHAR属 ...

  10. 机器学习技法:09 Decision Tree

    Roadmap Decision Tree Hypothesis Decision Tree Algorithm Decision Tree Heuristics in C&RT Decisi ...