Python/제어문

[Python] if문

코딩잡아먹는자바 2023. 6. 29. 16:41
728x90

<목차>

1. if문의 기본 구조

2. 다양한 조건을 판단하는 elif

3. 조건부 표현식


if문의 기본 구조

if 조건문:
    수행할 문장1
    수행할 문장2
    ...
else:
    수행할 문장A
    수행할 문장B
    ...

if문은 위와 같은 조건물을 실행시켜서 참이면 if 조건문을 수행하고 조건문이 거짓이면 else 조건문을 수행한다. 그러므로 else문과 if문은 독립적으로 사용할 수 없고 항상 같이 사용하여야 한다.

콜론( : )

if 조건문 뒤에는 반드시 콜론(:)이 붙는다. 콜론을 빠뜨릴 경우에는 오류가 발생한다.

if 조건문 # 오류 발생
    수행할 문장1
    수행할 문장2
    수행할 문장3
    ...
else # 오류 발생
    수행할 문장A
    수행할 문장B
    수행할 문장C
    ...

들여쓰기(tab)

if 조건문:
    수행할 문장1
    수행할 문장2
    수행할 문장3
    ...

위와 같이 if문을 만들 때는 if 조건문: 바로 아래 문장부터 if문에 속하는 모든 문장에 들여쓰기를 해주어야 한다. 들여쓰기가 잘 안되어 있을 경우에는 오류가 발생한다.

if 조건문:
    수행할 문장1
수행할 문장2 # 오류 발생
수행할 문장3 # 오류 발생
...

위와 같은 코드는 들여쓰기를 잘못하였기 때문에 오류가 발생한다.

 

비교 연산자

비교 연산자 설명
x < y x가 y보다 작다
x > y x가 y보다 크다
x == y x와 y가 같다
x != y x와 y가 같지 않다
x >= y x가 y보다 크거나 같다
x <= y x가 y보다 작거나 같다

조건문에서도 위와 같은 비교 연산자를 사용할 수 있다.

x = 3
y = 2

>>> print(x > y)
True

>>> print(x < y)
False

>>> print(x == y)
False

>>> print(x != y)
True

예제

현재 보유한 돈은 3000원이다.
만약 5000원 이상의 돈을 가지고 있으면 라면을 사 먹고 그렇지 않으면 과자를 사 먹어라.
money = 3000

if money >= 5000:
    print("라면을 사 먹어라")
else:
    print("과자를 사 먹어라")
    
과자를 사 먹어라

위 예제를 보면 현재 보유한 돈은 3000원이기 때문에 money >= 5000 조건문은 False가 될 것이다. 그렇기 때문에 else문을 수행할 것이다.

만약 현재 보유한 돈이 5000원 이상이면 money >= 5000 조건문이 True가 됨으로 if 조건문을 수행할 것이다.

and, or, not

연산자 설명
x or y x와 y 둘 중에 하나만 참이어도 참이다
x and y x와 y 모두 참이어야 참이다
not x x가 거짓이면 참이다

예제

현재 보유한 돈은 3000원이다.
현재 보유한 돈이 5000원 이상이거나 카드가 있다면 라면을 사 먹고 그렇지 않으면 과자를 사 먹어라
money = 3000
card = True

if money >= 5000 or card:
    print("라면을 사 먹어라")
else:
    print("과자를 사 먹어라")
      
라면을 사 먹어라

위 예제에서는 money가 5000원 이하이지만 card가 True이기 때문에 if money >= 5000 or card 조건문은 참이 된다. 왜냐하면 or 연산자를 사용하였기 때문에 둘 중에 하나만 참이어도 참이 되기 때문이다.

x in s, x not in s

in(~안에) not in(~안에 있지 않다)
x in 리스트 x not in 리스트
x in 튜플 x not in 튜플
x in 문자열 x not in 문자열
>>> print(1 in [1, 2, 3]) # [1, 2, 3]이라는 리스트 안에 1이 있는가?
True

>>> print(1 not in [1, 2, 3]) # [1, 2, 3]이라는 리스트 안에 1이 없는가?
False
>>> print('a' in ('a', 'b', 'c')) # 'a'라는 문자열이 ('a', 'b', 'c')라는 튜플 안에 있는가?
True

>>> print('j' not in 'python') # 'j'라는 문자열이 'python'이라는 문자열 안에 있는가?
True

예제

만약 주머니에 돈이 있으면 라면을 먹고, 없으면 먹지 마라.
pocket = ['wallet', 'earphone', 'money']

if 'money' in pocket:
    print("라면을 먹어라")
else:
    print("라면을 먹지마라")
   
라면을 먹어라

['wallet', 'earphone', 'money'] 리스트 안에 'money'가 있으므로 'money' in pocket 조건문은 참이 된다.

다양한 조건을 판단하는 elif

if 조건문1:
    수행할 문장1-1
    수행할 문장1-2
    ...
elif 조건문2:
    수행할 문장2-1
    수행할 문장2-2
    ...
elif 조건문N:
    수행할 문장N-1
    수행할 문장N-2
    ...
else:
    수행할 문장A
    수행할 문장B
    ...

elif는 개수에 제한 없이 사용할 수 있으며 이전 조건문이 거짓일 때 수행한다.

예제

주머니에 'money'가 있으면 라면을 먹고, 주머니에 'money'는 없지만 카드가 있으면 짜장면을 먹고, 'money'도 없고 카드도 없으면 라면과 짜장면을 먹지마라
pocket = ['wallet', 'earphone']
card = True

if 'money' in pocket:
    print("라면을 먹어라")
elif card:
    print("짜장면을 먹어라")
else:
    print("라면과 짜장면을 먹지마라")
   
짜장면을 먹어라

조건부 표현식

조건부 표현식은 가독성에 유리하고 한 줄로 작성할 수 있어 활용성이 좋다.

<활용 방법>
조건문이 참인 경우 if 조건문 else 조건문이 거짓인 경우
if score >= 80:
    message = "합격입니다."
else:
    message = "실격입니다."

위 코드를 조건부 표현식을 사용하면 아래 코드와 같다.

message = "합격입니다." if score >= 80 else "실격입니다"
728x90