zoukankan      html  css  js  c++  java
  • 老男孩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)]
     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!")
    51_陆雅亮
  • 相关阅读:
    UML总结4---UML九种图关系说明
    TCP/IP学习笔记__mbuf
    操作系统内存管理之 内部碎片vs外部碎片
    校园招聘面试-操作系统知识总结 分看点三
    操作系统常见面试题总结 分看点二
    操作系统之面试常考 分看点一
    操作系统基础知识总结(二)
    操作系统基础知识总结(一)
    Java HashMap的扩容
    linux查看端口被占用情况
  • 原文地址:https://www.cnblogs.com/cyalu/p/luyaliang_python_homework.html
Copyright © 2011-2022 走看看