Python指针时钟

本文介绍了如何使用Python创建一个指针时钟,包括在方法中增加if判断、调用对象属性、计算时针和分针的角度。时针角度不仅与小时数相关,还与分钟数有关,因此通过复杂的运算来确定时针的实际位置。文章提供了完整的代码示例,展示了时钟运行的效果。
摘要由CSDN通过智能技术生成
class Hand(t.Turtle):
    def __init__(self,length):
        super().__init__()
        self.shape('arrow')
        self.shapesize(0.5,length)
        self.tick()

    def tick(self):
        time0=datetime.datetime.today()
        s=time0.second
        angle=90-s*6
        self.seth(angle)
        t.ontimer(self.tick,1000)

这是小编创造的指针类,目前实例化后是秒针,小编还要继续编程。

在方法中增加if判断

    def tick(self):
        time0=datetime.datetime.today()
        s=time0.second
        if self.length==30:
            angle=90-6*s
        elif self.length==22:
            angle=分针角度
        else:
            angle=时针角度
        self.seth(angle)
        t.ontimer(self.tick,1000)

在tick方法中,对length进行判断,再对不同类型的指针设置不同的旋转角度就可以了。

 length这个参数是从初始化方法中赋值的,在tick方法中并没有length这个属性。

 

  增加初始化属性呀!就是这么简单!

class Hand(t.Turtle):
    def __init__(self,length=15):
        super().__init__(self)
        self.shape('arrow')
        self.shapesize(0.5,length)
        self.length=length      ←就是他
        self.tick()

在初始化方法中,新增一个属性,保存length的参数,这样才能在tick的方法中使用这个属性。

在方法中调用属性

对应的,在tick方法中,在length前加上self,就表示这是在调用对象自己的属性

 分针角度和时针角度计算一下

时针与分针的运动

获取时间

    def tick(self):
        time0=datetime.datetime.today()
        s=time0.second
        m=time0.minute
        h=time0.hour-12

因为时24小时制的,但表盘只有12个刻度,所有要减去12。现在既然秒可以从时间获取,那时和分当然也可以了。

设置分钟角度

和秒钟相似,分钟每转一圈60分钟,所有每分钟运转的角度也是6度。所有我们也可以像秒针一样,通过分钟数计算得到分针角度:90 - 分钟数 *(乘) 6

分针角度算式

def tick(self):
        time0=datetime.datetime.today()
        s=time0.second
        m=time0.minute
        h=time0.hour - 12
        if self.length==30:
            angle=90-6*s
        elif self.length==22:
            angle=90-6*m
        else:
            angle=时针角度

<

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值