码迷,mamicode.com
首页 > 编程语言 > 详细

python 类 练习

时间:2016-08-22 18:16:15      阅读:781      评论:0      收藏:0      [点我收藏+]

标签:

#encoding=utf-8
from __future__ import division
import time
# 13-5. 几何. 创建一个由有序数值对(x, y) 组成的 Point 类,它代表某个点的 X 坐标和 Y 坐
# 标。X 坐标和 Y 坐标在实例化时被传递给构造器,如果没有给出它们的值,则默认为坐标的原点。
class Point(object):
def __init__(self,x = 0,y = 0):
self.PointX = x
self.PointY = y
print ‘(%d,%d)‘%(self.PointX,self.PointY)
p1 = Point()
p2 = Point(2,3)


# 13-6. 几何. 创建一个直线/直线段类。 除主要的数据属性: 一对坐标值(参见上一个练习)外,
# 它还具有长度和斜线属性。你需要覆盖__repr__()方法(如果需要的话,还有__str__()方法),使得
# 代表那条直线(或直线段)的字符串表示形式是由一对元组构成的元组,即,((x1, y1), (x2, y2)).
# 总结:
# __repr__ 将直线的两个端点(始点和止点)显示成一对元组
# length 返回直线段的长度 - 不要使用"len", 因为这样使人误解它是整数。
# slope 返回此直线段的斜率(或在适当的时候返回 None)


#额外
# Python求平方根至少有三种方式
# 1.最简单的方式是求0.5次方
# 1
# 4 ** 0.5
# 2.使用math包的sqrt函数
# 1
# math.sqrt(4)
# 3.使用numpy包的sqrt函数
# 1
# numpy.sqrt(4)
#

#round(a,2)可以把a保留二位小数
class line(object):
def __init__(self,p1 = Point(2,3),p2 = Point(1,2)):
self.point1 = p1
self.point2 = p2
def __repr__(self):
print ‘line is‘
print ‘((%d,%d),(%d,%d))‘%(self.point1.PointX,self.point1.PointY, \
self.point2.PointX,self.point2.PointY)
def length(self):
x = self.point1.PointX - self.point2.PointX
y = self.point1.PointY - self.point2.PointY
tem1 = x*x + y*y
tem2 = tem1 ** 0.5
print ‘line length is :%.2f ‘ % round(tem2,2)
def slope(self):
x = self.point1.PointX - self.point2.PointX
y = self.point1.PointY - self.point2.PointY
print ‘line slope is %.2f‘ % (x/y)
l1 = line()
l1.__repr__()
l1.length()
l1.slope()

l2 = line(Point(1,5),Point(3,4))
l2.slope()

# 13-7. 数据类。提供一个 time 模块的接口,允许用户按照自己给定时间的格式,比如:
# “MM/DD/YY,” “MM/DD/YYYY,” “DD/MM/YY,” “DD/MM/ YYYY,” “Mon DD, YYYY,” 或是标准
# 的 Unix 日期格式:“Day Mon DD, HH:MM:SS YYYY” 来查看日期。你的类应该维护一个日期值,并
# 用给定的时间创建一个实例。如果没有给出时间值,程序执行时会默认采用当前的系统时间。还包
# 括另外一些方法:
# update() 按给定时间或是默认的当前系统时间修改数据值
# display() 以代表时间格式的字符串做参数,并按照给定时间的格式显示:
# ‘MDY‘ ==> MM/DD/YY
# ‘MDYY‘ ==> MM/DD/YYYY
# ‘DMY‘ ==> DD/MM/YY
# ‘DMYY‘ ==> DD/MM/YYYY
# ‘MODYY‘ ==> Mon DD, YYYY
# 如果没有提供任何时间格式,默认使用系统时间或 ctime()的格式。 附加题: 把这个类和练习
# 6-15 结合起来
print time.ctime()

class myTime(object):
def update(self):
pass
def display(self,t):
if t == ‘MDY‘:
print time.strftime("%m/%Y/%d",time.localtime())
if t == ‘DMYY‘:
print time.strftime("%H/%M/%S",time.localtime())

time1 = myTime()
time1.display(‘MDY‘)
time1.display(‘DMYY‘)

python 类 练习

标签:

原文地址:http://www.cnblogs.com/lovely7/p/5796289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!