Python-S13-day2

需求:

1.写一个购物小程序,用户开始先输入自己的工资,然后可以不断的买东西并加入购物车,如果钱不够了提示余额不足,用户中途可以选择查看自己购物车里面的商品,以及余额,

或者可以选择退出程序,退出时并打印已经购买的商品,和自己的余额;

思路:

1.启动程序提示用户输入工资,然后打印欢迎信息;

2.打印商品列表,用户根据商品列表下标来购买商品;

3.用户选择输入,商品的下标,退出程序,或者check购物车;

  (1)商品下标 : 判断用户购买的商品是否存在,存在判断自己的钱是否够,如果钱够,把商品加入购物车,并剪掉所购买商品的钱,如果购买商品钱不够提示余额不足,并打印当前余额;

  (2)退出程序:如果用户输入,q或者quit,则退出程序,并打印已经购买的商品及余额;

  (3)check购物车:如果用户输入,c或者check,则列出当前已经购买的商品,以及当前余额;

主程序:

#!/usr/bin/python env
#_*_coding:utf-8 _*_
salary = input("Your input salary:")
if salary.isdigit():
salary = int(salary)
else:
print("Invalid data type.")
#让用户输入工资,并判读输入的是否为数字,如果不是,则退出;
welcome_msg = "welcome to shopping.".center(40,'-')
print(welcome_msg) exit_flag = False
#设置标志位,用于判读退出程序使用; product_list = [
('Iphone',5888),
('IPad',3888),
('XiaoMi',888),
('Bike',900),
('Coffer',58),
('Tesla',588888),
] shop_car=[]
#定义一个购物车,用户存放已经购买的商品;
while exit_flag is not True:
#判断上边定义的标志位,如果不是Ture则一直循环;
for item in enumerate(product_list):
#这里主要是为了取下标;
index = item[0]
p_name = item[1][0]
p_price = item[1][1]
#取下标,商品名称,商品价格;
print(index,'.',p_name,p_price)
user_choice = input("q=quit,c=check,Or continue Buy num:")
if user_choice.isdigit():
user_choice = int(user_choice)
if user_choice < len(product_list):
#判断用户输入的商品序号是否存在;
p_item = product_list[user_choice]
#这里定义的变量取商品的名称
if p_item[1] <= salary:
#判断购买商品价格是否小于剩余的工资;
shop_car.append(p_item)
#如果钱够,就把商品加入购物车
salary -= p_item[1]
#减掉所购买商品的钱
print("shopping add %s list,b"
"alance is %s."%(p_item,salary))
else:
print("Balance is not %s"%salary)
else:
if user_choice == 'q' or user_choice == 'quit':
for item in shop_car:
print(item)
#如果用户输入的q或者quit,则打印出已经购买的商品
print("shopping over.")
print("Balance is %s"%salary)
exit_flag = True
#定义退出程序
elif user_choice == 'c' or user_choice == 'check':
print("purchased products as below".center(40,'*'))
for item in shop_car:
print(item)
print("check shoping....,Balance is %s"%salary)

Readme:

流程图:

Python-S13-day2-之购物车的更多相关文章

  1. python基础day2作业:购物车

    #功能:1.可注册账号2.登录买家账号3.可查询编辑购物车里商品4.可以余额充值5.可提示余额不足6.购物车结算 #使用:1.第一次使用先注册账号填写账号金额2.账号金额信息保存在buyer_acco ...

  2. (转)Python作业day2购物车

    Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...

  3. python s12 day2

    python s12 day2   入门知识拾遗 http://www.cnblogs.com/wupeiqi/articles/4906230.html 基本数据类型 注:查看对象相关成员 var, ...

  4. 使用python操作文件实现购物车程序

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

  5. Python培训12期-day2作业-购物车

    #!/usr/bin/env python import sys import os import getpass 商品={ '图书': { "<Puppet实战>": ...

  6. Python作业day2购物车

    流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现),查询余额. 撸了两天一夜的代码,不多说,直接上码,注释神马的后面再说 #!/usr/bin/env python # -*- co ...

  7. Python学习-day2

    这周时间充裕,把第一周的两个作业登陆验证和三级菜单做完后又用零零散散的时间看完了第二周的课程,不得不说老男孩这个教育方式感觉还是不错的,其实说白了就是花钱找个人监督自己学习呗,而且还强行让我们养成一些 ...

  8. Python基础-day2

    1.Python模块python 中导入模块使用import语法格式:import module_name示例1: 导入os模块system('dir')列出当前目录下的所有文件 # _*_ codi ...

  9. python学习day2

    一.模块初识 python模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用 ...

  10. 第一个简单的python程序,模拟购物车

    第一个pyhone程序,简单的购物车功能,刚开始学习,练习下手感. #/usr/bin/env python#-*- coding:utf-8 -*- salary = int(raw_input(& ...

随机推荐

  1. 关于纯css布局的概况

    用一些常用的手法来表现感情或者论证问题,这在XHTML中就是用特定的元素来完成一些常见的信息组织.下面就是信息组织形式与元素的对应列表. img 作为内容的图片是一定要放到img里面的,这没有更好的选 ...

  2. hlg 2130 状压dp

    基本的状压dp 需要注意的是两点之间直线最短 所以不需要进行floyd 由于把dp的memset放在了初始化0的后面de了好久的bug.. #include<stdio.h> #inclu ...

  3. 《Java核心技术卷二》笔记(二)文件操作和内存映射文件

    文件操作 上一篇已经总结了流操作,其中也包括文件的读写.文件系统除了读写以为还有很多其他的操作,如复制.移动.删除.目录浏览.属性读写等.在Java7之前,一直使用File类用于文件的操作.Java7 ...

  4. PHP 错误与异常 笔记与总结(9)自定义错误处理器

    自定义错误处理器更加智能. <?php class myErrorHandler{ //$message:错误信息 //$filename:错误文件名 //$line:错误行号 //$vars: ...

  5. mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干

    1.mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干 2.一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性).Con ...

  6. 【CEDEC 2015】【夏日课堂】制作事宜技术篇,新手职员挑战VR Demo开发的真相

    日文原文地址 http://www.4gamer.net/games/277/G027751/20150829002/ PS:CEDEC 2015的PPT有些要到10月才有下载,目前的都是记者照片修图 ...

  7. BAE3.0上的java+tomcat+hibernate代码发布

    在BAE上使用hibernate说起来也简单,但因为一个不小心,耽误了好几个小时. 百度文档中有说: http://developer.baidu.com/wiki/index.php?title=d ...

  8. JsonCpp 简单使用

    [转]自: http://www.cnblogs.com/ytjjyy/archive/2012/04/17/2453348.html JsonCpp 是一个C++用来处理JSON 数据的开发包.下面 ...

  9. java CountDownLatch

    Listing -. Using a Countdown Latch to Trigger a Coordinated Start import java.util.concurrent.CountD ...

  10. Mac 下 命令收藏

    1.查看文件的二进制 xxd -b test.wav 2.所有占用的端口 sudo lsof -i -P | grep -i "listen" 原文地址:Mac 下 命令收藏标签: ...