在了解了turtle库之后,我就准备对于库的引用和import做一些简单的概括和总结。
库的引用有三种,下面我就一种一种为大家总结。
首先是直接引用
为了便于记忆,就直接放出示例代码了
import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40, 80)
turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2/3)
turtle.done()
这个函数中的turtle.setup()
、turtle.penup()
、turtle.fd()
等函数的就是通过库引用来实现的。
库引用的概念:扩充python程序功能的方式
使用import保留字完成,采用<a>.<b>()
的编码风格
具体的使用方法:
import <库名>
<库名>.<函数名>(<函数参数>)
但是这种方法每次使用其中的函数都要在前面加一个库名字.,是不是感觉很麻烦,那么第二种就可以很大程度上简化这种重复引用。
from turtle import*
setup(650, 350, 200, 200)
penup()
fd(-250)
pendown()
pensize(25)
pencolor("purple")
seth(-40)
for i in range(4):
circle(40, 80)
circle(-40, 80)
circle(40, 80/2)
fd(40)
circle(16, 180)
fd(40 * 2/3)
done()
在这个例子中采用from和import结合的方法,减去了使用函数前频繁调用的问题
这样对于经常性调用函数的情况下,这种方法更为好用。
使用from和import保留字共同完成
from <库名> import <函数名>
from <库名> import*
<函数名>(<函数参数>)
对于上面两种方法简单进行一下利弊分析。
第一种方式中的<库名>.<函数名>
在代码块中是一个新的函数名,而第二种方式中的<函数名>
是一个独立的函数,那么这样就带来了一个问题:函数重名问题,对于第一个方法中的新函数<库名>.<函数名>
,它所面临的重名可能性就远远小于第二种中的独立函数<函数名>
。这也就是第一种和第二种方法进行库引用的优劣所在了。
所以如果你的程序很短,只使用一个库,也没有自己定义的函数,那么你可以使用第二种库引用的方法;如果你的程序中引用到了很多库,又担心这些库的名字之间会有冲突,那么就使用第一种方法。
那么第三种方式就这种上面的两种。
import turtle as t
t.setup(650, 350, 200, 200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("purple")
t.seth(-40)
for i in range(4):
t.circle(40, 80)
t.circle(-40, 80)
t.circle(40, 80/2)
t.fd(40)
t.circle(16, 180)
t.fd(40 * 2/3)
t.done()
使用import和as保留字共同完成
import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)
这种方法就类似于C语言中的宏定义,将这个程序中所有涉及到这个库的地方全部用另一个更加好记的名字来代替。
最后用一只可爱的皮卡丘来作为结束来
from turtle import *
screensize(650,500,"yellow")
setup(800,550)
#左眼睛
penup()
goto(-185,65)
pendown()
pensize(5)
color("black")
begin_fill()
circle(50,360)
end_fill()
#左眼仁
penup()
goto(-210,110)
pendown()
pensize(5)
color("white")
begin_fill()
circle(20,360)
end_fill()
#右眼睛
penup()
goto(185,65)
pendown()
pensize(5)
color("black")
begin_fill()
circle(50,360)
end_fill()
#右眼仁
penup()
goto(160,110)
pendown()
pensize(5)
color("white")
begin_fill()
circle(20,360)
end_fill()
#左腮红
penup()
goto(-270,-130)
pendown()
color("red")
begin_fill()
circle(75,360)
end_fill()
#右腮红
penup()
goto(270,-130)
pendown()
color("red")
begin_fill()
circle(75,360)
end_fill()
#鼻子
penup()
color("black")
begin_fill()
pensize()
goto(0,30)
seth(30)
pendown()
fd(30)
penup()
seth(120)
pendown()
circle(30,120)
penup()
seth(150)
pendown()
color("black")
fd(-30)
end_fill()
penup()
goto(0,5)
seth(190)
pensize(3)
pendown()
fd(130)
seth(150)
circle(-30,50)
penup()
goto(0,5)
seth(-10)
pensize(3)
pendown()
fd(130)
seth(30)
circle(30,50)
#嘴巴
penup()
goto(-100,-15)
seth(290)
pendown()
fd(180)
penup()
goto(100,-15)
seth(-110)
pendown()
fd(180)
circle(-40,140)