제어문 중 조건문을 수행하는 if문
지금까지 데이터 형태와 해당 데이터 형태 내에서 값을 변환하는 방법을 배웠다면 이번에는 제어문 중 하나인 if문에 대해서 알아볼 텐데 if문은 조건에 따라서 프로그램을 수행할지 말지, 이 값을 출력할지 다른 값을 출력할지를 판단하여 수행하는 것이라고 보면 된다.
제일 쉽게 접할 수 있는 곳은 엑셀에서 if문을 사용한 사람들은 어느 정도 감은 잡혀있을 것이다. 사실 엑셀에서 가능한 것들이 엄청나게 많다. 기초통계뿐 아니라 분석모형도 일부 가능하다. 여담이지만 엑셀은 엑셀을 개발한 사람도 이렇게까지 가능한지 모르는 기능들도 있다는 얘기도 있다. 엑셀을 다뤄본 사람은 개념은 잡혀있겠지만 문법의 형태는 엑셀과는 다르니 잘 보고 익히도록 하자.
1. if문 문법 및 활용법
if문은 if와 else를 사용한 기본적인 문법 구조와 조건이 여러 가지인 경우는 elif가 조건의 수만큼 추가된다. elif는 if와 else가 결합된 형태라고 보면 된다. 아래 문법 형태를 보자면 세 가지로 나누어 볼 수 있는데 먼저 조건이 하나인 경우, 조건이 여러 개인 경우, 마지막으로 조건 내 조건이 있는 경우로 나눠볼 수 있다. 어떤 작업을 수행할 것인지 미리 생각해둔다면 경우에 따라 응용해서 더 확장하여 사용할 수 있을 것이다.
만약 과일 분류를 해야 하는데 사과만 분류한다 하면 기본형만으로 가능하다. 사과인 경우와 그렇지 않은 경우로만 분류하면 되기 때문이다 예시에 대한 결과는 fruit에는 사과가 들어가 있기 때문에 "사과입니다"라는 결과가 출력될 것이다.
if 옆의 조건문에 '='가 아닌 '=='가 들어가 있는데 '='는 오른편에 값을 왼편으로 대입하라는 개념이고, '=='은 왼편과 오른편이 같다면이라는 의미이다. 따라서 if문의 조건문 안에서는 '=='를 사용해야 한다. 예전에 봤던 [파이썬] 기초문법(2) - 기초 연산자/함수 부분을 보면 그 외 연산자에 대해서도 알 수 있을 것이다.
두 번째는 조건이 여러 개인 경우 분류해야 하는 경우이다. 이때는 elif가 추가되는데 if옆에 조건문이 들어가는 것과 마찬가지로 elif 옆에도 조건문을 입력해주어야 한다. 결과는 첫 번째 사과인 조건에 만족하지 않고 elif 조건인 배를 충족했기 때문에 "배입니다"를 출력하게 된다.
마지막으로 조건문 내에 조건문이 들어가는 경우이다. if문 안에 if문이 들어간 것이라고 생각하면 된다. 만약에 사과는 사과 중에 빨간 사과와 파란 사과를 구분해야 한다면 사과로 먼저 분류하고 빨간색인지 파란색인지 조건을 한번 더 걸어주어야 한다. 그럼 예제를 보자면 if에 사과, 배, 그 외로 분류하고 사과인 경우 들여 쓰기를 적용하면 사과 중에 다시 조건문이 들어가서 빨간색인지 아닌지 분류하게 되는 것이다. 그러므로 결과적으로는 "빨간 사과입니다"가 출력된다.
- if나 elif 옆에는 조건문이 있어야 하며, if, elif, else 다음에는 : 로 마쳐야 한다.
- 조건 안에는 기본적으로는 비교 연산자를 사용해야 한다.
- 조건문 내에 실행할 문장들은 해당 조건의 깊이에 맞게 들여 쓰기를 해야 한다.
문법 | 예시 |
[기본형] if 조건문 : 수행할 문장1 수행할 문장2 .... else : 수행할 문장A 수행할 문장B .... |
fruit = "사과" if fruit == "사과" : print("사과입니다") else : print("사과가 아닙니다") |
[조건이 여러개인 경우] if 조건문 : 수행할 문장1 수행할 문장2 .... elif 조건문 : 수행할 문장(가) 수행할 문장(나) .... else : 수행할 문장A 수행할 문장B .... |
fruit = "배" if fruit == "사과" : print("사과입니다") elif fruit == "배" : print("배입니다") else : print("사과나 배가 아닙니다") |
[조건문 내의 조건이 필요한 경우] if 조건문 : 수행할 문장1 수행할 문장2 .... if 조건문 : 수행할 문장a 수행할 문장b .... else : 수행할 문장(1) 수행할 문장(2) .... else : 수행할 문장A 수행할 문장B .... |
fruit = "사과" color = "빨강" if fruit == "사과" : if color == "빨강" : print("빨간 사과입니다") else : print("파란 사과입니다") elif fruit == "배" : print("배입니다") else : print("사과나 배가 아닙니다") |
2. 비교 연산자
if문에서 조건문은 기본적으로 비교 연산자를 사용해야 한다고 했는데 비교 연산자는 다음 표와 같다. or, and, not의 연산자를 사용하는 부분의 예를 하나 들어보자면 x == 1 or y == 2의 경우는 x가 1이거나 y가 2이면 해당 조건문의 아래 문장을 수행하라는 것인데, x or y라고 쓰는 경우는 참/거짓을 구분하는 조건문으로 사용된다. [파이썬 기초] 자료형 기능들 - 참/거짓, 저장, 복사, 메모리 삭제(del)에서 우리는 자료형 별로 참/거짓이 있다는 걸 기억해보자. x or y라는 것은 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가 y보다 작거나 같다 |
x or y | x 또는 y 둘 중 하나만 참이면 참이다 |
x and y | x 와 y 둘 모두 참이면 참이다 |
not x | x가 거짓이면 참이다 |
3. in
in은 해당 자료형 안에 다음과 같은 값이 있는지에 대해서 판단하는 조건문이다. 위의 변숫값들은 하나의 값만 가지고 사용했지만 리스트나 튜플 등은 여러 값을 가지고 있는 자료형이다. 이때 여러 개의 값들 중 다음 값이 있는지에 대해서 비교하는 것이다. 예시를 통해 확인하고 이해하는 것이 빠를 것이다. 예시를 보면 lst안에 사과가 있으므로 "사과가 있습니다"가 출력되게 된다.
lst = ["사과", "배", "복숭아"] [입력값] if "사과" in lst : print("사과가 있습니다") else : print("사과가 없습니다") [출력결과] 사과가 있습니다 |
'방구석코딩 > 파이썬 기초문법' 카테고리의 다른 글
[파이썬 데이터 분석] 또 다른 반복문 ① - For문과 While문의 차이, range (0) | 2022.06.02 |
---|---|
[파이썬 데이터 분석] 반복문 - While문 (0) | 2022.06.01 |
[파이썬 데이터분석] 자료형 비교 정리 - 리스트, 튜플, 딕셔너리, 집합 비교 (0) | 2022.05.26 |
[파이썬 기초] 자료형 기능들 - 참/거짓, 저장, 복사, 메모리 삭제(del) (0) | 2022.05.25 |
[파이썬 기초] 집합 자료형 - 교집합, 합집합, 차집합, ADD, UPDATE, REMOVE (0) | 2022.05.24 |
댓글