도찐개찐
[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}
728x90
'PYTHON' 카테고리의 다른 글
[Python] 예외처리(try, Except, else, fanally) (0) | 2022.12.26 |
---|---|
[Python] 클래스 (0) | 2022.12.26 |
[Mac] Seleninum Driver 설치 (0) | 2022.10.26 |
[python] 수학(math) 함수 (0) | 2022.07.12 |
[python] 수치 연산 함수 (0) | 2022.07.12 |
Comments