2017-10-31 2 views
0

나는 거북이 (t)에 별을 그리게하는 작은 코드를 작성했습니다. 내가 가지고있는 코드의 일반적인 경계 내에서 머무를 필요가 있지만 누군가가 한 번 봐보고 잘못된 것을 알기를 바랍니다. 나는 새로운 프로그래머이다. 그래서 나와 맺어 라."drawStar"를 사용하여 파이썬에 별을 그리기

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 행 (drawStar (5, 100))가 정의되지 t 문제 있음

+0

't'는 정의되지 않습니다. – alex

+0

나는이 문제 중 일부를 질문에 대한 별도의 줄에 쓸 수 없습니다. 심지어 편집하려고했습니다. 실례합니다. – Anima

+0

파이썬 컴파일러가 오류를 알려주는 것은 무엇입니까? – alex

답변

0

에 있다고 말한다. t 직접 turtle 모듈에서 일부 메소드를 호출하도록되어있는 경우, 사용

import turtle as t 
1

을 논의 구문 오류 외에도, 당신은 논리 오류가 있습니다. t.left(36) 문 또는 그 이후의 t.left(144) 문을 고려하십시오. 전달 된 각도는 실제로 n의 함수이며이 루틴이 n의 한 값에만 작동한다는 것을 의미하므로 상수로 만듭니다. 고려 :

drawStar(7, 100) 

당신은 일곱 뾰족한 스타, A (복제) 다섯 뾰족한 스타의 단지 일부분을하지 않습니다. 당신의 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() 

우리는 여전히 우리 다섯 뾰족한 별을 얻을 수 있지만, 우리는 또한 일곱 지적 스타 얻을 수 있습니다 :

enter image description here

불행하게도,이 논리는 이상한 작동을 n의 값. 짝수 값은 n/2면의 정다각형을 다시 돌려줍니다. 짝수 개의 점으로 별을 생성하려면 다른 공식이 필요합니다 ...

관련 문제