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
@staticmethod
def play():
return print("play game")
@staticmethod
def sendMessage():
return print("text message")
@staticmethod
def powerOff():
return print("power off")
def get_info(self,):
return print(self.screen_size,self.price,self.brand)
phone1=phone(5.5,6288,"apple")
phone1.play()
phone1.sendMessage()
phone1.powerOff()
phone1.get_info()
- 完成简单类的设计:
设计一个公司类,完成以下要求,并实例化不同对象进行验证
类变量 - 类下公司的总个数,类下实例的名称列表
类方法- 返回公司类共有多少个公司实例
; 返回公司类的公司实例有名称列表
实例变量
公司名,简介,利润,销售额,总成本,雇员姓名,雇员列表
实例方法:- 招聘人才(每招一个人会有成本产生,影响该实例雇员列表,人数,总成本)- 解雇人员(每解雇一个人会有成本产生,影响该实例雇员列表,人数 ,总成本)- 公司广告推广(影响该实例总成本)- 交社保(按公司雇员总人数计算,影响该实例总成本)- 交税(按公司雇员总人数计算,影响该实例总成本)- 销售(按销售件数价格计算销售额,利润按销售额利润率进行计算利润。)- 获取公司雇员列表- 获取公司净利润
class Company():
CompanyNum=0
CompanyName=[]
def __init__(self,name):
#self.name=name
Company.CompanyNum+=1
Company.CompanyName.append(name)
@classmethod
def get_CompanyNum(cls,):
return print("公司有 ",Company.CompanyNum," 个公司实例")
@classmethod
def get_CompanyName(cls,):
return print([i for i in Company.CompanyName])
company1=Company("apple")
company2=Company("pear")
Company.get_CompanyNum()
Company.get_CompanyName()
-
设计类及其继承类
设计一个叫cinema的电影院的类,包含:
类方法:
初始化方法,并初始相应的类变量实例变量
getSales(获取全部电影院实际销售的方法)的电影院
实例方法:saleTickets方法,要求更新实例的销售总额及类的销售总额
类变量:类下所有实例电影院的数量,销售额总和
实例变量:电影院名称,位置,销售额
创建一个miniCinema迷你电影院的类,继承自cinema类
重写卖票方法,大于100元的票价加入打9折扣的功能。
对miniCinema实例进行调用体现多态性 -
导入包完成遍历目录:
导入os包
创建递归循环完成一个目录的遍历
如果下还有一个目录,依次进行遍历
import os
# os.listdir(path) 返回path指定的文件夹包含的文件或文件夹的名字的列表。
# os.sep 代表当前操作系统特定的路径分割符
# os.path.isdir(path) 判断路径是否为目录
# os.path.isfile(path) 判断路径是否为文件
def listdirs(url):
url = r'' + url
if os.path.isdir(url):
lis = os.listdir(url)
for i in lis:
path = url + os.sep + i
if os.path.isfile(path):
f = open('list.txt', 'a+')
f.write(path + '\n')
f.close()
else:
path = url + os.sep + i
listdirs(path)
print('遍历{}目录完成'.format(url))
else:
print('并非合法目录')
url = input('地址:')
listdirs(url)
if __name__ == '__main__':
url = input('地址:')
listdirs(url)
-
练习使用PIL包
导入PIL包
如果没有该包,请自行安装后导入
将一张图片进行尺寸缩放,颜色调整后保存。
(dir,help函数查看库) -
新建类并修改其实例的切片访问
Python中对序列的切片访问,是左闭右开。
现请您
创建一个可被迭代的类
改变默认的切片访问方式为左闭右闭
举例:
c1=youclassname([0,1,2,3,4,5,6,7,8,9] c1[2:7] 返回2,3,4,5,6,7