def에서 print와 return의 차이점이 뭘까요?
243
5 asked
안녕하세요~! 잔재미코딩님을 열심히 믿고 따라가고 있는 수강생입니다.
다름이 아니라 함수 사용에서 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
이 나온다는 차이점은 느꼈습니다.
근데 왜 이런것인지 잘 이해가 안돼요 ㅠㅠ
정확한 둘의 사용상 차이점이 무엇인가요?
Answer 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을 사용하세요!
감사합니다.
잔재미코딩 드림 😊
크롤링, 영상을 따라해도 제미나에게 물어봐도 안되요
0
33
1
정규표현식 및 여러 코드 꼭 외워야 하나요?
0
40
1
리스트 함수형도 정수 데이터 받을 수 있나요?
0
46
1
크롤링 관련 질문
0
64
1
문제 답이 없는 버전은 없나요?
0
74
1
requests, BeautifulSoup 임포트 부분에 대해 문의드립니다.
0
83
1
업데이트 강의
0
98
2
선생님 강의중에서 sqlite3 강의를 제공한 강의가 있나요?
0
123
2
연습용 예제 파일
0
76
1
lxml 관련 오류
0
106
1
SAVE Request 창 띄우는 법
0
92
1
포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다. 2
0
75
1
포스트맨 사용법이 바뀌어서 강의를 따라가지 못하겠습니다.
0
98
1
예제 2, 4, 6에 대한 풀이 방식 질문.
0
89
1
문제 파일
0
78
1
pdf 파일 내 코드 복붙시 공백
0
291
1
데이터 저장 강좌 문의 건
0
96
1
" " 와 ' '의 차이를 알고 싶습니다
0
243
1
Exercise 22. 문자열 다루기 (strip)
0
132
1
list함수로 리스트 선언하면 실패하는데 이유는 무엇입니까?
0
187
1
셀 삽입후 바로 기입이 가능합니까?
0
139
2
주피터 노트북 마우스 스크롤? 오류
0
1550
2
등호 2개('==')의 의미가 뭐죠?
0
460
2
페이지가 넘어갈 때 url 변하지 않는 경우
0
267
1

