Python

来源:互联网 发布:多益网络官网社会招聘 编辑:程序博客网 时间:2024/06/08 19:10

海龟图:使用turtle模块中的对象和方法进行作图


坐标

import turtlet = turtle.Turtle()

在边框中间白色的区域叫做画布,画布中间的小图标叫做小海龟。画布大概包含360000个点,叫做像素。
这里写图片描述
例:生成一朵带有36瓣花朵的花

import turtlet = turtle.Turtle()t.hideturtle()t.color('blue','light blue')t.begin_fill()for i in range(36):    t.forward(200)    t.left(170)t.end_fill()

这里写图片描述

turtle模块中方法

在任何时候小海龟都有以下的状态:位置(坐标表示)、朝向(用面朝的方向与水平线的逆时针夹角表示)、笔的状态(抬起或放下),以及颜色。
小海龟面朝东、北、西、南将分别由0度,90度,180度,270度表示。
所有的标准颜色(例如红、蓝)调剖可作为笔的颜色。
彩色插页展示了32种可以选择的颜色。
这里写图片描述
这里写图片描述

矩形

第一种函数

import turtledef main():    t = turtle.Turtle()    t.hideturtle()    drawRectangle(t,0,0,200,150,"red")    def drawRectangle(t,x,y,w,h,colorP="black"):    ##bottom-left corner(x,y)    ##width w,height h    t.pencolor(colorP)    t.up()    t.goto(x,y)    t.down()    t.goto(x+w,y)    t.goto(x+w,y+h)    t.goto(x,y+h)    t.goto(x,y)main()

第二种函数
import turtle

def main():    t = turtle.Turtle()    t.hideturtle()    drawRectangle(t,0,0,200,150,"red")    def drawRectangle(t,x,y,w,h,colorP="black"):    t.pencolor(colorP)    t.up()    t.goto(x,y)    t.down()    for i in range(2):        t.forward(w)        t.left(90)        t.forward(h)        t.left(90)main()

例:
矩形,红色边框,黄色填充

import turtledef main():    t = turtle.Turtle()    t.hideturtle()    drawFilledRectangle(t,0,0,100,150,"red","yellow")    def drawFilledRectangle(t,x,y,w,h,colorP="black",colorF="white"):    t.pencolor(colorP)    t.fillcolor(colorF)    t.up()    t.goto(x,y)    t.down()    t.begin_fill()    t.goto(x+w,y)    t.goto(x+w,y+h)    t.goto(x,y+h)    t.goto(x,y)    t.end_fill()main()

旗帜

旗帜

import turtledef main():    t = turtle.Turtle()    t.hideturtle()    drawFilledRectangle(t,0,0,150,25,"light blue","light blue")    drawFilledRectangle(t,0,25,150,50,"blue","blue")    drawFilledRectangle(t,0,75,150,25,"light blue","light blue")    drawDot(t,75,50,40,"white")def drawFilledRectangle(t,x,y,w,h,colorP="black",colorF="white"):    t.pencolor(colorP)    t.fillcolor(colorF)    t.up()    t.goto(x,y)    t.down()    t.begin_fill()    t.goto(x+w,y)    t.goto(x+w,y+h)    t.goto(x,y+h)    t.goto(x,y)    t.end_fill()def drawDot(t,x,y,diameter,colorP):    t.up()    t.goto(x,y)    t.pencolor(colorP)    t.dot(diameter)main()

五角星

import turtledef main():    t = turtle.Turtle()    t.hideturtle()    lengthOfSide = 200    drawFivePointStar(t,0,0,lengthOfSide)    def drawFivePointStar(t,x,y,lengthOfSide):    t.up()    t.goto(x,y)    t.left(36)    t.down()    for i in range(5):        t.forward(lengthOfSide)        t.left(144)main()

write方法

如果s是一个字符串,则语句t.write(s)将会近似以当前位置作为字符串的左下角来显示字符串
语句t.write(s,align=’right’)和t.write(s,align=’center)将会分别近似以当前位置作为字符串的右下角和下方中心点来显示字符串。。
不论笔抬起或放下,write方法都会输出字符串。
注意:t.write(s)与t.write(s,align=’left)的效果相同
例:

import turtlet = turtle.Turtle()t.hideturtle()t.up()t.goto(0,60)t.dot()t.write("Python")t.goto(0,30)t.dot()t.write("Python",align='right')t.goto(0,0)t.dot()t.write("Python",align='center')

用来显示字符串的字体可以由write方法的font参数指定,参数的形式是三元组(fontName,fontSize,styleName)。
styleName的值可以是italic、bold、underline、normal

t.write("Python",font=("Courier New",12,"bold"))

一个write方法可以包含align和font参数中的一个、两个,或者都不包含。

柱状图

当一些特定的数据由柱状图来展示时,将会有助于人们的理解

import turtleheights = [856,420,360,260,205]def main():    t = turtle.Turtle()    t.hideturtle()    for i in range(5):        drawFilledRectangle(t,-200+(76*i),0,76,heights[i]/4,"black","light blue")    displayText(t)def drawFilledRectangle(t,x,y,w,h,colorP="black",colorF="white"):    t.pencolor(colorP)    t.fillcolor(colorF)    t.up()    t.goto(x,y)    t.down()    t.begin_fill()    t.goto(x+w,y)    t.goto(x+w,y+h)    t.goto(x,y+h)    t.goto(x,y)    t.end_fill()def displayText(t):    languages = ["Mandarin","Spanish","English","Hindi","Bengali"]    t.pencolor("blue")    t.up()    for i in range(5):        t.goto(-162+(76*i),heights[i]/4)        t.write(str(heights[i]),align='center',font=("Arial",10,"normal"))        t.goto(-162+(76*i),10)        t.write(languages[i],align='center',font=("Arial",10,"normal"))        t.goto(-200,-25)        t.write("Principal Languages of the World",font=("Arial",10,"normal"))        t.goto(-200,-45)        t.write('(in millions of"first language" speakers)',font=("Arial",10,"normal"))main()

这里写图片描述

折线图

简单的表格数据可以由折线图来展示
这里写图片描述

import turtleyValues = [10.0,7.4,6.4,5.3,4.4,3.7,2.6]def main():    t = turtle.Turtle()    t.hideturtle()    drawLine(t,0,0,300,0)    drawLine(t,0,0,0,175)    for i in range(5):        drawLineWithDots(t,40+(40*i),15*yValues[i],40+(40*(i+1)),15*yValues[i+1],"blue")    drawTickMarks(t)    displayText(t)def drawLine(t,x1,y1,x2,y2,colorP="black"):    t.up()    t.goto(x1,y1)    t.down()    t.pencolor(colorP)    t.goto(x2,y2)def drawLineWithDots(t,x1,y1,x2,y2,colorP="black"):     t.pencolor(colorP)     t.up()     t.goto(x1,y1)     t.dot(5)     t.down()     t.goto(x2,y2)     t.dot(5)def drawTickMarks(t):    for i in range(1,8):        drawLine(t,40*i,0,40*i,10)    drawLine(t,0,15*max(yValues),10,15*max(yValues))    drawLine(t,0,15*min(yValues),10,15*min(yValues))def displayText(t):    t.pencolor("blue")    t.up()    t.goto(-3,(15*max(yValues))-10)    t.write(max(yValues),align="right")    t.goto(-3,(15*min(yValues))-10)    t.write(min(yValues),align="right")    x=40    for i in range(2000,2013,2):        t.goto(x,-20)        t.write(str(i),align='center')        x+=40        t.goto(0,-50)        t.write("Percentage of College Freshmen Who Smoke")main()

这里写图片描述

注释

一个可选的语句t.speed(n),n是从0到10的整数。它决定了小海龟的移动速度。如果参数省略的话,速度为3.参数为0时小海龟将瞬间移动至目标点。

原创粉丝点击