샤인의 IT (막 적는) 메모장

[Python] 함수 본문

Programming/Python

[Python] 함수

신샤인 2021. 4. 6. 08:15
반응형

함수는 왜 사용할까요?

 

함수는 연산을 효율적으로 사용하기 위해서 사용합니다.

예를 들어볼까요? 기본적으로 A와 B에대해서 더하는 연산을 진행한다고 했을 때

변수와 값을 일일히 지정하고 대입한다면 보기 어렵고 코드가 길어질 수 록 더 이해하기 어렵겠죠.

그래서 그 덧셈에 대해서 함수를 만들어서 바로 값을 받아서 쓸 수 있도록 하는 것입니다.

 

1. 함수 만들기

#함수

#함수를 사용하는 이유는 반복적으로 사용해야하는 연산들에 대해서 효율적으로 사용하기 위하여 사용한다.
#따로 여러 변수를 만들지 않고 값을 대입하여 다른 결과값을 바로 얻을 수 있는 장점 또한 포함한다.




a, b = 1, 2

print(a+b)

c, d = 3, 4
print(c+d)


def addNum(a,b):
    return a+b

print(addNum(1,2))
print(addNum(3,4))

 

3
7
3
7

 

기본 덧셈의 과정을 함수로 만들어서 사용했습니다.

일일히 변수를 만들지 않고 바로 대입하는 과정이 보이시나요?

함수는

 

def 함수명(인자1,인자2...):

        실행할 코드

 

형식을 가지고 있습니다.

 

2. 함수의 여러 사용법

#함수의 여러 사용법


#return 값이 있는 함수
def addNum(a,b):
    return a+b

def say():
    return 'Hi'

#return 값이 없는 함수
def hello():
    print('Hello')


result = addNum(3,4)
result2 = say()

print(result)
print(result2)

hello()

 

7
Hi
Hello

 

함수를 여러 방법으로 사용 가능합니다.

return 값을 받아서 정수로 받을 수도 있고 문자형으로도 받을 수 있습니다.

또한 return 값 없이 바로 print() 문을 사용할 수 도 있습니다.

 

3. 함수에서 인자값이 여러개일 경우

#함수의 입력값이 몇개가 될지 모를때 


def addNum(*args):
    a = 0
    for i in args:
        a += i
    return a

result = addNum(1,2,3)
result2 = addNum(1,2,3,4,5,6)


print(result)
print(result2)

 

6
21

 

함수 안에 인자값을 몇개 받을지 모를경우에는 for문을 이용합니다.

for문을 이용해서 여러 인자값을 받고 그 인자값을 더하는 예제를 진행했습니다.

함수명 ()안에 *는 꼭 붙여주셔야합니다.

 

4. 전역변수 사용은 global

#global의 사용

a = 0 #전역변수로 코드 전체에 영향을 준다.

def addNum(*args):
    global a #기존 함수 내에서만 영향을 주던 변수를 전역변수로 대체
    for i in args:
        a += i
    return a

result = addNum(1,2,3)
result2 = addNum(1,2,3,4,5,6)


print(result)
print(result2)

 

6
27

 

위의 코드와 같지만 다른 점은 함수 안에서 변수를 지정하느냐 전체 코드에서 지정하느냐 입니다.

함수 내에서만 진행 됬을 떄는 함수가 생성됬을 때 시작 되지만, 코드 전체에서 코드들을 실행할 때는 코드에 따라 값이 계속 바뀝니다. 주의 부탁드립니다.

 

5. lambda

#비슷한 듯 다른 lambda


addN = lambda a, b: a+b # lambda 변수1, 변수2 ... : 실행할 연산

addN2 = lambda a, b, c, d: a+b+c-d

result = addN(1,2)

result2 = addN2(1,2,3,6)

print(result)
    
print(result2)
    

 

3
0

 

lambda는 함수와 비슷하지만, 기본적인 연산을 할 때 주로 사용합니다.

 

lambda 인자1, 인자2: 수행할 연산

 

이런 형식을 가지고 있습니다.

간단한 연산을 할 때 사용하기 좋으니 알고 계시면 좋을 것 같아요.

반응형
Comments