"5. 함수"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
(새 문서: 함수의 사용에 대한 문서. 분류:기초)
 
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 함수 밖의 전역변수를 인식하지 못했을 때. 함수 초반에

global 변수명을 넣어준다.

4 ps