Python turtle.pensize()没有改变笔的大小

时间:2017-12-05 04:34:40

标签: python python-2.x turtle-graphics

我正在尝试在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:

首次发布此处,如果我可以更具体或添加其他信息,请告诉我。

2 个答案:

答案 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

对我有用。