什么都不说先上图吧,Python 初学者实现屏保计时器

原理:利用 Python turtle 库实现快速画图,每隔一秒钟擦除屏幕,然后获得电脑实时时间,再次画图,呈现动态时间。

关于数字如果画,可以把数字理解为一个晶体管状的 8(7segments),不同数字都是其演变而来,只不过对不同数字实现抬笔,落笔动作,可以对不同

import turtle, time
def drawGap():
    turtle.penup()
    turtle.fd()
def drawLine(draw):
    drawGap()
    turtle.pendown() if draw else turtle.penup()
    turtle.fd()
    drawGap()
    turtle.right()
def drawDigit(d):
    drawLine(True) ,,,,,,] else drawLine(False)  #g
    drawLine(True) ,, , , , ,, , ] else drawLine(False) #c
    drawLine(True) , , , , , , ] else drawLine(False) #d
    drawLine(True) ,,,] else drawLine(False) #e
    turtle.left() #经历一次右转后,调整左转,方向竖直向上
    drawLine(True) ,,,,,] else drawLine(False)
    drawLine(True) ,,,,,,,] else drawLine(False)
    drawLine(True) ,,,,,,,] else drawLine(False)
    turtle.left()
    turtle.penup()
    turtle.fd()
def drawDate(date):
    turtle.pencolor('red')
    for i in date:
        if i == '-':
            turtle.write(,'normal'))
            turtle.pencolor('green')
            turtle.fd()
        elif i == '=':
            turtle.write(, 'normal'))
            turtle.pencolor('blue')
            turtle.fd()
        elif i == '+':
            turtle.write(, 'normal'))
            turtle.pencolor('yellow')
        else:
            drawDigit(eval(i))
def init():
    turtle.setup(,,,) #设置画布大小   为屏幕位置
    turtle.speed()
    turtle.penup()
    turtle.,)
    turtle.fd(-)
    turtle.pensize()
def main():
    while True:
        turtle.clear()
        init()
        time_string = time.strftime("%H-%M=%S+", time.localtime())
        turtle.getscreen().tracer(,)
        drawDate(time_string) #格式化时间 -=+ 控制输入年日月
        time.sleep()
        turtle.hideturtle()

main()

最后可以利用 pyinstaller 库实现 Python 程序 exe 软件化。

:\>pip install pyinstaller
:\>pyinstaller D:\codes\dpython.py
:\>pyinstaller -F dpython.py  //可以通过-F 参数对 Python 源文件生成一个独立的可执行文件

作者:rottengeek

原文链接:http://t.cn/RD2bP69

python实现屏保计时器的更多相关文章

  1. python写的屏保程序

    __author__ = 'ChenYan' from random import randint from tkinter import * class Randball(): def __init ...

  2. 一个仿windows泡泡屏保的实现

    一个仿windows泡泡屏保的实现 有天看到有人在百度知道上问windows 泡泡屏保该怎么用C#做,一时有趣,就做了一个出来,对于其中几个要点总结如下: 一,屏保程序的制作要求 屏保程序的扩展名是. ...

  3. Winform中实现自定义屏保效果(附代码下载)

    场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建form ...

  4. C#制作简易屏保

    前言:前段时间,有个网友问我C#制作屏保的问题,我瞬间懵逼了(C#还可以制作屏保!).于是我去查阅相关资料,下面把C#如何制作屏保的过程及我学习过程的心得也记录下来,希望对需要的人能有帮助. 基本思路 ...

  5. 仿W8屏保

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. Linux关闭休眠和屏保模式

    本人因为特殊需求,想让某台Linux主机始终显示某个程序,显示器不能关机或者休眠或进入屏保模式. 环境:Ubuntu 11.10 最小化模式安装并安装有轻量级桌面openbox(非gnome).因为X ...

  7. [AIR] AS3.0设置屏保功能

    package com.controls { import flash.desktop.NativeApplication; import flash.events.Event; import fla ...

  8. Win XP 如何禁用屏保

    如果你试过 “在桌面空白处点击右键-[属性]-[屏幕保护程序],选择[无],点击[确定]”后,当时是可以去掉屏保.但如果重启计算机或者从待机状态唤醒后,屏保依然会出现,那么你可以试试下面的方法. 首先 ...

  9. wpf 制作播放视频的屏保程序、而且能分屏显示

    这个程序用到了WPF里  “visual_Brush”(主要是为了实现分屏显示) , “UserControl” ,这两个知识点: 在屏保状态下播放指定文件夹下的视频,而且能分屏显示: 把编译好的屏保 ...

随机推荐

  1. Linux wc命令详解

    wc常见命令参数 wc -l : 统计行 wc -c: 统计字节数 wc -m:统计字符数,不能与-c同时使用 wc -w:统计字数 wc -L:打印最长长度 注意: wc 可以直接后面跟文件使用,但 ...

  2. php面试宝典

    1.表单中 get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. 2.session与cookie的区别? 答 ...

  3. Civil War

    Civil War 编辑 <Civil War>是美国硬摇滚乐队枪炮与玫瑰的一首单曲,首次收录于1990年的群星慈善专辑<Nobody's Child: Romanian Angel ...

  4. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  5. linux查看主板型号及内存硬件信息,及硬盘测速

    查看主板型号: sudo  dmidecode |grep -A16 "System Information$" 内存槽及内存条: sudo  dmidecode |grep -A ...

  6. CVE-2014-4210SSRF漏洞分析

    直接定位SearchPublicRegistries.jsp文件,47行接受输入的变量. 结果输出位置在120行 SearchPublicRegistries.jsp引入com.bea.uddiexp ...

  7. zookeeper_monitor监控

    .安装 git clone https://github.com/kwarunek/zookeeper_monitor.git cd zookeeper_monitor/ python setup.p ...

  8. Plugin with id 'com.novoda.bintray-release' not found的解决方法

    我们一般在在github上下载下来的代码,有时候会提示Plugin with id ‘com.novoda.bintray-release’ not found的错误,这个怎么解决呢,其实很简单,只要 ...

  9. springboot不使用内置tomcat启动,用jetty或undertow

    Spring Boot启动程序通常使用Tomcat作为默认的嵌入式服务器.如果需要更改 - 您可以排除Tomcat依赖项并改为包含Jetty或Undertow: jetty配置: <depend ...

  10. 内存,缓存,cpu,硬盘关系

    RAM(random access memory)即随机存储内存,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序.我把它叫耗电存储器 ROM(Read-Only Memory)即只 ...