Проблема с черепахой в Python (ошибка атрибута: объект «Черепаха» не имеет атрибута «трассировщик»)

#python

Вопрос:

Я пытался следовать этому уроку по созданию пиксельной графики в Turtle: https://www.101computing.net/pixel-art-in-python/

И я попытался скопировать их код, но когда я вставляю его в VS-код, я получаю следующую ошибку: AttributeError: объект «Черепаха» не имеет атрибута «трассировщик»

Запуск их редактора, похоже, работает.

Есть какие-нибудь идеи по поводу того, в чем может быть проблема? Все, что я сделал, это скопировал и вставил код (и исправил некоторые проблемы с отступами).

 #Pixel Art - http://www.101computing.net/pixel-art-in-python/

import turtle

myPen = turtle.Turtle()
myPen.tracer(0)
myPen.speed(0)
myPen.color("#000000")

# This function draws a box by drawing each side of the square and using the fill function
def box(intDim):
    myPen.begin_fill()
    # 0 deg.
    myPen.forward(intDim)
    myPen.left(90)
    # 90 deg.
    myPen.forward(intDim)
    myPen.left(90)
    # 180 deg.
    myPen.forward(intDim)
    myPen.left(90)
    # 270 deg.
    myPen.forward(intDim)
    myPen.end_fill()
    myPen.setheading(0)
    
boxSize = 10    
#Position myPen in top left area of the screen
myPen.penup()
myPen.forward(-100)
myPen.setheading(90)
myPen.forward(100)
myPen.setheading(0)

##Here is an example of how to draw a box   
#box(boxSize)

##Here are some instructions on how to move "myPen" around before drawing a box.
#myPen.setheading(0) #point to the right, 90 to go up, 180 to go to the left 270 to go down
#myPen.penup()
#myPen.forward(boxSize)
#myPen.pendown()

#Here is how your PixelArt is stored (using a "list of lists")

pixels     = [[0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0]]
pixels.append([0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0])
pixels.append([0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,0])
pixels.append([0,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0])
pixels.append([0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0])
pixels.append([1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1])
pixels.append([1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1])
pixels.append([1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1])
pixels.append([1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1])
pixels.append([1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1])
pixels.append([1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1])
pixels.append([1,1,1,1,0,0,1,0,0,1,0,0,1,1,1,1])
pixels.append([0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0])
pixels.append([0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0])
pixels.append([0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0])
pixels.append([0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0])

for i in range (0,len(pixels)):
    for j in range (0,len(pixels[i])):
      if pixels[i][j]==1:
        box(boxSize)
    myPen.penup()
    myPen.forward(boxSize)
    myPen.pendown() 
    myPen.setheading(270) 
    myPen.penup()
    myPen.forward(boxSize)
    myPen.setheading(180) 
    myPen.forward(boxSize*len(pixels[i]))
    myPen.setheading(0)
    myPen.pendown()
    
myPen.getscreen().update()  
    
 

Комментарии:

1. можете ли вы отредактировать код, который вы пробовали, для ответа на вопрос?

2. Готово, просто добавил его сейчас. Правка: удаление строки .tracer() заставляет ее работать, но да, я пытаюсь полностью пропустить анимацию.

Ответ №1:

Из документов

Изменения начиная с Python 2.6 Методы Turtle.tracer(), Turtle.window_width() и Turtle.window_height() были устранены. Методы с этими именами и функциями теперь доступны только как методы экрана.

Причина, по которой это работает в их онлайн-среде разработки, заключается в том, что у них есть более старая версия python.

Вы можете использовать turtle.tracer(0) .

Комментарии:

1. Ах, в этом есть смысл! Я должен был подумать о том, чтобы проверить, на какой версии Python они были. Спасибо!