728x90
반응형
SMALL
728x90
반응형
LIST
728x90
반응형
SMALL

오늘 포스팅은 파이썬에서 함수를 선언하는 방법에 대하여 알아보도록 하겠습니다.

함수의 형태는 크게 12가지 정도의 형태로 선언할 수 있습니다.

1. 함수 기본형
def func01():
	print(1)
	print(2)
	print(3)

print("함수 기본형")
func01()

func01을 생성후 func01()로 꼭 선언해줘야한다!

 

2. 함수 인수 전달
def func02(a):
	print(a)
	print(a * a)

func02(50)

함수안에서 계산도 가능하다! 다만, a값을 고정하지않으면 직접 인수를 전달해주어야한다!

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)                                  # *을 명시를 할때는 정확하게 해주어야 한다

Tip으로 알고 사용해보기!

자 이제 마지막 형태로 전 시간에 배운 "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에 상관이 없으며 불변과 가변의 인수에 신경을 쓰지 않아도 되는 편리하고 쉬운 함수의 기본 형태 선언 법이었습니다~!

 

728x90
반응형
LIST

+ Recent posts