第9章 Python标准库概览
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()