![](https://blog.kakaocdn.net/dn/pPLus/btrnBsneVIA/tMAy8YgENQ8aM2K8QEO8n1/img.png)
언어마다 함수를 만드는 방법이 다릅니다.
Java의 경우 public static void main(){}와 같이 접근제한자 메모리영역 리턴타입 메소드명(파라미터)로 이루어져있고 JavaScript의 경우 function 함수이름(){} 과같은 형태로 이루어져있습니다.
파이썬은
def 함수명()
pass
와 같은 형태인데요.
매우 간단하죠?
def func01():
print('함수 1 입니다')
def func02():
return '함수 2 입니다.'
def func03():
return{1: 'a', 2: 'b'}
# main함수 -> 프로그램의 주 진입점
if __name__ == '__main__':
print('프로그램 시작 시 가장 먼저 호출됨!')
func01()
print(func02())
print(func03()[2])
![](https://blog.kakaocdn.net/dn/pyggW/btrnBtzHcwM/SJvtb8Aq3wkSiIDfqNENmK/img.png)
위의경우 3개의 함수가 만들어져있으며 함수를 호출하는 __main__이 있는데 Java의 main메서드와 비슷한 역할이라고 보시면 됩니다.
또한 함수에서 호출했을때 return 으로 값을 리턴하는 경우에는 print(함수)로 함수가 리턴하는 값을 받을수 있으며 print안에 리턴하는 값이 있을경우 함수 호출 자체로도 값이 출력이 되겠죠.
func03의 경우 특이한 경우인데요.
리턴을 딕셔너리 형태로 합니다.
이러한 경우 배열을 호출하는것처럼 하나의 value만 호출할수 있습니다.
def func01(x, y):
return x + y
def func02(x, y):
return x + y, x - y
def print_test(x, y):
print("파라미터로 %d, %d 두개가 들어왔습니다." % (x, y))
print("{} + {} = {}".format(x, y, x + y))
print(x,'+',y,'=',x+y)
print(str(x) + ' + ' + str(y) + ' = ' + str(x+y))
if __name__ == '__main__':
a = func01(1, 3)
print(a)
b, c = func02(4, 7)
d = func02(5, 8)
print(b)
print(c)
print(d)
print_test(6, 3)
![](https://blog.kakaocdn.net/dn/cya8sA/btrnAZeLtsM/pVmzQE4UAEpgYwNEKzt8j1/img.png)
func01 함수의 형태의 경우 파라미터 2개를 받아와서 그 두개를 더한것을 리턴해주는 형태입니다.
이러한 경우는 다른 언어에서도 자주 볼수 있는 형태이지만
리턴을 2가지로 하는경우는 흔치 않은 경우죠.
func02 함수에 4와 7을 넣을때 b, c = func02(4, 7)와 같이 언패킹하여 넣고있네요.
이렇게 언패킹하여 함수를 호출하면 11과 -1이 각각 반환되지만 d = func02(5, 8)처럼 함수를 호출하면 (13, -3)의 tuple의 형태로 반환합니다.
# 1번
print("{} + {} = {}".format(x, y, x + y))
# 2번
print(x,'+',y,'=',x+y)
# 3번
print(str(x) + ' + ' + str(y) + ' = ' + str(x+y))
또한 print로 출력하는 형태가 Java에서는 3번의 경우 print혹은 println으로 출력하던 경우입니다.
다만 파이썬에서는 다른타입의 연산이 불가능 하기 때문에 파이썬에서는 형변환을 하고 연산을 해야하죠.
이처럼 파이썬에서는 print함수 하나만으로도 다양한 형태의 출력을 할수가 있습니다.
'Python > Python' 카테고리의 다른 글
[Python] module(모듈) (0) | 2022.05.11 |
---|---|
[Python] 람다식(lambda) (0) | 2022.05.10 |
[Python] break, continue (0) | 2022.05.08 |
[Python] 제어문 - while문 (0) | 2022.05.07 |
[Python] 제어문 - for문 (0) | 2022.05.06 |