Python:Turtle模块无法在Python 3.6上运行我的代码

时间:2018-08-23 17:50:17

标签: python turtle-graphics

我在编写代码时遇到一些实践问题,因此turtle可以绘制正方形,圆形,多边形等。问题是,当我尝试运行代码时,turtle要么是:

  1. 没有回应,我不得不强行关闭
  2. 仅运行我的代码中绘制正方形的部分

我在Spyder上使用Python 3.6,并在每节末尾尝试使用turtle.mainloop()turtle.done(),但我一直遇到相同的问题。

这是我的代码:

import turtle
bob = turtle.Turtle()
print(bob)

bob.fd(100)
bob.lt(90)
bob.fd(100)
bob.lt(90)
bob.fd(100)
bob.lt(90)
bob.fd(100)
turtle.done()


for i in range(4):
    print("Hello!")

for i in range(4):
    bob.fd(100)
    bob.lt(90)
turtle.done()

t = turtle.Turtle()
def square(t):
    print(t)
    t.fd(100)
    t.lt(90)
    t.fd(100)
    t.lt(90)
    t.fd(100)
    t.lt(90)
    t.fd(100)
    t.lt(90)
turtle.done()

square(bob)
turtle.done()

t = turtle.Turtle()
def square(t):
    print(t)
    for i in range(4):
        t.fd(100)
        t.lt(90)
turtle.mainloop()
turtle.done()


t = turtle.Turtle()
def square(t, length):
    print(t)
    for i in range(4):
        t.fd(length)
        t.lt(90)

square(t, 200)

turtle.done()


t = turtle.Turtle()
def polygon(t, length, n):
    print(t)
    for i in range(4):
        t.fd(length)
        t.lt(360/n)

polygon(t, t = 200, n = 12)
turtle.done()

import math

def circle(t, r):
    circumference = 2 * math.pi * r
    n = 100
    length = circumference / n
    polygon(t, length, n)

circle(t, 100)
turtle.done()
"""draws a circle in turtle"""

2 个答案:

答案 0 :(得分:0)

您是在告诉计算机如何做事,但实际上并没有告诉它要做。运行circle(t)等。

您并没有始终运行所需的所有内容。仔细通读代码,并确保始终运行mainloop等。

答案 1 :(得分:0)

多个turtle.done()语句(当只应有一个语句时),并且各个代码段没有考虑其他代码段的绘制位置,这一事实使它看起来应该像单个文件中的单个程序的集合:

程序1:

import turtle

bob = turtle.Turtle()
print(bob)

bob.fd(100)
bob.lt(90)
bob.fd(100)
bob.lt(90)
bob.fd(100)
bob.lt(90)
bob.fd(100)

for i in range(4):
    print("Hello!")

turtle.done()

程序2:

import turtle

bob = turtle.Turtle()

for i in range(4):
    bob.fd(100)
    bob.lt(90)

turtle.done()

程序3:

import turtle

def square(t):
    print(t)
    t.fd(100)
    t.lt(90)
    t.fd(100)
    t.lt(90)
    t.fd(100)
    t.lt(90)
    t.fd(100)
    t.lt(90)

bob = turtle.Turtle()

square(bob)

turtle.done()

程序4:

import turtle

def square(t):
    print(t)
    for i in range(4):
        t.fd(100)
        t.lt(90)

t = turtle.Turtle()

square(t)

turtle.mainloop()

程序5:

import turtle

def square(t, length):
    print(t)
    for i in range(4):
        t.fd(length)
        t.lt(90)

t = turtle.Turtle()

square(t, 200)

turtle.done()

程序6:

import turtle
import math

def polygon(t, length, n):
    print(t)
    for i in range(n):
        t.fd(length)
        t.lt(360 / n)

t = turtle.Turtle()
polygon(t, length=50, n=12)

def circle(t, r):
    """draws a circle in turtle"""
    circumference = 2 * math.pi * r
    n = 100
    length = circumference / n
    polygon(t, length, n)

circle(t, 100)

turtle.done()

尝试将它们作为单独的程序运行在单独的文件中,并查看turtle是否对您更好。