购物车基本功能:

1.展示购物清单、价格信息。

2.由客户选择商品序号、加入购物车。

3.结束购物后,展示购物车中的商品信息,余额信息。

其他规则:所选商品价格超出当前余额时,提示钱不够;

直到客户输入quit,退出购物;# !/usr/bin/env python3.6

# -*- coding: utf-8 -*-

# __author__: Ed Frey

# Date: 18/7/24

# 购物车程序

salary = 20000

goods_list = ['iphone6s', 'macbook', 'coffee', 'python book', 'bicycle']

goods_price = [5800, 9000, 32, 80, 1500]

print('-------the list of goods and price------')

for i in goods_list:

print("%d.\t%s\t%d" % (goods_list.index(i) + 1, i, goods_price[goods_list.index(i)]))

print('-' * 40)

bicycle = []

list = ['1', '2', '3', '4', '5']

balance = salary

while True:

select = input("please choose the number of goods(input quit to exit):")

if select in list:

select = int(select) - 1

if balance < goods_price[select]:

print('your balance is not enough,%d' % balance)

else:

bicycle.append(goods_list[select])

balance -= goods_price[select]

print('''%s\t%d

has been put into your bicycle,the current balance is %d

''' % (goods_list[select], int(goods_price[select]), balance))

elif select == 'quit':

print('your purchase list:')

for i in goods_list:

if i in bicycle:

j=bicycle.count(i)

print("%s\t%d\t*%d" % (i, goods_price[goods_list.index(i)],j))

print('\r\nyour balance is %d\r\nYour are welcome!' % balance)

break

else:

print('invalid input! please input again.')

运行结果:

上面的代码,刚学完列表的时候写的,其实存在很多问题:比如商品、价格做到2个列表里,每次索引起来很麻烦,万一不小心价格顺序改一下,大厦直接坍塌,所以要做一个嵌套的列表;另外就是在输出购物清单时,那个来回索引很容易绕晕;还有新函数enumerate生成序号、 .isdigit()判断是否数字的应用。

修改完善后的代码如下:salary = 20000

goods_list = [

('iphone6s',5800),

('macbook',9000),

('coffee',32),

('python book',80),

('bicycle',1500)]

bicycle = []

balance = salary

while True:

print('-------the list of goods and price------')

for i, v in enumerate(goods_list, 1):# enumerate函数可以加序号,第二个参数是第一个序号初始值,如果为空从0开始。

print(i, '>>>', v)

print('-' * 40)

select = input("please choose the number of goods(input quit to exit):")

if select.isdigit():

select = int(select) - 1

if select in range(len(goods_list)):#len函数的使用,便于商品列表更新,不需要再维护可选商品序号。

if balance < goods_list[select][1]:

print('your balance is not enough,%d' % balance)

else:

bicycle.append(goods_list[select])

balance -= goods_list[select][1]

print('''%s

has been put into your bicycle,the current balance is %d

''' % (goods_list[select], balance))

else:

print('invalid input! please input again.')

elif select == 'quit':

print('————————————————————————————————————————————————————————\r\nyour purchase list:')

for i in goods_list:

if i in bicycle: #将加入购物车中的商品进行分类计数、展示

j=bicycle.count(i)

print("%s\t*%d" % (i,j))

print('\r\nyour balance is %d\r\nYour are welcome!' % balance)

break

else:

print('invalid input! please input again.')

运行结果如下:

python购物车程序2019_Python——购物车程序(列表的应用)相关推荐

  1. python购物车程序2019_python购物车程序

    ''' 1. 输入用户的工资 2.根据用户的工工资进行选择性的购买 3.最后打印用户购买的产品和用户的余额 ''' product_list = [ ('iphone', 5000), ('mar p ...

  2. python 购物车程序_购物车程序python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 第3点要求: 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒在循环外层 ...

  3. python购物车程序详解用字典_使用python操作文件实现购物车程序

    使用python操作文件实现购物车程序 题目要求如下: 实现思路 始终维护一张字典,该字典里保存有用户账号密码,购物车记录等信息.在程序开始的时候读进来,程序结束的时候写回文件里去.在登录注册的部分, ...

  4. 小程序飞入购物车特效

    小程序飞入购物车特效 小程序加入购物车动画效果:点击商品,出现一个小的商品图,呈现曲线(贝塞尔曲线/抛物线)飞向购物车的图标里. app.js App({onLaunch: function () { ...

  5. [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)

    本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类  -- 微信小程序实战商城 ...

  6. 微信小程序实现购物车功能,包含完整小程序代码和运行效果截图

    微信小程序实现购物车功能,在商场比较常见,今天刚刚做好,效果不错. 下面从js文件,json文件,wxml文件和wxss文件,分享给大家. 直接上代码: 目录 1.index.js文件内容 2.ind ...

  7. 微信小程序之购物车 —— 微信小程序实战商城系列(5)

    续上一篇的文章:微信小程序之商品属性分类 -- 微信小程序实战商城系列(4) 自从认识某人后,我收获了两个成功.登录成功.付款成功,而且还拥有了自己的一辆车: 购物车 也发现了自己的不足之处: 余额不 ...

  8. 微信小程序实现购物车页面

    微信小程序实现购物车页面 先来弄清楚购物车的需求. 单选.全选和取消,而且会随着选中的商品计算出总价 单个商品购买数量的增加和减少 删除商品.当购物车为空时,页面会变为空购物车的布局 根据设计图,我们 ...

  9. 微信小程序(购物车)--在wxml中设置保留小数位数

    微信小程序(购物车)–在wxml中设置保留小数位数 一.在该页面文件夹下新建一个wxs后缀的文件 var filters = {toFix: function (value) {return valu ...

最新文章

  1. ecplise中插件Jrebel的安装
  2. 没有JS的前端:体积更小、速度更快!
  3. vscode 这是一个好同志
  4. stopImmediatePropagation函数和stopPropagation函数的区别
  5. 三极管和MOS管有什么不一样?用MOS管还是三极管?
  6. [转] 【领导必读】唐僧为什么可以领导孙悟空
  7. html cursor居中,CSS cursor属性
  8. 20个优秀的前端css框架
  9. Node JS环境设置– Node.js安装
  10. 18.Linux/Unix 系统编程手册(上) -- 目录与链接
  11. 如何对apk文件进行反编译
  12. matlab maps 指北针和比例尺,R 地图绘制-比例尺与指北针
  13. 从qire123上抓取bdhd下载地址的firefox extension
  14. 【实战篇】37 # 如何使用 QCharts 图表库绘制常用数据图表?
  15. android距离感应器控制黑屏,白屏
  16. 如何根据一个值来动态让select下的option选中
  17. 如何批量设置 Word 文档的限制编辑?
  18. 第八章 自我反省的功夫
  19. cass怎么把块打散命令_CAD中炸开命令是什么
  20. 使用 Python 进行游戏脚本编程

热门文章

  1. 什么是 SAP Spartacus UI 的 code deprecation
  2. SAP UI5 应用开发教程之十二 - 使用 CSS 类对 UI 进行进一步美化
  3. jMeter 打开项目时遇到错误消息 CannotResolveClassException: com.blazemeter.jmeter.RandomCSVDataSetConfig
  4. TypeScript 类装饰器的一个例子和使用单步调试搞清楚其运行原理
  5. JavaScript, ABAP和Scala里的尾递归(Tail Recursion)
  6. 如何确认客户使用的Spartacus库文件是未经修改过的原始版本
  7. Angular getOrCreateInjectable的实现原理调试
  8. 使用SAP Spartacus的route给标准页面维护alias入口
  9. 博客园社区登录帐号和第三方绑定的设置
  10. SAP Cloud for Customer移动端应用SAP推荐的网络时延参数