"5. 함수"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
(새 문서: 함수의 사용에 대한 문서. 분류:기초) |
|||
1번째 줄: | 1번째 줄: | ||
함수의 사용에 대한 문서. | 함수의 사용에 대한 문서. | ||
+ | |||
+ | ==개요== | ||
+ | 인수를 넣어주면 일정한 연산을 수행해 내뱉는다. | ||
+ | |||
+ | 반복된 프로그래밍을 피하고 전체적인 가독성을 높이기 위해, 쉬운 유지보수를 위해 사용한다. | ||
+ | ==선언== | ||
+ | ===선언위치=== | ||
+ | 사용하기 전에 선언되어야 한다.(보통은 맨 위에) | ||
+ | |||
+ | 다른 언어와 달리 탭 1회나 띄어쓰기 4회로 함수 내 명령을 구분한다.(가독성을 위해) | ||
+ | {| class="wikitable" | ||
+ | !형태 | ||
+ | !방법 | ||
+ | |- | ||
+ | |기본형식 | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | def 함수명(인수값): | ||
+ | 명령 | ||
+ | </syntaxhighlight>인수가 없이 만들 수도 있다. | ||
+ | |- | ||
+ | |반환값 만들기 | ||
+ | |결과값을 반환하지 않는 함수를 프로시저라 부른다.<syntaxhighlight lang="python"> | ||
+ | def 함수명(인수값): | ||
+ | 명령 | ||
+ | return 반환값 | ||
+ | </syntaxhighlight><code>변수명 = 함수명(인수값)</code> 형태로 반환값을 객체에 담을 수도 있다. | ||
+ | |- | ||
+ | |인수가 여러개일 때 | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | def 함수명(인수1, 인수2): | ||
+ | 명령 | ||
+ | return 반환값 | ||
+ | </syntaxhighlight> | ||
+ | |- | ||
+ | |반환값이 여러개일 때 | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | def 함수명(인수1, 인수2, ...): | ||
+ | 명령 | ||
+ | return 반환값1, 반환값2, ... | ||
+ | </syntaxhighlight>여러 결과를 통째로 반환하면 튜플 형태로 받는다. | ||
+ | 변수1, 변수2 = 함수() # 이 형태로 사용하면 반환하는 순서대로 변수에 대입된다. | ||
+ | |- | ||
+ | |인수값을 특정할 수 없을 때 | ||
+ | 가변인수를 사용한다. | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | def 함수명(인수1, 인수2, ..., *인수): | ||
+ | 명령 | ||
+ | return 반환값1, 반환값2, ... | ||
+ | </syntaxhighlight>#가변인수는 가장 뒤에 두며, 이들은 튜플형태로 저장된다. | ||
+ | 튜플명은 인수명으로. | ||
+ | |- | ||
+ | |튜플이 아닌 딕셔너리로 가변인수 | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | def 함수명(인수1, 인수2, ..., **인수): | ||
+ | 명령 | ||
+ | return 반환값1, 반환값2, ... | ||
+ | </syntaxhighlight>#딕셔너리 인수를 넣을 땐 <code>키=값</code> 형태로 기입한다. | ||
+ | |- | ||
+ | |인수에 기본값을 지정할 때 | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | def 함수명(인수1, 인수2=기본값): | ||
+ | 명령 | ||
+ | return 반환값 | ||
+ | </syntaxhighlight> | ||
+ | |- | ||
+ | |함수에 대한 설명을 넣을 때 | ||
+ | |함수값을 기입할 때 볼 수 있다.<syntaxhighlight lang="python"> | ||
+ | def 함수명(인수) | ||
+ | """함수에 대한 설명""" | ||
+ | 명령 | ||
+ | </syntaxhighlight> | ||
+ | |}함수 안에서 함수를 불러오는 등 다양하게 사용할 수 있다. | ||
+ | |||
+ | ===사용=== | ||
+ | 함수명(인수) 형태로 사용한다. | ||
+ | ===tip. 인수가 너무 많을 때=== | ||
+ | 인수가 너무 많을 때 중간에 새로운 인수를 끼워넣어 함수를 편집하게 되면 기존에 사용하던 명령이 어그러질 위험이 있다. 다시 고치기도 귀찮고. 그럴 땐 | ||
+ | |||
+ | <code>함수명(인수=입력값)</code>형태로 사용하면 인수의 순서를 고려하지 않고도 함수를 사용할 수 있다. | ||
+ | ==특성== | ||
+ | ===지역변수와 전역변수=== | ||
+ | 기본적으로 함수 내부에서 정해진 변수는 사용이 끝나면 지워진다. | ||
+ | |||
+ | ===전역변수의 사용=== | ||
+ | {| class="wikitable" | ||
+ | !에러 | ||
+ | !원인 | ||
+ | !해결법 | ||
+ | |- | ||
+ | |UnboundLocalError: local variable '변수명' referenced before assignment | ||
+ | |함수 밖의 전역변수를 인식하지 못했을 때. | ||
+ | |함수 초반에 | ||
+ | <code>global 변수명</code>을 넣어준다. | ||
+ | |} | ||
+ | ==ps== | ||
[[분류:기초]] | [[분류:기초]] |
2021년 3월 30일 (화) 20:05 판
함수의 사용에 대한 문서.
1 개요
인수를 넣어주면 일정한 연산을 수행해 내뱉는다.
반복된 프로그래밍을 피하고 전체적인 가독성을 높이기 위해, 쉬운 유지보수를 위해 사용한다.
2 선언
2.1 선언위치
사용하기 전에 선언되어야 한다.(보통은 맨 위에)
다른 언어와 달리 탭 1회나 띄어쓰기 4회로 함수 내 명령을 구분한다.(가독성을 위해)
형태 | 방법 |
---|---|
기본형식 | def 함수명(인수값):
명령
|
반환값 만들기 | 결과값을 반환하지 않는 함수를 프로시저라 부른다.def 함수명(인수값):
명령
return 반환값
변수명 = 함수명(인수값) 형태로 반환값을 객체에 담을 수도 있다.
|
인수가 여러개일 때 | def 함수명(인수1, 인수2):
명령
return 반환값
|
반환값이 여러개일 때 | def 함수명(인수1, 인수2, ...):
명령
return 반환값1, 반환값2, ...
변수1, 변수2 = 함수() # 이 형태로 사용하면 반환하는 순서대로 변수에 대입된다. |
인수값을 특정할 수 없을 때
가변인수를 사용한다. |
def 함수명(인수1, 인수2, ..., *인수):
명령
return 반환값1, 반환값2, ...
튜플명은 인수명으로. |
튜플이 아닌 딕셔너리로 가변인수 | def 함수명(인수1, 인수2, ..., **인수):
명령
return 반환값1, 반환값2, ...
키=값 형태로 기입한다.
|
인수에 기본값을 지정할 때 | def 함수명(인수1, 인수2=기본값):
명령
return 반환값
|
함수에 대한 설명을 넣을 때 | 함수값을 기입할 때 볼 수 있다.def 함수명(인수)
"""함수에 대한 설명"""
명령
|
함수 안에서 함수를 불러오는 등 다양하게 사용할 수 있다.
2.2 사용
함수명(인수) 형태로 사용한다.
2.3 tip. 인수가 너무 많을 때
인수가 너무 많을 때 중간에 새로운 인수를 끼워넣어 함수를 편집하게 되면 기존에 사용하던 명령이 어그러질 위험이 있다. 다시 고치기도 귀찮고. 그럴 땐
함수명(인수=입력값)
형태로 사용하면 인수의 순서를 고려하지 않고도 함수를 사용할 수 있다.
3 특성
3.1 지역변수와 전역변수
기본적으로 함수 내부에서 정해진 변수는 사용이 끝나면 지워진다.
3.2 전역변수의 사용
에러 | 원인 | 해결법 |
---|---|---|
UnboundLocalError: local variable '변수명' referenced before assignment | 함수 밖의 전역변수를 인식하지 못했을 때. | 함수 초반에
|