一、 功能:

  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. maven快速下载jar镜像

    <!--国内镜像--><mirror>  <id>CN</id>  <name>OSChina Central</name>  ...

  2. 云+社区技术沙龙:Kafka meetup 深圳站报名开启

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 如果说 2018 年是技术大爆炸年,那么 Apache Kafka 绝对是其中闪亮的新星. 自Kafka 从首发之日起,已经走过了快八个年头 ...

  3. windows server 2016远程桌面进去,英文系统修改语言

    由于我这边已经是改好了,以下截图来自中文版. 这边选了中文,然后点options. 选择:使该语言成为主要语言,保存. 会提示需要退出登录. 过一会重新登录,ok.

  4. Hive函数:GROUPING SETS,GROUPING__ID,CUBE,ROLLUP

    参考:lxw大数据田地:http://lxw1234.com/archives/2015/04/193.htm 数据准备: CREATE EXTERNAL TABLE test_data ( mont ...

  5. Spark测试代码

    测试代码: import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.hive.HiveContext ...

  6. JavaScript 中常见的内存泄露陷阱(摘)

    内存泄露是每个开发者最终都不得不面对的问题.即便使用自动内存管理的语言,你还是会碰到一些内存泄漏的情况.内存泄露会导致一系列问题,比如:运行缓慢,崩溃,高延迟,甚至一些与其他应用相关的问题. 什么是内 ...

  7. 多线程利器---队列(queue)

    列表是不安全的数据结构 import threading,time li=[1,2,3,4,5] def pri(): while li: a=li[-1] print(a) time.sleep(1 ...

  8. 机器学习基石:09 Linear Regression

    线性回归假设: 代价函数------均方误差: 最小化样本内代价函数: 只有满秩方阵才有逆矩阵. 线性回归算法流程: 线性回归算法是隐式迭代的. 线性回归算法泛化可能的保证: 根据矩阵的迹的性质:tr ...

  9. [HNOI 2010]Bus 公交线路

    Description 题库链接 有 \(N\) 个车站, \(K\) 条公交线路.第 \(1\) 到 \(K\) 站是这 \(K\) 线路的起点站.第 \(N-K+1\) 到 \(N\) 是终点站. ...

  10. [SDOI 2017]数字表格

    Description 题库链接 记 \(f_i\) 为 \(fibonacci\) 数列的第 \(i\) 项. 求 \[\prod_{i=1}^n\prod_{j=1}^mf_{gcd(i,j)}\ ...