본문 바로가기
Python/Python FAQ

Python 출력을 위한 인라인 if 문을 어떻게 작성하나요?, How to write inline if statement for print?

by 베타코드 2023. 9. 18.
반응형

질문


어떤 부울 변수가 True로 설정되었을 때에만 일부 내용을 출력해야합니다. 그래서 이 링크를 참고하여 간단한 예제로 시도해보았습니다:

>>> a = 100
>>> b = True
>>> print a if b
  File "<stdin>", line 1
    print a if b
             ^
SyntaxError: 잘못된 구문입니다  

print a if b==True와 같이 작성해도 동일한 결과입니다.

여기서 무엇을 놓치고 있는 걸까요?


답변


파이썬은 if 문에 뒤에 오는 if 이 없습니다.

파이썬에는 두 가지 종류의 if가 있습니다:

  1. if 문:

    if 조건: 문장
    if 조건:
        블록
    
  2. if 표현식 (Python 2.5에서 도입됨)

    조건이 참일 때의 표현식 if 조건 else 조건이 거짓일 때의 표현식
    

그리고 주의해야 할 점은, print ab = a 모두 문장이라는 것입니다. 표현식은 a 부분뿐입니다. 따라서 다음과 같이 작성하면

print a if b else 0

다음과 같은 의미입니다

print (a if b else 0)

그리고 비슷하게 다음과 같이 작성하면

x = a if b else 0

다음과 같은 의미입니다

x = (a if b else 0)

이제 else 절이 없다면 무엇을 출력/할당할까요? 출력/할당은 여전히 있습니다.

그리고 주의해야 할 점은, 그것이 없기를 원한다면 항상 일반적인 if 문을 한 줄에 작성할 수 있습니다. 그러나 이는 가독성이 떨어지며, 두 줄 형식을 피하는 이유는 사실 없습니다.

반응형

댓글