python实现购物车
一、 功能:
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实现购物车的更多相关文章
- Python之购物车
Python之购物车 msg_list = [ ['iphone',8888], ['coffe',38], ['book',90], ['Tesla',100000], ['RR',10000000 ...
- Python初探-购物车程序
要求: 1,用户进入后,有欢迎语并提示用户输入本金 2.用户输入正确的内容后有购物菜单显示给用户 3.当用户的本金不足以购买商品的时候有提示余额不足并告知差额 4.成功购物后提示已购买内容和购买后的余 ...
- python之购物车的编写(熬夜撸代码中。。。)
购物车的编写对于我这种不是很精通函数的小白来说,简直太难了.各种坑,各种无奈啊!不过总算也是写出来了! 不多说,直接上代码! #!/usr/bin/env python#用户名 sanjiang#密码 ...
- Python练习----购物车
要求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时 ...
- python复习购物车程序
个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...
- 【python】——购物车
作业需求: 用户名和密码存放于文件中,格式为:egon|egon123 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序 允许用户根据商品编号购买商品 ...
- Python学习-购物车程序
程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...
- python设计购物车
设计购物车 一需求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提 ...
- python编写购物车新写法
用另一种方式完成购物车的功能实现 #!/usr/bin/python zijin = input("请输入资金:") if zijin.isdigit(): zijin = int ...
随机推荐
- 使用location.href跳转页面在火狐浏览器中报错404
HTML文件中引入外部js文件,在该js文件里用window.location.href跳转相对路径下的html地址,火狐浏览器会报错404,而谷歌浏览器却显示正常·,分析了一下原因:在识别相对路径时 ...
- 《深入实践Spring Boot》阅读笔记之一:基础应用开发
上上篇「1718总结与计划」中提到,18年要对部分项目拆分,进行服务化,并对代码进行重构.公司技术委员会也推荐使用spring boot,之前在各个技术网站中也了解过,它可以大大简化spring配置和 ...
- spring-oauth-server实践:授权方式三:PASSWORD模式下 authorities:ROLE_{user.privillege}, ROLE_USER
一.数据库配置 1.oauth_client_details 2.user_ 3.user_privillege 二.password模式 授权过程 1.授权者granter和请求参数 Resourc ...
- Mego开发文档 - 从EF6/EFCore迁移到Mego
从EF6/EFCore迁移到Mego框架 如果您有EntityFragmework6或EntityFragmeworkCore的开发经验,在首次接触Mego框架时会发现这两个框架非常相似,本文将帮忙您 ...
- EasyUI中datagrid的基本用法
EasyUI中datagrid是最常用的一个控件了,现在整理一下datagrid的基本语法,先展示下页面效果吧,如下图
- 日推20单词 Day03
1.occur v. 发生,发现 2.harvest n.收获,丰收 vt.收割,得到 3.crop n.庄稼,收成 4.yield n.产量 v.产出,屈服 5.field n.田野 6.featu ...
- Java8新特性第2章(接口默认方法)
在Java中一个接口一旦发布就已经被定型,除非我们能够一次性的更新所有该接口的实现,否者在接口的添加新方法将会破坏现有接口的实现.默认方法就是为了解决这一问题的,这样接口在发布之后依然能够继续演化. ...
- Struts(二十七):使用token或tokenSession防止表单重复提交
什么是表单重复提交 表单重复提交包括以下几种情况: 前提:不刷新表单页面 1.多次点击“提交”按钮后,重复提交了多次: 2.已经提交成功之后,按“回退”按钮之后,在点击“提交”按钮后,提交成功: 3. ...
- 【Python3.6+Django2.0+Xadmin2.0系列教程一】环境搭建及项目创建
由于工作需要,接触了大半年时间的Django+xadmin框架,一直没空对这块对进行相关的梳理.最近在同事的怂恿下,就在这分享下笔者的学习及工作经验吧. 好了,话不多说,下面开始进入正题: 环境需求: ...
- 初始Spring MVC——练手小项目
初始Spring MVC 前几天开始了我的spring学习之旅,由于之前使用过MVC模式来做项目,所以我先下手的是 Spring MVC,做个练手项目,非常简单 项目介绍: 用户输入信息 -> ...