본문 바로가기
Programming Languages/Python

Chapter 7. 함수

by 더 이프 2023. 2. 3.
728x90

Chapter 7. 함수

 1. 함수

  ⦁ 같은 로직을 하나의 포장지에 넣어 계속 사용할 수 있게 만들어 놓은 것을 함수라고 함

  ⦁ 입력값에 따라 결과값이 바뀔 수 있음

  ⦁ 함수 선언은 def를 사용

 a. function define

# function define
def function_name():
    print ('myfunction')

# function 실행
function_name()

 2. 매개변수

  ⦁ 매개변수에 default값을 주면 함수에 매개변수를 적지 않아도 실행됨

  ⦁ keyword를 반드시 사용하도록 강제할 수 있음

  ⦁ * 오른쪽은 keyword argument로 사용

  ⦁ keyword argument는 순서가 상관없음

  ⦁ / 왼쪽은 positional argument로 사용

  ⦁ 매개변수로 함수 사용 가능

 a. function argument

# function argument
def myfn1():
    print('myfn1')
    
def myfn2(arg1):
    print(arg1)

# default값을 주면 함수에 매개변수를 적지 않아도 실행됨
def myfn3(arg1='a', arg2='b'):
    print(arg1, arg2)

# 키워드를 반드시 사용하도록 강제할 수 있음
def myfn4(*arg1):
    for i in arg1:
        print(i)

# *오른쪽은 keyword argument로 사용
def myfn5(arg1, *, arg2, arg3):
    print(arg1, arg2, arg3)
    
# /왼쪽을 positional argument로 사용
def myfn6(arg1, /, arg2, arg3):
    print(arg1, arg2, arg3)

# 매개변수로 함수 사용
def myfn7(arg1, arg2):
    print(arg1)
    arg2('abc','def')

# 매개변수 적용
myfn2('abc')
myfn2([1,2,3,4])

# keyword argument
# 순서 상관없음
myfn3(arg2=10, arg1=20)
myfn3(10, 20)

myfn4(1,2,3,4)

myfn5(arg1 = 'a',arg2 = 'b',arg3 = 'c')

myfn6('a','b','c')
myfn6(arg1 = 'a',arg2 = 'b',arg3 = 'c')

myfn7('fn7 start', myfn3)

 3. 리턴

  ⦁ return을 사용하여 값을 반환

  ⦁ 두 개의 값을 반환 시 tuple로 반환됨

 a. function return

# function return
def myfn8():
    print('myfn8')
    
def myfn9():
    return 10

# tuple로 반환됨
def myfn10():
    return 10, 20

 4. Example

 a. prime

#소수 구분 함수 생성
def is_prime(n):
        for i in range(2,n):
            if n % i == 0:
                return False
        return True

prime_list = []
for n in range(2,100):
    if is_prime(n) == True:
        prime_list.append(n)
print(prime_list)