티스토리 뷰

Programing-Language/Python

Python 삼항 연산자

Loweeeell 2017. 11. 17. 22:04

c언어나 자바에는 삼항 연산자가 있다.


조건 ? value1 : value2; 

- 조건이 True일 시 value1 반환, False일 시 value2 반환


result = (a > b) ? a : b;

 보통 이런 식으로 사용하며 코딩을 간단하게 할 시 자주 사용하는 조건부 3항 연산자이다.


나는 몇 일 전까지는 이러한 삼항 연산자가 없는 줄 알았는데 있다는 것을 알게되었다. 


파이썬에서의 삼항 연산자는 다른 언어와 조금 다른 형식을 띄고 있다.



a if a>b else b

value1 if 조건 else value2

- 마찬가지로 조건이 True일 시 value1 반환, False일 시 value2 반환


간단한 기호로 표현되는 C,JAVA 와 달리 if,else로 표현이 된다.



[i for i in range(1,11) if i%2==0] #[2,4,6,8,10]


이렇게 리스트 내포에서도 삼항연산자를 사용할 수 있다. 


리스트뿐만 아니라 튜플에서도 사용이 가능하다. 


+ 리스트 내포에서 조건문을 사용할때는 


위에 나온 for문 뒤에 if문을 사용하는 것과



[i if i%2==0 else 0 for i in range(1,11)] #[0,2,0,4,0,6,0,8,0,10]


for문 앞에 사용하는 것이 있다. 


차이점은 뒤에 if문을 사용하는 것은 else문을 사용하게 되면 문법 오류가 난다. (i for i in range(1,11) if i%2 ==0 else 0)  -> SyntaxError


앞에 if문을 사용하는 것은 else문을 사용하지 않으면 문법 오류가 난다.(i if i%2==0 for i in range(1,11)) -> SyntaxError



'Programing-Language > Python' 카테고리의 다른 글

python console 지우기  (2) 2018.02.12
Python None  (0) 2018.01.07
python virtualenv 윈도우 설치/사용  (0) 2017.11.19
얕은 복사와 깊은 복사(deep copy)  (0) 2017.09.23
range,xrange  (0) 2017.09.18
댓글