1
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. email = email
def eat ( self, food) :
''' 吃 '''
print ( '%s正在吃%s' % ( self. name, food) )
def drink ( self, drink) :
''' 喝 '''
print ( '%s正在喝%s' % ( self. name, drink) )
def play ( self, sport, other) :
''' 玩 '''
print ( '我今年%s岁,正和%s玩%s' % ( self. age, other, sport) )
def sleep ( self) :
''' 睡 '''
print ( '%s正在%s睡觉' % ( self. name, self. address) )
def __repr__ ( self) :
return 'Student(name=%s, age=%d, phone=%s, address=%s, email=%s)' % ( self. name, self. age, self. phone, self. address, self. email)
if __name__ == '__main__' :
stu = Student( '孙悟空' , 500 , 'MALE' , '02028309358' ,
'灵台方寸山' , 'sun@crazyit.org' )
stu. eat( '桃子' )
stu. drink( '美酒' )
stu. play( '棍子' , '牛魔王' )
stu. sleep( )
2
from student import Student
contacts = [ Student( '孙悟空' , 500 , 'MALE' , '02028309358' ,
'灵台方寸山' , 'sun@crazyit.org' ) ,
Student( '牛魔王' , 650 , 'MALE' , '02028309378' ,
'积雷山摩云洞' , 'niu@crazyit.org' ) ,
Student( '白骨精' , 23 , 'MALE' , '13699881122' ,
'白骨岭' , 'bai@crazyit.org' ) ,
Student( '猪八戒' , 500 , 'MALE' , '13588889999' ,
'福临山山云栈洞' , 'zhu@crazyit.org' ) ]
def find_by_name ( name) :
return [ x for x in contacts if name in x. name]
def find_by_email ( email) :
return [ x for x in contacts if email in x. email]
def find_by_address ( address) :
return [ x for x in contacts if address in x. address]
if __name__ == '__main__' :
t = input ( '请输入查找的方式, 名字(n), Email(e), 地址(a): ' )
k = input ( '请输入查找的关键字: ' )
if t == 'n' :
print ( find_by_name( k) )
elif t == 'e' :
print ( find_by_email( k) )
elif t == 'a' :
print ( find_by_address( k) )
else :
print ( '输入有误!' )
3
class Point :
''' 描述点的类'''
def __init__ ( self, x, y) :
''' 构造器 '''
self. x = x
self. y = y
def distance ( self, other) :
''' 计算两点之间距离 '''
return ( ( self. x - other. x) ** 2 + ( self. y - other. y) ** 2 ) ** 0.5
def judge_triangle ( self, p1, p2) :
''' 判断3个点组成的三角形 '''
self_p1 = self. distance( p1)
self_p2 = self. distance( p2)
p1_p2 = p1. distance( p2)
if self_p1 > self_p2 and self_p1 > p1_p2:
if self_p1 > ( self_p2 + p1_p2) :
print ( '不是三角形' )
else :
print ( "钝角三角形" ) if self_p1 ** 2 > ( self_p2 ** 2 + p1_p2 ** 2 ) \
else print ( "锐角三角形" ) if self_p1 ** 2 < ( self_p2 ** 2 + p1_p2 ** 2 ) \
else print ( "直角三角形" )
if self_p2 > self_p1 and self_p2 > p1_p2:
if self_p2 > ( self_p1 + p1_p2) :
print ( '不是三角形' )
else :
print ( "钝角三角形" ) if self_p2 ** 2 > ( self_p1 ** 2 + p1_p2 ** 2 ) \
else print ( "锐角三角形" ) if self_p2 ** 2 < ( self_p1 ** 2 + p1_p2 ** 2 ) \
else print ( "直角三角形" )
if p1_p2 > self_p1 and p1_p2 > self_p2:
if p1_p2 > ( self_p1 + self_p2) :
print ( '不是三角形' )
else :
print ( "钝角三角形" ) if p1_p2 ** 2 > ( self_p1 ** 2 + self_p2 ** 2 ) \
else print ( "锐角三角形" ) if p1_p2 ** 2 < ( self_p1 ** 2 + self_p2 ** 2 ) \
else print ( "直角三角形" )
def __repr__ ( self) :
return 'Point(x=%s, y=%s)' % ( self. x, self. y)
if __name__ == '__main__' :
pt = Point( 1 , 1 )
print ( pt. distance( Point( 2 , 3 ) ) )
pt. judge_triangle( Point( 4 , 1 ) , Point( 5 , 5 ) )
4
import math
class Points :
''' 描述点的类 '''
def __init__ ( self, x, y, z) :
''' 构造器 '''
self. x= x
self. y= y
self. z= z
def __sub__ ( self, no) :
''' 为减法提供支持的方法 '''
return Points( ( self. x- no. x) , ( self. y- no. y) , ( self. z- no. z) )
def dot ( self, no) :
''' 点积 '''
return ( self. x* no. x) + ( self. y* no. y) + ( self. z* no. z)
def cross ( self, no) :
''' 叉积 '''
return Points( ( self. y* no. z- self. z* no. y) , ( self. z* no. x- self. x* no. z) , ( self. x* no. y- self. y* no. x) )
def absolute ( self) :
return pow ( ( self. x ** 2 + self. y ** 2 + self. z ** 2 ) , 0.5 )
if __name__ == '__main__' :
points = list ( )
print ( '请依次输入4个点的x y z(中间以空格隔开)' )
for i in range ( 4 ) :
a = list ( map ( float , input ( ) . split( ) ) )
points. append( a)
a, b, c, d = Points( * points[ 0 ] ) , Points( * points[ 1 ] ) , Points( * points[ 2 ] ) , Points( * points[ 3 ] )
X = ( b - a) . cross( c - b)
Y = ( c - b) . cross( d - c)
angle = math. acos( X. dot( Y) / ( X. absolute( ) * Y. absolute( ) ) )
print ( "%.2f" % math. degrees( angle) )
5
class Transport :
def move ( self, distance) :
print ( '我移动了%s千米' % distance)
class Car ( Transport) :
def __init__ ( self, name) :
self. name = name
def move ( self, distance) :
print ( '%s我在马路上开了%s千米' % ( self. name, distance) )
class Train ( Transport) :
def __init__ ( self, speed) :
self. speed = speed
def move ( self, distance) :
print ( '我以速度%s在铁轨上走了%s千米' % ( self. speed, distance) )
class Plain ( Transport) :
def fly ( self, distance) :
print ( '我在天空飞了%s千米' % distance)
if __name__ == '__main__' :
c = Car( 'BMW' )
c. move( 30.2 )
t = Train( 300 )
t. move( 230.5 )
p = Plain( )
p. move( 3440.8 )
p. fly( 3440.8 )