python基础升级版第四课练习


创建一个名为phone的类  1)类实例成员变量有screeen_size、price、brand  2)给成员变量创建 访问及设置 方法  3)定义play方法,功能为打印:play game  4)定义sendMessage方法,功能为打印:text message  5)定义powerOff方法,功能为打印:power off  6)创建get_info方法,打印对象的相关信息  7)实例化类phone(),对象名为phone1, 屏幕尺寸为5.5,价格为6288, 品牌为apple  8)调用3,4,5,6方法,查看结果  9)实例化类phone(),对象名为phone2, 屏幕尺寸为5,价格为1999,品 牌为mi.  10)调用3,4,5,6方法,查看结果
class phone ():
    def __init__(self,screen_size,price,brand):
        self.screen_size = screen_size #屏幕尺寸
        self.price = price #价格
        self.brand = brand #品牌
        
    def play(self,): #打游戏
        print('play game')
        
    def sendMessage(self,):#发短信
        print('text message')
        
    def powerOff(self,):#关机
        print('power off')
        
    def get_info(self,):#获取手机信息
        print(self.screen_size,self.price,self.brand)
        
phone1 = phone(5.5,6288,"apple")
phone1.sendMessage() 
phone1.powerOff() 
phone1.get_info() 

phone2 = phone(5.0,1999,'mi')
phone2.play()
phone2.sendMessage()
phone2.powerOff()
phone2.get_info()


设计以下公司类,并实例化不同对象进行检查  类成员  类下公司的总个数  类方法  返回公司类共有多少个公司实例  实例变量  公司名,简介,利润,销售额,总成本,雇员姓名,雇员人员。  实例方法要求有:  招聘人才(每招一个人会有成本产生,影响雇员列表,人数,总成本)  解雇人员(每解雇一个人会有成本产生,影响雇员列表,人数 ,总成本)  公司广告推广(影响总成本)  交社保(按公司雇员总人数计算,影响总成本)  交税(按公司雇员总人数计算,影响总成本)  销售(按销售件数价格计算销售额,利润按销售额利润率进行计算利润。)  获取公司雇员列表  获取公司净利润
class company():
    company_total = 0
    
    def __init__(self,company_name,company_intro):
        self.company_name = company_name #公司名
        self.company_intro = company_intro #简介
        self.company_lirun = 0 #利润
        self.company_xiaoshou = 0 #销售额
        self.company_chengben = 0 #总成本
        self.company_guyuan_Num = 0 #雇员人员
        self.company_guyuan_list = [] #雇员姓名
        
        company.company_total+=1
        
    def zhaopin(self,zhaopin_num=1,*name):#招聘
        self.company_guyuan_Num+=zhaopin_num
        self.company_chengben+=zhaopin_num

self.company_guyuan_list+list(name)

        for i in list(name):
            self.company_guyuan_list.append(i)
        
    def jiegu(self,jiepin_num=1,*name):#解雇
        self.company_guyuan_Num = self.company_guyuan_Num - jiepin_num
        self.company_chengben+= jiepin_num
        for i in list(name):
            self.company_guyuan_list.remove(i)
    
    def tuiguang(self,):#推广
        self.company_chengben+=1
    
    def shebao(self,):#交社保
        self.company_chengben = self.company_chengben + \
        self.company_guyuan_Num
        
    def jiaoshui(self,):#交税
        self.company_chengben = self.company_chengben + \
        self.company_guyuan_Num
        
    def xiaoshou(self,jianshu,jiage,lirunlv): #发生销售订单
        self.company_xiaoshou = self.company_xiaoshou+(jianshu*jiage)
        self.company_lirun = self.company_lirun+((jianshu*jiage)*lirunlv)
        
    def guyuanList(self,): #雇员列表
        return self.company_guyuan_list
    
    def companyLiyun(self,):#公司利润
        return self.company_lirun - self.company_chengben
    
    @classmethod
    def get_comanyNum(cls,):
        return company.company_total
    
zhongxing = company('中兴','专注于手机生产')
zhongxing.zhaopin(3,'lisi','zhangsan','wangwu')#招聘
zhongxing.jiegu(1,'lisi')#解雇
zhongxing.tuiguang()#推广
zhongxing.shebao()#社保
zhongxing.jiaoshui()#交税
zhongxing.xiaoshou(10,1,0.8)#发生销售
zhongxing.guyuanList()
zhongxing.companyLiyun()#公司利润

company.get_comanyNum()


设计一个叫cinema的电影院的类,包含:  类方法:
 初始化方法,并初始相应的类变量实例变量
 getSales(获取全部电影院实际销售的方法)的电影院  实例方法:
 saleTickets方法,要求更新实例的销售总额及类的销售总额  类变量:
 类下所有实例电影院的数量,销售额总和  实例变量:
 电影院名称,位置,销售额
 创建一个miniCinema迷你电影院的类,继承自cinema类
 重写卖票方法,大于100元的票价加入打9折扣的功能。
 对miniCinema实例进行调用体现多态性
class cinema():
    all_sales_total = 0 #类的销售总额
    all_cinema_nums = 0 #所有电影院数量
    
    def __init__(self,cinema_name,cinema_address):
        self.sales_total = 0 #实例销售总额
        self.cinema_name = cinema_name #电影院名称
        self.cinema_address = cinema_address #电影院地址
        cinema.all_cinema_nums += 1
    
    def saleTickes(self,tickets_num,tickes_prices):#售票数量,售票价格
        salesInputs = tickets_num * tickes_prices
        self.sales_total += salesInputs
        cinema.all_sales_total += salesInputs
    
    @classmethod
    def getSales(cls,):
        return cinema.all_sales_total
    
    
class miniCinema(cinema):
    def __init__(self,cinema_name,cinema_address):
        super().__init__(cinema_name,cinema_address)
        
    def saleTickes(self,tickets_num,tickes_prices):#售票数量,售票价格
        salesInputs = tickets_num * tickes_prices*0.9 \
        if tickes_prices > 100 else tickets_num * tickes_prices
        self.sales_total += salesInputs
        cinema.all_sales_total += salesInputs
        
cinema1 = cinema('万达影城','深南大道1108号') 
cinema1.saleTickes(10,50) #售票

cinema2 = cinema('新天地国际影城','迎春路128号')
cinema2.saleTickes(6,30)#售票

cinema.getSales() #获取销售总额
        
miniCinema1 = miniCinema('中洲国际影城','前进一路25号')
miniCinema1.saleTickes(10,110)

cinema.getSales() #获取销售总额


导入os包  创建递归循环完成一个目录的遍历  如果下还有一个目录,依次进行遍历
import os  
  
def scanfile(path):  
    filelist = os.listdir(path)  
    allfile = []  
    for filename in filelist:  
        filepath = os.path.join(path,filename)  
        if os.path.isdir(filepath):  
            scanfile(filepath)  
        print (filepath)   
allfile = scanfile('/Users/heliuhong2/Desktop/python') 


导入PIL包
 如果没有该包,请自行安装后导入
 将一张图片进行尺寸缩放,颜色调整后保存。  (dir,help函数查看库)

import Image

import os
from PIL import Image
import matplotlib.pyplot as plt

打开一个jpg图像文件,注意路径要改成你自己的:

im = Image.open('/Users/heliuhong2/Desktop/test.png')

获得图像尺寸:

w, h = im.size
print(im.size)

缩放到50%:

im.thumbnail((w//2, h//2))
print(im.size)
im = im.convert('1')

im.show()

显示图片

plt.figure('test.png')
plt.imshow(im)
plt.show()

把缩放后的图像用jpeg格式保存:

im.save('/Users/heliuhong2/Desktop/python/saveImage.png')

dir(Image)
help(Image)


Python中对序列的切片访问,是左闭右开。  现请您
 创建一个可被迭代的类
 改变默认的切片访问方式为左闭右闭
 举例:c1=youclassname([0,1,2,3,4,5,6,7,8,9]  c1[2:7] 返回2,3,4,5,6,7
class sliceAccess():
    l1 = []
    def __init__(self,l2):
        sliceAccess.l1 = l2
        
    def __getitem__(self, key):
        if type(key) is not slice:
            print('您访问的姿势不对')
        else:     
            start = key.start
            stop = key.stop + 1
            return self.l1[start:stop]
           
l1 = sliceAccess([1,2,3,4,5,6])
l1[0:2]

1 个评论

您访问的姿势不对~~~

哈哈。。。。

完成得很不错~继续

要回复文章请先登录注册

返回顶部