实战一:定义一个圆的类计算面积和周长
需求:定义一个圆类—Circle,提供一个属性r(半径),提供两个方法:
计算圆的面积get_area(self)和计算圆的周长get_perimeter(self),通过两个方法计算圆的周长和面积并且对计算结果进行输出,最后从键盘录入半径,创建圆类的对象,并调用计算面积和周长的方法输出面积和周长。
class Circle:
def __init__(self,r):
self.r=r
#计算面积的方法
def get_area(self):
# return 3.14*self.r*self.r
return 3.14*pow(self.r,2)
#计算财长的方法
def get_perimeter(self):
return 2*3.14*self.r
r=eval(input('请输入圆的半径:'))
c=Circle(r)
area=c.get_area()
perimeter=c.get_perimeter()
print('圆的面积为:',area)
print('圆的财长为:',perimeter)
实战二:定义学生类录入5个学生信息存储到列表中
需求:定义学生类Student,包含姓名,年龄,性别,分数四个属性,提供一个用于学员信息输出的方法info(self)。编写测试代码,使用循环录入5位学生的信息,由于录入的学生信息中间使用“#”进行分隔,所以需要使用字符串的split()方法,进行劈分,使用劈分的信息创建学生对象,使用列表存储学生信息,最后使用循环遍历列表,调象的info()方法输出学员信息。
class Student:
def __init__(self,name,age,gender,score):
self.name=name
self.age=age
self.gender=gender
self.score=score
def info(self):
print(self.name,self.age,self.gender,self.score)
print('请输入五位学生信息:(姓名#年龄#性别#成绩')
lst=[]
for i in range(1,6):
s=input(f'请输入第{i}位学生信息及成绩')
s_lst=s.split('#')
#创建学生对象
stu=Student(s_lst[0],s_lst[1],s_lst[2],s_lst[3])
lst.append(stu)
for item in lst:
item.info()
实战三:使用面向对象思根实现乐器弹奏
需求:乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。定义乐器类Instrument,包括方法make_sound()定义乐器类的子类:二胡Erhu、钢琴Piano和小提琴Violin,定义一个函数可以弹奏各种乐器play(instrument),测试给乐手不同的乐器让他弹奏
class Instrument():
def make_sound(self):
pass
class Erhu(Instrument):
def make_sound(self):
print('二胡在弹奏')
class Piano(Instrument):
def make_sound(self):
print('钢琴在弹奏')
class Violin(Instrument):
def make_sound(self):
print('小提琴在弹奏')
def Play(obj):
obj.make_sound()
er=Erhu()
piano=Piano()
vio=Violin()
Play(er)
Play(piano)
Play(vio)
1.实战四:请使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息
出租车类:
属性包括:车型,车牌,所属出租公司;方法包括:启动,停止
家用轿车类:
属性包括:车型,车牌,车主姓名;方法包括:启动,停止
需求:
- 分析出租车和家用轿车的公共成员,提取出父类一汽车类
- 利用继承机制,实现出租车类和家用轿车类
- 最后,分别测试出租车类和家用轿车类对象的相关方法
class Car():
def __init__(self,type,no):
self.type=type
self.no=no
def Start(self):
print('我是车,我能启动。')
def Stop(self):
print('我是车,我能停止。')
class Taxi(Car):
def __init__(self,type,no,company):
super().__init__(type,no)
self.company=company
def Start(self):
print('乘客您好!')
print(f'我是{self.company}出租车公司的,我的车牌是:{self.no},您要去哪里?')
def Stop(self):
print('目的地到了,请您扫码付款,欢迎下次乘坐')
class FamilyCar(Car):
def __init__(self,type,no,name):
super().__init__(type,no)
self.name=name
def Start(self):
print(f'我是{self.name},我的轿车我做主')
def Stop(self):
print('目的地到了,我们去玩吧')
taxi=Taxi('上海大众','京B88888','长城')
taxi.Start()
taxi.Stop()
print('-'*40)
family_car=FamilyCar('广汽丰田','京A666666','武大郎')
family_car.Start()
family_car.Stop()
注:本文中的内容及实例均出自@Python_子木的视频