본문 바로가기
Python

[Python] if문, elif문, else문, 중첩조건문

by ybin.im 2024. 12. 2.

1. 조건문 if

 "만약에"라는 조건을 사용하여 프로그램의 흐름을 제어하는 것

 

if 조건식:
    조건식이 참일때 실행되는 코드

▶ if 조건식 뒤에 콜론( : )을 꼭 붙여줘야하고

▶ 밑에 따라오는 코드에 꼭 한칸이라도 들여쓰기를 해줘야함. 

▶조건식이 참(True)일 때 조건문이 실행된다.

 

조건문에서 거짓

숫자형 : 0은 거짓, 그외의 숫자는 참
문자열 : 빈 문자열
리스트, 딕셔너리, 튜플, 셋(set) : 값이 비어있는 경우 [ ], { }, ( ), set( )
None
False

False인 경우 if문의 조건문이 출력되지 않고, True인 경우만 출력되었다.


2. elif문 , else문

 elif문은 if문 이외의 조건을 더 걸어준다. ( elif가 True일 때 실행 )
else문은 if문과 elif문 모두 False일 경우 else문을 실행한다. 
▶ elif문은 꼭 if문 뒤에 따라와야하고, if문과 쓰는 방식은 동일하다.

▶ else문 또한 꼭 if문 뒤에 따라오며,

▶ else문은 필요없다면 생략 가능
다음과 같이 사용한다.

else: 
    조건문

 

 

▶코드

1. age를 int형식으로 input받았다.

2. if와 elif 조건식에서 age와 나이대별로 비교연산자를 사용해서 10대 ~ 40대의 나이대를 나눠주었다.

3. else문으로 10대 ~ 40대 이외의 결과를 갖는 결과로 50대 이상을 출력.

결과


3. 중첩조건문

if문 안에 if문이 들어가있는 형태이다.
다음과 같이 사용한다.
if 조건식1:
    if 조건식1-1:
        실행코드
    elif 조건식 1-2:
        실행코드
if 조건식2:
    if 조건식 2-1:
        실행코드
    elif 조건식 2-2:
        실행코드

 

▶ 코드

▶ 조건
- 나이대별 지불요금을 알려주는 코드
- 지불방식이 현금인지 카드인지도 구별

# 나이를 양수인 정수일 경우만
# 결제방법이 카드 또는 현금인 경우
# 결제방법을 잘못입력하였을 경우 요금제 문구를 출력하지 않음

▶ 리뷰
1. if문을 통해 age에 양수인 경우와 else문으로 음수의 경우로 나눈다.

2. 첫번째 if문 내부에 if와 elif를 사용하여 카드인지 현금인지 구분한다.
    ( == ) 비교연산자 사용

3. else문으로 카드, 현금 이외의 잘못된값이 입력되었을 경우 잘못입력했다는 문구 출력,
    그리고 price에 None값을 넣어 조건문에서 거짓으로 판명되게 하고,
    바로 밑에 if 조건식에 price가 참일 때만 요금제 문구를 출력한다.

4. 두번째 if문 내부에 if와 elif로 나이대별 요금을 나눈다.

5. else로 75세 이상은 무료임을 출력

6. f문자열을 사용해서 결과를 출력

그런데 위와 같이 한다면 age를 애초에 int로 받았기에 age가 str형식으로 들어온다면 오류가 발생한다.

그래서 age를 str로 받았고,

if문에 age.isdigit()으로 age가 숫자일 때와 age가 양수일 때,
and연산자를 사용하여 동시에 참인경우 if문 내부로 넘어가게 만들어주었다.

if문 안에서 age = int(age) 로 age를 int형식으로 만들어주었다.

 이제는 문자열이 들어와도 나이를 잘못입력했다고 알리는 것을 볼 수 있다.


4. 조건문에서 in연산자와 and, or연산자

조건문에서 논리연산자

 위에서 if문에서 and연산자로 두가지 조건식 모두참일경우 참이되는 경우를 만들어봤다.

 or 연산자는 두가지 조건 중 둘 중 하나가 조건에 참일경우 조건문이 실행된다.

 

조건문에서 in연산자

조건문에서 in연산자를 사용하여 리스트, 튜플, 딕셔너리 등에서
특정값이 존재하는지를 통해 True나 False를 구별할 수 있다.

 

입력받은 fruits가 리스트 안에 있다면 포함되어있다는 문구가 출력된다.