python定义一个类描述数字时钟_第8天习题 python

'''

练习

练习1:定义一个类描述数字时钟。

参考答案:

'''

from time import sleep

class Clock(object) :

def __init__(self,hour=0,minute=0,second=0):

self._second=second

self._minute=minute

self._hour=hour

def run(self):

self._second += 1

if self._second == 60 :

self._second = 0

self._minute +=1

if self._minute == 60 :

self._minute = 0

self._hour +=1

if self._hour == 24:

self._hour = 0

def show(self):

return '%02d.%02d.%02d'%(self._hour,self._minute,self._second)

def main():

clock = Clock(23, 59, 58)

while True :

print(clock.show())

sleep(1)

clock.run()

if __name__ == '__main__':

main()

return 和 print 区别 加入是 print 会输出但是返回值为None

练习2:定义一个类描述平面上的点并提供移动点和计算到另一个点距离的方法。

参考答案:

from math import sqrt

class Point(object):

def __init__(self, x=0, y=0):#初始化所有值后面会解释_init_

"""初始化方法

:param x: 横坐标

:param y: 纵坐标

"""

self.x = x #属性定值

self.y = y

def move_to(self, x, y):

"""移动到指定位置

:param x: 新的横坐标

"param y: 新的纵坐标

"""

self.x = x

self.y = y

def move_by(self, dx, dy):

"""移动指定的增量

:param dx: 横坐标的增量

"param dy: 纵坐标的增量

"""

self.x += dx

self.y += dy

def distance_to(self, other):

"""计算与另一个点的距离

:param other: 另一个点

"""

dx = self.x - other.x#自动调用_init_ other.x = x

dy = self.y - other.y

return sqrt(dx ** 2 + dy ** 2)

def __str__(self):#返回对象一个值与Point对应 可看str的值

return '(%s, %s)' % (str(self.x), str(self.y))

def main():

p1 = Point(3, 5)

p2 = Point()

print(p1)

print(p2)

p2.move_by(-1, 2)#两种方法一种直接移动到改点,一种是经过横纵坐标加减

print(p2)

print(p1.distance_to(p2)) #p1.x p2.x

if __name__ == '__main__':

main()

引用知乎的

'''

作者:匿名用户

链接:https://www.zhihu.com/question/46973549/answer/103805810

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

定义类的时候,若是添加__init__方法,那么在创建类的实例的时候,实例会自动调用这个方法,一般用来对实例的属性进行初使化。比如:

class testClass:

def __init__(self, name, gender): //定义 __init__方法,这里有三个参数,这个self指的是一会创建类的实例的时候这个被创建的实例本身(例中的testman),你也可以写成其他的东西,比如写成me也是可以的,这样的话下面的self.Name就要写成me.Name。

self.Name=name //通常会写成self.name=name,这里为了区分前后两个是不同的东东,把前面那个大写了,等号左边的那个Name(或name)是实例的属性,后面那个是方法__init__的参数,两个是不同的)

self.Gender=gender //通常会写成self.gender=gender

print('hello') //这个print('hello')是为了说明在创建类的实例的时候,__init__方法就立马被调用了。

testman = testClass('neo,'male') //这里创建了类testClass的一个实例 testman, 类中有__init__这个方法,在创建类的实例的时候,就必须要有和方法__init__匹配的参数了,由于self指的就是创建的实例本身,self是不用传入的,所以这里传入两个参数。这条语句一出来,实例testman的两个属性Name,Gender就被赋值初使化了,其中Name是 neo,Gender 是male。

看图的运行结果。我也刚学,大学接触过编程,献丑了,就匿名了。

'''

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值