Python/Python 중급

Python 파이썬 IF 문

독학코딩 2021. 11. 23. 20:58
반응형

안녕하세요 독학코딩입니다. 오늘은 파이썬 if 문에 대해서 배워보도록 하겠습니다. if 문은 말 그래도 "만약에 A라면 B를 실행한다"라는 형식의 조건문으로 특정 조건에 성립하면 특정 실행을 하는 문법입니다. 다른 문법들도 그렇지만 정말로 많이 쓰이는 문법이니 잘 알아두셔야 합니다.

if 문
    if A == B: 
        print(B)
    elif A == C:
        print(C)
    else:
        print(D)

for 문
    for i in range(10):
        print(i)

while 문
    a = 0
    while a < 10:
        print(a)
        a += 1

try-except 문
    try:
        print(a)
    except:
        print("a in not defined")

 

 


Python if 문의 기본형태 if A=B

코딩 중에 특정 조건에 부합하는 경우에만 특정 실행을 해야 될 경우가 있습니다. 예를 들어 변수의 데이터 타입에 따라 분류하거나 특정 변수가 true이거나 특정 변수가 10보다 작거나 할 때입니다. 

str_a = "A"
print(type(str_a))
if type(str_a) == str:
    print(str_a)

다른 조건들에는 무엇이 있을까요? 혹시 bool 데이터 타입을 기억하시나요? 정식명칭은 boolean으로 참과 거짓을 표현하는 데이터 타입으로 True와 False두 가지 값만을 갖는 데이터 타입입니다. 이 bool은 if 문에서 기초가 되는 데이터 타입입니다.

bool_a = True
if bool_a:
    print("bool_a is True")

if A=B의 조건문보다 if 조건이 짧아진게 보이시나요? 정확히 말하자면 if는 조건이 True이면 실행, False이면 넘어가는 문법입니다. 그래서 if A=B에서 A=B가 True이기 때문에 실행이 된 겁니다. 즉 True와 False로 구분할 수 있는 모든 조건은 if 문을 사용할 수 있습니다. 그런 조건에는 아래와 같은 게 있습니다.

A == B A는 B와 같다
A != B A는 B와 같지 않다
A > B A는 B보다 크다
A < B A는 B보다 작다
A >= B A는 B보다 크거나 같다
A <= B A는 B보다 작거나 크다
A in B A가 B에 포함 된다

위 표를 보시면 대부분의 조건이 이해가 되실 겁니다. 근데 in은 무엇이고 언제 사용하는 것일까요? in은 특정 변수가 다른 변수에 포함되는지 확인하는 조건입니다. 예를 들어 str이 list에 포함되는지, dict의 키 중엔 특정 str이 있는지 확인하는 것입니다. 

list_a = ["A", "B", "C", "D"]
str_a = "B"
if str_a in list_a:
    print(str_a, "는 list_a에 포함되어 있습니다.")

tuple_a = 1,2,3,4
int_a = 4
if int_a in tuple_a:
    print(int_a, "는 tuple_a에 포한되어 있습니다.")

dict_a = {"이름": "홍길동", "나이":24}
str_a = "이름"
if str_a in dict_a.keys():
    print(str_a, "는 dict_a의 키에 포함되어 있습니다.")

 

 

Python if 문의 완결형태 else 

근데 조건이 1가지가 아니라 2가지라면 어떻게 해야 될까요? 간단합니다. 

int_a = 3
print(type(int_a))
if type(int_a) == str:
    print("str : ", int_a)
if type(int_a) == int:
    print("int : ", int_a)

if 문을 2개 생성하여 위 처럼 조건을 2개 생성할 수도 있습니다. 하지만 1번 조건에 부합하지 않는다면 2번 조건으로 실행하는 방식이기 때문에 따지고 보면 True 아니면 False의 조건 형태입니다. 그래서 굳이 2번 조건을 길게 작성할 필요는 없습니다. 

int_a = 3
print(type(int_a))
if type(int_a) == str:
    print("str : ", int_a)
else:
    print("int : ", int_a)

위처럼 작성하면 1번 조건에 맞지 않는다면 모두 else를 실행하는 방식의 조건문입니다. 일반적인 경우는 이렇게 많이 사용합니다. 즉 else는 1번 조건에 True가 아니라면 모두 False이기 때문에 else를 실행하는 방식의 조건문입니다. 

 

 

Python if 문의 추가형태 elif A=C

조건이 3개 이상일 때는 어떻게 해야 될까요? True와 False로만 구분할 수 없고 3개 이상의 조건이 필요한 경우는 if와 else 사이에 elif를 추가하여 조건문을 원하는 만큼 생성할 수 있습니다.

list_a = ["코딩", "공부"]
print(type(list_a))
if type(list_a) == str:
    print("str : ", list_a)
elif type(list_a) == list:
    print("list : ", list_a)
elif type(list_a) == tuple:
    print("tuple : ", list_a)
else:
    print("int : ", list_a)

 

 

 

Python if 문의 복수형태 and, or

그런데 단순히 1가지 조건에만 True인 변수가 아니라 A에도 포함되어야 하고 B에도 포함되어야 한다면요? 여기서부터 조금 어려워집니다. if의 조건문 안에 and, or, not이 사용됩니다.

str_a = "코딩"
if type(str_a) == str and len(str_a) == 2:
    print(str_a, "는 str이면서 길이가 2입니다.")

위와 같이 사용되는 and는 and의 앞 조건과 뒤 조건이 모두 True여야만 실행됩니다. str_a를 변경해보시면서 실행해보시길 바랍니다.

str_a = "코딩"
if type(str_a) == str or type(str_a) == int:
    print(str_a, "는 str이거나 int입니다.")

or는 위와 같이 or 앞 조건 혹은 뒤 조건 둘 중 1개만 True라면 실행되는 조건입니다. 

 

 

Python if 문의 부정형태 if not A

여태까지의 조건문 if는 모두 True의 결과일 때만 실행되는 조건들이었습니다. 그럼 반대로 False일 때 실행되는 조건은 어떻게 하는 걸까요? 

bool_a = False
if not bool_a:
    print(bool_a, "는 False 입니다.")

위처럼 not은 변수가 조건에 부합하지 않을 때 즉, False일 때 실행하도록 하는 조건입니다. 

 

오늘은 파이썬 if문에 대해서 배워보았습니다. 이해하고 나면 어렵진 않지만 코딩을 하면서 정말로 많이 사용되는 문법이 if문이기 때문에 꼭 잘 알아두시기 바랍니다. 다음 시간엔 파이썬의 반복문 for문에 대해서 배워보도록 하겠습니다.

반응형