[Python] 함수(2)
Variable scope(변수의 범위)
- 변수가 참조할 수 있는 코드 상의 범위 명시
- 함수 안의 변수는 해당 코드 블록이 종료되면 소멸
- 특정 코드 블록 안에서 선언된 변수를 지역변수(local variable) 이라고 함
- 프로그램의 가장 상단에서 정의되어 프로그램이 종료될 때까지 유지되는 변수를 전역 변수(global variable)이라고 함
- 같은 이름의 지역변수와 전역 변수가 존재한다면 지역변수가 더 우선순위
num1 = 10
num2 = 30
def test(num1, num2):
print(num1, num2)
return num1 + num2
test(30, 40)
print(num1, num2)
30 40
10 30
Variable length argument (가변 길이 인자)
- 전달되는 parameter의 갯수가 고정적이지 않은 경우 사용
- 예)
- print 함수
- format 함수
print()
print(1)
print(1,2)
print(1,2,3)
print(1,2,3,4)
print(1,2,3,4,5)
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
가변길이 파라미터를 받는 함수 정의
def test(*x):
print(type(x))
test()
<class 'tuple'>
def test(*x):
print(type(x))
test(10, 20)
<class 'tuple'>
def test(*x):
print(type(x))
test(10, 20, 30)
<class 'tuple'>
*args : parameter를 tuple의 형태로 전달
def test(*args):
for item in args:
print(item)
test(10, 20, 30, 40, 50, 60)
10
20
30
40
50
60
**kwargs : parameter를 dictionary 형태로 전달(named parameter)
- **가 붙은 경우에는 keyword parameter로 인식
- 함수 호출 시 parameter의 이름과 값을 함께 전달 가능
def test2(**x):
print(type(x))
test2()
<class 'dict'>
def test2(**kwargs):
for key, value in kwargs.items():
print('key: ', key, ', value: ', value)
test2(a=1, b=2, c=3, d=4, name='Bob')
key: a , value: 1
key: b , value: 2
key: c , value: 3
key: d , value: 4
key: name , value: Bob
- 가변 길이 함수의 대표적인 예 문자열 포맷 함수
- 여러 가지 값과 포맷을 이용해 문자열을 정의할 수 있음
- {} placeholder를 문자열 내에 위치시킨 다음 해당 위치에 format 함수로 전달된 값으로 대체하여 문자열 생성
- 포맷 구성은 다음 링크 참조 : 링크
a = '오늘의 기온: {today_temp}도, 강수확률: {today_prob}%'.format(today_temp=23, today_prob=50)
print(a)
댓글남기기