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}
같은 카테고리의 다른 글
Python / print() / 출력하는 함수

Python / print() / 출력하는 함수

Python의 print() 함수 사용법을 정리합니다. 큰 따옴표를 이용하여 Hello를 출력합니다. print("Hello") Hello 작은 따옴표를 이용하여 Hello를 출력합니다. print('Hello') Hello 작은 따옴표를 출력하려면 큰 따옴표로 감쌉니다. print("'Hello'") 'Hello' 큰 따옴표를 출력하려면 작은 따옴표로 감쌉니다. print('"Hello"') "Hello" 쉼표로 연결할 수 있습니다. 공백이 생깁니다. print("Hello","JB") Hello JB print() 함수를 연달아 사용하면 다른 줄에 출력됩니다. print("Hello") print("JB") Hello JB 줄바꿈 없이 출력하려면 end를 사용합니다. print("Hello",end=" ") print("JB") Hello JB sep를 이용하여 출력 값 사이에 특정 문자를 넣을 수 있습니다. print("A","B","C","D",sep=" ...

Python / range() / 연속된 수 또는 일정 간격의 연속된 수를 만드는 함수

Python / range() / 연속된 수 또는 일정 간격의 연속된 수를 만드는 함수

range() range() 함수는 연속된 수 또는 일정 간격의 연속된 수를 만드는 함수입니다. for 반복문에 자주 사용됩니다. 문법 range(stop) 0부터 시작하여 stop보다 하나 작은 수까지 만듭니다. range(start, stop) start부터 시작하여 stop보다 하나 작은 수까지 만듭니다. range(start, stop, step) start부터 시작하여 stop보다 하나 작은 수까지 step 간격으로 수를 만듭니다. 예제 1 0부터 3까지의 수를 만듭니다. >>> list(range(4)) 1부터 10까지의 수를 만듭니다. >>> ...

Python / 객체(Object)와 변수(Variable)

Python / 객체(Object)와 변수(Variable)

객체(Object), 변수(Variable), 변수명(Variable Name) 메모리에 저장된 자료를 객체(object)라고 한다. 객체를 저장한 공간을 변수(Variable), 변수의 이름을 변수명(Variable Name)이라고 한다. 변수에 객체를 넣을 때 등호 '='을 이용한다. 등호 왼쪽에는 변수명, 등호 오른쪽에는 객체를 적는다. 예를 들어 다음은 객체 100을 x라는 이름의 변수에 저장하겠다는 뜻이다. x = 100 변수명은 다음의 규칙을 지켜야 한다. 규칙에 맞지 않으면 에러가 난다. 키워드를 ...

Python / 문법 / 주석

Python / 문법 / 주석

주석에는 한 줄 주석과 여러 줄 주석이 있습니다. 한 줄 주석은 #을 사용합니다. # 뒤의 문자열이 주석이 됩니다. # 한 줄 주석 print( "Hello" ) # Hello 출력 여러 줄 주석은 작은 따옴표 세 개('''), 또는 큰 따옴표 세 개(""")를 사용합니다. 혼용할 수는 없습니다. ''' print( "Hello" ) print( "World" ) ''' print( "Hello" ) print( "World" ) """ print( "Hello" ) print( "World" ...

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 / 모듈(module) 사용하기

Python / 모듈(module) 사용하기

모듈 가져오고 사용하기 import로 모듈을 가져옵니다. 예를 들어 math 모듈을 가져오고 싶다면 >>> import math 모듈에 포함된 함수 등 목록을 보고 싶다면 dir() 함수를 이용합니다. >>> dir(math) ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', ...

Python / float() / 자료형을 실수로 변환하는 함수

Python / float() / 자료형을 실수로 변환하는 함수

float()는 데이터 타입을 실수로 변경하는 함수이다. 정수를 실수로 변환한다. 정수일 때는 소숫점 아래가 없지만, 실수일 때는 있다. >>> a = 1 >>> type( a ) <class 'int'> >>> print( a ) 1 >>> b = float( a ) >>> type( b ) <class 'float'> >>> print( b ) 1.0 숫자로 이루어진 문자열을 실수로 변경한다. >>> a = '1' >>> type( a ) <class 'str'> >>> print( ...

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 / 설치 / 윈도우에 설치하기

Python / 설치 / 윈도우에 설치하기

Windows를 OS로 하는 컴퓨터에 Python을 설치하는 방법이다. 다운로드 및 설치 Python 다운로드 페이지에서 윈도우용 Python을 다운로드 한다. 다운로드한 파일을 실행한다. 기본 설정 그대로 설치해도 되고, 변경을 해도 된다. 는 체크하는 게 좋다. 여러 계정에서 사용할 것이라면 을 클릭하고... 를 클릭한 후... 에 체크하고 설치한다. 설치를 완료하면 를 클릭한다. 테스트하기 IDLE을 실행한다. 다음과 같은 창에서... print( "Hello ...

Python / PyCharm 설치하는 방법

Python / PyCharm 설치하는 방법

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