Python-S13-day2-之购物车
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-之购物车的更多相关文章
- python基础day2作业:购物车
#功能:1.可注册账号2.登录买家账号3.可查询编辑购物车里商品4.可以余额充值5.可提示余额不足6.购物车结算 #使用:1.第一次使用先注册账号填写账号金额2.账号金额信息保存在buyer_acco ...
- (转)Python作业day2购物车
Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...
- python s12 day2
python s12 day2 入门知识拾遗 http://www.cnblogs.com/wupeiqi/articles/4906230.html 基本数据类型 注:查看对象相关成员 var, ...
- 使用python操作文件实现购物车程序
使用python操作文件实现购物车程序 题目要求如下: 实现思路 始终维护一张字典,该字典里保存有用户账号密码,购物车记录等信息.在程序开始的时候读进来,程序结束的时候写回文件里去.在登录注册的部分, ...
- Python培训12期-day2作业-购物车
#!/usr/bin/env python import sys import os import getpass 商品={ '图书': { "<Puppet实战>": ...
- Python作业day2购物车
流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现),查询余额. 撸了两天一夜的代码,不多说,直接上码,注释神马的后面再说 #!/usr/bin/env python # -*- co ...
- Python学习-day2
这周时间充裕,把第一周的两个作业登陆验证和三级菜单做完后又用零零散散的时间看完了第二周的课程,不得不说老男孩这个教育方式感觉还是不错的,其实说白了就是花钱找个人监督自己学习呗,而且还强行让我们养成一些 ...
- Python基础-day2
1.Python模块python 中导入模块使用import语法格式:import module_name示例1: 导入os模块system('dir')列出当前目录下的所有文件 # _*_ codi ...
- python学习day2
一.模块初识 python模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用 ...
- 第一个简单的python程序,模拟购物车
第一个pyhone程序,简单的购物车功能,刚开始学习,练习下手感. #/usr/bin/env python#-*- coding:utf-8 -*- salary = int(raw_input(& ...
随机推荐
- Nginx 伪静态教程
1.将多个域名指向同一web目录: server_name www.php100.com php100.com; rewrite ^/$ / redirect; 2.将不带www的域名301转向到带w ...
- virsh命令
查看虚拟机: [root@super67 ~]# virsh list Id Name State --------------------- ...
- Apache开启不了------The requested operation has failed!
1.这个问题通常是由于端口被占用了,cmd输入netstat -ano查看端口号,根据端口号80的程序的pid在任务管理器下杀掉它. 2.我遇到这个问题不是这个原因.我由于刚配置了虚拟目录.查看虚拟目 ...
- 为什么我不再用 .NET 框架(转)
NET平台很棒.真的很棒.直到它不再那么棒.我为什么不再用.NET?简单来说,它限制了我们选择的能力(对我来说很重要),转移了我们的注意力,使得我们向内认知它的安全性,替代了帮助我们认知外面广阔世界的 ...
- elFinder的使用并整合ckeditor
具体实现访问: 白乔大神资源:https://github.com/bluejoe2008/elfinder-2.x-servlet 本人oschina的库:https://git.oschina.n ...
- 简单的form表单操作(Servlet)
Servlet模型 [表单的处理][模型(1)] ●HTML网页 <!DOCTYPE html> <html> <head> <meta charset=&q ...
- HDU 2089 数位dp入门
开始学习数位dp...一道昨天看过代码思想的题今天打了近两个小时..最后还是看了别人的代码找bug...(丢丢) 传说院赛要取消 ? ... 这么菜不出去丢人也好吧~ #include<stdi ...
- 【翻译】Kinect v2程序设计(C++) BodyIndex篇
通过Kinect SDK v2预览版,取得BodyIndex(人体区域)的方法和示例代码. 上一节,介绍了从Kinect v2预览版用Kinect SDK v2预览版获取Depth数据的方法. 这 ...
- IT运维的五大基础知识
IT运维的五大基础知识 | 浏览:331 | 更新:2014-09-25 11:36 IT运维对于很多企业都很重要,接下来运维的一些基础知识天天客服IT运维总监龙少文,就给大家介绍下IT运维的基础知识 ...
- Delphi dbf文件如何定位记录(即设置Table的RecNum属性来移动到该记录号)
Delphi的table的RecNum属性,可以用来定位记录,如:self.Table1.RecNum:=23;即可以让数据库记录移动到23号记录上,但这种作用仅限于Paradox数据库,而不是dBA ...