파이썬/기본

[파이썬] 사용자 정의 함수

caramel-bottle 2023. 9. 11.

사용자 정의 함수

사용자 정의 함수란 사용자가 직접 작성한 함수이다. 사용자의 요구사항에 맞게 동작하는 함수를 직접 모듈화하여 논리를 더 명확하게 구조화하여 가독성을 높이기 위해 사용한다.

기본적인 구조

def 함수명(매개변수1, 매개변수2, ...):
    # 함수 내용
    return 결과값

매개변수와반환 값이 없는 함수

def func1():
  print('처음으로 만드는 함수!')

func1()
func1()
print()

for i in range(5):
  func1()


매개변수가 있고 반환 값이 없는 함수

def func2(num):
  print(f'입력받은 숫자: {num}')


def func3(start, end):
  sum = 0
  for i in range(start, end + 1):
    sum += i
  print(f'{start}부터 {end}까지의 합: {sum}')

func2(10)
func2(4)

func3(1, 10)
func3(1, 100)


반환 값이 있는 함수

def func4():
  print('안녕하세요 python')

def func5():
  return '🍕'

def func6(num1, num2):
  sum = num1 + num2
  return sum

a = func4()
print(f'a에 저장된 값: {a}')

presents = func5()
print(f'present에 저장된 값: {presents}')

result = func6(10, 5)
print(result)


기본값이 설정된 매개변수

def func6(num1=1, num2=1):
  sum = num1 + num2
  return sum

print(func6())

print(func6(10, 5))

result = func6(7, 3)
print(result)


가변 매개변수

# 함수 내에서는 매개변수를 튜플로 처리
def func7(*args):
  result = 0
  print(args)

  for i in args:
    result += i
  return result

print(func7(), end='\n\n')
print(func7(10, 30, 20, 70), end='\n\n')
print(func7(10), end='\n\n')


키워드 매개변수

def func8(id, age, name): # 매개변수 순서 유의
  print(f'아이디: {id}')
  print(f'이름: {name}')
  print(f'나이: {age}')

dic1 = {'id':'apple', 'name':'김사과', 'age':20}

func8(id='apple', name='김사과', age=20)

print()

func8(**dic1)

print()

func8(*dic1)

키워드 매개변수는 각 매개변수의 '이름'을 함께 지정하여 인수를 전달하는 방식이다. 기존 함수는 매개변수의 순서에 주의해야 했다면 키워드 매개변수는 함수를 호출할 때 키워드를 지정해주기 때문에 순서가 상관이 없다.

또한 key:value 형식의 딕셔너리를 인자로 사용할 수 있다. 이때 **dic1 와 같이 '**'을 앞에 붙여준다.

'*' 하나만 붙이면 key값만 인자로 넘어간다. 이때는 키워드의 의미가 없어지므로 순서가 상관이 있게 된다.

 

def func9(**args):
  for i in args:
    if i == 'id':
      id = args[i]
  return id

user = func9(id='apple', name='김사과', age=20)
print(user)

가변인자 형식으로 매개변수 설정을 한다면 호출 인자의 키워드 그대로 변수가 된다.


여러개의 반환 값

def func10(num1, num2):
  return num1 + num2, num1 - num2, num1 * num2, num1 / num2

result1, result2, result3, result4 = func10(10, 3)

print(f'덧셈: {result1}, 뺄셈: {result2}, 곱셈: {result3}, 나눗셈: {result4}')

_, _, result3, _ = func10(10, 3)
print(result3)

이번엔 반환값이 여러개인 경우이다. return 뒤에 쉼표를 구분으로 여러개의 반환값을 가질 수 있다.

이때 반환된 값들을 여러 변수에 저장할 수 있다.

또한, 원하는 반환값만 저장할 수도 있다.

 

 

 

 

 

댓글