#!/usr/bin/env python3# -*- coding: cp1252 -*-""" turtle-example-suite:tdemo_clock.pyEnhanced clock-program, showing dateand time------------------------------------Press STOP to exit the program!------------------------------------"""from turtle import *from datetime import datetimedef jump(distanz, winkel=0):penup()right(winkel)forward(distanz)left(winkel)pendown()def hand(laenge, spitze):fd(laenge*1.15)rt(90)fd(spitze/2.0)lt(120)fd(spitze)lt(120)fd(spitze)lt(120)fd(spitze/2.0)def make_hand_shape(name, laenge, spitze):reset()jump(-laenge*0.15)begin_poly()hand(laenge, spitze)end_poly()hand_form = get_poly()register_shape(name, hand_form)def clockface(radius):reset()pensize(7)for i in range(60):jump(radius)if i % 5 == 0:fd(25)jump(-radius-25)else:dot(3)jump(-radius)rt(6)def setup():global second_hand, minute_hand, hour_hand, writermode("logo")make_hand_shape("second_hand", 125, 25)make_hand_shape("minute_hand", 130, 25)make_hand_shape("hour_hand", 90, 25)clockface(160)second_hand = Turtle()second_hand.shape("second_hand")second_hand.color("gray20", "gray80")minute_hand = Turtle()minute_hand.shape("minute_hand")minute_hand.color("blue1", "red1")hour_hand = Turtle()hour_hand.shape("hour_hand")hour_hand.color("blue3", "red3")for hand in second_hand, minute_hand, hour_hand:hand.resizemode("user")hand.shapesize(1, 1, 3)hand.speed(0)ht()writer = Turtle()#writer.mode("logo")writer.ht()writer.pu()writer.bk(85)def wochentag(t):wochentag = ["Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday", "Sunday"]return wochentag[t.weekday()]def datum(z):monat = ["Jan.", "Feb.", "Mar.", "Apr.", "May", "June","July", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."]j = z.yearm = monat[z.month - 1]t = z.dayreturn "%s %d %d" % (m, t, j)def tick():t = datetime.today()sekunde = t.second + t.microsecond*0.000001minute = t.minute + sekunde/60.0stunde = t.hour + minute/60.0try:tracer(False) # Terminator can occur herewriter.clear()writer.home()writer.forward(65)writer.write(wochentag(t),align="center", font=("Courier", 14, "bold"))writer.back(150)writer.write(datum(t),align="center", font=("Courier", 14, "bold"))writer.forward(85)tracer(True)second_hand.setheading(6*sekunde) # or hereminute_hand.setheading(6*minute)hour_hand.setheading(30*stunde)tracer(True)ontimer(tick, 100)except Terminator:pass # turtledemo user pressed STOPdef main():tracer(False)setup()tracer(True)tick()return "EVENTLOOP"if __name__ == "__main__":mode("logo")msg = main()print(msg)mainloop()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。