海龟绘图:Python3.7的turtle模块

本文介绍了Python3.7的turtle模块,详细讲解了小海龟的各种动作,如前进、转弯、画圆、颜色控制等,并涵盖了窗口控制、动画操作、颜色模式和事件监听器等功能。turtle模块为初学者提供了直观的图形编程体验。

小海龟历险记

Shawn
python3.7
文档:
https://docs.python.org/3/library/turtle.html

  • 想象一下,把一个小海龟扔到沙滩上.小海龟爬啊爬,沙滩上留下来一道道痕迹,这就是turtle模块.

小海龟的动作

爬行

前进:forward/fd
turtle.forward(distance)
turtle.fd(distance)
Parameters: distance – a number (integer or float)
  • 小海龟朝当前方向向前爬行.
后退:back/bk/backward
turtle.back(distance)
turtle.bk(distance)
turtle.backward(distance)
Parameters: distance – a number (integer or float)
  • 小海龟向后爬行.
右拐(顺时针转):right/rt
turtle.right(angle)
turtle.rt(angle)
Parameters: distance – a number (integer or float)
  • 小海龟顺指针转向.
左拐(逆时针转):left/lt
turtle.left(angle)
turtle.lt(angle)
Parameters: angle – a number (integer or float)
  • 小海龟逆时针转向.
爬到指定位置:goto/setpos/setposition
turtle.goto(x, y=None)
turtle.setpos(x, y=None)
turtle.setposition(x, y=None)
Parameters: 
x – a number or a pair/vector of numbers
y – a number or None
  • 小海龟爬到指定的坐标位置.
x轴上移动:setx
turtle.setx(x)
Parameters: x – a number (integer or float)
  • 小海龟横向爬行.
y轴上移动:sety
turtle.sety(y)
Parameters: y – a number (integer or float)
  • 小海龟纵向爬行.
转向指定方向:setheading/seth
turtle.setheading(to_angle)
turtle.seth(to_angle)
Parameters: to_angle – a number (integer or float)
  • 小海龟朝向指定方向.
  • 注意,默认的方向可能有所不同:
standard modelogo mode
0 - east0 - north
90 - north90 - east
180 - west180 - south
270 - south270 - west
回家:home
turtle.home()
  • 小海龟回到图像原点(0,0),并朝向默认初始方向.
画圆:circle
turtle.circle(radius, extent=None, steps=None)
Parameters: 
radius – a number
extent – a number (or None)
steps – an integer (or None)
  • 小海龟从当前位置开始向前画半径为radius,角度为extent的圆弧.
  • radius为正,则逆时针,反之顺时针.
  • 在turtle里,本质上,画圆弧相当于画n段直线.
  • 用steps可以指定n的数量.换而言之,可以用于实现一些多边形.
画点:dot
turtle.dot(size=None, *color)
Parameters: 
size – an integer >= 1 (if given)
color – a colorstring or a numeric color tuple
  • 在当前位置画一个直径为size,颜色为color的点.
  • 如果没有指定size,会默认选择max(当前笔粗+4,当前笔粗*2)
海龟分身:stamp
turtle.stamp()
  • 在当前位置保存一个一模一样小海龟幻象,并返回这个幻象的id.
分身解除:clearstamp
turtle.clearstamp(stampid)
Parameters: stampid – an integer, must be return value of previous stamp() call
  • 根据id解除海龟分身.
批量分身解除:clearstamps
turtle.clearstamps(n=None)
Parameters: n – an integer (or None)
  • 批量解除分身.
  • 默认全部,若n为正则解除最早n个,为负责解除最晚n个.
时光回溯:undo
turtle.undo()
  • 每执行一次可以回到上一步的状态.
调速:speed
turtle.speed(speed=None)
Parameters: speed – an integer in the range 0..10 or a speedstring (see below)
  • “fastest”: 0
  • “fast”: 10
  • “normal”: 6
  • “slow”: 3
  • “slowest”: 1

  • 调节小海龟爬行以及转向的速度.

  • 从1到10逐步加快,也可以设定为最快:0.
  • 注意:小于等于0.5或者大于10都会被直接设定为0

海龟状态查询

海龟位置:position/pos
turtle.position()
turtle.pos()
  • 返回小海龟当前的位置.
小海龟的头部与目标间的角度:towards
turtle.towards(x, y=None)
Parameters: 
x – a number or a pair/vector of numbers or a turtle instance
y – a number if x is a number, else None
  • 返回小海龟当前方向与指定坐标(或者另一个海龟实体)连线的夹角.
x坐标查询:xcor
turtle.xcor()
  • 返回x坐标.
y坐标查询:ycor
turtle.ycor()
  • 返回y坐标.
当前方向:heading
turtle.heading()
  • 返回小海龟当前方向.
距离查询:distance
turtle.distance(x, y=None)
Parameters: 
x – a number or a pair/vector of numbers or a turtle instance
y – a number if x is a number, else None
  • 返回小海龟与指定坐标(或者另一个海龟实体)间的距离.

定制规则

一圈有多少度:degrees
turtle.degrees(fullcircle=360.0)
Parameters: fullcircle – a number
  • 设定一圈有多少度.如果你填400,那在小海龟的世界里一圈会被划分成400份而不是360份.
用弧度:radians
turtle.radians()
  • 设定用弧度而不是角度.

画笔

  • 好吧,可爱的小海龟现在终于变成画笔了.
下笔(肚皮贴地):pendown/pd/down
turtle.pendown()
turtle.pd()
turtle.down()
  • 开始画出移动轨迹.
抬笔(肚皮离地):penup/pu/up
turtle.penup()
turtle.pu()
turtle.up()
  • 移动时不画线了.
笔粗:pensize/width
turtle.pensize(width=None)
turtle.width(width=None)
Parameters: width – a positive number
  • 设定画笔的粗细.
  • 如果无参数,返回当前笔粗.
画笔(海龟)状态总控:pen
turtle.pen(pen=None, **pendict)
Parameters: 
pen – a dictionary with some or all of the below listed keys
pendict – one or more keyword-arguments with the below listed keys as keywords
  • 可以调节\查询当前画笔的状态.
    • “shown”: True/False
    • “pendown”: True/False
    • “pencolor”: color-string or color-tuple
    • “fillcolor”: color-string or color-tuple
    • “pensize”: positive number
    • “speed”: number in range 0..10
    • “resizemode”: “auto” or “user” or “noresize”
    • “stretchfactor”: (positive number, positive number)
    • “outline”: positive number
    • “tilt”: number
是否在画:isdown
turtle.isdown()
  • 返回当前是否是pendown状态.

颜色控制

画笔颜色:pencolor
turtle.pencolor(*args)
  • 设定画笔颜色:
    • 无参数:返回当前画笔颜色.
    • 颜色名字符串或TKcolor字符串:设定颜色
      • ”red”, “yellow”, “#33cc8c”
    • rgb元组或rgb单值:设定颜色
      • (0.2, 0.8, 0.55),(51.0, 204.0, 140.0)
      • 255模式或者1.0模式由colormode()设定:
        • colormode(255)
        • colormode(1)
填充颜色: fillcolor
turtle.fillcolor(*args)
  • 设定填充颜色,方法同pencolor
颜色总控:color
turtle.color(*args)
  • 同时查询\设定画笔颜色与填充颜色.
  • 第一组参数为画笔颜色.
  • 第二组参数为填充颜色.

填充控制

填充状态:filling
turtle.filling()
  • 返回填充状态.
开始填充:begin_fill
turtle.begin_fill()
  • 开始计算填充图形.
正式填充:end_fill
turtle.end_fill()
  • 计算从上一个begin_fill开始的图形,并进行填充.

更多骚操作

初始化:reset
turtle.reset()
  • 清空沙滩并且复原小海龟.
清理沙滩:clear
turtle.clear()
  • 将沙滩上的图形清空.
写字:write
turtle.write(arg, move=False, align="left", font=("Arial", 8, "normal"))
Parameters: 
arg – object to be written to the TurtleScreen
move – True/False
align – one of the strings “left”, “center” or right”
font – a triple (fontname, fontsize, fonttype)
  • 按照参数将arg写在沙滩上.

其他海龟参数

海龟可见
隐藏海龟:hideturtle/ht
turtle.hideturtle()
turtle.ht()
  • 隐藏海龟
显示海龟:showturtle/st
turtle.showturtle()
turtle.st()
  • 显示海龟
海龟可见状态查询:isvisible
turtle.isvisible()
  • 查询海龟可见状态.
海龟外观
海龟外形:shape
turtle.shape(name=None)
Parameters: name – a string which is a valid shapename
  • “arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”
  • 小海龟可以变身成圆圈\三角等
海龟大小缩放:resizemode
turtle.resizemode(rmode=None)
Parameters: rmode – one of the strings “auto”, “user”, “noresize”
  • 设定海龟大小缩放模式:
    • “auto”: adapts the appearance of the turtle corresponding to the value of pensize.
    • “user”: adapts the appearance of the turtle according to the values of stretchfactor and outlinewidth (outline), which are set by shapesize().
    • “noresize”: no adaption of the turtle’s appearance takes place.
海龟大小详细设置:shapesize/turtlesize
turtle.shapesize(stretch_wid=None, stretch_len=None, outline=None)
turtle.turtlesize(stretch_wid=None, stretch_len=None, outline=None)
Parameters: 
stretch_wid – positive number
stretch_len – positive number
outline – positive number
  • 在resizemode为’user’时起效.
海龟剪切系数:shearfactor
turtle.shearfactor(shear=None)
Parameters: shear – number (optional)
  • 设定海龟外观的剪切形变系数.
  • 不改变朝向.
海龟外形旋转:tilt/settiltangle
turtle.tilt(angle)
turtle.settiltangle(angle)
Parameters: angle – a number
  • 旋转海龟外形.
  • 不同的是tilt会根据当前angle做出调整.
  • 而settiltangle为绝对角度.
海龟外形角度查询:tiltangle
turtle.tiltangle(angle=None)
Parameters: angle – a number (optional)
  • 返回当前外观角度.
  • 如果有参数,效果同settiltangle.
海龟外形总控:shapetransform
turtle.shapetransform(t11=None, t12=None, t21=None, t22=None)
Parameters: 
t11 – a number (optional)
t12 – a number (optional)
t21 – a number (optional)
t12 – a number (optional)
  • 返回(设置)当前海龟外形变形参数(参照shapesize\shearfactor\settiltangle).
海龟外观获取:get_shapepoly
turtle.get_shapepoly()
  • 获取当前海龟外形的图形坐标元组.

事件监听器

监听器:listen
turtle.listen(xdummy=None, ydummy=None)
Set focus on TurtleScreen (in order to collect key-events). Dummy arguments are provided in order to be able to pass listen() to the onclick method.
  • 在屏幕上设置监听区域.
监听鼠标按键按下:onclick
turtle.onclick(fun, btn=1, add=None)
Parameters: 
fun – a function with two arguments which will be called with the coordinates of the clicked point on the canvas
numnumber of the mouse-button, defaults to 1 (left mouse button)
add – True or False – if True, a new binding will be added, otherwise it will replace a former binding
  • 按下鼠标时,执行绑定的操作.
监听鼠标按键抬起:onrelease
turtle.onrelease(fun, btn=1, add=None)
Parameters: 
fun – a function with two arguments which will be called with the coordinates of the clicked point on the canvas
numnumber of the mouse-button, defaults to 1 (left mouse button)
add – True or False – if True, a new binding will be added, otherwise it will replace a former binding
  • 抬起鼠标按键时,执行绑定的操作.
监听鼠标按键拖动:ondrag
turtle.ondrag(fun, btn=1, add=None)
Parameters: 
fun – a function with two arguments which will be called with the coordinates of the clicked point on the canvas
numnumber of the mouse-button, defaults to 1 (left mouse button)
add – True or False – if True, a new binding will be added, otherwise it will replace a former binding
  • 拖动鼠标按键时,执行绑定的操作.
监听键盘按键:onkey/onkeyrelease/onkeypress
turtle.onkey(fun, key)
turtle.onkeyrelease(fun, key)
turtle.onkeypress(fun, key=None)
Parameters: 
fun – a function with no arguments or None
key – a string: key (e.g. “a”) or key-symbol (e.g. “space”)
  • 按下\释放键盘相应按键时,执行操作.
定时操作:ontimer
turtle.ontimer(fun, t=0)
Parameters: 
fun – a function with no arguments
t – a number >= 0
  • 设定计时器,计时t毫秒后执行fun.
时间循环:mainloop/done
turtle.mainloop()
turtle.done()
Starts event loop - calling Tkinter’s mainloop function. Must be the last statement in a turtle graphics program. Must not be used if a script is run from within IDLE in -n mode (No subprocess) - for interactive use of turtle graphics.

更多海龟操作

开始记录多边形:begin_poly
turtle.begin_poly()
  • 开始记录多边形,当前位置为第一个顶点.
结束记录多边形:end_poly
turtle.end_poly()
  • 结束记录多边形,当前位置为最后一个顶点.
获取记录到的多边形:get_poly
turtle.get_poly()
  • 获取最后一次记录到的多边形.
克隆海龟:clone
turtle.clone()
  • 创建并且返回一个当前海龟一模一样的克隆.
查询海龟:getturtle/getpen
turtle.getturtle()
turtle.getpen()
  • 返回海龟自己.
查询屏幕:getscreen
turtle.getscreen()
  • 返回海龟所在的沙滩,能用于调用其方法.
设定undobuffer:setundobuffer
turtle.setundobuffer(size)
Parameters: size – an integer or None
  • 设定一个undobuffer,记录最多size步可以由undo反悔的海龟操作.
  • 如果size为None,则关闭这个buffer.
查询undobuffer:undobufferentries
turtle.undobufferentries()
  • 返回undobuffer中现在有多少步.

Screen/TurtleScreen操作

窗口控制

背景色:bgcolor
turtle.bgcolor(*args)
Parameters: args – a color string or three numbers in the range 0..colormode or a 3-tuple of such numbers
  • 改变屏幕背景色(无参数则返回当前背景色.)
背景图:bgpic
turtle.bgpic(picname=None)
Parameters: picname – a string, name of a gif-file or "nopic", or None
  • 设定或返回背景图,picname可以是文件名,如果为’nopic’则删除背景图.
窗口size:screensize
turtle.screensize(canvwidth=None, canvheight=None, bg=None)
Parameters: 
canvwidth – positive integer, new width of canvas in pixels
canvheight – positive integer, new height of canvas in pixels
bg – colorstring or color-tuple, new background color
  • 设定窗口宽\高\背景色.
world坐标:setworldcoordinates
turtle.setworldcoordinates(llx, lly, urx, ury)
Parameters: 
llx – a number, x-coordinate of lower left corner of canvas
lly – a number, y-coordinate of lower left corner of canvas
urx – a number, x-coordinate of upper right corner of canvas
ury – a number, y-coordinate of upper right corner of canvas
  • 通过左下\右上两个点的坐标来设定world坐标系统,并切换到world模式(非world模式会reset).
  • 如果已经是world模式,则所有的绘制会在新坐标下重绘.

动画操作

延迟:delay
turtle.delay(delay=None)
Parameters: delay – positive integer
  • 设置绘画延迟时间(毫秒)
快速绘图:tracer/update
turtle.tracer(n=None, delay=None)
Parameters: 
n – nonnegative integer
delay – nonnegative integer
turtle.update()
  • tracer:关掉\开启绘图动画.n:每n次屏幕更新显示一次,delay:每次延时.
  • update:屏幕更新.

输入操作

弹出文本输入框:textinput
turtle.textinput(title, prompt)
Parameters: 
title – string
prompt – string
  • 弹出一个文本输入框,并返回输入的字符串.
弹出数字输入框:numinput
turtle.numinput(title, prompt, default=None, minval=None, maxval=None)
Parameters: 
title – string
prompt – string
default – number (optional)
minval – number (optional)
maxval – number (optional)
  • 弹出一个数字输入框,并返回输入的数字.

模式设定

绘画模式:mode
turtle.mode(mode=None)
Parameters: mode – one of the strings “standard”, “logo” or “world”
  • 设定或返回绘画模式.
ModeInitial turtle headingpositive angles
“standard”to the right (east)counterclockwise
“logo”upward (north)clockwise
颜色模式:colormode
turtle.colormode(cmode=None)
Parameters: cmode – one of the values 1.0 or 255
  • 设定或返回当前颜色模式.
查询画布:getcanvas
turtle.getcanvas()
  • 返回当前画布.
查询图形:getshapes
turtle.getshapes()
  • 返回当前所有可用的海龟图形的名称列表
注册新图形:register_shape/addshape
turtle.register_shape(name, shape=None)
turtle.addshape(name, shape=None)
  • 注册一个新的图形.
查询海龟:turtles
turtle.turtles()
  • 返回当前屏幕上所有的海龟.
查询屏幕尺寸:window_height/window_width
turtle.window_height()
turtle.window_width()
  • 返回当前屏幕高/宽.

屏幕特有操作(非继承自TurtleScreen)

关闭海龟绘图窗口:bye
turtle.bye()
点击鼠标后关闭:exitonclick
turtle.exitonclick()
  • 点击鼠标后关闭窗口.
屏幕设定:setup
turtle.setup(width=_CFG["width"], height=_CFG["height"], startx=_CFG["leftright"], starty=_CFG["topbottom"])
Parameters: 
width – if an integer, a size in pixels, if a float, a fraction of the screen; default is 50% of screen
height – if an integer, the height in pixels, if a float, a fraction of the screen; default is 75% of screen
startx – if positive, starting position in pixels from the left edge of the screen, if negative from the right edge, if None, center window horizontally
starty – if positive, starting position in pixels from the top edge of the screen, if negative from the bottom edge, if None, center window vertically
  • 设定屏幕的size以及位置.
屏幕标题:title
turtle.title(titlestring)
Parameters: titlestring – a string that is shown in the titlebar of the turtle graphics window
  • 设定屏幕标题.

公共类

造龟:RawTurtle/RawPen
class turtle.RawTurtle(canvas)
class turtle.RawPen(canvas)
Parameters: canvas – a tkinter.Canvas, a ScrolledCanvas or a TurtleScreen
  • 在给定画布上造一个龟.
默认造龟:Turtle
class turtle.Turtle
  • RawTurtle的子类,在默认屏幕上造龟.
海龟屏:TurtleScreen
class turtle.TurtleScreen(cv)
Parameters: cv – a tkinter.Canvas
  • 提供一个海龟屏.
屏幕:Screen
class turtle.Screen
  • 海龟屏的子类,添加了上一节里的新功能(bye/title等)
卷屏:ScrolledCanvas
class turtle.ScrolledCanvas(master)
Parameters: master – some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas with scrollbars added
Used by class Screen, which thus automatically provides a ScrolledCanvas as playground for the turtles.
图形类:Shape
class turtle.Shape(type_, data)
Parameters: type_ – one of the strings “polygon”, “image”, “compound”

Shape.addcomponent(poly, fill, outline=None)
Parameters: 
poly – a polygon, i.e. a tuple of pairs of numbers
fill – a color the poly will be filled with
outline – a color for the poly’s outline (if given)
  • 提供了储存图形的数据结构.
type_data
“polygon”a polygon-tuple, i.e. a tuple of pairs of coordinates
“image”an image (in this form only used internally!)
“compound”None (a compound shape has to be constructed using the addcomponent() method)
向量:Vec2D
class turtle.Vec2D(x, y)

a + b vector addition
a - b vector subtraction
a * b inner product
k * a and a * k multiplication with scalar
abs(a) absolute value of a
a.rotate(angle) rotation
  • 提供了一些二维向量运算.

转换语言:write_docstringdict

turtle.write_docstringdict(filename="turtle_docstringdict")
Parameters: filename – a string, used as filename
Create and write docstring-dictionary to a Python script with the given filename. This function has to be called explicitly (it is not used by the turtle graphics classes). The docstring dictionary will be written to the Python script filename.py. It is intended to serve as a template for translation of the docstrings into different languages.

turtle配置文件

  • 可以建一个turtle.cfg,每次import的时候会自动导入.
  • cfg样式:
width = 0.5
height = 0.75
leftright = None
topbottom = None
canvwidth = 400
canvheight = 300
mode = standard
colormode = 1.0
delay = 10
undobuffersize = 1000
shape = classic
pencolor = black
fillcolor = black
resizemode = noresize
visible = True
language = english
exampleturtle = turtle
examplescreen = screen
title = Python Turtle Graphics
using_IDLE = False
  • 前四行用于Screen.setup()
  • 5/6行用于Screen.screensize()
  • shape 可以是任意内建图形.
  • fillcolor 用于填充颜色.
  • Lib/turtledemo目录下有一个turtle.cfg可以用来参考学习.

漂亮的turtledemo

  • python -m turtledemo可以开启演示demo的总控台.
  • python -m turtledemo.demo名称可以直接打开对应的演示demo
NameDescriptionFeatures
bytedesigncomplex classical turtle graphics patterntracer(), delay, update()
chaosgraphs Verhulst dynamics, shows that computer’s computations can generate results sometimes against the common sense expectationsworld coordinates
clockanalog clock showing time of your computerturtles as clock’s hands, ontimer
colormixerexperiment with r, g, bondrag()
forest3 breadth-first treesrandomization
fractalcurvesHilbert & Koch curvesrecursion
lindenmayerethnomathematics (indian kolams)L-System
minimal_hanoiTowers of HanoiRectangular Turtles as Hanoi discs (shape, shapesize)
nimplay the classical nim game with three heaps of sticks against the computer.turtles as nimsticks, event driven (mouse, keyboard)
paintsuper minimalistic drawing programonclick()
peaceelementaryturtle: appearance and animation
penroseaperiodic tiling with kites and dartsstamp()
planet_and_moonsimulation of gravitational systemcompound shapes, Vec2D
round_dancedancing turtles rotating pairwise in opposite directioncompound shapes, clone shapesize, tilt, get_shapepoly, update
sorting_animatevisual demonstration of different sorting methodssimple alignment, randomization
treea (graphical) breadth first tree (using generators)clone()
two_canvasessimple designturtles on two canvases
wikipediaa pattern from the wikipedia article on turtle graphicsclone(), undo()
yinyanganother elementary examplecircle()
map_t.fillcolor(r, g, b) # 指定填充颜色 File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 2288, in fillcolor color = self._colorstr(args) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 2696, in _colorstr return self.screen._colorstr(args) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 1166, in _colorstr raise TurtleGraphicsError("bad color sequence: %s" % str(color)) turtle.TurtleGraphicsError: bad color sequence: (122, 167, 200) Exception in Tkinter callback Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1705, in __call__ return self.func(*args) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 686, in eventfun fun() File "E:\turtle.py", line 639, in <lambda> turtle.onkey(lambda: generate_random_maze_display(15, 15), "2") File "E:\turtle.py", line 568, in generate_random_maze_display draw_map(mazeList) File "E:\turtle.py", line 164, in draw_map draw_square(ci, ri, &#39;1&#39;) # 绘制墙 File "E:\turtle.py", line 139, in draw_square map_t.fillcolor(r, g, b) # 指定填充颜色 File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 2288, in fillcolor color = self._colorstr(args) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 2696, in _colorstr return self.screen._colorstr(args) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 1166, in _colorstr raise TurtleGraphicsError("bad color sequence: %s" % str(color)) turtle.TurtleGraphicsError: bad color sequence: (119, 157, 205) Exception in Tkinter callback Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1705, in __call__ return self.func(*args) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 686, in eventfun fun() File "E:\turtle.py", line 640, in <lambda> turtle.onkey(lambda: generate_random_maze_display(21, 21), "3") File "E:\turtle.py", line 562, in generate_random_maze_display turtle.title("随机迷宫挑战") File "<string>", line 5, in title turtle.Terminator Exception in Tkinter callback Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1705, in __call__ return self.func(*args) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 686, in eventfun fun() File "E:\turtle.py", line 639, in <lambda> turtle.onkey(lambda: generate_random_maze_display(15, 15), "2") File "E:\turtle.py", line 568, in generate_random_maze_display draw_map(mazeList) File "E:\turtle.py", line 164, in draw_map draw_square(ci, ri, &#39;1&#39;) # 绘制墙 File "E:\turtle.py", line 134, in draw_square map_t.goto(tx, ty) # 移动到绘图起点(正方形的左上角) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 1776, in goto self._goto(Vec2D(x, y)) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 3158, in _goto screen._pointlist(self.currentLineItem), File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 755, in _pointlist cl = self.cv.coords(item) File "<string>", line 1, in coords File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 2469, in coords self.tk.call((self._w, &#39;coords&#39;) + args))] _tkinter.TclError: invalid command name ".!canvas" Exception in Tkinter callback Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1705, in __call__ return self.func(*args) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 686, in eventfun fun() File "E:\turtle.py", line 640, in <lambda> turtle.onkey(lambda: generate_random_maze_display(21, 21), "3") File "E:\turtle.py", line 565, in generate_random_maze_display draw_game_info() File "E:\turtle.py", line 388, in draw_game_info level_t = turtle.Turtle() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 3816, in __init__ visible=visible) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 2557, in __init__ self._update() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 2660, in _update self._update_data() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 2646, in _update_data self.screen._incrementudc() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 1292, in _incrementudc raise Terminator turtle.Terminator Exception in Tkinter callback Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1705, in __call__ return self.func(*args) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 686, in eventfun fun() File "E:\turtle.py", line 639, in <lambda> turtle.onkey(lambda: generate_random_maze_display(15, 15), "2") File "E:\turtle.py", line 565, in generate_random_maze_display draw_game_info() File "E:\turtle.py", line 403, in draw_game_info hint_t.goto(0, -R * cell_size / 2 - 40) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 1776, in goto self._goto(Vec2D(x, y)) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 3179, in _goto self._update() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 2660, in _update self._update_data() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 2646, in _update_data self.screen._incrementudc() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\turtle.py", line 1292, in _incrementudc raise Terminator turtle.Terminator,我报错了,修改后的完整代阿玛
08-25
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值