오늘 포스팅은 파이썬에서 함수를 선언하는 방법에 대하여 알아보도록 하겠습니다.
함수의 형태는 크게 12가지 정도의 형태로 선언할 수 있습니다.
1. 함수 기본형
def func01():
print(1)
print(2)
print(3)
print("함수 기본형")
func01()
2. 함수 인수 전달
def func02(a):
print(a)
print(a * a)
func02(50)
3. 함수 return
def func03():
print('func03')
return (100)
func03() # 3-1.return 을 줬는데 호출이 안받아준경우
a = func03() # 3-2.함수를 변수로 받아서 출력하는 경우
print(a)
print(func03()) # 3-3. 직접적으로 사용하는 방법
print(func01()) # 주의 return 값이 없는것은 사용하면 X
print(func03() * 7) # 3-3. return 값을 직접적으로 사용
여기서 중요한것은 함수에 값을 넣으면 계산된 값을 돌려주지만!
함수를 변수를 사용하여 선언하여야 return 값을 돌려줍니다.
3-1처럼 함수만 선언할 경우 호출을 받지 못해 return값을 출력할 수 없기 때문에 반환 값을 "변수"로 받아서 사용하도록 주의해야 합니다.
4. 인수 전달 + return
def func04(num):
print('func04', num)
return(777 + num)
func04(100) # 1. return 값 X
a = func04(100) # 2. 변수 받기 # 인수전달
print(a)
print(func04(100)) # 3. 직접적 대입
5. 인수 전달이 한개 이상인 경우
def func05(a, b, c):
sum = a * b + c
print(sum)
print(a * a + b * b + c * c)
func05(2, 3, 4)
func05(3, 4, 5)
6. return; 함수 중단! break 역할
def func06():
print('1')
return; # return; <- 함수는 여기서 중단된다 break
print('2') # unreached code
func06()
여기서 2는 break 후 코드이기 때문에 출력되지 않는다
break는 주로 조건문에서 사용이 많이 되며 단독으로는 의미가 없으니 return;의 의미를 알아두면 됩니다~!
7. type의 상관이 없는 함수
def func07(a, b):
print(a, b)
print(type(a), type(b))
func07(10, 'YUJA') # type 상관 X
8. 호출값 FIx!
def func08(a, b, c = 10, d = 20): # 함수 인수의 초기값 지정
print(a, b, c, d) # 주의 - 초기화시키는 것은 함수의 끝에서 부터 시켜야한다 ()
func08(1,2) # (호출시, 지정이 안되있는 최소 2개는 정해야하며 뒷값은 default)
func08(1, 2, 3)
func08(1, 2, 3,4)
9. 가변 인수 전달
꼭 인수의 개수를 정하고 초기값을 지정하지 않고, 함수 인수 전달에 제약을 두지 않은 함수를 만들기도 가능합니다~!
def func09(*args):
print('*'*30)
for data in args:
print(data)
func09()
func09(10, 20)
func09(10, 20, 'YUJA', 30) # 갯수제한없이 인수를 다 받아준다
10. 인수값이 불변 & 가변
인수값이 불변인 경우와 가변인 값을 둘 다 동시에 사용이 가능하다!
def func10(a, b, *args):
print(a,b)
for data in args:
print(data)
func10(10, 20)
func10(10, 20, 30)
func10(10, 20, 30, 40)
11. 가독성을 위한 함수
코드의 가독성은 같은 결과를 출력해도 더 짧고 간결할수록 높습니다!
코드를 작성할때 가장 어려운 부분이며 중요한 부분 중 하나라고도하죠?
그래서 이번 함수 선언에서 살짝 가독성을 위한 부분을 다뤄보도록 하겠습니다!
그리고 이 함수는 ONLY Python에서만 가능하기 때문에 다른 프로그래밍에서 사용할 경우 에러가 생갈 수 있습니다
def func11(a, b, *, delay, time): # * 뒤로는 함수안의 내용은 모르지만 인수를 적을떄 용이
print(a, b, delay, time)
func11(1, 2, delay = 3, time = 4) # *을 명시를 할때는 정확하게 해주어야 한다
자 이제 마지막 형태로 전 시간에 배운 "dictionary"를 사용한 함수입니다!
12. (** star)
def func12(**star):
print(star)
print(star.keys())
for item in star.items():
print(item)
for value in star.values():
print(value)
for k, v in star.items(): # 동시에 key 값과 value 값을 불러올 수 있다
print(k, v)
func12(a=10, b=20)
type에 상관이 없으며 불변과 가변의 인수에 신경을 쓰지 않아도 되는 편리하고 쉬운 함수의 기본 형태 선언 법이었습니다~!
'Programming > Python 기초' 카테고리의 다른 글
[Python 기초] 파이썬 시작하기_Day 5(append/extend 차이, tuple/list 다루는법, 함수/Dictionary의 CRUD) (0) | 2021.05.01 |
---|---|
[Python 기초]파이썬 시작하기_Day 4(숫자/문자 변형, list 관리(CRUD)/활용) (0) | 2021.04.28 |
[Python 기초]파이썬 시작하기_Day 3(삼항연산, list, for문, 중첩 for문) (0) | 2021.04.25 |
[Python 기초]파이썬 시작하기_Day 2(배열, 리스트, 연산, 제어문) (0) | 2021.04.17 |
[Python 기초]파이썬 시작하기_Day 1(입출력; default 값 활용, 변수선언, SWAP) (0) | 2021.04.13 |