정말 좋아!
이번엔 완전 기초부터,
정말 좋아!
이번엔 완전 기초부터,
return print("로그인") 과
print("로그인"); return
이 두 가지 코드가 어떻게 동작하고, 무슨 차이가 있는지를 눈에 보이도록 차근차근 설명할게!
return print("로그인") vs print("로그인"); return| 항목 | 공통점 |
|---|---|
"로그인"이 출력됨 | ✅ O |
| 함수가 종료됨 | ✅ O |
| 함수의 결과값은? | None (둘 다) |
즉, 겉으로 보기엔 완전히 똑같이 보일 수 있어.
이제 한 줄씩 어떻게 동작하는지 (실행 순서) 를 비교하자.
print("로그인"); returndef login():
print("로그인")
return
print("로그인") 실행 → "로그인"이 화면에 출력됨return → 함수 종료 (반환값 없음 → 기본적으로 None이 리턴됨)result = login() # result = None
🖥️ 출력:
로그인
return print("로그인")def login():
return print("로그인")
print("로그인") 먼저 실행됨 → "로그인"이 화면에 출력됨print() 함수는 아무것도 반환하지 않음 → 즉, None을 반환None이 return을 통해 그대로 밖으로 나감result = login() # result = None
🖥️ 출력:
로그인
| 항목 | print(); return | return print() |
|---|---|---|
| 출력 순서 | "로그인" 출력하고 함수 종료 | "로그인" 출력하고 그 결과를 return |
print() 결과 | 출력만 하고 아무 것도 안 돌려줌 → None | 출력만 하고 아무 것도 안 돌려줌 → None |
return에서 반환되는 값 | 명시된 값 없음 → 기본값 None | print()의 반환값인 None을 리턴함 |
| 가독성/명확성 | ✅ 더 명확하고 직관적임 | ❌ 의미가 헷갈릴 수 있음 |
return print()를 쓰지 말라고 해?print()는 원래 출력만 하고 반환값이 없음 (None)
그런데 return print()처럼 쓰면 그 의미가 명확하지 않음
None 리턴코드 읽는 사람에게 혼란을 줘 → ❌ 실무에서는 권장하지 않음
print(), 반환은 return으로 분리하자!def login():
print("로그인 성공") # 출력
return True # 결과 리턴 (필요하면)
| 질문 | 답변 |
|---|---|
| 둘 다 출력돼? | ✅ 예 |
| 둘 다 함수 끝나? | ✅ 예 |
| 반환값이 다르냐? | ❌ 둘 다 None |
| 그런데 왜 다르게 써야 해? | print(); return은 명확하고 읽기 쉬워서 추천됨 |
return print(...)는 언제 써야 해? | ❌ 거의 안 써! 의미가 불분명해서 추천하지 않음 |
필요하면 이 내용을 velog용 마크다운으로도 정리해줄게!
또 궁금한 예제가 있다면 바로 알려줘 😊
이 두 가지 코드가 어떻게 동작하고, 무슨 차이가 있는지를 눈에 보이도록 차근차근 설명할게!
return print("로그인") vs print("로그인"); return| 항목 | 공통점 |
|---|---|
"로그인"이 출력됨 | ✅ O |
| 함수가 종료됨 | ✅ O |
| 함수의 결과값은? | None (둘 다) |
즉, 겉으로 보기엔 완전히 똑같이 보일 수 있어.
이제 한 줄씩 어떻게 동작하는지 (실행 순서) 를 비교하자.
print("로그인"); returndef login():
print("로그인")
return
print("로그인") 실행 → "로그인"이 화면에 출력됨return → 함수 종료 (반환값 없음 → 기본적으로 None이 리턴됨)result = login() # result = None
🖥️ 출력:
로그인
return print("로그인")def login():
return print("로그인")
print("로그인") 먼저 실행됨 → "로그인"이 화면에 출력됨print() 함수는 아무것도 반환하지 않음 → 즉, None을 반환None이 return을 통해 그대로 밖으로 나감result = login() # result = None
🖥️ 출력:
로그인
| 항목 | print(); return | return print() |
|---|---|---|
| 출력 순서 | "로그인" 출력하고 함수 종료 | "로그인" 출력하고 그 결과를 return |
print() 결과 | 출력만 하고 아무 것도 안 돌려줌 → None | 출력만 하고 아무 것도 안 돌려줌 → None |
return에서 반환되는 값 | 명시된 값 없음 → 기본값 None | print()의 반환값인 None을 리턴함 |
| 가독성/명확성 | ✅ 더 명확하고 직관적임 | ❌ 의미가 헷갈릴 수 있음 |
return print()를 쓰지 말라고 해?print()는 원래 출력만 하고 반환값이 없음 (None)
그런데 return print()처럼 쓰면 그 의미가 명확하지 않음
None 리턴코드 읽는 사람에게 혼란을 줘 → ❌ 실무에서는 권장하지 않음
print(), 반환은 return으로 분리하자!def login():
print("로그인 성공") # 출력
return True # 결과 리턴 (필요하면)
| 질문 | 답변 |
|---|---|
| 둘 다 출력돼? | ✅ 예 |
| 둘 다 함수 끝나? | ✅ 예 |
| 반환값이 다르냐? | ❌ 둘 다 None |
| 그런데 왜 다르게 써야 해? | print(); return은 명확하고 읽기 쉬워서 추천됨 |
return print(...)는 언제 써야 해? | ❌ 거의 안 써! 의미가 불분명해서 추천하지 않음 |
필요하면 이 내용을 velog용 마크다운으로도 정리해줄게!
또 궁금한 예제가 있다면 바로 알려줘 😊