본문으로 바로가기

Python :: 함수 - 내용

category Programing/Python 2017. 6. 12. 04:05

여러 기능을 모아놓은 묶음을 함수라고 한다.


def name(parameter):

contents


선언부는 위와같은 형태로 사용하면 될것 같다.


아래는 다각형을 여러번 그리는 함수코드이다.


import turtle

t=turtle.Turtle()


def polygon(n,length):

    for _ in range(n):

        t.fd(length)

        t.lt(360/n)


for _ in range(10):

    t.lt(20)

    polygon(6,100)



함수 내에서 전역변수를 가져와 사용하고 싶다면 아래와 같이 선언시 앞에 global을 붙여주면 된다.

def func():
    global a
    print(a)

a=10
func()
print(a)

함수에 인자값을 넘길때 아래와 같이 키워드를 이용하면 순서를 바꿔줄 수 있다.

def func(a,b,c):
    print(a, b, c)

func(c=10, a=7, b=20)

클릭하는곳에 사각형 그리기

import turtle
t=turtle.Turtle()
s=turtle.Screen()

def square(length):
    for _ in range(4):
        t.fd(length)
        t.lt(90)

def drawit(x,y):
    t.up()
    t.goto(x,y)
    t.down()
    t.begin_fill()
    t.color("green")
    square(50)
    t.end_fill()

s.onscreenclick(drawit)

그림그리는 프로그램을 만들어보자

import turtle
t=turtle.Turtle()
s=turtle.Screen()

def square(length):
    for _ in range(4):
        t.fd(length)
        t.lt(90)

def draw(x,y):
    t.goto(x,y)

s.onscreenclick(draw)

s.onkey(t.up,"Up")
s.onkey(t.down,"Down")
s.listen()

재귀함수를 통한 나무그리기

import turtle
t=turtle.Turtle()

def tree(length):
    if length>5:
        t.fd(length)
        t.right(20)
        tree(length-15)
        t.lt(40)
        tree(length-15)
        t.rt(20)
        t.bk(length)

t.left(90)
t.color("green")
t.speed(0)
tree(90)