老男孩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自动化运维:技术与最佳实践>一书在中国运维领域将有"划时代"的重要意义:一方面,这是国内第一本从纵.深和实践角度探 ...
随机推荐
- PCI Express(六) - Simple transactions
原文地址:http://www.fpga4fun.com/PCI-Express6.html Let's try to control LEDs from the PCI Express bus. X ...
- switch(){}default后是有冒号的
switch: function a(c,d){ switch(c+d){ : console.log(); break; : console.log(); break; : console.log( ...
- redis 事务
概述 相信学过MySQL等其他数据库的同学对事务这个词都不陌生,事务表示的是一组动作,这组动作要么全部执行,要么全部不执行.为什么会有这样的需求呢?看看下面的场景: 微博是一个弱关系型社交网络,用户之 ...
- mysql自动添加最后修改时间
字段不为空 NOT NULL 类型 :timestamp 默认值 :CURRENT_TIMESTAMP
- js关于页面坐标api
网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...
- C#字符串(截取)
1.按照逗号进行截取,并存放在一个数组中 eq:截取字符串,并放在数组中:string[] strArray = strPaths.Split(','); 获取某一个值 string s1=strAr ...
- modelsim(3) - tips(zt)
1)如果需要跟踪信号,可以使用dataflow,直观,缺点是后仿太慢! http://www.cnblogs.com/asus119/archive/2011/04/01/2002525.html M ...
- 《CoffeeScript应用开发》学习: CoffeeScript高级用法
正确的上下文 使用胖箭头=>表示将回调函数绑定到this对象. class t func: (callback)-> if callback? setTimeout callback(), ...
- 安装Maven
下载进入官网下载页面:http://maven.apache.org/download.html我用的是windows,下载apache-maven-3.2.5-bin.zip: Maven 3.2. ...
- Java编写最大公约数和最小公倍数
package javaapplication24; class NegativeIntegerException extends Exception{ String message; public ...