第9章 Python标准库概览

来自CloudWiki
跳转至: 导航搜索

turtle库概述

turtle是拍省重要的标准库之一,它能够进行基本的图形绘制。

turtle有一个基本框架,一个小海龟,在坐标系中爬行及爬行轨迹形成的绘制图形。刚开始时,小海龟位于画布正中央,此处坐标为(0,0),前进方向为水平右方。

使用import保留字引用库时有三种方式:

第一种,import turtle

>>> import turtle
>>> turtle.circle(200)

第二种,from turtle import *,

>>> from turtle import *
>>> circle(200)

第三种,import turtle as t

>>> import turtle as t
>>> t.circle(200)

turtle库与基本绘图

窗体函数

turtle.setup(width,height,startx,starty)

作用:设置主窗体的大小和位置。

画笔状态函数

turtle.penup()

作用,提起画笔,之后,移动画笔不绘制形状。

turtle.pendown()

放下画笔,之后,移动画笔将绘制形状。

turtle.pensize(width)

作用:设置画笔宽度,当无参数输入时返回当前画笔宽度。

turtle.pencolor(colorstring)或turtle.pencolor((r,g,b))

作用设置画笔颜色,当无参数输入时返回当前画笔颜色。

画笔运动函数

turtle通过一组函数控制画笔的行进动作。

turtle.forward(distance)

作用,小海龟,向当前行进方向前进一段距离。

turtle.setheading(to_angle)

作用设置小海龟当前行进方向为to_angle,该角度是绝对方向角度值。

turtle.circle(radius,extent=None)

作用根据半径,绘制一定角度的弧形。

编写一个程序,绘制三角形,四边形,五边形,六边形和圆形。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
 
import turtle
 
turtle.screensize(400, 400)
 
#正方形
turtle.penup()
turtle.goto(-350,250)
turtle.pendown()
turtle.pencolor('green')
turtle.begin_fill()
turtle.fillcolor('green')
for i in range(4):
    turtle.forward(80)
    turtle.left(90)
turtle.end_fill()
 
#矩形
turtle.penup()
turtle.goto(-200, 250)
turtle.pendown()
turtle.pencolor('blue')
turtle.begin_fill()
turtle.fillcolor('blue')
for i in range(1, 5):
    if i % 2 == 1:
        n = 120
    elif i % 2 == 0:
        n = 80
    turtle.forward(n)
    turtle.left(90)
 
turtle.end_fill()
turtle.penup()
 

 
 
#五角星
turtle.goto(x + 200, y)
turtle.pendown()
turtle.pencolor('orange')
turtle.begin_fill()
turtle.fillcolor('orange')
turtle.left(36)
for i in range(5):
    turtle.forward(120)
    turtle.left(180 - 36)
turtle.end_fill()
turtle.right(36)
turtle.penup()
 
tuttle.done()

random库概述

random库能够产生随机数:

与其他编程语言类似,Python语言中随机数的生成,基于随机数种子,每个种子作为输入利用算法生成一系列随机数。

>>> from random import *
>>seed(10)
>>> random()
0.5742020072302529
>>> random()
0.23866837283729736

time库概述

处理时间是程序最常用的功能之一,time库是Python提供的处理时间的标准库。

>>> import time
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=26, tm_hour=15, tm_min=39, tm_sec=20, tm_wday=2, tm_yday=360, tm_isdst=0)
>>> time.time()#获取当前时间戳
1545809969.682711
>>> time.ctime()#获取当前时间戳的易读字符串
'Wed Dec 26 15:40:10 2018'

实例解析:雪景艺术绘图

turtle图形艺术,是指利用提供的库,创造性,绘制绚丽多彩艺术图形的过程。

本实例选择雪景作为编程目标。

雪景图形艺术背景为黑色,分为上下两个区域,上方是漫天彩色雪花,下方是由远即近的灰色横线渐变。

绘制分为三个步骤。

第一步构建图的背景。

第二步,绘制雪花效果。

第三步,绘制雪地效果。

# SnowView.py
from turtle import *
from random import *
def drawSnow():
    hideturtle()
    pensize(2)
    for i in range(100):
        r, g, b = random(), random(), random()
        pencolor(r,g,b)
        penup()
        setx(randint(-350,350))
        sety(randint(1,270))
        pendown()
        dens = randint(8,12)
        snowsize = randint(10,14)
        for j in range(dens):
            forward(snowsize)
            backward(snowsize)
            right(360/dens)
def drawGround():
    hideturtle()
    for i in range(400):
        pensize(randint(5,10))
        x = randint(-400,350)
        y = randint(-280,-1)
        r, g, b = -y/280, -y/280, -y/280
        pencolor((r,g,b))
        penup()
        goto(x,y)
        pendown()
        forward(randint(40,100))
setup(800,600,200,200)
tracer(False)
bgcolor("black")
drawSnow()
drawGround()
done()