웹파이썬 프로그래밍 - 조건문(Conditional statement)

2021. 7. 8. 22:39강의 내용 정리/웹파이썬 프로그래밍

728x90
반응형

지난 학습 복습: Boolean(문자열)

- 논리 연산자는 and, or, not이 있다.

- 비교 연산자는 >, >=, <, <=, ==, !=이 있다.

- and와 or 조건문을 사용할 때는 왼쪽부터 탐색한다.

- 빈 문자열('', "")은 false이고 그 외의 문자열는 모두 true이다.
- 0과 0.0은 false이고 그 외의 숫자는 모두 true이다.

- 각각의 문자를 숫자로 변환하여 저장하기 때문에 문자열간의 대소관계가 존재할 수 있다

# 문자열의 대소관계

a < b # >>> True
A < a # >>> True
ab < abc # >>> True
abc < abd # >>> True
가 < 나 # >>> True

 

 

 

1. 조건문(Conditional Statement)

- if, elif, else를 사용해 조건문을 표현한다.

* if: 가장 최우선으로 검토하는 조건이다. 해당 조건이 true면 해당 조건문의 block이 실행된다.

* elif: 위의 if문이 false일 때 검토하는 조건이다. 해당 조건이 true면 해당 조건문의 block이 실행된다.

* else: 모든 if문이 false 일 때 실행하는 조건문이다. 별다른 조건이 들어가지 않고, 위의 모든 조건이 false일 때 block이 실행된다.

 

1-1. 조건

- 보통 boolean expression으로 조건을 걸어넣는다.

- True 값이나 False 값을 가지는 값들로 채운다.

 

1-2. block

- 조건문이 true일 때, block 안에 있는 문장이 실행된다.

- 파이썬에서는 인덴트(띄어쓰기 네 칸)을 통해 block을 나타낸다.

# if
# if <condition>: ## if 이후에 조건을 걸어넣은 뒤, 콜론(:)을 쓴다.
#    <block> ## block은 띄어쓰기 네칸을 해주어 표현한다.

# example
ph = float(input())

if ph < 7.0:
    print(ph, 'is acidic.') # 가장 먼저 ph가 7.0 이상인지 확인한다.
    
elif ph > 7.0:
    print(ph, 'is basic.') # 그 이후 ph가 7.0 이하인지 확인한다.

 

1-3. 조건문의 flow chart

- 동일한 변수에 대해 배타적인 특징을 가지는 조건을 비교할 때, if문을 두번 쓰면 다음과 같은 동작을 하게된다.

 

if를 두번 반복했을 때의 flow chart

 

# 코드
ph = float(input())

if ph < 7.0:
    print(ph, 'is acidic.') # 가장 먼저 ph가 7.0 이상인지 확인한다.
    
if ph > 7.0:
    print(ph, 'is basic.') # 그 이후 ph가 7.0 이하인지 확인한다.

 

- 위의 방법은 ph가 0.7보다 크거나 낮은 경우 (7.0이 없다는 전제하에) 두 가지 경우밖에 없으므로 if를 두번 사용하게 될 경우 다소 불필요한 동작을 하게된다. 따라서 다음과 같은 경우에 elif를 사용해준다.

 

 

if와 elif를 사용했을 때의 flow chart

# 코드
ph = float(input())

if ph < 7.0:
    print(ph, 'is acidic.') # 가장 먼저 ph가 7.0 이상인지 확인한다.
  
elif ph > 7.0:
    print(ph, 'is basic.') # 그 이후 ph가 7.0 이하인지 확인한다.

- 보는 것과 같이 앞에서 ph > 7.0 일 때 조건문을 한번만 동작해도 되기 때문에 더 효율적인 코드라고 할 수 있다.

- 또한 현업에서 else문은 대부분 잘못된 입력이나 에러가 발생했을 때에 대한 처리하는 데 사용하는 경우가 많다. 따라서 예외 처리를 다음과 같이 해줄 수 있다.

 

# 예외 사항 처리
ph = float(input())

if ph < 7.0:
    print(ph, 'is acidic.') # 가장 먼저 ph가 7.0 이상인지 확인한다.
  
elif ph > 7.0:
    print(ph, 'is basic.') # 그 이후 ph가 7.0 이하인지 확인한다.
    
else: # 예외처리
    print('ph가 7.0입니다. 다시 입력해주세요.')

 

728x90
반응형