티스토리 뷰

Programming/Python

[Python] 조건문 if

sohyun_ 2018. 8. 18. 23:30

# python에서의 제어문

기본적으로 파이썬의 구문은 위에서 아래로 순차적으로 수행된다. 순차적인 흐름에 영향을 주는 제어문은 크게 반복문과 조건문으로 나뉜다

비슷한 형태의 작업을 반복적으로 수행하는 데는 반복문을, 조건에 따라 작업의 수행 여부를 선택적으로 결정하는 데는 조건문을 사용한다

 

# if문

if문은 조건을 평가해 그 결과에 따라 수행 여부를 결정하는데 기본형태는 아래와 같다

if <조건식>:
구문

조건식 이후에 콜론(:)을 지정해 조건식이 종료됨을 나타낸다. 참일 경우 구문이 수행되고, 거짓인 경우 구문은 수행되지 않는다

>>>value = 10
>>>if value > 5:
print("value is bigger than 5")
value is bigger than 5

2개 이상의 조건을 처리하려면 elif를, 어떠한 조건에도 해당하지않는 경우에 대해서는 else문을 이용한다

if <조건식1>:
구문
elif <조건식2>:
구문2
else:
구문3

 

 

# 조건식의 참/거짓 판단

조건식의 참/거짓 판단은 기본적으로 자료형의 bool 값과 같다. True는 참, False는 거짓

참: 값이 할당된 변수

거짓: 정수계열의 0, 실수계열의 0.0, 시퀀스계열의 () [] {} ""(빈문자열), None

>>>bool(True) #bool 타입
True
>>>bool(False)
False
>>>bool(13) # 숫자
True
>>>bool(0.0)
False
>>>bool('apple') #문자
True
>>>bool('')
False
>>>bool(()) #시퀀스
False
>>>bool(None) #None
False

 

 

# 단축평가

2개 이상의 논리식을 판별하기 위해 and, or, &, | 연산자를 사용한다

위의 연산자는 식의 왼쪽부터 오른쪽으로 진행하며 판단해 수행한다

>>>a = 0

>>>if a & 10 / a:

print("a가 0이다")
else:
print("에러가 없다")
#에러발생 ZeroDivisionError: division by zero

&의 앞부분인 a가 거짓이니 뒷부분을 판단하지 않아도 거짓임이 분명하다. 이처럼 전체를 판단하지 않고, 앞의 수식이 확실하면 뒤의 수식을 평가하지 않는 것을 단축평가라고 한다

논리적인 구조는 같지만 & 대신 and를 사용하면 단축평가가 이루어진다

>>>a = 0
>>>if a and 10 / a:
print("a가 0이다")
else:
print("에러가 없다!")
에러가 없다!

조건문의 결과가 결정되는 시점 이후로 추가적인 판별 연산을 수행하지 않기때문에 속도가 향상된다

예제와 같은 런타임 에러 발생을 try~except 구문이 아닌 논리식으로 사전에 차단할 수 있다

 

'Programming > Python' 카테고리의 다른 글

[Python] Dictionary  (0) 2018.08.26
[Python] List  (0) 2018.08.25
[Python] 반복문 for, while  (0) 2018.08.19
[Python] 주석처리  (0) 2018.08.12
[Python] python2와 python3의 차이점  (0) 2018.08.11
댓글
최근에 올라온 글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Total
Today
Yesterday