流程图

 实现方式

#!/usr/bin/python3

__author__ = 'beimenchuixue'
__blog__ = 'http://www.cnblogs.com/2bjiujiu/' def shopping_car(shopping_message):
shopping_list = [] # 定义购物车
ex = 'q' # 推出指令
while True: # 一直检查用户输入是否合法,不合法让其重新输入
try:
saving = int(input('小伙子,请输入你的工资:'))
except Exception as e:
print(e)
print('小伙子,别乱,乱来啊,我紧告你')
continue
else:
break
if saving <= 0: # 判断是否有工资
exit('没钱来干啥啊')
else:
print('按q退出选购') # 打印退出提示
while True:
for i in shopping_message: # 打印商品
print(shopping_message.index(i), i) choice = input('请输入想选择商品的编号:') if choice == ex: # 退出判断
break
else:
try: # 判断用户选择的商品是否在商品中
choice = int(choice)
shopping_message[choice]
except Exception as e:
print(e)
print('小伙子,这么年轻眼力就不行了?在输入一次:')
continue
else:
if shopping_message[choice][1] < saving: # 判断用户工资是否大于商品
print(shopping_message[choice]) # 打印选择成功的商品 shopping_list.append(shopping_message[choice][0]) # 吧商品加入购物车 saving -= shopping_message[choice][1] # 结算余额
print('余额', saving)
else:
print('小伙子你工资少了点了,买点便宜点的吧')
for i in shopping_list: # 退出时候打印购买商品
print(i)
print('余额', saving) # 打印余额 if __name__ == '__main__':
# 初始化商品列表
shopping_message = [['iphone', 5800], ['mx6', 2000], ['pythonbook', 80], ['surface', 12000], ['coffee', 33]]
shopping_car(shopping_message)

总结点:

  1. 流程图可以帮我更快的弄清编程逻辑先后顺序
  2. 考虑商品列表是动态,可以增加或者删减
3. 考虑用户输入的合法性
4. 考虑用户输入是否重复输入
  5. 记录用户选择的商品并提示还剩余额
  6. 用户退出,打印用户选择好的商品信息与余额

python_购物车的更多相关文章

  1. Python_购物车问题

    import os goods = [    {"name": "电脑", "price": 1999},    {"name&q ...

  2. python_购物车程序

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

  3. 如何一步一步用DDD设计一个电商网站(十)—— 一个完整的购物车

     阅读目录 前言 回顾 梳理 实现 结语 一.前言 之前的文章中已经涉及到了购买商品加入购物车,购物车内购物项的金额计算等功能.本篇准备把剩下的购物车的基本概念一次处理完. 二.回顾 在动手之前我对之 ...

  4. session实现购物车

    为实现简单的购物功能(购物车添加.账户查看.购物车商品删除.实时的购物商品数量及价格的计算显示.购物车商品数量可手动输入等),用session实现了一简单的以php语言为基础.连接MySQL数据库的购 ...

  5. 如何一步一步用DDD设计一个电商网站(六)—— 给购物车加点料,集成售价上下文

    阅读目录 前言 如何在一个项目中实现多个上下文的业务 售价上下文与购买上下文的集成 结语 一.前言 前几篇已经实现了一个最简单的购买过程,这次开始往这个过程中增加一些东西.比如促销.会员价等,在我们的 ...

  6. PHP之购物车的代码

    该文章记录了购物车的实现代码,仅供参考 book_sc_fns.php <?php include_once('output_fns.php'); include_once('book_fns. ...

  7. 使用session页面控制登录入口及购物车效果的实现

          由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容.实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只 ...

  8. python学习笔记(列表、元组、购物车实例)

    一.列表 列表和字典是最常用的两种数据类型 1. 需求:怎么存放班级80多人的姓名,如何实现? names = ["Zhangyang","Guyun",&qu ...

  9. 简单实用angular.js购物车功能

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

随机推荐

  1. js大数字转换,将大额数字转换为万、千万、亿等

    代码 /** * 大数字转换,将大额数字转换为万.千万.亿等 * @param value 数字值 */ export function bigNumberTransform (value) { co ...

  2. route和过滤器的基础知识

    过滤器 1.局部过滤器 在当前组件内部使用过滤器(对某些数据进行装饰) //声明 filters:{ '过滤器的名字':function(val,a,b){ //a 就是will ,val就是当前的数 ...

  3. windows 下编译libcurl

    因为linux平台采用了libcurl,有一个程序移植到到windows平台,再linux采用libcurl.在windows下准备也采用该库.在网上搜索了几位同行写的,步骤上面有缺失. 本文将以详细 ...

  4. Chrome开发者工具调试详解

    chrome开发者工具最常用的四个功能模块:元素(ELements).控制台(Console).源代码(Sources),网络(Network). 元素(Elements):用于查看或修改HTML元素 ...

  5. hdu 4010 Lct动态链接树

    #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include & ...

  6. HDU - 6570 - Wave(暴力)

    Avin is studying series. A series is called "wave" if the following conditions are satisfi ...

  7. [V&N公开赛] CheckIn

    V&N战队考核+招新,赵师傅出的Web题,做着感觉有点顶,趁热打铁写write up记录一下考察的知识点 这道题说是CheckIn其实还是有一定难度的(也可能是我太菜了),进入题目直接给出了f ...

  8. 当前PageOffice需要获取更高版本的授权才能正常运行。(Error:0x0005)

      说明当前程序的是pagoeffice3说明当前程序的是pagoeffice3.0的程序,而序列号用的是2.0的序列号,或者说是当前程序是4.0的程序,而序列号用的是3.0的序列号.即当前用的是高版 ...

  9. 读网文《将20M文件从30秒压缩到1秒,我是如何做到的?》做实验

    先在微信公众号上看到网文<将20M文件从30秒压缩到1秒,我是如何做到的?>,然后在网上搜索了一下,看到了原文:https://www.jianshu.com/p/2e46ccb125ef ...

  10. C#编辑GridView的Thead

    背景 有这样一个需求,需要更改GridView的Thead,即表头.不只是多行表头,而是任意的内容,可能是一段文字,也可能是一个图片,综合网上的一些资料,大致整理出一些做法. 内容 大致有两种方法 第 ...