본문 바로가기

코딩 이야기/프로그래밍 언어 이야기

짱 쉬운 파이썬 강좌 #5 if문

반응형

서론

 

오랜만에 파이썬 강좌를 쓰게 됬다. 시험이 끝났음에도, 좀 몸살같은 것때문에 시리, 5일간 좀 피곤에 쩔어 살았는데, 주말에 푹자니, 좀 낫는 기분이다. 그래서 여유있게 파이썬 강좌를 쓰려한다.

 

https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Python-logo-notext.svg/600px-Python-logo-notext.svg.png

 

if문? 그게 뭐징...

 

if문은 파이썬의 문법 중 하나로 조건을 걸어, 그 상황에 맞게 대응하기 할 수 있다.

아래에 if문을 활용한 유명한 프로그래머 짤이 있는데 보고 가자.

https://image5jvqbd.fmkorea.com/files/attach/new/20200725/486616/2990940307/3005058485/d2f0bac9ab74eb739564998188117385.jpg

 

짤 설명을 하자면, 보통 일반인이라면, 마트에 가서 우유를 구매 후, 아보카도가 있다면 아보카도를 6개 사갈 것이고, 없다면 우유만 사가지고 갈 것이다. 하지만 이 짤을 컴파일러, 인터프리터 관점에서 본다면, 우유를 사 되, 아보카도가 있다면, 우유를 6개 사라는 것이다. 이 짤을 코드로 표현하면 대략 이렇다.

mart = ["milk", "apple", "avocado"]
myshoppingslist = []
if "avocado" in mart:
    for i in range(6):
        myshoppingslist.append(mart[0])

print(myshoppingslist)

 

마트라는 리스트 안에 아보카도가 있다면, 나의 쇼핑리스트에 우유를 여섯번 추가하는 코드이다.

(if문 밑에 for i in range(6)은 신경쓰지 않아도 된다.)

 

 

이런 식으로 if문은 내가 원하는 값을 얻기 위해 사용하거나, 해당 상황에 대응하기 위해 사용하는 문법이다. 

 

사용법

 

파이썬의 if 문은 들여쓰기를 통해 수행할 내용을 정한다.

if 조건:
	수행할 내용
elif 조건:
	수행할 내용
else:
	수행할 내용

이런 식으로.

if 는 조건을 걸 수 있고, elif는 추가 조건, else는 위에 조건들을 제외한 경우이다.

여기서 짚고 넘어가야 할 건, 만약 코드가 이렇다고 가정을 해보자.

a = 1
if a < 3:
    print("a < 3")
elif a < 5:
    print("a < 5")
else:
    print("else")

그럼 코드 실행결과를 예측해보자. 두가지 대답이 나올 것 같은데,

 

1. "a < 3"이 출력된다.

2. "a < 3" "a < 5" 두 개가 출력된다.

 

이렇게 대답이 갈릴 것 같은데, 정답은 1번이다. 이렇게 위에 if문에 걸려서 if의 내용을 수행하면 밑에 elif 나 else는 조건이 성립되도, 수행하지 않는다. 대신 그래도 한 if 문에 조건을 여러가지 거는 방법이 있으니, 끝까지 읽어보도록 하자.

 

 

그럼 이제 조건을 거는 법을 알아보도록 하자.

내가 앞쪽에서 설명하지 않았지만, 파이썬 자료형 중에는 boolean 자료형이 존재한다. 이 자료형은 Trun, False만 존재한다.

A = True
if A:
	print("is that true?")
else:
	print("hmm....")

이렇게 코드를 짜면, A가 true이므로 if 문을 타게 된다. A를 false로 바꿀 경우 else를 타게된다. 이렇게 if문은 옳다면 if 아니면 else를 타는 구조라 생각하면 편하다.

이 밖에도, 비교 연산자를 통해 조건을 걸 수 있는데, 비교 연산자를 나열하면 이렇다.

  • a > b: a가 b보다 크다

  • a < b: a가 b보다 작다

  • a >= b: a가 b보다 크거나 같다

  • a <= b: a가 b보다 작거나 같다

  • a == b: a 와 b가 같다

  • a != b: a와 b가 같지 않다

이 비교연산자를 활용해 성적을 구별하는 프로그램을 만들어보자.

score = int(input())

if score >= 90:
    print("A")
elif 90 > score >= 80:
    print("B")
elif 80 > score >= 70:
    print("C")
elif 70 > score >= 60:
    print("D")
else:
    print("E")

이런 식으로 입력하는 값이 90보다 크거나 같으면 A.

90보다 작고, 80보다 크거나 같으면 B.

이렇게 코드를 짤 수 있다.

 

또한 위에 아보카도 짤에서 나온 것처럼 리스트 안에 대상이 있는 지 없는 지로도 if문을 짤 수 있다.

list1 = [1,2,3,4]

if 2 in list1:
    print("WOW")
else:
    print("Hmm...")

리스트에 1,2,3,4 이라는 원소가 들어있는데 if 문에서 조건을 

 

2 in list1

 

라고 걸어주었기 때문에, 2가 list1이라는 리스트 안에 있기 때문에 조건이 성립하여 WOW가 출력되게 된다.

 

그리고 마지막으로 한 if 안에 여러가지 조건을 넣는 법을 알아보자.

a = 210

if a > 3:
    if a > 5:
        if a > 10:
            print("high")

이렇게 if문에 if문을 넣는 식으로 코드를 짤 수도 있지만...

 

a = 210

if a > 3 and a > 5 and a > 10:
    print("high")

and연산자를 통해 한 if문 안에 여러 조건을 넣을 수 있다.

 

끝맺는 말

 

뭔가 이번에도 좀 글이 어수선한 느낌인데, 한번 쓱 문법 끝까지 나간후에, 한번 글을 정리하도록 하겠다. 그리고 마지막 쪽에 and 연산자가 나왔는데, 이런 연산자에 대해서도 따로 다루도록 하겠다.

반응형