파이썬 프로그래밍의 기초 함수

2018. 1. 30. 02:35Python-이론/python

함수


대부분에 언어에서 반복되는 부분을 없애고 편하게 사용하기 위해 함수를 만들어 준다. 그리고 원하는 결과를 위해 데이터들을 입력해주고 입력된 데이터들을 가공해서 원하는 결과를 반환해준다. 여기서 함수는 데이터를 가공해주는 역활을 한다.

 
def 함수 이름 (입력될 인수들):
    수행될 문장들
    수행될 문장들
#예를 들어
def sum(a,b):
    return a+b

함수 sum은 함수의 이름이 sum이고 인수를 a와 b를 입력받아서 a+b를 반환해준다. 결론적으로 sum은 입력받은 a,b를 더해주는 행동(가공)을하여 반환해주는 것이다..


입력 값 없이 함수 만들고 호출하기
def say():
    return "hi"
print(say())

hi

인수가 무조건 필요한 것은 아니다.


만약에 여러개의 입력값이 필요한 경우

함수에 여러개의 인자가 필요할 경우 함수옆에 모든 인수 개수만큼 인수를 적는 것이 많이 힘들 것이다. 파이썬은 이런 문제를 해결하기 위해서 해결책을 제공해준다.

def sum2(*args):
    sum = 0
    for i in args
        sum = sum + i
    return sum

*args 인수 옆에 *를 붙여주면 함수를 호출할때 여러개의 인자를 받을 수 있다.

print(sum2(2,3,4,5,6,7,8,9)
49

입력인수에 초기값 미리 설정하기

함수에 초기값을 미리 설정해볼 것이다.

def hello (name, old, man = true):
    print("나의 이름은 %s 입니다." %name)
    print("나의 나이는 %d 입니다."%old)
    if man :
        print("남자 입니다")
    else: 
        print("여자 입니다")

위와 같이 함수를 정의해줄 때 인자에 값을 미리 정의해놓으면 된다. 호출 해줄 때 hello("이상훈",22,true) hello("이상훈",22) 이런식으로 사용해주면 된다. 만약 true말고 다른 값을 쓰고 싶다면 호출할 때 hello("이상훈",22,false)로 해주면 된다.


함수 안에서 선언된 변수의 효력 범위

보통 함수의 인자나 함수안에서 선언된 변수는 함수안에만 사용이 가능하다.

a = 1
def add(a):
    a = a+1

add (a)
print(a)

위의 예제의 결과는 1이 나온다. 그 이유는 함수안에서만 효력이 있기 때문이다. 그렇다면 1을 증가시키려면 두가지 방법이 있다.

1. return 이용하기
a = 1
def add (a)
    a= a+1
    return a

a= add(a)
print(a)

2

위의 예제에서는 1을 더한 값을 반환해주기 때문에 2가 출력된다.


2. global 명령어 이용하기
a = 1
def add():
    global a
    a = a+1

add()
print(a)

global을 사용해주면 함수 밖에 있는 변수를 함수내에서도 사용 할 수 있게 해주는 명령어이다.