Python学习 —— 阶段综合练习二

  综合之前的类的学习,做以下实例练习:(建议先不要看代码,自己先试着写;代码仅供参考,有多种实现方法)

  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 True
10         else:
11             return False
12
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 = angle1
4         self.angle2 = angle2
5         self.angle3 = angle3
6
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 d
13
14 point1 = Point3D(3,4,0)
15 print(point1)
16 print(point1.distance())

Point3D

时间: 2024-12-15 19:08:47

Python学习 —— 阶段综合练习二的相关文章

Python学习入门笔记(二):Python运算符

1.算术运算符 "+"加法:3+2=5 "-"减法:3-2=1 "*"乘法:3*2=6 "/"实数除法:3/2=1,3.0/2=1.5 "//"整数除法:5.6//2=2.0 "%"求余数:17%6=5 "**"求幂运算:2**3=8 2.赋值运算符 "="等于:x=3 "+="加等于:x+=2 "-="减等

Python 学习之路(二)

Python 学习之路(二) 以下所用的是Python 3.6 一.条件语句 简单判断 1 if 判断条件: 2 执行语句-- 3 else: 4 执行语句-- 复杂判断 1 if 判断条件1: 2 执行语句1-- 3 elif 判断条件2: 4 执行语句2-- 5 elif 判断条件3: 6 执行语句3-- 7 else: 8 执行语句4-- 二.循环语句 2.1 while语句 和其他语言一样,不同的是多了else语句.在 python 中,while - else 在循环条件为 false

python学习之路(二)

继续上次的学习 (一)首先接触的是变量,先定义一个变量,在python中不需要像C语言中先声明变量,而是可以直接赋值. name="xiaoming" 这里需要注意一点,给变量赋值一定要加双引号,如果不加,就是name等于另一个变量xiaoming. name=xiaoming #这不是赋值 而且,在命名变量的时候也要注意以下三点: 1.变量名只能是 字母.数字或下划线的任意组合 2.变量名的第一个字符不能是数字 3.还有以下关键字不能声明为变量名['and', 'as', 'asse

Python学习笔记(十二)

一.报错处理 Python中可以通过: try: 相关语句块 except 错误类型 as e: print("except:",e) finally: print("finally") 来进行错误的侦测和处理 二.Python中错误的继承 Python中的错误也是class Python中所有的错误类型都继承自BaseException 如果Python中的错误没有被捕获,则其会一层一层的向上抛出,直至被编译器所捕获 三.记录错误 Python中可以通过loggi

python学习笔记系列----(二)控制流

实际开始看这一章节的时候,觉得都不想看了,因为每种语言都会有控制流,感觉好像我不看就会了似的.快速预览的时候,发现了原来还包含了对函数定义的一些描述,重点讲了3种函数形参的定义方法,章节的最后讲述了PEP8的一些重要的规范,在学习的过程中还是学到了些知识. 2.1  if 语句 if语句就不多说了,经常跟else if .. 和 else ..一起使用,如下所示: >>> x = int(raw_input("Please enter an integer: "))

Python学习之旅(二十二)

Python基础知识(21):IO编程 一.文件读写 读写文件就是请求操作系统打开一个文件对象(文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件) 1.读文件 "r"默认读取文本文件,"rb"读取二进制文件,如图片.视频等 >>> f=open("D:\Python\doit\hello.txt","r") >>> f.read

python学习笔记字符串(二)

字符串类型(string) 字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"123"等等. 请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符.如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符. 1.创建字符串 b =   'asdasd' 2.字符串操作 a.重复输出字符串 pri

Python学习笔记第二十二周(前端知识点补充)

目录: 一.伪类 二.样式 1.字体 2.背景图片 3.margin和padding 内容: 一.伪类 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> a:link{ background-color:red; } a:hover{ backgrou

Python学习之文件操作(二)

CSV文件处理 在Python中处理CSV文件可以使用模块csv.有关csv模块的官方资料看这里. 1 读取csv文件 csv.reader(csvfile, dialect='excel', **fmtparams) 使用reader()函数来读取csv文件,返回一个reader对象.reader对象可以使用迭代获取其中的每一行. >>> import csv >>> with open('userlist.csv','rt') as csv_file: csv_co