Python语言包含有不少图形工具包,强如Tkinter,底层如python的内置图形库Graphics和Turtle。Turtle库就是通过控制屏幕上小乌龟的移动轨迹绘制图形,本文的一系列操作主要和Turtle库有关。关于Turtle库的详细介绍:点击打开链接,本文仅对用到的几个函数作简要介绍:

引入方式:

import turtle
from turtle import*

控制画笔绘制状态的函数:

pendown() pd() down() 放下画笔
penup() pu() up() 提起画笔

控制画笔颜色和字体函数:

color() 参数为颜色,如:‘red’,'black'
showturtle() st() 显示画笔
hideturtle() ht() 隐藏画笔

控制画笔运动的函数:

forward(distance) fd(distance) 使turtle前进distance个像素
backward(distance) bk(distance) back(distance) 使turtle后退distance个像素
right(angle) rt(angle) 运动方向向右转angle°
left(angle) lt(angle) 运动方向向左转angle°
setheading(angle) seth(angle) 重置方位角为angle(水平向右方向为0°方位角,水平方向顺时针转angle°为方位角angle°)
position() pos() 返回画笔的位置(x,y)元组类型
goto(x,y) 将画笔移动至(x,y)处

Screen类函数:

setup(width,height,startx,starty) 建立一个宽为width像素,高为height像素的屏幕,起始点为(startx,starty)

使用例子:

1.首先引入turtle库和之后会用到的datetime库,定义了左转右转90°和前进后退20个像素点,初始化方位角的简约版函数:

from turtle import*
import datetimedef L():left(90)def R():right(90)def F():forward(20)def B():backward(20)def S():seth(0)

2.定义绘制阿拉伯数字0-9的函数,所有的笔画均为直来直去(自行脑补),每个数字由之前定义的操作组成:

def draw0():S()F()L()F()F()L()F()L()F()F()def draw1(i,n):#使得1居中if i<n:up()goto(i*50+20,0)pd()if i>=n:up()goto((i-n)*50+20,-100)pd() seth(90)F()F()def draw2():S()F()B()seth(90)F()R()F()L()F()L()F()def draw3():S()F()L()F()L()F()B()seth(90)F()L()F()def draw4(i,n):#使得4靠右对齐if i<n:up()goto(i*50+20,0)pd()if i>=n:up()goto((i-n)*50+20,-100)pd() seth(90)F()F()B()seth(180)F()R()F()def draw5():S()F()L()F()L()F()R()F()R()F()def draw6():draw5()B()seth(-90)F()F()def draw7(i,n):#使得4靠右对齐if i<n:up()goto(i*50+20,0)pd()if i>=n:up()goto((i-n)*50+20,-100)pd()seth(90)F()F()L()F()def draw8():draw0()B()S()F()def draw9():S()F()L()F()F()L()F()L()F()L()F()

3.定义主函数,使用datetime库中datetime类中的today()函数获取当前日期和时间,格式为"yyyy-mm-dd hh:mm:ss.xxxxxx"既包括年月日时分秒甚至毫秒。本文所用的信息仅为年月日时分秒,则通过字符串和列表等一系列操作(remove)去掉了‘-’和‘:’。在绘图时以年月日和时分秒中间的空格作为分节符,年月日放在第一行,时分秒安排在第二行,以红颜色的轨迹在宽1000高600的屏幕上通过循环来显示时间和日期。完成绘制后隐藏画笔。

def main():time=str(datetime.datetime.today()) #用时间函数生成时间number=list(time)#把'-'和':'去掉for i in range(2):number.remove('-')number.remove(':')number=number[:15]setup(1000,600,0,0)pythonsize=5pensize(pythonsize)pencolor('red')n=number.index(' ')speed(6)#画日期for i in range(n):a=number[i]if a=='0':draw0()if a=='1':draw1(i,n)        if a=='2':draw2()if a=='3':draw3()if a=='4':draw4(i,n)if a=='5':draw5()if a=='6':draw6()if a=='7':draw7(i,n)if a=='8':draw8()if a=='9':draw9()up()goto((i+1)*50,0)pd()#提起笔去第二行up()goto(0,-100)pd()#画时间for i in range(n,len(number)):a=number[i]if a=='0':draw0()if a=='1':draw1(i,n)if a=='2':draw2()if a=='3':draw3()if a=='4':draw4(i,n)if a=='5':draw5()if a=='6':draw6()if a=='7':draw7(i,n)if a=='8':draw8()if a=='9':draw9()up()goto((i-n+1)*50,-100)pd()hideturtle()

4.执行主函数:

main()

执行结果如图所示:

Python学习笔记-Turtle库简单实例之日期时间显示相关推荐

  1. python学习笔记--turtle库的使用

    turtle库的调用方法 python中其他库的调用方法也一样 1.import <库名> 使用方法:<库名>.<函数名>(函数参数) 使用这种方法的好处就是,当一 ...

  2. Lawliet|Python学习笔记——turtle库

    turtle库--turtle绘图体系的python实现 python的标准库之一 入门级的图形绘制函数库 1. 窗体设置 turtle.setup(width,height,startx,start ...

  3. Python学习17 Turtle库绘图

    学习网址:https://docs.python.org/zh-cn/3/library/turtle.html Turtle库 Turtle库是Python语言中一个很流行的绘制图像的函数库,一个小 ...

  4. python学习笔记——turtle绘制图形

    一.turtle图形绘制 # PythonDraw.py '''import turtle turtle.setup(650, 350, 200, 200) turtle.penup() turtle ...

  5. python学习之turtle库基本操作

    目录 一段运行绘制蟒蛇的代码示例 turtle函数基本说明 一段运行绘制蟒蛇的代码示例 import turtle turtle.setup(650,350,200,200) turtle.penup ...

  6. Lawliet|Python学习笔记——numpy库

    1.numpy库认知 Numpy:表达N维数组的最基础库 库由c语言实现,Python来接口使用,计算速度优异 是Python数据分析及科学计算的基础库,支撑Pandas等 提供直接的矩阵运算.广播函 ...

  7. Lawliet|Python学习笔记——time库

    Time库--Python中处理时间的标准库 计算机时间的表达 提供获取系统时间并格式化输出功能 提供系统级精确计时功能,用于程序性能分析 import time time.<b>()#t ...

  8. Lawliet|Python学习笔记——random库

    Random库-- 是使用随机数的python标准库 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素 random库主要用于生成随机数 import random 1.基本随机数函数 随机数种子 ...

  9. Python学习笔记--变量和简单数据类型

    hello world print("hello world") 变量 添加了一个名为message 的变量 ,每个变量都存储了一个值,在这里,存储的值为文本"Hello ...

最新文章

  1. easyui 页面加载闪现问题 解决方法
  2. php数组为什么其他语言,PHP语言特性和各版本的差异
  3. 【BIM入门实战】Revit 图元分类有哪三种?Revit图元分类图文详解
  4. java x.length_Java中的length和length()
  5. C++引用和指针区别
  6. 使用WebView监控网页加载状况,PerformanceMonitor,WebViewClient生命周期
  7. c语言开发一个翻译算法,使用有道翻译API做翻译(c语言实现)
  8. iOS CocoaPods自动管理第三方开源库
  9. Windows下JNI的使用教程
  10. N皇后问题——DFS+回溯剪枝
  11. 苹果手机怎样软件签名?
  12. 人工鱼群算法解决TSP问题
  13. Win10下ImageAI-gpu训练自己的数据集
  14. HTTP协议请求头部的User-Agen和Cookie
  15. Python图片文字识别转换程序
  16. matlab凑数求和,凑数求和算法 C语言问题 C语言求和算法
  17. 全国高校计算机能力挑战赛试题,2019年全国高校计算机能力挑战赛 C语言程序设计决赛(示例代码)...
  18. 再见2018,感谢你的一路陪伴
  19. 多媒体计算机的核心,多媒体计算机系统的核心
  20. 利用特征根方程实现通项公式与递推关系的互换

热门文章

  1. 德意志银行的PaaS可以帮助银行扭转局面吗?
  2. FATAL : No Bootable medium found! System halted
  3. Django简单博客实战(六)---搜索功能
  4. 微星gp76 11u+3070 2k 165hz
  5. 泛站群Mysql吃Cpu_泛站群mysql版本
  6. android 通知没有声音,安卓手机没有声音提醒设置教程【华为】
  7. 生信步骤|转录组mRNA数据的有参组装
  8. 移动互联网思维(持续更新)
  9. 用先序遍历的方法创立二叉树
  10. ios 输入法扩展_App Extension编程指南(iOS8/OS X v10.10):扩展类型--自定义键盘