JOB RECIPE


Job To Be

파이썬 입문 2 | 함수
본문 바로가기
Profile Picture

Job To Be

First Thought, Best Thought

본문 바로가기

Data Science/Python

파이썬 입문 2 | 함수

 

 

 

 

1. 함수의 기본 구조 

① 함수 정의 : def 

② 함수 본문 : 함수가 실행할 동작

③ 리턴값(선택) : return으로 함수가 값을 반환 가능 

 

def add(a, b):           # add라는 함수를 정의하고, a와 b를 인자로 받는다.
    result = a + b       # a와 b를 더한 값을 result에 저장한다.
    return result         # result를 반환한다.
print(add(10, 20))    # add 함수를 호출하고, 인자로 10과 20을 전달한다. TERMINAL
 
 
 
TERMINAL
30

 

 

 

 


 

 

2. 입력값이 없는 함수

- 외부에서 값을 받지 않고

  자체적으로 어떤 작업을 실행하는 함수

 

def say():         # 함수 정의
    return "Hi"   # 반환 값
a = say()         # 함수 호출
print(a)            # Hi 출력
 
 
 
TERMINAL
Hi

 

 

 

 


 

 

3. 리턴값이 없는 함수

- 보통 작업 결과를 화면에 출력하거나 파일에 저장하는 등의 역할을 하며,

  함수가 실행된 결과를 반환하지 않는 함수

 

#리턴값이 없는 함수
 
def add_without_return(a, b):
    print(f"{a}{b}의 합은 {a + b}입니다.")  # 결과를 화면에 출력

result = add_without_return(3, 5)             # 결과는 화면에 출력되지만 반환값은 None
print(result)                                               # None 출력
 
 
 
TERMINAL
None

 

#리턴값이 있는 함수

def add_with_return(a, b):
    return a + b                           # 계산 결과를 반환

result = add_with_return(3, 5)  # 반환값을 변수에 저장
print(result)                               # 8 출력 (반환값 사용 가능)
print(add_with_return(10, 20))  # 30 출력 (반환값 바로 출력 가능)
 
 
 
TERMINAL
30

 

 

 

 

 


 

 

 

4. 입력값도, 리턴값도 없는 함수

- 외부에서 값을 받거나 결과를 반환하지 않고

  단순히 내부 작업만 수행하는 함수

 

def add(a, b):
    print("%d, %d의 합은 %d입니다" %(a , b, a+b))

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

 

 

 

 

 

 

 


 

 

 

5. 매개변수 지정

- 인수의 순서를 신경쓰지 않고 특정 매개변수에 직접 값을 할당할 수 있음

 

def sub(a, b):
    return a- b

result = sub(a=10, b=5)
print(result)
 
 
 
TERMINAL
5

 

 

 

 


 

 

6. 여러 입력값을 받는 함수

 

def add_many(*args):        # *args는 매개변수로, 입력값을 모두 모아서 튜플로 만들어줌
    result = 0                       # 초기값
    for i in args:                   # args에 있는 모든 값을 더한다
        result = result + i       # result는 누적된 값
    return result                   # 누적된 값을 반환한다
 
 
# 예시 1
result = add_many(1,2,3)  # 1,2,3을 더한 값을 result에 저장
print(result)        
 
TERMINAL
6
        
  
 
# 예시 2
result = add_many(1,2,3,4,5,6,7,8,9,10) # 1부터 10까지 더한 값을 result에 저장
print(result)
 
 
TERMINAL
55

 

 

def add_mul(choice, *args):
    if choice == "add":            # choice에 "add"가 입력되면
        result = 0                     # result에 0을 저장
        for i in args:                 #args에 입력된 값을 하나씩 꺼내서 i에 저장
            result = result + i     # result에 i를 더함
    elif choice == "mul":        # choice에 "mul"이 입력되면
        result = 1                    # result에 1을 저장
        for i in args:                # args에 입력된 값을 하나씩 꺼내서 i에 저장
            result = result * i     # result에 i를 곱함
    return result                    # result값을 반환
 
#1
result = add_mul("add", 1, 2, 3, 4, 5)  # add_mul 함수에 "add"와 1, 2, 3, 4, 5를 입력하여 result에 저장
print(result)   
     
TERMINAL
15
               
 
#2
result = add_mul('mul', 1,2,3,4,5)      # add_mul함수에 "mul"과 1,2,3,4,5를 입력하고 result에 저장
print(result)
 
TERMINAL
120

 

 

 

 

7. 키워드 매개변수, kwargs

- kwargs는 keyword arguments의 약자로,

  함수를 호출할 때 인자 이름과 값을 쌍으로 전달할 수 있는 방식 

  ex) name ='foo'

- 딕셔너리는 키와 값을 쌍으로 저장하는 자료형

  즉, kwargs는 함수에 전달된 키워드 인자들을 딕셔너리 형태로 저장한다는 의미

 

def print_kwargs(**kwargs): # **kwargs는 keyword arguments의 약자로, 키워드 인자를 딕셔너리로 저장
    print(kwargs)           # 딕셔너리로 저장된 키워드 인자를 출력

print_kwargs(name='foo', age=3)
 
 
 
TERMINAL
{'name': 'foo', 'age': 3}

 

 

 

 

반응형