우선, 파이썬에서 함수란 무엇인지에 대해 모른다면 아래의 포스트를 참고!
1. 함수란 무엇인가? / Python의 대표적인 내장함수
변수와 기본적인 용어에 관한 내용들은 아래의 포스트에서 확인해주시기 바랍니다! 더보기 Base.자료형, 변수, 메모리 주소 자료형 Ptyhon에서 지원하는 자료형을 기준으로 작성하였다. 사용하는
dot-learning.tistory.com
2.함수 정의와 호출 / 객체 선언 / 지역변수
파이썬 자체 내장 함수도 여러 종류가 있지만, 우리가 실제로 어떤 목적을 가지고 프로그래밍을 할 때에는 경우에 따라 직접 함수를 작성하여 사용하는 경우가 많다. 그렇다면 어떻게 함수를 작
dot-learning.tistory.com
함수를 정의할 때, 그 함수의 용도와 작동방식에 따 파라메터는 여러개가 존재할수도, 존재하지 않을 수도 있다. 또, 반환값은 한개만 존재하거나 존재하지 않을 수 있다. 이 경우들에 대한 함수의 예제를 보자.
Case1. 파라메터가 없고, 반환값이 존재하는 경우
def helloworld() :
return "hello world!"
print(helloworld())
실행결과
hellow world!
print함수 안에서 helloworld()로 정의된 함수를 호출하게 된다면 helloworld()함수는 "hello world!"라는 문자열을 반환한다. 이후 print함수는 반환된 문자열을 출력하게 된다. 따라서 실행결과로 hello world!라는 결과를 얻을 수 있는 것이다.
Case2. 파라메터가 없고, 반환값이 존재하지 않는 경우
def helloworld() :
print("hello world!")
helloworld()
실행결과
hellow world!
이 경우, helloworld()로 정의된 함수는 반환값을 갖지 않는다. 단, Case1의 경우와 달리 함수 안에서 print함수가 실행되어 hello world! 라는 문자열이 출력된다.
사실, return값을 명시하지 않는 경우-위의 코드블럭에 작성된 것처럼 반환값이 존재하지 않는 경우로 작성한 경우-에 파이썬 인터프리터는 None을 반환한다. 이 None은 의미있는 데이터가 아니라 호출된 함수가 반환값을 갖지 않음을 알려
주는 값이다. 즉 위의 코드는 아래의 코드와 같은 역할을 수행한다.
def helloworld() :
print("hello world!")
return None
helloworld()
실행결과
hellow world!
None이 반환되는 것을 명시적으로 확인해보는 방법도 있다.
def helloworld() :
print("hello world!")
res = helloworld()
helloworld()
print(res)
실행결과
hellow world!
None
이처럼 res에는 None이라는 반환값이 존재하는 것임을 알 수 있다.
결론적으로 Case1과는 상당히 다른 작동과정을 가짐을 알 수 있다. Case1은 반환된 문자열을 함수의 바깥에 존재하는 print함수가 출력하는 것이었다. Case2는 어떤 문자열도 함수 바깥으로 반환되지 않는다. 대신, None이라는 값이 프로그래머가 의도적으로 반환값이 없도록 코드를 작성했다는 것을 알려주기 위해 반환된다. 또, 함수 내부에 존재하는 print함수가 hello world!라는 문자열을 출력하는 것이다.
Case3. 파라메터가 존재하고, 반환값이 존재하는 경우
def addTwoNum(num1,num2) :
return num1+num2
a = 1
b = 2
res = addTwoNum(a,b)
print(res)
실행결과
3
addTwoNum이라는 함수를 정의했다. 이 함수는 파라메터 두개를 받아 그 파라메터의 합을 반환하는 함수이다.
함수 바깥에서 a와 b라는 객체를 각각 정수1,2를 갖도록 선언하였다. 이후 res객체가 addTwoNum(a,b)의 결과값을 갖도록 선언하였다. 따라서 res객체는 a+b를 더한 3의 값을 갖는다. 당연히 res를 출력하면 3이 출력된다.
Case4. 파라메터가 존재하고 반환값이 존재하지 않는 경우
def addTwoNum(num1,num2) :
print(num1+num2)
a = 1
b = 2
addTwoNum(a,b)
실행결과
3
Case3의 경우와 화면에 출력되는 결과는 같다. 하지만 Case1과 Case2의 차이점에서 알아보았듯, Case4에서는 a+b의 결과물이 함수 바깥으로 전달되지 않고 함수 안에서만 사용된다.
'Development language > Python' 카테고리의 다른 글
Python-5. String-문자열 / 따옴표 / Escape Sequence / print() / input() (0) | 2021.11.08 |
---|---|
Python-4. 함수 작성 방법 (0) | 2021.11.02 |
Python-2.함수 정의와 호출 / 객체 선언 / 지역변수 (0) | 2021.10.06 |
Python-1. 함수란 무엇인가? / Python의 대표적인 내장함수 (0) | 2021.10.06 |
Python-0.Anaconda 설치 (0) | 2021.09.01 |