老男孩python自动化运维作业2
拿到要求真不知道怎么写,不能还要写个商城页面吧;
最后还是用了input()模拟用户操作吧- -!不就操作个字典吗(字典模拟商品数据)。
python版本:
>>>import sys
>>>print (sys.version)
3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)]
#这里用字典的话就没有定义商品编号所以此程序不支持同个商品同时买俩件- -!用户可以从购物车添加商品和删除商品和结算,查看购物车和余额。 goods_list = {'g1':128,'g2':39,'g3':2.5} #创建一个三个商品的字典模拟商品数据 class user(object): #定义一个用户的类及用户具有的操作方法
def __init__(self,ngoods,shop_cart={},balance=300): #这里用户属性中默认300块钱,用户购物车也用字典来模拟数据
self.balance=balance
self.shop_cart={}
self.ngoods=ngoods
def addgoods(self,ngoods_num):#定义用户添加商品到购物车方法当作用户对象的属性 if ngoods_num:
self.shop_cart[ngoods_num]=goods_list[ngoods_num]#用户选择的商品添加到购物车字典
#print (self.shop_cart)#调试
self.show_shop_cart()#调用了下面的展示购物车方法
else:
print ("you don't chose!") def delgoods(self,dgoods_num):#定义用户从购物车删除商品方法
if dgoods_num: self.shop_cart.pop(dgoods_num)#将用户所选商品从购物车删除
self.show_shop_cart() else:
print("you don't chose!") def settlement(self):#定义结算方法
sum_price=sum(self.shop_cart.values())#计算购物车商品的价格和
#print (sum_price)#调试
#print (self.balance)#调试 if sum_price > self.balance:#如果用户余额balance小于购物车商品总价
print ('Sorry, your credit is running low!')#提示余额不足
else:
self.balance=self.balance - sum_price#结账
self.shop_cart.clear() #清空用户购物车
print ('settlement success! your balance:%d' %(self.balance)) #果断改掉了之前用“+”的习惯 def show_shop_cart(self):#定义一个展示用户购物车方法
#print (self.shop_cart)
for k,v in self.shop_cart.items():
shop_infor = '''
%s:¥%s
'''%(k, v)
print(shop_infor) def index():#定义一个商品展示方法
for k,v in goods_list.items():
goods_infor='''
%s:¥%s
'''%(k,v)
print(goods_infor)
index() ngoods = 1#先初始化ngoods一个值 使之进入循环 while ngoods != 'q':
ngoods=input('chose your goods(s:结算,i:商品展示,c:购物车,q:关闭商城):')
if 'p1' in dir():#如果对象p1存在将不在重新创建,否则每次循环创建一个- -!
pass
else:
p1= user(ngoods) #创建用户对象p1
if ngoods in goods_list.keys(): p1.addgoods(ngoods)
elif ngoods =="i":
index()
elif ngoods[0]=='-' and ngoods[1:] in goods_list.keys():#这里用“-”模拟用户想要删除的商品操作,
# so,此时的ngoods[1:]即为商品
p1.delgoods(ngoods[1:])
elif ngoods=='c':
p1.show_shop_cart()
elif ngoods=='s':
p1.settlement()
index()
else:
if ngoods !='q':
print ("input Error!")
老男孩python自动化运维作业2的更多相关文章
- 老男孩python自动化运维作业1
#!/usr/bin/env pthon #字典操作三级菜单 “b”返回上一级菜单,“q”退出. menu={"BJ":{"cp":{1:1,2:2,3:3}, ...
- Day1 老男孩python自动化运维课程学习笔记
2017年1月7日老男孩python自动化运维课程正式开课 第一天学习内容: 上午 1.python语言的基本介绍 python语言是一门解释型的语言,与1989年的圣诞节期间,吉多·范罗苏姆为了在阿 ...
- 老男孩Python自动化运维视频
链接:https://pan.baidu.com/s/1VLXJ0RZr39kpSGthkLkgmA 密码私聊我
- python自动化运维学习第一天--day1
学习python自动化运维第一天自己总结的作业 所使用到知识:json模块,用于数据转化sys.exit 用于中断循环退出程序字符串格式化.format字典.文件打开读写with open(file, ...
- Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|
内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...
- 【目录】Python自动化运维
目录:Python自动化运维笔记 Python自动化运维 - day2 - 数据类型 Python自动化运维 - day3 - 函数part1 Python自动化运维 - day4 - 函数Part2 ...
- python自动化运维篇
1-1 Python运维-课程简介及基础 1-2 Python运维-自动化运维脚本编写 2-1 Python自动化运维-Ansible教程-Ansible介绍 2-2 Python自动化运维-Ansi ...
- Python自动化运维的职业发展道路(暂定)
Python职业发展之路 Python自动化运维工程 Python基础 Linux Shell Fabric Ansible Playbook Zabbix Saltstack Puppet Dock ...
- Python自动化运维 技术与最佳实践PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:7bl4 一.内容简介 <python自动化运维:技术与最佳实践>一书在中国运维领域将有"划时代"的重要意义:一方面,这是国内第一本从纵.深和实践角度探 ...
随机推荐
- 关于C#本质论和CLR via C#中译本,不吐不快
C#本质论和CLR via C#两本好书,周老师可能是俗务缠身,太忙了吧,翻译得只能让人呵呵了. 你要是忙,别接那么多活好不啦. 现在都在说供给侧改革,都在大力提倡工匠精神,我们做技术的,还是踏实点好 ...
- MSBI - KPI
KPI - common members: Value, Target, Status, Trend.
- JAVA-系统-【2】-创建自增长的用户表
[2]创建数据库表 用户表 自增 1.用户表结构 数据excel 表1 2.创建表 Create table A_USER( id number primary key, username ) n ...
- rabbitMQ学习(四)
按照routing key接收信息 发送端: public class EmitLogDirect { private static final String EXCHANGE_NAME = &quo ...
- maven出现 -Dmaven.multiModuleProjectDirectory system propery错误
1.使用myeclipse10整合maven插件时出现错误: -Dmaven.multiModuleProjectDirectory system propery is not set. Check ...
- C# iis错误配置信息( 500.21 - Internal Server Error )
新电脑安装完开发环境后,还需要注册framework4.0到IIS.不然会报错: HTTP 错误 500.21 - Internal Server Error 处理程序"Extensionl ...
- IO调度算法
简介: 当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成. 每个块设备都有它自己的队列. I/O调度程序负责维护这些队列的顺序,以更有效地利用介质.I/O调度程序将无序的I/ ...
- SQL多表联查
left join >>>外联 on >>>跟and一样使用,作为外联条件 表明后面加大写字母表示该表别名 例: select A.*,B.name userNam ...
- sublime 关闭自动更新
第一步: 点击菜单栏“Preferences”=> "Settings-User" 进入个人参数设置页面: 第二步: 在大括号内插入如下代码:"update_che ...
- java MAVEN 项目出现红叉
pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...