본문 바로가기
PYTHON

파이썬의 제어문(1) - if

by 휘성티비 2024. 8. 22.

일상생활 속에서 이런 상상을 해볼 수 있다.

집에 비빔면 있으면 비빔면 먹고, 아니면 신라면 먹자

 

우리에게 일어날 수 있는 상황이다. 프로그래밍도 사람이 하기 때문에 위 문장처럼 주어진 조건을 판단한 후 상황에 맞게 처리해야 할 경우가 있다. 이렇게 조건을 판단하여 상황에 맞게 처리할 때 사용하는 것이 if문이다.

 

파이썬은 위와 같은 상황을 다음과 같이 표현할 수 있다.

>>> BibimMyeon = True
>>> if BibimMyeon:
... 	print("비빔면 먹자")
... else:
... 	print("신라면 먹자")
...
비빔면 먹자

비빔면(BibimMyeon)이라는 변수에 True를 대입했으니 참이다. 따라서 비빔면을 먹자는 문장이 출력이 된다.

 

혹시나 파이썬 3.10 버전 이상이라면 idle에 실습해도 되지만 그게 아니라면 파이썬 쉘에서 실습하자. 이유는 구버전 idle는 줄 바꿈 표시(...)가 표시되지 않는다.

 

혹시나 C나 JAVA를 배운 사람들이라면 제어문을 작성할 때 중괄호({})로 묶었을 것이다. 하지만 파이썬은 콜론(:)을 작성하는 것을 알 수 있다. 파이썬은 콜론 작성 이후 들여 쓰기가 되어있는 모든 문장을 포함하기 때문이다.

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

이렇게 작성하면 문장 1, 문장 2, 문장 3이 모두 실행이 된다.

 

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

이렇게 작성하면 오류가 난다는 말이다.

들여쓰기가 덜 돼도, 더 돼도 오류가 난다. 이 점을 주의하도록 하자.

 

elif

if문의 구성에 대해 말하자면 파이썬의 if문은 if, elif, else로 작성할 수 있다.

구성 설명
if 첫번째 조건
elif 위 조건문에 만족하지 않을 때(여러개 사용가능)
else 어느 조건도 만족하지 않으면

 

>>> BibimMyeon = False
>>> FireChicken = True
>>> if BibimMyeon:
... 	print("비빔면 먹자")
... elif FireChicken:
... 	print("불닭볶음면 먹자")
... else:
... 	print("신라면 먹자")
...
불닭볶음면 먹자

 

조건문

if문에서 조건문은 조건을 판단하는 문장이다.

 

비교 연산자

비교 연산자 설명
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 = 2
>>> y = 3

>>> x < y
True
>>> x != y
True
>>> x == y
False

 

위와 같이 사용할 수 있다.

 

예를 하나 들면 라면을 사는 경우로 생각하자.

>>> money = 2000
>>> if money >= 3000:
... 	print("라면 먹자")
... else:
... 	print("그냥 집에 가자")
...
그냥 집에 가자

and, or, not

논리 연산을 조금이라도 해본 사람은 익숙할 것이다. 

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

 

다음 예시로 or 연산자의 사용법을 알아보자

돈이 2000원 이상이거나 카드가 있으면 라면을 사자. 그렇지 않으면 라면을 사지 않는다.

 

>>> money = 2000
>>> card = True
>>> if money >= 3000 or card:
...     print("라면을 사자")
... else:
...     print("먹지말자")
...
라면을 사자

돈은 2000이지만 카드가 있기 때문에 참이 되어 라면을 사자는 문장이 출력된다.

 

 

in, not in

in not in
x in 리스트 x not in 리스트
x in 문자열 x not in 문자열
x in 튜플 x not in 튜플

 

영어 뜻 그대로 안에 있느냐 없느냐이다. 쉽게 생각하자.

 

한 줄 코딩

socor가 60 이상일 경우에는 message에 문자열 "success", 아닐 경우에는 문자열 "failure"를 대입하는 코드이다.

if score >= 60:
    message = "success"
else:
    message = "failure"

 

파이썬의 특징인 조건부 표현식(conditional expression)을 사용하면 위 코드르 다음과 같이 표현할 수 있다.

message = "success" if score >= 60 else "failure"

 

조건부 표현식은 다음과 같이 정의한다.

변수 = 조건문이_참인_경우의_값 if 조건문 else 조건문이_거짓인_경우의_값

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