目录

前言

一、turtle库

1、一个小例子

2、turtle绘图的基础知识

1. 画布(canvas)

2. 画笔

二、random库

1、随机浮点数

2、随机整数

3、随机字符

4、随机洗牌

5、另:numpy里的random方法

三、time库

1、获取当前时间戳

2、获取当前时间

3、获取格式化的时间


前言

公众号要发一个python标准库介绍,我先记录到本博客中,后面再过渡过去。这三个标准库是今年计算机python二级大纲中提到的3个标准库,不难但是是比较基础但库,也需要掌握。

一、turtle库

turtle库是python的内部库,使用时直接导入即可,这里先放一段代码看看这个库能实现什么效果。

1、一个小例子

# coding=utf-8
import turtle # 导入python自带的turtle库
import time

turtle.pensize(5) # 设置画笔的宽度为5像素
turtle.pencolor("yellow") # 设置当前画笔颜色为黄色
turtle.fillcolor("red") # 绘制图形的填充颜色为红色

turtle.begin_fill() # 准备开始填充图形
for _ in range(5):  # 这个循环的用途是循环5次,无需关注_的实际含义
    turtle.forward(200) # 向当前画笔方向移动200像素长度
    turtle.right(144) # 顺时针移动144°
turtle.end_fill()  # 填充完成
time.sleep(2) # 设置2秒后进行后续步骤

turtle.penup()  # 提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.goto(-150, -120)  #将画笔移动到坐标为(-150,-120)的位置
turtle.color("violet") # 同时设置pencolor和fillcolor
turtle.write("Done", font=('Arial', 40, 'normal')) # 写文本,Done为文本内容,font是字体的参数,分别为字体名称,大小和类型

turtle.mainloop() # 告诉窗口等待用户进行某些操作,暂时不用考虑

效果图:

python 图像随机扭曲 python随机涂鸦_python 图像随机扭曲

从上面的例子里,我们可以大概看出来这个turtle库是python内置的一个简单绘图工具,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。在本例中这个图形就是上面的效果图。

2、turtle绘图的基础知识

1. 画布(canvas)

画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置,turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别为画布的宽(单位像素), 高, 背景颜色。

#设置画布大小
turtle.screensize(800,600, "green")  # 参数分别为画布的宽(单位像素), 高, 背景颜色。

turtle.setup(width=0.5, height=0.75, startx=None, starty=None),参数:width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。

# 画布设置
turtle.setup(width=800,height=800, startx=100, starty=100)
# 或者
turtle.setup(width=0.6,height=0.6)

2. 画笔

2.1 画笔的状态

        在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。

2.2 画笔的属性

        画笔(画笔的属性,颜色、画线的宽度等)

  • turtle.pensize():设置画笔的宽度;
  • turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。
  • turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

2.3 绘图命令

         操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令。

(1)画笔运动命令

python 图像随机扭曲 python随机涂鸦_时间戳_02

(2)画笔控制命令

python 图像随机扭曲 python随机涂鸦_python_03

(3)全局控制命令

python 图像随机扭曲 python随机涂鸦_时间戳_04

(4)其他命令

python 图像随机扭曲 python随机涂鸦_获取当前时间_05

 

二、random库

在使用python过程中会遇到随机数的使用,那么怎么使 a 随机生成一个数值呢,来研究一下random的部分程序。
 

1、随机浮点数

random.uniform() 用于生成指定范围内的浮点数

import random # 首先还是要导入random这个模块
a = random.uniform(2,10) # 两个参数,一个是上限,一下是下限
print(a)

结果:3.0268555183487953

2、随机整数

random.randint() 用于选取指定范围内的整数

a  = random.randint(10,80)
print(a)

结果:35

random.randrange() 用于随机选取0—100之间的随机偶数

a = random.randrange(0,100,2)
print(a)

结果:54

3、随机字符

random.choice() 用于随机选取指定字符串中的字符

a = random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )
print(a)

结果:lemon

random.sample() 运行之后 a 就会随机选取字符串中的字符

a = random.sample('qwertyuiop',3) # 随机选3个
print(a)

结果:['p', 'e', 'i']

4、随机洗牌

random.shuffle() 用于将一个列表中的元素打乱

a = ["Python", "is", "powerful", "simple", "and so on..."]
random.shuffle(a)
print(a)

结果:['powerful', 'simple', 'and so on...', 'is', 'Python']

5、另:numpy里的random方法

在上面提到的生成随机数或者随机字符,都是单个的输出,如果说现在的需求时生成一个矩阵,里面的元素时随机数,那么我们就需要用到numpy库中的random方法。同理,这个矩阵中的随机数如果要整数的话,就使用random.randint() 函数,比如下面这个例子

from numpy import random # 从numpy库中导入random方法
a = random.randint(0, 10, size=[3, 3]) # 多维数组中的随机整数在0到10之间,数组大小是3*3
print(a)

结果:

[[1 4 8]
 [2 9 4]
 [1 0 0]]

三、time库

Python具有良好的时间和日期管理功能。实际上,计算机只会维护一个挂钟时间(wall clock time),这个时间是从某个固定时间起点到现在的时间间隔。时间起点的选择与计算机相关,但一台计算机的话,这一时间起点是固定的。时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。Python 的 time 模块下有很多函数可以转换常见日期格式。

1、获取当前时间戳

如函数time.time()用于获取当前时间戳, 如下实例:

import time  # 导入time库
ticks = time.time()  # 返回当前时间戳
print("当前时间戳为:", ticks)

结果:当前时间戳为: 1540291115.793172

2、获取当前时间

time.localtime() 用于获取当前时间,从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。

localtime = time.localtime(time.time())
print("本地时间为 :", localtime)

结果:本地时间为 : time.struct_time(tm_year=2018, tm_mon=10, tm_mday=23, tm_hour=18, tm_min=38, tm_sec=35, tm_wday=1, tm_yday=296, tm_isdst=0)

解读:struct_time元组里面的属性名称是:年、月、日、小时、分钟、秒、一周的第几日、一年的第几日,是否为夏令时

3、获取格式化的时间

我们可以使用 time 模块的 strftime() 方法来格式化日期

import time

# 格式化成2016-03-20 11:45:39形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 格式化成Sat Mar 28 22:24:24 2016形式
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))

# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print(time.mktime(time.strptime(a, "%a %b %d %H:%M:%S %Y")))

结果:

2018-10-23 18:51:41
Tue Oct 23 18:51:41 2018
1459175064.0

那么这中间的Y、m、d等等这些的含义是什么呢?

python中时间日期格式化符号:

  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %I 12小时制小时数(01-12)
  • %M 分钟数(00=59)
  • %S 秒(00-59)
  • %a 本地简化星期名称
  • %A 本地完整星期名称
  • %b 本地简化的月份名称
  • %B 本地完整的月份名称
  • %c 本地相应的日期表示和时间表示
  • %j 年内的一天(001-366)
  • %p 本地A.M.或P.M.的等价符
  • %U 一年中的星期数(00-53)星期天为星期的开始
  • %w 星期(0-6),星期天为星期的开始
  • %W 一年中的星期数(00-53)星期一为星期的开始
  • %x 本地相应的日期表示
  • %X 本地相应的时间表示
  • %Z 当前时区的名称
  • %% %号本身

你想要什么格式的时间表示形式,都可以得到哦

其实啊,calendar库还可以输出日历格式的时间,每个库的方法数量非常多这里就不一一说明,先对每个库有映象,遇到实际问题后查阅严谨的官方文档。嗯。

 

参考文章:


http://www.runoob.com/python/python-date-time.html