인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

allie1017님의 프로필 이미지
allie1017

작성한 질문수

파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본: 함수 활용

def에서 print와 return의 차이점이 뭘까요?

작성

·

23

·

수정됨

0

안녕하세요~! 잔재미코딩님을 열심히 믿고 따라가고 있는 수강생입니다.

다름이 아니라 함수 사용에서 print와 return의 차이점이 잘 이해가 되지 않아서요.

 

def cal(a, b, c):

if c == '+' :

return a + b

elif c == '*' :

return a * b

else :

return 0

 

예를 들면 위 함수 코드를 실행하고

data = cal(2, 3, "*")

print(data)

를 실행하면 바로 6이 나오지만

 

위의 코드에서 return대신 print()를 사용하면

data = cal(2, 3, "*")

print(data)

를 실행 시

6

None

이 나온다는 차이점은 느꼈습니다.

근데 왜 이런것인지 잘 이해가 안돼요 ㅠㅠ

 

정확한 둘의 사용상 차이점이 무엇인가요?

답변 1

0

안녕하세요! 답변 도우미입니다. 함수에서 printreturn의 차이에 대해 보다 상세히 이해하도록 다음과 같은 가이드를 작성하여 공유드립니다.


1. printreturn의 역할 차이

(1) print의 역할:

  • 화면에 값을 출력하는 역할을 합니다.

  • 즉, 함수를 호출했을 때, 그 함수 내부에서 계산된 결과를 즉시 콘솔에 보여주는 것이 목적입니다.

  • 하지만 print값을 반환하지 않기 때문에 함수 밖에서 이 값을 활용할 수 없습니다.

(2) return의 역할:

  • 값을 함수 바깥으로 돌려주는 역할을 합니다.

  • 이렇게 반환된 값은 함수 외부에서 저장하거나, 다른 연산에 활용할 수 있습니다.

  • return은 "이 값이 함수의 결과다"라고 명시하는 것이며, 화면에 출력하는 기능은 없습니다.


2. 코드로 이해하기

질문에서 제시된 두 코드의 동작을 자세히 살펴봅시다.

(1) return 사용 시

def cal(a, b, c):
    if c == '+':
        return a + b
    elif c == '*':
        return a * b
    else:
        return 0
​
data = cal(2, 3, "*")  # cal 함수는 결과로 6을 반환
print(data)            # print는 6을 화면에 출력
  • cal(2, 3, "*")가 실행되면, 함수 내부에서 2 * 3 = 6이 계산되고, 이 값이 return으로 반환됩니다.

  • 반환된 값 6data 변수에 저장됩니다.

  • 마지막으로, print(data)가 실행되면서 data에 저장된 6을 화면에 출력합니다. 결과:

6

(2) print 사용 시

def cal(a, b, c):
    if c == '+':
        print(a + b)   # 값을 출력만 하고 반환하지 않음
    elif c == '*':
        print(a * b)   # 값을 출력만 하고 반환하지 않음
    else:
        print(0)       # 값을 출력만 하고 반환하지 않음
​
data = cal(2, 3, "*")  # cal 함수는 아무것도 반환하지 않음
print(data)            # data는 None이므로 None을 출력
  • cal(2, 3, "*")가 실행되면, 함수 내부에서 print(a * b)가 실행되어 6이 화면에 출력됩니다.

  • 하지만, 함수는 return이 없으므로 결과를 반환하지 않습니다. 이때 파이썬 함수는 기본적으로 None을 반환합니다.

  • 따라서 data 변수에는 None이 저장됩니다.

  • 마지막으로, print(data)가 실행되면서 None이 화면에 출력됩니다. 결과:

6
None

3. returnprint의 핵심 차이

구분returnprint기능값을 함수 외부로 반환화면에 값을 출력값 저장 가능 여부반환된 값을 변수에 저장 가능화면 출력 후 값은 사라짐다른 연산 활용 여부반환된 값으로 추가 연산 가능출력된 값은 추가 연산 불가예시 결과data = cal(2, 3, "*")data = 6data = cal(2, 3, "*")data = None


4. 언제 return을 쓰고, 언제 print를 쓸까요?

  • return을 사용: 데이터를 저장하거나 또는 다른 계산에 활용해야 할 때 사용합니다. 예: 계산기, 데이터 처리 함수 등.

  • print를 사용: 값을 단순히 화면에 보여주기 위해 사용합니다. 예: 디버깅, 상태 확인 등.


5. 정리

return은 함수의 결과를 외부로 돌려줘서 다른 코드에서 재사용할 수 있게 합니다. print는 단순히 결과를 화면에 보여줄 뿐, 데이터 활용이 불가능합니다.

함수의 결과를 재사용하려면 항상 return을 사용하세요!

감사합니다.

잔재미코딩 드림 😊

allie1017님의 프로필 이미지
allie1017

작성한 질문수

질문하기