老男孩python自动化运维作业(二)

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

最后还是用了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)]
 1 #这里用字典的话就没有定义商品编号所以此程序不支持同个商品同时买俩件- -!用户可以从购物车添加商品和删除商品和结算,查看购物车和余额。
 2
 3 goods_list = {‘g1‘:128,‘g2‘:39,‘g3‘:2.5}                  #创建一个三个商品的字典模拟商品数据
 4
 5 class user(object):                                        #定义一个用户的类及用户具有的操作方法
 6     def __init__(self,ngoods,shop_cart={},balance=300):    #这里用户属性中默认300块钱,用户购物车也用字典来模拟数据
 7         self.balance=balance
 8         self.shop_cart={}
 9         self.ngoods=ngoods
10     def addgoods(self,ngoods_num):#定义用户添加商品到购物车方法当作用户对象的属性
11
12         if ngoods_num:
13             self.shop_cart[ngoods_num]=goods_list[ngoods_num]#用户选择的商品添加到购物车字典
14             #print (self.shop_cart)#调试
15             self.show_shop_cart()#调用了下面的展示购物车方法
16         else:
17             print ("you don‘t chose!")
18
19     def delgoods(self,dgoods_num):#定义用户从购物车删除商品方法
20         if dgoods_num:
21
22             self.shop_cart.pop(dgoods_num)#将用户所选商品从购物车删除
23             self.show_shop_cart()
24
25         else:
26             print("you don‘t chose!")
27
28     def settlement(self):#定义结算方法
29         sum_price=sum(self.shop_cart.values())#计算购物车商品的价格和
30         #print (sum_price)#调试
31         #print (self.balance)#调试
32
33         if sum_price > self.balance:#如果用户余额balance小于购物车商品总价
34             print (‘Sorry, your credit is running low!‘)#提示余额不足
35         else:
36             self.balance=self.balance - sum_price#结账
37             self.shop_cart.clear() #清空用户购物车
38             print (‘settlement success! your balance:%d‘ %(self.balance)) #果断改掉了之前用“+”的习惯
39
40     def show_shop_cart(self):#定义一个展示用户购物车方法
41         #print (self.shop_cart)
42         for k,v in self.shop_cart.items():
43            shop_infor = ‘‘‘
44                 %s:¥%s
45            ‘‘‘%(k, v)
46            print(shop_infor)
47
48 def index():#定义一个商品展示方法
49     for k,v in goods_list.items():
50         goods_infor=‘‘‘
51          %s:¥%s
52         ‘‘‘%(k,v)
53         print(goods_infor)
54 index()
55
56
57 ngoods = 1#先初始化ngoods一个值 使之进入循环
58
59 while ngoods != ‘q‘:
60     ngoods=input(‘chose your goods(s:结算,i:商品展示,c:购物车,q:关闭商城):‘)
61     if ‘p1‘ in dir():#如果对象p1存在将不在重新创建,否则每次循环创建一个- -!
62         pass
63     else:
64         p1= user(ngoods) #创建用户对象p1
65     if ngoods in goods_list.keys():
66
67         p1.addgoods(ngoods)
68     elif ngoods =="i":
69         index()
70     elif ngoods[0]==‘-‘ and ngoods[1:] in goods_list.keys():#这里用“-”模拟用户想要删除的商品操作,
71         # so,此时的ngoods[1:]即为商品
72         p1.delgoods(ngoods[1:])
73     elif ngoods==‘c‘:
74         p1.show_shop_cart()
75     elif ngoods==‘s‘:
76         p1.settlement()
77         index()
78     else:
79         if ngoods !=‘q‘:
80             print ("input Error!")
时间: 2024-08-01 06:59:15

老男孩python自动化运维作业(二)的相关文章

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

1 #!/usr/bin/env python 2 # -*-coding:UTF-8-*- 3 4 import re 5 6 def login(): 7 8 f=open("user",'r') #读取user配置文件. 9 cont=f.readlines() #readlines把读取的行当作元素返回一个列表 10 f.close() 11 allname=[] #初始化一个用户列表 12 allpasswd=[] 13 for i in range(0,len(cont)-

Python自动化运维课程学习--Day3

本文为参加老男孩Python自动化运维课程第三天学习内容的总结. 大致内容如下: 1.文件操作 2.字符编码转码相关操作 3.函数 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 python2.7.12 --Python IDE: PyCharm 2016.3.2 一.文件操作: 1.文件操作流程:以只读.写(覆盖写).追加写.读写.追加读写.二进制读写等模式打开文件 ==> 得到文件句柄,并

Python自动化运维课程学习--Day2

本文为参加老男孩Python自动化运维课程第二天学习内容的总结. 大致内容如下: 1.python模块初识 2.python程序运行流程 3.python数据类型(只讲了numbers, bool, strings, bytes, list, tuple, dict, set) 4.python数据运算 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 --Python IDE: PyCharm

老男孩python高级运维开发课程

L老男孩培训-python培训二期lesson01(11节)01-第一天内容介绍及课前思想02-python介绍及发展03-python 发展04-python安装05-python编程风格06-raw_input用户交互07-用户交互及格式化输出08-python流程控制if_for_while09-python练习程序_员工信息表10-python练习程序_员工信息表_基本实现11-员工信息表_脚本bug处理 L老男孩培训-python培训二期lesson02(9节)01-学生作业讲解展示0

Python自动化运维开发活动沙龙(2015-07-11周六)

Python自动化运维开发活动沙龙 2015-07-11(周六) 场地限制,最多仅限50人参加,报名从速! 亲,已是2015年了,做为运维工程师的你还在手动装机器.配服务.看监控.帮开发人肉上线么?还在发愁如何把每天重复的工作自动化起来么?还在想对开源软件进行二次开发定制却无能为力么?还在对开发人员提出的各种无理需求想进行反驳却因为自己不懂开发却被人鄙视么?还在为自己天天努力工作.到处救火却每月只能挣个十来K而感到不爽么? Maybe yes,maybe no! 但是不要不爽了,你的工资不高是因

Python自动化运维Django入门

随着IT运维技术日益更新,近几年运维自动化越来越火,而且学习python的人非常的火爆,尤其是python自动化运维开发,得到了很多前辈的推崇,尤其是老男孩培训中心.老男孩老师.Alex老师等,在这里非常感谢你们. 这里我也记录一下以前学习Django的一点点心得和方法,方便以后自己查阅,如果能帮助初学者是最好的了!好的,其他不多说了,博文滴走起. 一.系统实战环境 系统版本:CnetOS6.5 x86_64 Django版本:Django-1.5.8 MySQL版本:MySQL-5.1.73

python自动化运维之路~DAY7

python自动化运维之路~DAY7 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.客户端/服务器架构 C/S 架构是一种典型的两层架构,其全称是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据:另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信. C/S 架构也可以看做是胖客户端架构.因为客户端需要实现绝大多数的业务

(转)Python自动化运维之13、异常处理及反射(__import__,getattr,hasattr,setattr)

Python自动化运维之13.异常处理及反射(__import__,getattr,hasattr,setattr) 一.异常处理 python异常: python的运行时错误称作异常 (1)语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 (2)逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成.计算或者输出结果需要的过程无法执行等 python异常是一个对象,表示错误或意外情况 (1)在python检测到一个错误时,将触发一个异常 python可以通常异常传导机

python自动化运维之路~DAY10

python自动化运维之路~DAY10 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.