특정 영역 내의 명령문에 대한 실행 여부를 프로그램 실행 과정 중 결정하는 구조
→ 실행 여부는 조건에 따라 결정


→ 들여쓰기는 코드 블록을 표현
→ 특정 동작을 수행하는 한 라인 이상의 명령문의 집합
→ 스페이스 4칸 권고(PEP-8)

boolean 식)비교연산자를 사용하여 결과가 불리언(boolean) 타입으로 생성되는 표현식
| 연산자 | 수학적 기호 | 의미 |
|---|---|---|
< | < | 작다 |
<= | ≤ | 작거나 같다 |
> | > | 크다 |
>= | ≥ | 크거나 같다 |
== | = | 같다 |
!= | ≠ | 같지 않다 |
boolean 타입논리값인 참(Ture)와 거짓(False)의 값만 표현할 수 있는 데이터 타입
→ True 혹은 False 예약어로 표현
→ 비교 연산자를 사용한 표현식의 결과로 생성
참, 거짓을 구별할 수 있는 명제를 대상으로 명제의 집합을 위해 고안한 연산자
두 개의 논리값(boolean 식)을 연산하여 참 또는 거짓을 결과로 얻는 연산자
and(논리곱), or(논리합), not(논리부정) 연산자 사용and 연산자둘 다 True일 때만 True
| A | B | A and B |
|---|---|---|
| True | True | True |
| True | False | False |
| False | True | False |
| False | False | False |
or 연산자둘 중 하나라도 True면 True
| A | B | A or B |
|---|---|---|
| True | True | True |
| True | False | True |
| False | True | True |
| False | False | False |
not 연산자값을 반대로 바꿈
| A | not A |
|---|---|
| True | False |
| False | True |
short-circuit evaluation
첫 번째 논리값 만으로 전체 연산 결과가 판별 가능할 때, 두 번째 논리값은 확인(평가)하지 않는 기법
#둘 다 확인해야 함
temp >= 27 ad season == "summer"
# If 첫 번째가 True면 두 번째는 단락 평가
temp >= 27 or season == "summer"
만약 사용자가 반지름 값에 음수를 입력하면?
#반지름사용자입력
rad = int(input("반지름을입력하세요:"))
#높이사용자입력
hei = int(input("높이를입력하세요:"))
if rad > 0 and hei > 0:
#부피&겉넓이계산
vol = 1/3 * 3.14 * rad ** 2 * hei
suf =3.14 * rad ** 2 + 3.14 * rad * hei
print("원뿔의부피는" ,vol, "입니다.")
print("원뿔의겉넓이는" ,suf, "입니다")
문제점: 사용자는 음수를 입력했을 때 왜 문제가 생기는지 알지 못함
#반지름사용자입력
rad = int(input("반지름을입력하세요:"))
#높이사용자입력
hei = int(input("높이를입력하세요:"))
if rad > 0 and hei > 0:
#부피&겉넓이계산
vol = 1/3 * 3.14 * rad ** 2 * hei
suf =3.14 * rad ** 2 + 3.14 * rad * hei
print("원뿔의부피는" ,vol, "입니다.")
print("원뿔의겉넓이는" ,suf, "입니다")
if-else문

if-elif-else문

※ else 문은 의무가 아님, 필요 없으면 적지 않아도 ⭕
if문 안에 또 다른if문이 들어가는 구조

