반응형
질문
어떤 부울 변수가 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
가 있습니다:
if
문:if 조건: 문장 if 조건: 블록
if
표현식 (Python 2.5에서 도입됨)조건이 참일 때의 표현식 if 조건 else 조건이 거짓일 때의 표현식
그리고 주의해야 할 점은, print a
와 b = 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
문을 한 줄에 작성할 수 있습니다. 그러나 이는 가독성이 떨어지며, 두 줄 형식을 피하는 이유는 사실 없습니다.
반응형
댓글