1

これは、IDLE および Windows 7 RC1 で発生します (それが役立つ場合)。モジュールは次のとおりです。

    from math import *
from TurtleWorld import *

world = TurtleWorld()
bob = Turtle()
bob.delay = 0.1

def polyline(turtle, length, n, angle):
    for i in range(n):
        fd(turtle, length)
        rt(turtle, angle)

def polygon(turtle, length, n):
    """ polygon uses a turtle to draw a polygon
        with n sides of the given length.
    """
    angle = 360.0/n
    polyline(turtle, length, n, angle)

def spokes(turtle, length_of_spoke, number_of_spokes):
    angle = 360.0/number_of_spokes
    for i in range(number_of_spokes):
       turtle.fd(length_of_spoke)
       turtle.pd
       turtle.bk(length_of_spoke)
       turtle.rt(angle)
       turtle.pu

def pie(turtle, length_of_side, number_of_sides):
    """pie uses a turtle to draw a polygon
        with sides of the given length and with the given
        number of sides.
    """
    angle = 360.0/number_of_sides
    length_of_spoke = length_of_side/(2*sin(pi/180*angle/2)
    spokes(turtle, length_of_spoke, number_of_sides)
    turtle.pd
    turtle.fd(length_of_spoke)
    turtle.lt(270-angle/2)
    polygon(turtle, length_of_side, number_of_sides)

spokes(bob, 30, 11)

wait_for_user()

プログラムを実行すると、「プログラムにエラーがあります: 構文が無効です」というエラーが表示されます。次に IDLE は、パイ関数内の「スポーク」という単語を強調表示します。

パイ関数全体をコメントアウトすると、プログラムは完全に実行されます。

4

4 に答える 4

3

一見すると、spokes() を呼び出す前に、行末に閉じ括弧がありませんか?

length_of_spoke = length_of_side/(2*sin(pi/180*angle/2))

それ以外の

length_of_spoke = length_of_side/(2*sin(pi/180*angle/2)
于 2009-11-06T19:04:36.977 に答える
2

他の人が実際の構文エラーをすでに指摘しているので、それについてはこれ以上言いません。1 つ付け加えておきますが、構文エラーが発生した場合、最初に確認するのは関数のの行です。通常、それは括弧の欠落や間違った場所のコンマのようなものです。

于 2009-11-06T19:08:03.553 に答える