[Python] 파이썬 if문 사용법과 예제

파이썬 if문 사용법과 예제


if문 이란?

if문은 조건을 충족한다면 수행 하라는 조건문이다.
아래 그림처럼 조건문이 참이면 실행하고 거짓이면 다음 조건문으로 넘어간다.
사실 그림을 본다고 이해 안되므로 대충 보고 글을 차례대로 읽으면 이해가 될 것이다.




if문의 기본 형태

아래 예제가 if문의 가장 간단한 형태로 if, else 두 개를 사용한다.
if는 조건문으로 조건을 만족하면 실행한다.
else는 조건을 만족하지 않으면 실행된다.

코드를 설명하자면
if 에서 점수(score)가 90점 이상이면 A등급을 출력한다.
else 에서 90점 미만은 낙제를 출력한다.

첫 출부터 아래로 내려가면서 조건을 만족하면 실행한다.
if 90<= score: 를 만났을 때 현재 score가 90이기 때문에 A등급을 출력 후 조건문이 종료 된다. 즉 else문은 실행되지 않는다.

Tip) if문을 사용할 때 콜론( : )을 꼭 뒤에 붙여야 한다. 처음 하다 보면 콜론을 까먹는 경우가 있다. 
score = 90

if 90 <= score: # '<=' 기호는 "같거나 크다." 로 사용된다.
print("A등급")
else:
print("낙제")
결과 : A등급



elif 활용하기

바로 위에 예제는 하나의 조건 밖에 걸지 못한다.
하지만 elif를 사용한다면 여러 개의 조건을 걸 수 있다.

아래 예제를 보자.
score는 현재 80점이다.
첫 줄 부터 코드가 진행된다.
if 90<= score: 를 만났을 때 score는 90보다 작기 때문에 는 무시된다.
if 80<= score: 를 만났을 때 score는 80과 같거나 크기 때문에 B등급이 출력된다.
score = 80

if 90 <= score:
print("A등급")
elif 80 <= score:
print("B등급")
elif 70 <= score:
print("C등급")
else:
print("낙제")
결과 : B등급



else는 생략 가능

if문을 사용 할 때 else를 적지 않아도 된다.
아래 예제를 보면 else를 생략해도 제대로 된 결과가 나온다.
하지만  else는 웬만하면 적어야 한다. 이유는 바로 아래에서 알아보자.
num = 2

if 1 <= num:
print("정상 값")
elif 2 <= num:
print("정상 값")
결과 : 정상 값



else는 무조건 사용해야 한다.

if문에서 대부분 변수를 사용해서 조건문을 만든다.
이 때 모든 조건에 해당 되지 않으면 조건문이 아예 실행이 되지 않아 버그가 발생한다. 따라서 모든 조건이 해당되지 않는 else를 만들어서 미연에 버그를 방지 하는 목적으로 꼭 사용해야 한다.
num = -1

if 1 <= num:
print("정상 값")
elif 2 <= num:
print("정상 값")
else:
print("오류 값")
결과 : 오류 값


비교 연산자

조건식을 만들 때 비교 연산자, 논리 연산자를 사용해서 만든다.
그 중 하나인 비교 연산자다.
아래 표에 나와 있는 것들이 비교 연산자를 한번 읽어보고 아래 예제를 통해서 알아보자.

비교 연산자

설명

예시

조건문 실행 여부

a < b

ab보다 작다.

3 < 4

실행

a > b

ab보다 크다.

4 > 3

실행

a == b

ab는 같다.

3 == 3

실행

a <= b

ab보다 작거나 같다.

3 <= 4

비 실행

a >= b

ab보다 크거나 같다.

4 >= 4

실행

a != b

ab는 같지 않다.

1 != 2

실행




1. a < b
a 가 b보다 작기 때문에 True가 출력된다.
a = 2
b = 3

if a < b:
print(True)

else:
print(False)
결과 : True


2. a > b
a가 b보다 작기 때문에 False가 출력 된다.
a = 2
b = 3

if a > b:
print(True)

else:
print(False)
결과 : False


3. a == b
a와 b가 같으면 참이다.
하지만 a와 b가 다르므로 False가 출력된다.
a = 2
b = 3

if a == b:
print(True)

else:
print(False)
결과 : False


4. a <= b
<= 이 연산자는 a가 b보다 작거나 같으면 참이다.
즉 둘 중 하나만 만족하면 참이므로 a 는 b보다 작으므로 참이다.
a = 2
b = 3

if a <= b:
print(True)

else:
print(False)
결과 : True


5. a >= b
>= 이 연산자는 a가 b보다 크거나 같으면 참이다.
즉 둘 중 하나만 만족하면 참이지만 둘 다 만족 하지 않으므로 거짓이다.
a = 2
b = 3

if a <= b:
print(True)

else:
print(False)
결과 : False



6. a != b
!= 연산자는 a와 b가 같지 않으면 참이다.
이 연산자는 처음 보면 헷갈릴 수 있다.
쉽게 생각하면 a와 b가 같지만 않으면 참이라는 뜻이고
a와 b가 같으면 거짓이라는 뜻이다.
즉 예제는 2 != 3 같지 않으므로 참이다.
a = 2
b = 3

if a != b:
print(True)

else:
print(False)
결과 : True



논리 연산자

조건식을 만들 때 비교 연산자, 논리 연산자를 사용해서 만든다.
그 중 하나인 논리 연산자다.
아래 표에 나와 있는 것들이 논리 연산자를 한번 읽어보고 아래 예제를 통해서 알아보자.

논리 연산자

설명

a or b

a b 둘 중 하나만이라도 참이면 참이다.

a and b

a b 둘 다 참이어야만 참이다.

not a

a가 거짓이여야만 참이다.






1. a or b
a 와 b 둘 중 하나만 참이면 참이다.
예제를 보면 이해가 될 거다.
a = Ture, B = False 다. 
하지만 b가 거짓이지만 a가 참이므로 True를 출력한다.
a = True
b = False

if a or b:
print(True)

else:
print(False)
결과 : True



2. a and b
a 와 b 둘 다 참이어야만 참이다.
예제를 보면 이해가 될 거다.
a = Ture, B = False 다. 
하지만 a가 참이지만 B가 거짓이므로 False를 출력한다.
a = True
b = False

if a and b:
print(True)

else:
print(False)
결과 : False



3. not a 
a가 거짓이면 참이다.
즉 a가 False 라면 True를 출력한다.
반대로 a가 Ture라면 False를 출력한다.
예제 에서는 a가 False 이므로 True를 출력한다.
a = False

if not a:
print(True)

else:
print(False)
결과 : True



파이썬에서 지원되는 조건문과 문법

지금까지 비교 연산자, 논리 연산자들은 다른 프로그래밍 언어에서도 지원된다.
하지만 파이썬에서만 지원되는 조건문과 문법이 있다.
a in s, a not in s, pass 가 있다.



a in s

리스트, 튜플, 문자열에서 사용 가능한 조건문이다.
뜻은 a가 s(리스트) 안에 있는가? 를 물어 본다.
아래 예제에서 a가 리스트 [1,2,3,4] 안에 있으므로 True를 출력한다.
튜플과 문자열도 예제를 적었다.


1. 리스트에서 사용
a = 1

if a in [1,2,3,4]: #리스트 [1,2,3,4] 안에 a, 즉 1이 있는가?
print(True)

else:
print(False)
결과 : True


2. 튜플에서 사용
a = 1

if a in (1,2,3,4):
print(True)

else:
print(False)
결과 : True


3. 문자에서 사용
문자열 apple 에 t 가 없으므로 Flase를 출력한다.
a = 't'

if a in 'apple':
print(True)

else:
print(False)
결과 : False



a not in s

a in s와 반대로 a not in s는 a가 s(리스트) 안에 없는가? 를 물어 본다.
즉 a가 리스트 [1,2,3,4] 안에 없다면 True를 출력한다.
not in 도 리스트, 튜플, 문자열 모두 가능하다.
리스트만 예제적고 나머지는 생략.
a = 1

if a not in [1,2,3,4]:
print(True)

else:
print(False)
결과 : False



조건문에서 pass 사용하기

조건문은 조건이 맞으면 무조건 실행 된다.
이때 if문이 실행 되도 아무 일도 하고 싶지 않을 때가 있다.
한번 if문의 내용을 비운 예제를 보자
if a < 2: 가 조건이 충족했지만 if문의 내용이 비우니 오류가 발생했다.
이때 if문을 실행해도 아무 일도 하지 않으려면 pass를 사용하면 된다.
a = 1

if a < 2:

else:
print(False)
결과 : 
  File "C:\Users\skek1\PycharmProjects\pythonProject1\test.py", line 5
    else:
    ^
IndentationError: expected an indented block

Process finished with exit code 1


-pass 사용하기
아래 예제처럼 pass를 사용한다면 아무런 결과 값을 보여주지 않고 조건문이 정상 종료 시킬 수 가 있다.
a = 1

if a < 2:
pass
else:
print(False)
결과 : 



마치며

조건문 파트는 예제를 직접 타이핑 해보면서 손에 익히는 것이 좋다.
그러면 이해가 금방 될 거다.
개발 IDE는 파이참이다.

댓글

이 블로그의 인기 게시물

[네트워크] 오류 제어 방식 이란?(FEC, BEC, ARQ)

[Virtual Box] 가상머신 에러 E_FAIL (0x80004005), (VERR_SUPLIB_PATH_NOT_CLEAN) 해결 방법