国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Python學習——階段綜合練習二

2019-11-14 17:16:08
字體:
來源:轉載
供稿:網友

  綜合之前的類的學習,做以下實例練習:(建議先不要看代碼,自己先試著寫;代碼僅供參考,有多種實現方法)

 

  1. Triangle  & Equilateral

    1). 創建class Triangle 表示三角形,包含三個屬性值:angle1、angle2、angle3;

        類方法 check_angles():若三個角相加 == 180,return True;若不是,return False

 1 class Triangle(object): 2     def __init__(self,angle1,angle2,angle3): 3         self.angle1 = angle1 4         self.angle2 = angle2 5         self.angle3 = angle3 6  7     def checkAngles(self): 8         if (self.angle1+self.angle2+self.angle3) == 180 : 9             return True10         else:11             return False12 13 t1 = Triangle(40,50,90)14 PRint(t1.angle1,t1.angle2,t1.angle3)15 print(t1.checkAngles())16 t2 = Triangle(40,50,91)17 print(t2.checkAngles())
Triangle

    2). 創建class Equilateral 繼承上例1的Triangle,表示等邊三角形,同Triangle不同點在于,其屬性值的三個角均為60;而對應的 check_angles() 自然始終返回True

1 class Equilateral(Triangle):2     def __init__(self,angle1=60,angle2=60,angle3=60):3         self.angle1 = angle14         self.angle2 = angle25         self.angle3 = angle36         7 t3 = Equilateral()8 print(t3.angle1,t3.angle2,t3.angle3)9 print(t3.checkAngles())
Equilateral 1

   如上示例代碼可滿足條件,但 更好的做法 是調用父類構造函數,并重寫check_angles() 使其始終返回 True,參見代碼如下

 1 class Equilateral(Triangle): 2     def __init__(self,angle1=60,angle2=60,angle3=60): 3         Triangle.__init__(self,angle1,angle2,angle3) 4      5     def checkAngles(self): 6         return True 7  8 t3 = Equilateral() 9 print(t3.angle1,t3.angle2,t3.angle3)10 print(t3.checkAngles())
Equilateral 2

 

  2.  Car & ElectricCar

    1). 創建class Car 成員變量condition = "new",包含三個構造屬性:model,color,mpg;

        類方法 displayCar() print 拼接的字符串 This is a {color} {model} car with {mpg} MPG.  如 "This is a blue Xmodel car with 40 MPG."
        類方法 driveCar() 改變成員變量condition = "used"

 1 class Car(object): 2     condition = "new" 3     def __init__(self,model,color,mpg): 4         self.model = model 5         self.color = color 6         self.mpg = mpg 7      8     def displayCar(self): 9         print ("This is a {s.color} {s.model} car with {s.mpg} MPG.".format(s=self))10         11     def driveCar(self):12         self.condition = "used"13 14 car1 = Car("DeLorean", "silver", 88)15 car1.displayCar()16 print(Car.condition)17 print(car1.condition)18 car1.driveCar()19 print(car1.condition)
Car

     2). 創建class ElectricCar 繼承 Car,新增一屬性變量 battery_type;重寫driveCar()函數,改變 condition = "like new"

 1 class ElectricCar(Car): 2     def __init__(self,model,color,mpg,battery_type): 3         Car.__init__(self,model,color,mpg) 4         self.battery_type = battery_type 5      6     def driveCar(self): 7         self.condition = "like new" 8  9 car2  = ElectricCar("dd","Red",88,"molten salt")10 print(car2.battery_type,car2.condition)11 car2.displayCar()                # 繼承Car方法12 car2.driveCar()                # 調用重寫后的方法13 print(car2.condition)
ElectricCar

 

  3. Point3D

    創建class Point3D,表示三維坐標上的一個點,包含三個屬性變量:x,y,z
      類 __repr__ 方法顯示為 (x,y,z)
      類方法 distance() 返回改點距原點(0,0,0) 的距離

Python 類方法 __repr__  重寫 print class_name 時的顯示,參考代碼即可理解

 1 import math 2 class Point3D(object): 3     def __init__(self,x,y,z): 4         self.x = x 5         self.y = y 6         self.z = z 7     def  __repr__(self): 8         return ("({s.x},{s.y},{s.z})".format(s=self)) 9 10     def distance(self):11         d = math.sqrt(self.x**2+self.y**2+self.z**2)12         return d13         14 point1 = Point3D(3,4,0)15 print(point1)16 print(point1.distance())
Point3D

 

  4. Employee & PartTimeEmployee

    1). 創建class Employee,包含成員變量hour_wage =20,構造函數包含屬性變量:name;
        類方法 calculateWage() 計算當天工錢,傳參hours,return hours*hour_wage

 1 class Employee(object): 2     hour_wage = 20 3     def __init__(self,name): 4         self.name = name 5          6     def calculateWage(self,hours): 7         return self.hour_wage*hours 8  9 Peter = Employee("Peter")10 print(Peter.calculateWage(5))
Employee

    2). 創建class PartTimeEmployee 繼承 Employee,成員變量hour_wage=18, parttime_wage=15 構造函數同Employee
        類方法calculateWage()重寫,若是hour>=8,則 return hour_wage*hours;若是hour<8,return parttime_wage*hours

 1 class PartTimeEmployee(Employee): 2     hour_wage=18 3     parttime_wage=15 4      5     def calculateWage(self,hours): 6         if hours>=8: 7             return self.hour_wage*hours 8         else: 9             return self.parttime_wage*hours10 11 May = PartTimeEmployee("May")12 print(May.calculateWage(5))13 print(May.calculateWage(8))
PartTimeEmployee

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙里县| 星座| 吉安市| 万载县| 昭通市| 宕昌县| 墨玉县| 密云县| 伽师县| 右玉县| 东莞市| 岚皋县| 自治县| 昭觉县| 合水县| 宁南县| 阳谷县| 大庆市| 杭锦旗| 莎车县| 南京市| 太原市| 布拖县| 环江| 合川市| 乐山市| 英吉沙县| 德昌县| 普安县| 噶尔县| 根河市| 务川| 台湾省| 巴彦淖尔市| 新巴尔虎左旗| 光泽县| 科尔| 宁化县| 宣汉县| 大丰市| 新安县|