Python / 사용자 정의 함수 만들고 호출하기

함수를 정의하고 호출하는 방법을 알아봅니다.

함수 만들기

def function_name( parameter ) :
    # code
  • function_name : 함수 이름입니다. 변수명을 만드는 규칙과 같은 규칙으로 만듭니다.
  • parameter : 인수입니다. 인수가 여러 개인 경우 쉼표(,)로 구분합니다.

함수 호출하기

function_name( parameter )

예제

Hello를 출력하는 함수를 정의합니다.

def jb_say_hello() :
    print('Hello')

함수를 호출하면 Hello가 출력됩니다.

>>> jb_say_hello()
Hello

함수를 정의하는 위치

함수는 호출하기 전에 정의되어 있어야 합니다. 만약 호출하는 코드 다음에 정의되어 있으면 에러가 납니다.

jb_say_hello()

def jb_say_hello() :
    print('Hello')
Traceback (most recent call last):
  File "C:/Users/JB/Documents/Coding/Python/function.py", line 1, in <module>
    jb_say_hello()
NameError: name 'jb_say_hello' is not defined

인수 사용하기

두 인수의 합을 구하는 함수입니다.

def jb_sum(x,y) :
    print(x+y)

x = int(input('Input x : '))
y = int(input('Input y : '))
jb_sum(x,y)

실행하면 x와 y의 값을 묻고, 값을 입력하면 합이 출력됩니다.

Input x : 1
Input y : 2
3

반환값

return으로 반환값을 정의할 수 있습니다.

def jb_sum(x,y) :
    z = x + y
    return z

x = int(input('Input x : '))
y = int(input('Input y : '))
print(jb_sum(x,y))
Input x : 1
Input y : 2
3

반환값이 여러 개인 경우

반환값이 여러 개인 경우, 첫번째 return문에서 값을 반환하고 함수를 종료합니다.

def jb_sum(x,y) :
    w = x * y
    return w
    z = x + y
    return z

x = int(input('Input x : '))
y = int(input('Input y : '))
print(jb_sum(x,y))
Input x : 1
Input y : 2
2

인수의 기본값

인수의 수와 입력한 값의 개수가 다르면 에러가 납니다.

def jb_sum(x,y) :
    z = x + y
    return z
>>> jb_sum(1)
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    jb_sum(1)
TypeError: jb_sum() missing 1 required positional argument: 'y'

인수의 기본값을 정해서 입력한 값이 없는 경우 기본값을 사용할 수 있습니다.

def jb_sum(x,y=1) :
    z = x + y
    return z
>>> jb_sum(1)
2

기본값이 있는 인수의 위치

기본값이 있는 인수는 기본값이 없는 인수 뒤에 와야 합니다.

def jb_sum(x=1,y) :
    z = x + y
    return z

위와 같이 하면 에러가 납니다.

함수 호출할 때 인수 이름 입력하기

인수의 이름을 이용해서 호출할 수 있습니다.

def jb_div(x,y) :
    z = x / y
    return z
>>> jb_div(x=10,y=5)
2.0
>>> jb_div(y=10,x=5)
0.5

인수의 이름을 넣지 않으면 순서대로 배정됩니다. 만약 중복이 생기면 에러가 납니다. 이름이 없는 인수는 이름이 있는 인수 앞에 넣어야 합니다.

def jb_sum(x,y,z) :
    return x + y + z
>>> jb_sum(1,z=2,y=3)
6
>>> jb_sum(1,x=2,y=3)
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    jb_sum(1,x=2,y=3)
TypeError: jb_sum() got multiple values for argument 'x'
>>> jb_sum(z=1,2,y=3)
SyntaxError: positional argument follows keyword argument

가변 인수

인수의 개수를 정하지 않고, 입력하는 값을 모두 인수로 사용할 수 있습니다.

*를 사용하면 튜플로 저장합니다.

def jb_x(*x) :
    print(x)
>>> jb_x('one','two','three','four')
('one', 'two', 'three', 'four')

**를 사용하면 사전으로 저장합니다.

def jb_x(**x) :
    print(x)
>>> jb_x(one=1,two=2,three=3,four=4)
{'one': 1, 'two': 2, 'three': 3, 'four': 4}

Related Posts

Python / 반복문 / for

Python / 반복문 / for

Python에서 반복 작업을 할 때 for 또는 while을 사용합니다. for에 대하여 알아봅니다. 기본 반복 횟수는 range() 함수로 만듭니다. 예를 들어 range(3)는 0, 1, 2를 생성하므로 3번 반복하게 됩니다. for i in range(3) : print( i, "Hello World!" ) 0 Hello World! 1 Hello World! 2 Hello World! 1부터 100까지의 합 구하기 range() 함수로 1부터 100까지 ...

Python / PIP(Python Package Index) 사용법

Python / PIP(Python Package Index) 사용법

Python Package Index Python Package Index는 파이썬 패키지들이 모여 있는 저장소입니다. The Python Package Index (PyPI) is a repository of software for the Python programming language. pip 명령어로 패키지를 로컬 머신에 설치하고 삭제하고 업데이트할 수 있습니다. PIP pip는 파이썬으로 작성된 패키지 소프트웨어를 관리하는 패키지 관리 시스템입니다. 파이썬 2.7.9 이후 버전과 파이썬 3.4 이후 버전은 pip를 ...

Python / dir() / 객체의 메소드 등을 반환하는 함수

Python / dir() / 객체의 메소드 등을 반환하는 함수

예제 1 a = "Hello" print( dir( a ) ) ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', ...

Python / 조건문 / if

Python / 조건문 / if

if if 구문을 이용하면, 특정 조건을 만족할 때 특정 작업이 수행되도록 할 수 있습니다. 조건을 만족하는 동안 반복 작업을 하고 싶다면 while을 사용하세요. 문법 1 조건이 참이라면 코드를 실행합니다. if condition: statement 1은 0보다 크므로 HM을 출력합니다. if 1 > 0: print("HM") 조건이 거짓이므로 HM을 출력하지 않습니다. 즉, 아무런 작업을 하지 ...

Python / PyCharm 설치하는 방법

Python / PyCharm 설치하는 방법

PyCharm는 Python 개발 도구 중의 하나입니다. JetBrains에서 만든 것으로, 모든 기능이 있는 프로페셔널 에디션과, 기능의 제한이 있지만 무료로 사용할 수 있는 커뮤니티 에디션이 있습니다. 아래는 OS가 Windows인 컴퓨터에 PyCharm 커뮤니티 에디션을 다운로드하고 설치하는 방법입니다. 참고로, Python이 설치되어 있지 않아도 괜찮습니다. PyCharm에서 프로젝트를 만들 때 자동으로 Python을 다운로드 합니다. PyCharm 페이지에서 를 클릭합니다. Community ...

Python / len() / 문자열의 길이 반환하는 함수

Python / len() / 문자열의 길이 반환하는 함수

len()은 문자열의 길이 반환하는 함수이다. 간단한 예는 다음과 같다. len( "abc" ) # 3 반환 정수나 실수 등은 문자열이 아니므로 에러가 난다. 문자열로 변환한 후 센다. len( str( 1234 ) ) # 4 반환 한글도 1로, 공백도 1로 센다. len( "한글과 공백" ) # 6 반환 리스트나 튜플 등에서는 그 안에 속한 값의 ...

Python / 사용자 정의 함수 만들고 호출하기

Python / 사용자 정의 함수 만들고 호출하기

함수를 정의하고 호출하는 방법을 알아봅니다. 함수 만들기 def function_name( parameter ) : # code function_name : 함수 이름입니다. 변수명을 만드는 규칙과 같은 규칙으로 만듭니다. parameter : 인수입니다. 인수가 여러 개인 경우 쉼표(,)로 구분합니다. 함수 호출하기 function_name( parameter ) 예제 Hello를 출력하는 함수를 정의합니다. def jb_say_hello() : print('Hello') 함수를 호출하면 Hello가 출력됩니다. >>> jb_say_hello() Hello 함수를 정의하는 위치 함수는 ...

Python / int() / 자료형을 정수로 변환하는 함수

Python / int() / 자료형을 정수로 변환하는 함수

int()는 데이터 타입을 정수로 변환하는 함수이다. 실수를 정수로 변환하는 경우 소숫점 아래 수를 없앤다. 숫자로 이루어진 문자열을 정수로 변환할 수 있다. >>> print( "int( 1.2 ) : ", int( 1.2 ) ) int( 1.2 ) : 1 >>> print( "int( 1.7 ) : ", int( 1.7 ) ) int( 1.7 ) : 1 >>> print( ...

Python / Visual Studio Code 개발 환경 만들기

Python / Visual Studio Code 개발 환경 만들기

파이썬 개발을 위한 도구는 여러 가지가 있습니다. Visual Studio Code도 그 중 하나입니다. VS Code에 Python 확장 기능을 설치하고, Hello World를 출력해보겠습니다. 확장 기능 설치 Visual Studio Code를 설치하고 실행합니다. 사각형 모양의 확장 기능 아이콘을 클릭합니다. python으로 검색한 후, 다운로드 수가 가장 많은 Microsoft가 만든 Python을 설치합니다. Reload Required를 클릭합니다.(VS Code 버전에 따라 나오지 않을 ...

Python / type() / 데이터 타입(자료형) 확인하는 함수

Python / type() / 데이터 타입(자료형) 확인하는 함수

type() type()은 데이터 타입을 확인할 수 있는 함수입니다. 예제 123의 데이터 타입을 확인합니다. 결과는 정수입니다. >>> type(123) <class 'int'> 변수에 데이터를 담고, 변수 이름으로 데이터 타입을 확인할 수 있습니다. >>> jb = 123 >>> type(jb) <class 'int'> print() 함수로 결과를 출력할 수 있습니다. 쉘에서는 결과가 같지만, 실제 프로그램 실행시에는 데이터 타입이 출력됩니다. >>> jb = 123 >>> print(type(jb)) <class 'int'> 다음은 여러 가지 데이터의 ...