1.假如有一辆汽车,速度是60km/h,从A行驶到B地(距离100km),计算耗费的时间,分别以面向过程、面向对象两种不同的编程思想设计程序
(1)面向过程:以事件为中心的编程思想,分析和解决问题的步骤,然后使用函数或者语句块把这些一步一步实现,使用的时候一个一个依次调用,使用面向过程思想编写的代码,相对条理更清晰,更易读。
#面向过程
speed=60
distance=100
time=distance/speed
print(time)
(2)面向对象:强调的是将问题对象化,因为问题的解决都是由对象参与,而且这种编程思想更贴近现实,使用面向对象思想编写的代码,将数据和功能都封装在对象中。
#面向对象
class Car:
speed=0
def driver(self,distance):
time=distance/self.speed
print(time)
car=Car()
car.speed=60
car.driver(100)
2.再假设换一辆汽车,速度是100km/h,从A行驶到C地(距离350km),计算耗费的时间,考虑在原有的代码基础上应该如何调整
用到继承
#改进:
class Driver:
def kaiche(self,speed,distance):
self.time=distance/speed#行驶时间=路程/速度
print('从A到B行驶的时间为:%.f'%self.time)
class Car(Driver):#继承Driver
def oilsum(self,oil,distance):
self.oiltotal=distance*oil#耗油量=路程*平均油量
print('从A到B行驶过程中的耗油量为:%.f'%self.oiltotal)
a=Car()
a.kaiche(60,100)
a.oilsum(0.1,100)
3.从A地出发去B地(距离100km/h),使用汽车、自行车、电车行驶过去。
汽车的速度60km/h,自行车的速度20km/h,电车速度65km/h,分别计算耗时。
(1)针对汽车,这次再增加一个属性-耗油,每公里0.1升的耗油量,输出到达目的地时汽车总耗油量。
(2)自行车消耗人的能量,每公里消耗0.01J人的能量,输出总共消耗的人的能量。
(3)电车消耗电量,每公里消耗0.5度电,输出消耗的电量。
class Driver:
def driver(self,speed,distance):
self.time=distance/speed
print('从A到B行驶的时间为:%.f'%self.time)
class Car(Driver):#汽车
def oilnum1(self,oil,distance):
self.oiltotal=distance*oil#耗油量=路程*平均油量
print('从A到B行驶过程中汽车的耗油量为:%.f'%self.oiltotal)
class Bicycle(Driver):#自行车
def oilnum2(self,oil,distance):
self.oiltotal=distance*oil#耗油量=路程*平均油量
print('从A到B行驶过程中自行车的耗油量为:%.f'%self.oiltotal)
class Tram(Driver):#电车
def oilnum3(self,oil,distance):
self.oiltotal=distance*oil#耗油量=路程*平均电量
print('从A到B行驶过程电车中的耗电量为:%.f'%self.oiltotal)
a=Car()
a.driver(60,100)
a.oilnum1(0.1,100)
b=Bicycle()
b.driver(20,100)
b.oilnum2(0.01,100)
c=Tram()
c.driver(65,100)
c.oilnum3(0.5,100)