#!/usr/bin/pytnon3
# test01:创建学生类
class student:
def __init__(self,name,age,gender,phone,address,email):
self.name=name
self.age=age
self.gender=gender
self.phone=phone
self.address=address
self.emai=email
def eat(self):
print(self.name,'can eating')
def drink(self):
print(self.name,'can drink')
def paly(self):
print(self.name,'can play')
def sleep(self):
print(self.name,'can sleep')
info='student'
@classmethod # 类方法
def stclass(cls):
print(cls.info)
@staticmethod
def staF(input):
print('静态方法都可以调用,输入值是%s',input)
# property()函数使用
def setvalue(self,value):
self.value=value
def getvalue(self):
return self.value
def delvalue(self):
del self.value
value=property(setvalue,getvalue,delvalue,'学生的属性值')
@property
def study(self):
return self.study
@study.setter
def study(self,value):
self.value=value
# test02:在test01的基础上,创建列表,用来储存学生,可以在列表中增改删查学生
class studentList:
def __init__(self):
self.stdL=[]
def quaryName(self,name):
if [x for x in self.stdL if x.name==name]:
return [x for x in self.stdL if x.name==name]
else:
return '友好提示不存在'
def quaryEmail(self,email):
if [x for x in self.stdL if x.email==email]:
return [x for x in self.stdL if x.email == email]
else:
return '友好提示不存在'
def quaryAddress(self,address):
if [x for x in self.stdL if x.address==address]:
return [x for x in self.stdL if x.address==address]
else:
return '友好提示不存在'
def addStudent(self,student):
return self.stdL.append(student)
def delStudnet(self,student):
while student in self.stdL:
self.stdL.remove(student)
s1=studentList()
print(s1)
s1.stdL=[student('andy', 23, 'male', 1234567, '上海', 'andyl@163.com'),\
student('jack', 25, 'male', 12345678, '北京', 'jack@live.com'),\
student('alex', 27, 'male', 123456789, '南京', 'alex@google.com')]
print(s1.stdL)
print(s1.quaryName('andy'))
print(s1.quaryAddress('andy'))
# test03:二维坐标系点类,提供两点距离方法和判断三点构成的三角形的形状
import math
class point:
def __init__(self,x,y):
self.x=x
self.y=y
@classmethod
def distance(cls,point1,point2):
return math.sqrt((point1.x-point2.x)**2+(point1.y-point2.y)**2)
@staticmethod
def iftriangle(point1,point2,point3):
if point.distance(point1,point2)+point.distance(point1,point3) > point.distance(point2,point3)\
and point.distance(point1,point2)+point.distance(point2,point3) > point.distance(point1,point3) \
and point.distance(point1,point3)+point.distance(point2,point3) > point.distance(point1,point2):
return True
else:
return False
@classmethod
def whatShape(cls,point1,point2,point3):
if point.iftriangle(point1, point2, point3):
orderlist=sorted([point.distance(point1,point2),point.distance(point1,point3),point.distance(point2,point3)])
print('orderlist',orderlist)
if orderlist[0]**2 + orderlist[1]**2 == orderlist[2]**2:
return '三角形是直角三角形'
elif orderlist[0]**2 + orderlist[1]**2 < orderlist[2]**2:
return '三角形是钝角三角形'
elif orderlist[0]**2 + orderlist[1]**2 > orderlist[2]**2:
return '三角形是锐角三角形'
p1=point(0,0)
p2=point(1,1)
p3=point(2,0)
print(point.distance(p1,p2))
print(point.iftriangle(p1,p2,p3))
print(point.whatShape(p1,p2,p3))
# test05:交通工具、汽车、火车、飞机这些类,有继承关系
class vehicle:
def __init__(self,type):
self.type=type
def move(self):
print('交通工具可以移动')
class car(vehicle):
pass
class airplane(vehicle):
def __init__(self,type,color):
super().__init__(type)
self.color=color
def move(self):
print('飞机飞')
class train(vehicle):
def __init__(self,type,color):
super().__init__(type)
self.color=color
def move(self):
print('火车在铁轨上移动')
def type1(self):
print(self.type)
# c1=car('汽车')
a1=airplane(111,222)
a1.move()
t1=train('火车','白色')
t1.move()
t1.type1()