我正在尝试在Python 2.7中更改笔的大小。我知道pensize()
命令可以与width()
互换(两者都不起作用),但无论我输入什么值,笔的大小都保持不变。我们使用WingIDE在Python中编程,尽管使用Python IDE并不能解决问题。
我在3台机器上测试了这个,同样的问题。我玩过turtle.pensize()
的定位,尺寸保持不变。下面的代码将绘制字母" I"并从第二封信开始:
import turtle
t = turtle.Pen()
turtle.bgcolor("black")
turtle.pensize(800)
t.reset()
t.color("green");
t.pu();
t.setx(-450);
t.pd();
t.left(90);
t.forward(120);
t.pu();
t.right(90);
t.forward(90);
t.right(90);
t.pd();
#I
t.forward(120);
t.left(90);
t.forward(20);
reset()
我没有收到错误,但我会发布WingIDE调试器显示的内容:
> 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)]
Python Type "help", "copyright", "credits" or "license" for more information.
[evaluate JAMES ILLUMINATI TURTLE FINISHED p1.py]
Traceback (most recent call last):
File "C:/Users/Com Lab 16/Dropbox/Student's Curriculum Folder/0. Student Files/James Dundon/JAMES ILLUMINATI TURTLE FINISHED p1.py", line 50, in <module>
t.right(90);
File "c:\Python27\Lib\lib-tk\turtle.py", line 1594, in right
self._rotate(-angle)
File "c:\Python27\Lib\lib-tk\turtle.py", line 3109, in _rotate
self._update()
File "c:\Python27\Lib\lib-tk\turtle.py", line 2565, in _update
self._update_data()
File "c:\Python27\Lib\lib-tk\turtle.py", line 2551, in _update_data
self.screen._incrementudc()
File "c:\Python27\Lib\lib-tk\turtle.py", line 1240, in _incrementudc
raise Terminator
turtle.Terminator:
首次发布此处,如果我可以更具体或添加其他信息,请告诉我。
答案 0 :(得分:0)
无论笔数多少,笔的大小都保持不变 输入
好吧,事实上,您应该使用两只不同的乌龟:
t = turtle.Pen()
turtle.bgcolor("black")
turtle.pensize(800)
...
t.forward(120)
您误将乌龟的功能接口与乌龟的面向对象接口混合在一起的错误。您创建了自己的乌龟t
,但更改了 default 乌龟的笔大小。如果要更改乌龟的笔大小,请执行以下操作:
t.pensize(800)
这是一个常见错误,因此我建议Python turtle程序员使用此导入:
from turtle import Screen, Turtle
它加载了面向对象的代码,但阻塞了功能接口。解决此问题后,您需要在调用reset()
撤消pensize()
的注释中解决@jasonharper提出的问题,并且在程序中实际上并不需要。您的代码进行了相应的重写:
from turtle import Screen, Turtle, mainloop
screen = Screen()
screen.bgcolor('black')
t = Turtle()
t.pensize(8)
t.color("green")
t.penup()
t.setx(-450)
t.pendown()
t.left(90)
t.forward(120)
t.penup()
t.right(90)
t.forward(90)
t.right(90)
t.pendown()
t.forward(120)
t.left(90)
t.forward(20)
mainloop() # screen.mainloop() for Python 3
答案 1 :(得分:0)
您可以尝试:
guildMemberRemove
对我有用。