파이썬 조건과 if 문장
파이썬은 수학에서 나오는 일반적인 논리 조건을 지원한다:
- 같다: a == b
- 다르다: a != b
- 작음: a < b
- 작거나 같음: a <= b
- 보다 큼: a > b
- 보다 크거나 같음: a >= b
이러한 조건은 여러 가지 방법으로 사용될 수 있으며, 가장 일반적으로 "if문"과 루프에서 사용된다.
if 키워드를 사용하여 "if문"을 작성한다.
a = 3 b = 20 print("a : ", a) print("b : ", b) print("if b > a ") if b > a: print("b는 a보다 크다") |
이 예제에서는 b가 a보다 큰지 여부를 검정하기 위해 if 문장의 일부로 사용되는 a와 b의 두 변수를 사용한다.
a가 3이고 b가 20이므로 20이 3보다 크다는 것을 알고 "b가 a보다 크다"는 것을 화면에 인쇄한다.
위의 코드를 실행하면 아래 그림과 같다.
들여쓰기-인덴테이션(Indentation)
Python은 코드에서 범위를 정의하기 위해 들여쓰기(줄의 시작 부분에 공백)를 사용한다. 다른 프로그래밍 언어들은 이 목적을 위해 종종 곱슬곱슬한 괄호를 사용한다.
들여쓰기가 없는 문장(오류 발생)인 경우:
a = 3 b = 20 print("a : ", a) print("b : ", b) print("if b > a ") if b > a: print("b는 a보다 크다") |
위의 코드를 실행하면 오류가 아래 그림과 같이 발생한다. 이유는 if 구문 아래 들여쓰기가 되어 있지 않아서이다.
파이선 elif 구문
elif 키워드는 파이썬이 "이전 조건이 사실이 아니라면 이 조건을 시도해보라"고 말하는 방식이다.
a = 3 b = 3 print("a : ", a) print("b : ", b) print("if b > a ") if b > a: print("b는 a보다 크다") elif a == b: print("b는 a와 같다") |
a와 b의 값은 같기 때문에 "b는 a와 같다"라는 구문이 화면에 인쇄된다.
예제에서 a는 b와 같으므로 첫 번째 조건은 참이 아니지만 elif 조건은 참이므로 "a와 b는 같다"고 화면에 인쇄한다.
위의 코드를 실행하면 아래 그림과 같다.
파이선 else 구문
else 키워드는 이전 조건에 잡히지 않은 것을 모두 잡습니다.
a = 20 b = 3 print("a : ", a) print("b : ", b) print("if b > a ") if b > a: print("b는 a보다 크다") elif a == b: print("b는 a와 같다") else: print("a는 b보다 크다") |
이 예에서는 a가 b보다 크므로 첫 번째 조건이 참이 아니며 elif 조건도 참이 아니므로 다른 조건으로 이동하여 "a가 b보다 크다"고 화면에 출력한다.
위의 코드를 실행하면 아래 그림과 같다.
elif 없이도 else를 가질 수 있다:
a = 20 b = 3 print("a : ", a) print("b : ", b) print("if b > a ") if b > a: print("b는 a보다 크다") else: print("a는 b보다 크다") |
if b>a: 구문은 if 3 > 20: 는 거짓이므로 else 구문으로 넘어오며 'print("a는 b보다 크다)'는 문장이 실행이 된다.
위의 코드를 실행하면 아래 그림과 같다.
파이썬 단축 if
실행할 문이 하나뿐인 경우 if 문과 동일한 줄에 넣을 수 있다.
a = 100 b = 30 print("a : ", a) print("b : ", b) if a > b: print("a는 b보다 크다") |
단축 if if a>b: print("a는 b보다 크다") 구문은 100>30보다 크므로 결과값이 참이므로 print문장이 실행이 된다.
위의 코드를 실행하면 아래 그림과 같다.
파이썬 단춘 if ... else 구문
실행할 문장이 하나뿐인 경우, if에 대한 문장, 그리고 다른 문장에 대한 문장이 하나뿐인 경우, 모든 문장을 한 줄에 놓을 수 있다:
a = 100 b = 30 print("a : ", a) print("b : ", b) print("a") if a > b else print("b") print("가 크다") |
if a>b에서 if 100>30 참이므로 print("a")가 인쇄가 된다.
위의 코드를 실행하면 아래 그림과 같다.
동일한 행에 여러 개의 다른 문을 가질 수도 있다:
a = 100 b = 100 print("a : ", a) print("b : ", b) print("A") if a > b else print("=") if a == b else print("B") |
if a>b else 구문에서 if 100 > 100 은 거짓이므로 else 구문으로 print("=")구문이 실행이 된다.
위의 코드를 실행하면 아래 그림과 같다.
파이썬 and
and 키워드는 논리 연산자이며 조건문을 결합하는 데 사용된다:
a가 b보다 큰지 검정하고 c가 a보다 큰지 검정:
a = 20 b = 3 c = 50 print("a : " + str(a) + ", b : " + str(b) + ", c : " + str(c)) if a > b and c > a: print("a>b and c>a 조건 참") |
if a>b and c>a: 구문은 if 20>3 and 50>20 결과는 if 참 and 참 이므로 if구문은 참 이므로 print()구문이 실행이 된다.
위의 코드를 실행하면 아래 그림과 같다.
파이썬 or
or 키워드는 논리 연산자로 조건문을 결합하는 데 사용된다:
a가 b보다 큰지, a가 c보다 큰지를 테스트한다:
a = 20 b = 3 c = 50 print("a : " + str(a) + ", b : " + str(b) + ", c : " + str(c)) if a > b or a > c: print("a>b or c>a 두 조건중 하나라도 참이면 참") |
if a>b or a>c: 구문은 if 20>3 or 20>50: 구문은 if 참 or 거짓 이므로 참 결과가 실행이 된다.
위의 코드를 실행하면 아래 그림과 같다.
파이썬 not
not 키워드는 논리 연산자이며 조건문의 결과를 뒤집는 데 사용됩니다:
a가 b보다 크지 않은지 테스트:
a = 20 b = 300 c = 50 print("a : " + str(a) + ", b : " + str(b) + ", c : " + str(c)) if not a > b: print("a가 b보다 큼이 아니라면 참") |
if not a>b: 구문은 if not 20>300:은 if not 거짓 이므로 if구문은 참이 반환이 되어 아래 print()구문이 실행이 된다.
위의 코드를 실행하면 아래 그림과 같다.
파이썬 중첩 if (nested if)
if 문 내부의 if 문을 사용할 수 있으며, 이를 nested if 문을 nested if 문이라고 한다.
x = 410 if x > 100: print("100보다 크다,") if x > 200: print("그리고 200보다 또한 크다!") else: print("그러나 200보다 크지 않다.") |
if x>100: 구문에서 if 410>100 은 참이므로 아래 "100보다 크다" print구문이 실행이 된다.
이후 if x > 200: 구문은 if 410 > 200: 은 참이므로 'print("그리고 200보다 또한 크다!")'라는 구문이 실행이 된다.
위의 코드를 실행하면 아래 그림과 같다.
파이썬 pass 문
문은 비워 둘 수 없지만 어떤 이유로 내용이 없는 if 문이 있는 경우 오류가 발생하지 않도록 pass 문을 입력한다.
a = 33 b = 200 print("a : " + str(a) + ", b : " + str(b)) print(" if b > a: nothing - pass") if b > a: pass |
if b>a: 구문은 if 200>33이므로 참결과가 반환이 된다. 참일 때 실행문은 pass 구문으로 아무것도 실행이 되지 않는다.
위의 코드를 실행하면 아래 그림과 같다.
지금까지 파이썬 if 구문과 논리 연산자 and, or, not, pass 에 대해서 살펴보았다.
꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.
모두 화이팅입니다.!!!
출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.
'파이썬 > 파이썬기본문법' 카테고리의 다른 글
파이썬 for 루프 (0) | 2023.11.10 |
---|---|
파이썬 while 루프(while loop) (0) | 2023.11.09 |
파이썬 사전 메소드 (0) | 2023.11.07 |
파이썬 중첩 사전(Nested Dictionary) (0) | 2023.11.06 |
파이썬 사전 루프 (0) | 2023.11.05 |
댓글