작성
·
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
안녕하세요! 답변 도우미입니다. 함수에서 print
와 return
의 차이에 대해 보다 상세히 이해하도록 다음과 같은 가이드를 작성하여 공유드립니다.
print
와 return
의 역할 차이print
의 역할:화면에 값을 출력하는 역할을 합니다.
즉, 함수를 호출했을 때, 그 함수 내부에서 계산된 결과를 즉시 콘솔에 보여주는 것이 목적입니다.
하지만 print
는 값을 반환하지 않기 때문에 함수 밖에서 이 값을 활용할 수 없습니다.
return
의 역할:값을 함수 바깥으로 돌려주는 역할을 합니다.
이렇게 반환된 값은 함수 외부에서 저장하거나, 다른 연산에 활용할 수 있습니다.
return
은 "이 값이 함수의 결과다"라고 명시하는 것이며, 화면에 출력하는 기능은 없습니다.
질문에서 제시된 두 코드의 동작을 자세히 살펴봅시다.
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
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
return
과 print
의 핵심 차이구분returnprint
기능값을 함수 외부로 반환화면에 값을 출력값 저장 가능 여부반환된 값을 변수에 저장 가능화면 출력 후 값은 사라짐다른 연산 활용 여부반환된 값으로 추가 연산 가능출력된 값은 추가 연산 불가예시 결과data = cal(2, 3, "*")
→ data = 6data = cal(2, 3, "*")
→ data = None
return
을 쓰고, 언제 print
를 쓸까요?return
을 사용: 데이터를 저장하거나 또는 다른 계산에 활용해야 할 때 사용합니다. 예: 계산기, 데이터 처리 함수 등.
print
를 사용: 값을 단순히 화면에 보여주기 위해 사용합니다. 예: 디버깅, 상태 확인 등.
return
은 함수의 결과를 외부로 돌려줘서 다른 코드에서 재사용할 수 있게 합니다. print
는 단순히 결과를 화면에 보여줄 뿐, 데이터 활용이 불가능합니다.
함수의 결과를 재사용하려면 항상 return
을 사용하세요!
감사합니다.
잔재미코딩 드림 😊