创建一个名为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("Your phone's screen size is :%s, price is:%s, brand is:%s"%(self.screen_size,self.price,self.brand))
phone1 = Phone(5.5 , 6288, 'apple')
phone1.play()
phone1.sendMessage()
phone1.powerOff()
phone1.get_info()
print
phone2 = Phone(5 , 1999, 'mi')
phone2.play()
phone2.sendMessage()
phone2.powerOff()
phone2.get_info()
输出结果:
练习二:完成简单类的设计
设计以下公司类,并实例化不同对象进行检查
类成员
类下公司的总个数
类方法
返回公司类共有多少个公司实例
实例变量
公司名,简介,利润,销售额,总成本,雇员姓名,雇员人员。
实例方法要求有:
招聘人才(每招一个人会有成本产生,影响雇员列表,人数,总成本)
解雇人员(每解雇一个人会有成本产生,影响雇员列表,人数 ,总成本)
公司广告推广(影响总成本)
交社保(按公司雇员总人数计算,影响总成本)
交税(按公司雇员总人数计算,影响总成本)
销售(按销售件数*价格计算销售额,利润按销售额*利润率进行计算利润。)
获取公司雇员列表
获取公司净利润
class Company():
# Company_count = 0
# Company_list = []
def __init__(self,name,summary,profit,sales_volume,total_cost,employee_name,employee_list):
self.name = name
self.summary =summary
self.profit = profit
self.sales_volume = sales_volume
self.total_cost = total_cost
self.employee_name = employee_name
self.employee_list = employee_list
@classmethod
def get_Company_count(cls):
return Company.Company_count
@classmethod
def get_Company_list(cls):
return Company.Company_list
def hire_person(self,salary,employee_name):
self.number = 0
self.salary = salary
self.total_cost += salary
self.employee_list.append(employee_name)
self.number += 1
return self.total_cost,self.employee_list
def fire_person(self,employee_name):
if employee_name not in self.employee_list:
print("sorry,%s your are not our company's employee!"%employee_name)
else:
self.employee_list.remove(employee_name)
self.total_cost -= self.salary
self.number += 1
return self.total_cost, self.employee_list
def ad(self,cost):
self.total_cost += cost
return self.total_cost
def pay_insurance(self,one_pay):
self.total_cost += len(self.employee_list)*one_pay
return self.total_cost
def pay_taxs(self,one_tax):
self.total_cost += len(self.employee_list)*one_tax
return self.total_cost
def sales(self,sale_num,price,rate):
self.sales_volume += sale_num*price
self.profit += self.sales_volume * rate
return self.sales_volume
return self.profit
company1 = Company('无敌公司','无敌是多么寂寞',0,0,0,0,[])
company1.hire_person(10000,'zs')
company1.hire_person(5000,'ls')
company1.hire_person(7000,'ww')
company1.ad(5000)
company1.pay_insurance(500)
company1.pay_taxs(200)
company1.sales(10,6000,0.7)
# print "公司目前共有@s个员工,分别是:@s,"
company1.fire_person('ww')
# print('公司@s开除了一个员工,目前员工为:@s'@(company1.name ,company1.employee_list))
print(company1.name)
print(company1.employee_list)
print(company1.profit)
输出结果;
练习三:设计类及其继承类
1、 设计一个叫cinema的电影院的类,包含:
类方法:
初始化方法,并初始相应的类变量实例变量
getSales(获取全部电影院实际销售的方法)的电影院
实例方法:
saleTickets方法,要求更新实例的销售总额及类的销售总额
类变量:
类下所有实例电影院的数量,销售额总和
实例变量:
电影院名称,位置,销售额
2、 创建一个miniCinema迷你电影院的类,继承自cinema类
重写卖票方法,大于100元的票价加入打9折扣的功能。
对miniCinema实例进行调用体现多态性
class Cinema():
cinema_sum = 0
sales_amount = 0
def __init__(self,name,location,sales):
self.name = name
self.location = location
self.sales = sales
Cinema.cinema_sum +=1
Cinema.sales_amount += sales
def saleTickets(self,ticket,price):
self.sales += ticket*price
Cinema.sales_amount += self.sales
return self.sales,Cinema.sales_amount
@classmethod
def getSales(cls):
return Cinema.sales_amount
cinema1 = Cinema('万达','北京',1390000)
# print cinema1
class miniCinema(Cinema):
def saleTickets(self,ticket,price):
if price > 100:
price = price *0.9
self.sales += ticket * price
Cinema.sales_amount += self.sales
return self.sales,'------------->',Cinema.sales_amount
new = miniCinema('友好','上海',200000)
print new.saleTickets(2000,100)
输出结果:
练习四:导入包完成遍历目录
导入os包
创建递归循环完成一个目录的遍历
如果下还有一个目录,依次进行遍历
import os
def scanfile(path):
# pathname = []
listDir = os.listdir(path)
for filelist in listDir:
pathname = os.path.join(path,filelist) #拼接路径
if os.path.isfile(pathname):
print('文件名为:',filelist)
print('文件路径为:',pathname)
else:
scanfile(pathname)
scanfile(u'F:\\百度云\七月在线\python入门升级版\lesson4 面向对象基础')
输出结果:
练习五:练习使用PIL包
导入PIL包
如果没有该包,请自行安装后导入
将一张图片进行尺寸缩放,颜色调整后保存。
(dir,help函数查看库)
输出结果:
from PIL import Image
# help(Image)
img = Image.open(u'F:\\我的文件夹\照片\ludashi.jpg')
# img.show()
print(img.size)
new = img.resize((90,60))
new_img = new.convert('L') #调整为灰色
new_img.show()
new_img.save('C:\\Users\W\desktop/new.jpg')
输出结果:
作业一:新建类并修改其实例的切片访问
Python中对序列的切片访问,是左闭右开。
现请您创建一个可被迭代的类
改变默认的切片访问方式为左闭右闭
举例:c1=youclassname([0,1,2,3,4,5,6,7,8,9]
c1[2:7] 返回2,3,4,5,6,7
参考别人的:
class Newcut():
def __init__(self, value=None):
if value == None:
self.value = []
else:
self.value = value
def __getitem__(self, key):
if type(key) == slice:
start = key.start
stop = key.stop + 1
if key.start == None:
start = 0
if key.stop == None:
stop = -1
return self.value[start:stop]
else:
return str(self.value[key])
def __iter__(self):
return iter(self.value)
c1 = Newcut([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(c1[2:7])
输出结果: