프로그래밍/Python

[Python] 함수에 대하여

베린이 2023. 12. 6. 07:58
반응형

프로그래밍을 하다 보면 자주 사용하는 코드들이 있습니다. 그런데 이 코드를 매번 넣어주게 되면 전체 스크립트가 매우 복잡해지고 길어지게 됩니다. 이럴 경우 함수를 정의하여 코드를 간소화할 수 있습니다.

 

- 함수 정의와 활용 방법

def를 통해 함수를 정의할 수 있습니다. 예를 들어 두 변수를 입력받아 합한 값을 출력하는 함수를 정의해봅시다.

#함수 definition
def add(x1,x2) :
    result = 0
    result = x1 + x2
    return result

 

이렇게 함수를 선언하면 앞으로 작성하는 코드에서 위의 함수를 사용할 수 있습니다.

#함수 definition
def add(x1,x2) :
    result = 0
    result = x1 + x2
    return result

#실제 동작 코드
a = int(input("a의 값을 입력하세요: "))
b = int(input("b의 값을 입력하세요: "))

c = add(a,b)
print(c)


>> a의 값을 입력하세요: 15
>> b의 값을 입력하세요: 21
>> 36

 

위의 예시를 보면 return이 있습니다. 이는 이 함수가 반환값이 있다는 뜻입니다. 그래서 c변수에 result 반환값을 입력해 주었죠. 그렇다면 함수에는 반드시 return 하는 값이 있어야 할까요?? 그건 아닙니다.

#함수 definition
def veriln_print(a) :
    print("입력된 값은",a,"입니다")


#실제 동작 코드
a = input("a의 값을 입력하세요: ")
veriln_print(a)

>> a의 값을 입력하세요: 엄마가 섬그늘에
>> 입력된 값은 엄마가 섬그늘에 입니다

 

위와 같이 반환값이 없는 경우도 함수를 정의하여 사용할 수 있습니다.

 

- 함수 활용 예시

그러면 사칙연산 함수를 만들어보겠습니다.

#함수 definition
def cal(x1,x2,option) :
    result = 0
    if   option == '+' :
        result = x1 + x2
    elif option == '-' :
        result = x1 - x2
    elif option == '*' :
        result = x1 * x2
    elif option == '/' :
        result = x1 / x2
        
    return result

#실제 동작 코드
a = int(input("a의 값을 입력하세요: "))
b = int(input("b의 값을 입력하세요: "))

print(cal(a,b,'+'))
print(cal(a,b,'-'))
print(cal(a,b,'*'))
print(cal(a,b,'/'))

>> a의 값을 입력하세요: 15
>> b의 값을 입력하세요: 5
>> 20
>> 10
>> 75
>> 3.0