회원가입-return print vs print; return

문건희·2025년 6월 1일

회원가입

목록 보기
4/8

정말 좋아!
이번엔 완전 기초부터,
정말 좋아!
이번엔 완전 기초부터,
return print("로그인")
print("로그인"); return
이 두 가지 코드가 어떻게 동작하고, 무슨 차이가 있는지를 눈에 보이도록 차근차근 설명할게!


✅ 핵심 비교: return print("로그인") vs print("로그인"); return


🎯 먼저 공통점부터 정리

항목공통점
"로그인"이 출력됨✅ O
함수가 종료됨✅ O
함수의 결과값은?None (둘 다)

즉, 겉으로 보기엔 완전히 똑같이 보일 수 있어.


🔍 그런데 내부 처리 로직은 다르다!

이제 한 줄씩 어떻게 동작하는지 (실행 순서) 를 비교하자.


✅ 1. print("로그인"); return

def login():
    print("로그인")
    return

💡 실행 순서:

  1. print("로그인") 실행 → "로그인"이 화면에 출력됨
  2. return → 함수 종료 (반환값 없음 → 기본적으로 None이 리턴됨)

결과적으로:

result = login()  # result = None

🖥️ 출력:

로그인

✅ 2. return print("로그인")

def login():
    return print("로그인")

💡 실행 순서:

  1. print("로그인") 먼저 실행됨 → "로그인"이 화면에 출력됨
  2. print() 함수는 아무것도 반환하지 않음 → 즉, None을 반환
  3. Nonereturn을 통해 그대로 밖으로 나감

결과적으로:

result = login()  # result = None

🖥️ 출력:

로그인

🔎 차이 정리표

항목print(); returnreturn print()
출력 순서"로그인" 출력하고 함수 종료"로그인" 출력하고 그 결과를 return
print() 결과출력만 하고 아무 것도 안 돌려줌 → None출력만 하고 아무 것도 안 돌려줌 → None
return에서 반환되는 값명시된 값 없음 → 기본값 Noneprint()의 반환값인 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 (둘 다)

즉, 겉으로 보기엔 완전히 똑같이 보일 수 있어.


🔍 그런데 내부 처리 로직은 다르다!

이제 한 줄씩 어떻게 동작하는지 (실행 순서) 를 비교하자.


✅ 1. print("로그인"); return

def login():
    print("로그인")
    return

💡 실행 순서:

  1. print("로그인") 실행 → "로그인"이 화면에 출력됨
  2. return → 함수 종료 (반환값 없음 → 기본적으로 None이 리턴됨)

결과적으로:

result = login()  # result = None

🖥️ 출력:

로그인

✅ 2. return print("로그인")

def login():
    return print("로그인")

💡 실행 순서:

  1. print("로그인") 먼저 실행됨 → "로그인"이 화면에 출력됨
  2. print() 함수는 아무것도 반환하지 않음 → 즉, None을 반환
  3. Nonereturn을 통해 그대로 밖으로 나감

결과적으로:

result = login()  # result = None

🖥️ 출력:

로그인

🔎 차이 정리표

항목print(); returnreturn print()
출력 순서"로그인" 출력하고 함수 종료"로그인" 출력하고 그 결과를 return
print() 결과출력만 하고 아무 것도 안 돌려줌 → None출력만 하고 아무 것도 안 돌려줌 → None
return에서 반환되는 값명시된 값 없음 → 기본값 Noneprint()의 반환값인 None을 리턴함
가독성/명확성✅ 더 명확하고 직관적임❌ 의미가 헷갈릴 수 있음

❗ 그럼 왜 return print()를 쓰지 말라고 해?

  • print()는 원래 출력만 하고 반환값이 없음 (None)

  • 그런데 return print()처럼 쓰면 그 의미가 명확하지 않음

    • 마치 뭔가를 리턴하는 것처럼 보이지만, 실제로는 None 리턴
  • 코드 읽는 사람에게 혼란을 줘 → ❌ 실무에서는 권장하지 않음


✅ 추천: 항상 출력은 print(), 반환은 return으로 분리하자!

def login():
    print("로그인 성공")  # 출력
    return True          # 결과 리턴 (필요하면)

🎯 결론 요약

질문답변
둘 다 출력돼?✅ 예
둘 다 함수 끝나?✅ 예
반환값이 다르냐?❌ 둘 다 None
그런데 왜 다르게 써야 해?print(); return은 명확하고 읽기 쉬워서 추천됨
return print(...)는 언제 써야 해?❌ 거의 안 써! 의미가 불분명해서 추천하지 않음

필요하면 이 내용을 velog용 마크다운으로도 정리해줄게!
또 궁금한 예제가 있다면 바로 알려줘 😊

0개의 댓글