파이썬 함수 사용법
전 강좌에 이어 여러가지 함수 쓰임새를 소개 하겠다.
이번엔 여러 인자값을 받는 함수에 대해 설명 하겠다.
여러 인자를 받는 함수
더하기 함수 예제
==========================================================
#!/usr/bin/python
# -*- coding: utf-8 -*-
def PrintAllValue(*args) :
print "start"
for i in args :
print i
print "end"
PrintAllValue(6,7)
PrintAllValue(1,2,3)
==========================================================
결과 :
start
6
7
end
start
1
2
3
end
==========================================================
위와 같이 함수에 인자를 몇개를 줘야 할지 모를때
함수 인자 부분에 *변수명 즉
def 함수명(*인자명) 으로 정의 하면 인자 여러 인자를 받아서 처리 할 수 있다.
함수의 인자에 초기 값을 설정하여 사용자가 함수 호출 시 인자를 넣지 않아도 동작을
하도록 설정 할 수 있다.
인자 초기 값 설정
==========================================================
#!/usr/bin/python
# -*- coding: utf-8 -*-
def PrintValue(a=1,b=2,c=3) :
print "a=%d,b=%d,c=%d"%(a,b,c)
PrintValue()
PrintValue(4)
PrintValue(4,5)
PrintValue(4,5,6)
==========================================================
결과 :
a=1,b=2,c=3
a=4,b=2,c=3
a=4,b=5,c=3
a=4,b=5,c=6
==========================================================
총 함수를 4번 호출 한다.
첫번째 함수( PrintValue() )는 인자 값을 넣지 않아 함수의 초기값
def PrintValue(a=1,b=2,c=3) 이 그대로 출력 이 되었다.
우선 결과를 보면
a=1,b=2,c=3 ===========> PrintValue() 인자 값이 없어 초기에 설정된 a=1,b=2,c=3 출력
a=4,b=2,c=3 ===========> PrintValue(4) 첫 번째 인자만 넣어서 a가 4로 들어가 a=4,b=2,c=3 출력
a=4,b=5,c=3 ===========> PrintValue(4,5)
a=4,b=5,c=6 ===========> PrintValue(4,5,6) 3개의 인자값을 다 넣어서 초기에 설정된 값이 아닌 a=4,b=5,c=6 출력
퀴즈를 풀어보자
==========================================================
#!/usr/bin/python
# -*- coding: utf-8 -*-
val = 0
def globalexam1(val) :
val = val + 1
globalexam1(val)
print val
==========================================================
결과 :
?? 풀어보자..
==========================================================
결과 값이 무엇일까?
힌트는 print val에 대한 출력 값이다.
....
함수 안에서 val = val + 1을 하며 val의 초기 값은 0이다.
그럼 print 의 결과 값은 0 + 1 을 더한 값이니 1일 것이라 생각 들겟지만
정답은 0이다.
왜그럴까? 함수 밖에 변수 명과 함수 안의 변수 명이 같더라도 파이썬에서는
다른 값으로 인식한다.
즉 함수 안에 변수 값과 함수 밖의 변수 명이 같아도 서로 다른 값이다.
val = val + 1 계산을 해도 해당 변수는 함수가 종료 되면 사라지는 변수 값이다.
그래서 함수 밖의 val 값은 어떠한 계산이 되지 않는다.
그럼 함수 밖의 값을 함수 안에서 사용하려면 어떻게 할까?
global의 사용법
==========================================================
#!/usr/bin/python
# -*- coding: utf-8 -*-
val = 0
def globalexam3() :
global val
val = val + 1
val = 0
globalexam3()
print val
==========================================================
결과 :
1
==========================================================
함수 안에서 함수 밖의 변수를 사용하고 싶으면 global이라는 예약어를 사용 하면 된다.
함수 안에서 계산 되었지만 global로 선언 되어서 출력값이 0이 아닌 1로 되었다.
이전 함수 설명 가기 ====> click
'프로그램 > Python' 카테고리의 다른 글
[Python]파일(File) 사용법 (0) | 2016.09.16 |
---|---|
[Python]사용자 입력 (0) | 2016.09.16 |
[Python] 함수 (2) (0) | 2016.09.11 |
[Python] 함수 (1) (0) | 2016.09.11 |
[Python] 제어문 for (0) | 2016.09.11 |