python开发时钟

  1. 使用python开发一个时钟,包括年月日时分秒实时走动的效果,代码看以下。
  2. from turtle import *
  3. from datetime import *
  4. def skip(step):
  5. penup()
  6. forward(step)
  7. pendown()
  8. def setup_clock(radius):
  9. reset()
  10. pensize(14)
  11. for i in range(60):
  12. skip(radius)
  13. if i%5 == 0:
  14. forward(20)
  15. skip(-radius-20)
  16. else:
  17. dot(5)
  18. skip(-radius)
  19. right(6)
  20. def make_hand(name,length):
  21. reset()
  22. skip(-0.1*length)
  23. begin_poly()
  24. forward(1.5*length)
  25. end_poly()
  26. handForm=get_poly()
  27. register_shape(name,handForm)
  28. def init():
  29. global secHand, minHand, hurHand, printer
  30. mode("logo")
  31. secHand = Turtle()
  32. make_hand("secHand", 130)
  33. secHand.shape("secHand")
  34. minHand = Turtle()
  35. make_hand("minHand", 110)
  36. minHand.shape("minHand")
  37. hurHand = Turtle()
  38. make_hand("hurHand", 90)
  39. hurHand.shape("hurHand")
  40. for hand in secHand, minHand, hurHand:
  41. hand.shapesize(1, 1, 3)
  42. hand.speed(0)
  43. printer = Turtle()
  44. printer.hideturtle()
  45. printer.penup()
  46. def week(t):
  47. week = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期七"]
  48. return week[t.weekday()]
  49. def day(t):
  50. return "%s年%d月%d日" %(t.year, t.month, t.day)
  51. def tick():
  52. t = datetime.today()
  53. second = t.second + t.microsecond * 0.000001
  54. minute = t.minute + t.second/60.0
  55. hour = t.hour + t.minute / 60.0
  56. secHand.setheading(second*6)
  57. minHand.setheading(minute*6)
  58. hurHand.setheading(hour*30)
  59. tracer(False)
  60. printer.fd(70)
  61. printer.write(week(t), align="center", font=("Courier", 17, "bold"))
  62. printer.back(130)
  63. printer.write(day(t), align="center", font=("Courier", 14, "bold"))
  64. printer.home()
  65. tracer(True)
  66. ontimer(tick, 100)
  67. def main():
  68. tracer(False)
  69. init()
  70. setup_clock(200)
  71. tracer(True)
  72. tick()
  73. done()
  74. if __name__=='__main__':
  75. main()
  76. 效果如下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值