인프런 커뮤니티 질문&답변
def에서 print와 return의 차이점이 뭘까요?
작성
·
185
·
수정됨
1
안녕하세요~! 잔재미코딩님을 열심히 믿고 따라가고 있는 수강생입니다.
다름이 아니라 함수 사용에서 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
안녕하세요! 답변 도우미입니다. 함수에서 print와 return의 차이에 대해 보다 상세히 이해하도록 다음과 같은 가이드를 작성하여 공유드립니다.
1. print와 return의 역할 차이
(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으로 반환됩니다.반환된 값
6은data변수에 저장됩니다.마지막으로,
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
None3. return과 print의 핵심 차이
구분returnprint기능값을 함수 외부로 반환화면에 값을 출력값 저장 가능 여부반환된 값을 변수에 저장 가능화면 출력 후 값은 사라짐다른 연산 활용 여부반환된 값으로 추가 연산 가능출력된 값은 추가 연산 불가예시 결과data = cal(2, 3, "*") → data = 6data = cal(2, 3, "*") → data = None
4. 언제 return을 쓰고, 언제 print를 쓸까요?
return을 사용: 데이터를 저장하거나 또는 다른 계산에 활용해야 할 때 사용합니다. 예: 계산기, 데이터 처리 함수 등.print를 사용: 값을 단순히 화면에 보여주기 위해 사용합니다. 예: 디버깅, 상태 확인 등.
5. 정리
return은 함수의 결과를 외부로 돌려줘서 다른 코드에서 재사용할 수 있게 합니다. print는 단순히 결과를 화면에 보여줄 뿐, 데이터 활용이 불가능합니다.
함수의 결과를 재사용하려면 항상 return을 사용하세요!
감사합니다.
잔재미코딩 드림 😊





