Google Colab Laboratory: AttributeError: модуль 'ColabTurtle.Turtle' не имеет атрибута 'circle' - PullRequest
0 голосов
/ 06 января 2020

У меня есть домашнее задание черепахи. но я не получил команду круга на работу. Я действительно хочу продолжать использовать Google Colab.

(я нашел другие сообщения с той же проблемой, но их решение изменить имя библиотеки / файла не работает для меня)

(я также пробовал разные методы импорта и имена и создал новый файл, все это вызывает ошибку)

!pip3 install ColabTurtle
import ColabTurtle.Turtle as t
t.initializeTurtle() 

t.forward(25)
t.left(45)
t.circle(70)

вперед и влево сработало, но t.circle (70) вызывает ошибку: AttributeError: модуль 'ColabTurtle.Turtle' не имеет атрибута 'circle'

Вот скриншот imgur: https://imgur.com/jvGjwwt

вот ссылка, которую вы можете попробовать в онлайн-файле: https://colab.research.google.com/drive/1WzSV6ZotxMg85BMeiuc8W5Xq3wiYxwev

Ответы [ 2 ]

0 голосов
/ 07 января 2020

функция круга недоступна в библиотеке черепах Google colab Laboratory. Я как бы заново создал круг с помощью функции cdlane:

круг должен нарисовать круг только с указанным радиусом

!pip3 install ColabTurtle
import ColabTurtle.Turtle as t
t.initializeTurtle()

from math import pi

def tcircle(radius):

    #function could be summarized into:
    #regular_polygon(int((2 * pi * radius)/9)),9)

    #explained step by step:
    """draws a regular polygon of n sides
    that is supposed to appear like a circle.
    n is set to 9 for fast drawing time.
    it calculates rounded side length from n and radius"""
    #circumference (c)= 2*pi*radius
    c = 2 * pi * radius


    #n = amount of lines or corners, it defines the accuracy of the circle
    n = 9 # lower number to decrease drawing time (can be any float or int)

    #circumference (c) = ca.  l * n
    #l = length of individual lines 
    l = c / n

    regular_polygon(int(l),n)


def regular_polygon(l, n):
    """draws a regular polygon of n amount sides of length l
    that is supposed to appear like a circle.
    function by cdlane from a stackoverflow post"""
    for _ in range(n):
        t.forward(l)
        t.left(360 / n)

#circle_example
t.forward(35)
tcircle(45)

снимок экрана моего решения, как будет выглядеть circle_example: https://imgur.com/LXgaB4v

0 голосов
/ 06 января 2020

Были ли вам предоставлены какие-либо документы? Насколько я могу судить, у ColabTurtle нет метода circle(), и сообщение об ошибке верно. Глядя на источник Turtle.py , методы, связанные с черепахой, включают:

forward(units)
backward(units)
right(degrees)
face(degrees)
left(degrees)
penup()
pendown()
speed(speed)
setx(x)
sety(y)
getx()
gety()
goto(x, y)
showturtle()
hideturtle()
bgcolor(color)
color(color)
width(width)

Но нет circle(). Это не библиотека turtle.py , которая поставляется с Python, которая имеет метод circle() и многие другие. И даже не правильное подмножество.

Однако это не значит, что вы не можете рисовать круги, вам просто нужно определить код, чтобы сделать это в терминах методов черепах, которые у вас есть. Вот мое предположение на такое, хотя я не в состоянии полностью проверить это:

import ColabTurtle.Turtle as t

def polygon(length, n):
    for _ in range(n):
        t.forward(length)
        t.left(360 / n)

t.initializeTurtle()

polygon(10, 60)
...