老男孩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自动化运维:技术与最佳实践>一书在中国运维领域将有"划时代"的重要意义:一方面,这是国内第一本从纵.深和实践角度探 ...
随机推荐
- IIS7 启用GZip压缩
GZip压缩通常会达到70%以上的压缩率,如果是手机Web这无疑会使网站的访问速度大大增加,无论是CSS合并.JS合并.图片合并都不如GZip压缩来得简单直接.如果一个网页是100K,那么启用GZip ...
- uva1588kickdown
题目要求简述:给定长度分别为n1,n2(n1,n2<=100)且每列的高度只为1或者2的长条.需要将他们放入一个高度为3的容器,问能够容纳它们的最短容器长度. 思路就是固定一个字符串a,字符串b ...
- C++中输入输出的重定向
重定向,就是: 把 原来的 cin 从键盘输入 改为从文件输入. 把 原来的 cout 向屏幕输出 改为输出到文件. 例如: cin>>line; 原来要从键盘拍入.现在自动到某文件读取, ...
- oracle number型日期转date型日期
在搞数据库时,发现有这样的一个字段,类型是NUMBER(38),查看了一下里面的数据,都是这样的, 13239576781141321326994295132212930680413221297162 ...
- Debug 常见问题总结(持续更新)
2016-9-24 1.for循环变量做参数一定要小心,嵌套一个for变量不要用同一个. 2.字符串处理要打好下标的草稿,不然很容易搞混.(方法待讨论). 3.整形比较比较容易忽略=的问题 ,> ...
- What is Agile
Agile is a set of Values, Principles and Practices, that will change your behavior to will create gr ...
- Java上面出现这个错误如何解决关于XML的
Java上面出现这个错误如何解决关于XML的 2015-01-07 14:49 hejiashun11325 | 分类:JAVA相关 | 浏览265次 The type org.xmlpull.v1. ...
- Support Vector Machine (2) : Sequential Minimal Optimization
目录 Support Vector Machine (1) : 简单SVM原理 Support Vector Machine (2) : Sequential Minimal Optimization ...
- (heartbeat与KeepAlived)
总拓扑图 两种实现方式: 实验一. LVS+heartbeat+ldirectord实现集群负载: 1.在主Director Server上和备用Director Server上分别安装heartbe ...
- oracle的游标
declare v_0 number; v_1 number; cursor c1 is select productordernumber from his_productorder@pro_crm ...