[TIL] Python 함수

이지예·2022년 4월 19일
0

Python

목록 보기
8/10

함수

매개변수 : 함수에 입력으로 전달된 값을 받는 변수
인수 : 함수를 호출할 때 전달하는 입력값

def add(a,b): #a,b는 매개변수
    return a+b

print(add(3,4)) #3,4는 인수

함수의 형태

함수의 형태는 4가지 유형으로 나뉜다.

  1. 일반적인 함수
    입력값과 결과값이 있는 함수

  2. 입력값이 없는 함수

def say(): 
    return 'Hi'
a = say()
print(a)
'Hi'
  1. 결과값이 없는 함수
def add(a, b): 
    print("%d, %d의 합은 %d입니다." % (a, b, a+b))
add(3, 4)
'3, 4의 합은 7입니다.'

print문은 함수의 구성 요소 중 하나인 '수행할 문장'에 해당하는 부분일 뿐이다.
결과값은 return명령어로만 돌려받을 수 있으므로 결과값은 없다.

a = add(3, 4)
print(a)
None

결과값이 없을때 변수에 대입하면 반환값으로 거짓을 나타내는 None을 돌려준다.

  1. 입력값도 결과값도 없는 함수
def say(): 
    print('Hi')
say()
'Hi'

입력값이 몇 개인지 모를 때 입력값을 모두 더해주는 함수

def add_many(*args): 
    result = 0 
    for i in args: 
        result = result + i 
    return result

매개변수 이름 앞에 *을 붙이면 입력값을 모두 튜플로 만들어 주기 때문에

result = add_many(1,2,3)
print(result)
#6
result = add_many(1,2,3,4,5,6,7,8,9,10)
print(result)
#55

이런식으로 입력값의 갯수에 상관없이 쓸 수 있다.
매개변수를 추가하여 함수안에 조건문을 만들어 사용할 수도 있다.

def add_mul(choice, *args): 
    if choice == "add": 
        result = 0 
        for i in args: 
            result = result + i 
    elif choice == "mul": 
        result = 1 
        for i in args: 
            result = result * i 
    return result 
result = add_mul('mul', 1,2,3,4,5)
print(result)
#120

딕셔너리 출력 함수

def print_kwargs(**kwargs):
    print(kwargs)
print_kwargs(a=1)
#{'a': 1}
print_kwargs(name='foo', age=3)
#{'age': 3, 'name': 'foo'}

함수의 결과값은 하나이므로 여러개의 값을 돌려주려고 하면 튜플로 묶어서 하나로 보내지게 된다. 만약 n개의 결과값을 튜플이 아닌 값으로 받고 싶다면 호출시 n개의 변수에 대입시키면 된다.

초기값 설정

매개변수 초기값을 미리 설정할 수 있는데

def say_myself(name, old, man=True):

이렇게 설정해놓고 호출할때 세번째 인수를 적지 않거나 True로 적으면
미리 설정한 값과 같게 나오고, 인수를 False로 적으면 미리 설정한 값과 상관없이 새로 넣은 인자에 맞게 출력된다.
만약 초기값을 설정한 매개변수가 마지막 자리가 아니라면 초기값을 설정해놓은 매개변수 뒤에 초기값을 설정하지 않은 매개변수는 사용할 수 없다는 에러가 뜨게 된다.

lambda

함수를 한줄로 간결하게 만들때 사용한다. return명령어가 없어도 결과값을 돌려준다.

add = lambda a, b: a+b
result = add(3, 4)
print(result)
#7

참고 사이트 : https://wikidocs.net/24

0개의 댓글