拿到要求真不知道怎么写,不能还要写个商城页面吧;

最后还是用了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的更多相关文章

  1. 老男孩python自动化运维作业1

    #!/usr/bin/env pthon #字典操作三级菜单 “b”返回上一级菜单,“q”退出. menu={"BJ":{"cp":{1:1,2:2,3:3}, ...

  2. Day1 老男孩python自动化运维课程学习笔记

    2017年1月7日老男孩python自动化运维课程正式开课 第一天学习内容: 上午 1.python语言的基本介绍 python语言是一门解释型的语言,与1989年的圣诞节期间,吉多·范罗苏姆为了在阿 ...

  3. 老男孩Python自动化运维视频

    链接:https://pan.baidu.com/s/1VLXJ0RZr39kpSGthkLkgmA 密码私聊我

  4. python自动化运维学习第一天--day1

    学习python自动化运维第一天自己总结的作业 所使用到知识:json模块,用于数据转化sys.exit 用于中断循环退出程序字符串格式化.format字典.文件打开读写with open(file, ...

  5. Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|

    内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...

  6. 【目录】Python自动化运维

    目录:Python自动化运维笔记 Python自动化运维 - day2 - 数据类型 Python自动化运维 - day3 - 函数part1 Python自动化运维 - day4 - 函数Part2 ...

  7. python自动化运维篇

    1-1 Python运维-课程简介及基础 1-2 Python运维-自动化运维脚本编写 2-1 Python自动化运维-Ansible教程-Ansible介绍 2-2 Python自动化运维-Ansi ...

  8. Python自动化运维的职业发展道路(暂定)

    Python职业发展之路 Python自动化运维工程 Python基础 Linux Shell Fabric Ansible Playbook Zabbix Saltstack Puppet Dock ...

  9. Python自动化运维 技术与最佳实践PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书

    点击获取提取码:7bl4 一.内容简介 <python自动化运维:技术与最佳实践>一书在中国运维领域将有"划时代"的重要意义:一方面,这是国内第一本从纵.深和实践角度探 ...

随机推荐

  1. 前端学习实践笔记--JavaScript深入【2】

    趁热继续再来学习一波,接下来主要介绍函数,object,数组,面向对象,new实例化. 在介绍“对象”之前,首先得梳妆打扮一番吧,那这梳妆打扮主要有两条路线,一条是淑女范(利用函数对象化),一条是邻家 ...

  2. [转载]Python & Selenium -- 页面加载时间过长&启动指定FF

    原文链接:https://my.oschina.net/u/2344787/blog/400507?p={{page}} 1. selenium webdriver在get方法会一直等待页面加载完毕才 ...

  3. jQuery 学习笔记(函数调用机制)

    最近在学前端框架amazeui,之前用其中的CSS样式搭建了一个伪360网页,学会了点布局的东西,但是始终觉得有点无聊.所以这几天就开始研究jquery代码了. 对于我这样一个初学者来说,有很多东西都 ...

  4. vertica 8.0 新特性

    前言: <<line>> 表明在vertica 8.0文档中的title   正文: 1-支持平台 1.1-操作系统 <<Vertica Server and Ve ...

  5. EM算法(4):EM算法证明

    目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(4):EM算法证明 1. 概述 上一篇博客我们已经讲过 ...

  6. Linux 之集群 LVS

    查看系统是否支持IPVS功能 [root@nginx ~]# grep -i 'ipvs' /boot/config-2.6.18-308.el5 # IPVS transport protocol ...

  7. 提升linux下tcp服务器并发连接数限制

    1.修改用户进程可打开文件数限制   在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统 ...

  8. Entity Framework技术导游系列 开篇 (转)

    在微软平台写程序有年头了,随着微软数据存取技术的持续演化,我在程序中先后使用过ODBC.DAO.ADO.ADO.NET.LINQ to SQL. Entity Framework这些技术. 近几年来, ...

  9. [小哥Allegro72讲速成视频]

    http://v.qq.com/vplus/df932a993679cf80a0b6c87bb849e22c 第01讲 Allegro常用组件介绍 视频链接:http://v.qq.com/boke/ ...

  10. Java入门记(四):容器关系的梳理(上)——Collection

    目录 一.Collection及子类/接口容器继承关系 二.List 2.1 ArrayList 2.1.1 序列化的探讨 2.1.2 删除元素 2.1.3 调整大小 2.2 Vector和Stack ...