python中类的应用
实战一:定义一个圆的类计算面积和周长
需求:
-
定义一个圆类-Circle,提供一个属性r(半径);
-
提供两个方法:计算圆的面积get area(self)和计算圆的周长get perimeter(self),通过两个方法计算圆的周长和面积并且对计算结果进行输出,最后从键盘录入半径,创建圆类的对象,并调用计算面积和周长的方法输出面积和周长
点击查看代码
class Circle:
def __init__(self,r):
self.r = r
def get_area(self):
s = 3.14 * self.r * self.r
print("圆的面积为:",s)
def get_perimeter(self):
d = 2 * 3.14 * self.r
print("圆的面积为:", d)
r = eval(input("请输入圆的半径r:"))
circle = Circle(r)
circle.get_area()
circle.get_perimeter()
---------------------------------
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("请输入圆的半径r:"))
circle = Circle(r)
print("圆的面积为:",circle.get_area())
print("圆的周长为:",circle.get_perimeter())
效果:
请输入圆的半径r:4
圆的面积为: 50.24
圆的周长为: 25.12
实战二:定义学生类录入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(f'姓名:{self.name},年龄:{self.age},性别:{self.gender},分数:{self.score}')
print("请输入5位学生的信息:(姓名#年龄#性别#分数)")
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)
# 遍历列表,调用学生对象的info方法
for i in lst:
i.info()
--------------------------------------
效果:
请输入5位学生的信息:(姓名#年龄#性别#分数)
请输入第1位学生信息:a#1#0#20
请输入第2位学生信息:b#2#1#30
请输入第3位学生信息:c#3#0#40
请输入第4位学生信息:d#4#1#50
请输入第5位学生信息:f#5#0#60
姓名:a,年龄:1,性别:0,分数:20
姓名:b,年龄:2,性别:1,分数:30
姓名:c,年龄:3,性别:0,分数:40
姓名:d,年龄:4,性别:1,分数:50
姓名:f,年龄:5,性别:0,分数:60
实战三:使用面向对象思想实现乐器弹奏
需求:乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。定义乐器类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(instrument):
instrument.make_sound()
erhu = Erhu()
piano = Piano()
violin = Violin()
play(erhu)
play(piano)
play(violin)
------------------------------------
效果:
二胡在演奏
钢琴在弹奏
小提琴在演奏
实战四:请使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息
出租车类: 属性包括:车型,车牌,所属出租公司:方法包括:启动,停止
家用轿车类: 属性包括:车型,车牌,车主姓名;方法包括:启动,停止
点击查看代码
class Car:
def __init__(self,type,numb):
self.type = type
self.numb = numb
def start(self):
print('启动')
def stop(self):
print("停止")
class Texi(Car):
def __init__(self,type,numb,company):
super().__init__(type,numb)
self.company = company
# 重写方法
def start(self):
print("乘客好")
print('我的车牌号是:',self.numb,'公司:',self.company)
def stop(self):
print("已到站")
class FamilyCar(Car):
def __init__(self,type,numb,name):
super().__init__(type,numb)
self.name = name
# 重写方法
def start(self):
print("我是:",self.name)
def stop(self):
print("已到家")
taxi=Texi('大众',"京Q93207",'hkn')
taxi.start()
taxi.stop()
print('-'*42)
fc= FamilyCar('大众',"京A88888",'kyle')
fc.start()
fc.stop()
-------------------------------------
乘客好
我的车牌号是: 京Q93207 公司: 宏远
已到站
------------------------------------------
我是: kyle
已到家

浙公网安备 33010602011771号