2017-10-31 40 views
0

私はカメ(t)に星を描くための小さなコードを書いています。私が持っているコードの一般的な周囲にとどまる必要がありますが、私は誰かが見て、何がうまくいかないかを見たいと思います。私は新しいプログラマーなので、私に同行してください。"drawStar"を使ってPythonに星を描く

import turtle 

def drawStar(n, l): 
    """Get turtle t to draw a star with n sides at l length""" 
    for i in range(n): 
     t.forward(l) 
     t.left(36) 
     t.forward(l) 
     t.left(36) 

drawStar(5, 100) 

wn.exitonclick() 

それは問題がライン6 tが未定義であること(drawStar(5、100))

+0

't'は未定義です。 – alex

+0

私はこれらの事柄のいくつかを問題の別々の行に出すことはできません。私もそれを編集しようとしました。これを許してください。 – Anima

+0

Pythonコンパイラはエラーを教えてくれますか? – alex

答えて

0

問題であることを述べています。 tが直接turtleモジュールからでいくつかのメソッドを呼び出すことになっている場合は、使用します。

import turtle as t 
1

を議論し、構文エラーに加えて、あなたは論理エラーを持っています。 t.left(36)ステートメントまたはそれ以降のt.left(144)ステートメントを検討してください。渡された角度は、実際にはnの関数であり、このルーチンはnの1つの値に対してのみ動作することを意味しています。考えてみましょう:

drawStar(7, 100) 

あなたは7芒星、(重複)5芒星のほんの一部を得ることはありません。あなたのdocstringがnについて主張しているものではありません。私たちが代わりに行う場合:私たちが望む場合

import turtle 

def drawStar(n, l): 
    """Get turtle to draw a star with n sides of l length""" 

    for _ in range(n): 
     turtle.forward(l) 
     turtle.left(2 * 360/n) # calculate the angle 

drawStar(7, 100) 

turtle.exitonclick() 

は、我々はまだ私達の5芒星を得ることができますが、我々はまた、7芒星を取得することができます

enter image description here

残念ながら、このロジックは奇数のみのために働くのnの値。偶数値は、n/2の正多角形を返します。偶数の点を持つ星を生成するには別の式が必要です...

関連する問題