< if 조건문>
> if 문
소스코드에 작성한 명령문은 위에서 아래로 순서대로 실행된다.
명령을 일일이 나열하기만 하면 프로그램이 너무 길어질 뿐만 아니라 단순한 구조로는 복잡한 문제를 풀기 어렵다.
조건에 따라 실행할 명령을 선택하거나 비슷한 문장은 반복 처리하여 치밀하게 조직해야 한다.
이처럼 프로그램의 실행 흐름을 통제하는 문장을 제어문 이라고 한다.
if 조건:
명령
* 제일 앞에 키워드 if 를 쓰고 점검할 조건과 콜론을 찍고, 그 다음 줄에 조건이 참(True)일 때 실행할 명령을 작성한다.
해당 조건이 참일 때만 명령이 실행되며 거짓이면 무시하고 지나친다.
# if
age = int(input("너 몇살이니?"))
# 12
if age < 19:
print("애들은 가라")
애들은 가라
> 비교연산자 (comparison operator)
if 문의 조건식에는 주로 변수값을 비교하는 문장이 오며 변수가 특정 값인지 평가한다.
비교 연산자는 두 값의 상등 여부나 대소관계를 비교하여 참, 거짓을 리턴하며 if 문은 평가 결과에 따라 명령의 실행 여부를 결정한다.
연산자 | 설 명 |
== | 같다 |
!= | 다르다 |
< | 좌변이 우변보다 작다 |
> | 좌변이 우변보다 크다 |
<= | 좌변이 우변보다 작거나 같다 |
>= | 좌변이 우변보다 크거나 같다 |
# compare
a = 3
if a == 3:
print("3이다")
if a > 5:
print("5보다 크다")
if a < 5:
print("5보다 작다")
3이다
5보다 작다
# string compare
country = "Korea"
if country == "Korea":
print("한국입니다")
if country =="korea":
print("대한민국입니다")
한국입니다
* 위 비교문은 대소문자가 다른 문자열로 평가
> 논리연산자 (logical operator)
두 개 이상의 조건을 한꺼번에 점검할 때는 논리 연산자를 사용한다.
두 조건이 동시에 만족하는지 두 조건 중 하나라도 만족하는지 등을 점검한다.
연산자 | 설 명 |
and | 두 조건이 모두 참이다 |
or | 두 조건 중 하나라도 참이다 |
not | 조건을 반대로 뒤집는다 |
# and
a = 3
b = 4
if a == 3 and b == 4:
print("OK")
OK # True
* a와 b 모두를 만족하여 True
# or
a = 3
b = 4
if a == 3 or b == 5:
print("OK")
OK # True
* a 와 b 중 a의 값이 만족되어 True
< 블록 구조 >
> 블록 구조
조건문이 참일 때 실행할 명령이 2개 이상이면 아래쪽으로 명령을 계속 나열한다.
이때 if 문에 걸리는 명령은 들여쓰기 수준이 같아야 한다.
# block
age = 16
if age < 19:
print("애들은가라")
print("공부 열심히 해야지")
애들은가라
공부 열심히 해야지
* 조건이 참이기 때문에 print 문 모두 실행
# block2
age = 22
if age < 19:
print("애들은 가라")
print("공부 열심히 해야지")
공부 열심히 해야지
* 조건이 거짓이기 때문에 if 문 안의 print 문 무시 후 바깥 print 문 실행
> else 문
단순 if 문은 조건 진위에 따라 명령의 실행 여부를 결정한다.
조건이 참이면 명령을 실행하고 거짓이면 아무것도 하지 않는다.
이에 비해 if else 문은 조건 진위에 따라 실행할 명령을 선택한다.
if 조건:
명령1
else 조건:
명령2
* else 다음에도 콜론이 있음을 주의하자.
조건이 참이면 명령 1을 실행하고, 거짓이면 명령 2를 실행한다.
# if else
age = 22
if age < 19:
print("애들은 가라")
else:
print("어서 오세요")
어서오세요
# if block
age = 12
if age < 19:
print("애들은 가라")
print("공부 열심히 해야지")
else:
print("어서오세요")
print("즐거운 시간 되세요")
애들은 가라
공부 열심히 해야지
> elif 문
if else 문을 한 단계 더 확장하면 elif 문이 중간에 들어간다.
하나의 조건만 보는 것이 아니라 조건이 만족하지 않을 때 elif 문의 다른 세부 조건을 더 점검한다.
if 조건1:
명령
elif 조건2:
명령2
else:
명령3
# if elif
age = 23
if age < 19:
print("애들은 가라")
elif age < 25:
print("대학생입니다")
else:
print("어서오세요")
대학생입니다
* elif 문을 사용하면 첫 번째 조건이 거짓일 때 다른 조건을 더 살펴 볼 수 있다.
# elif
money = 6500
if money >= 20000:
print("탕수육을 먹는다") # False
elif money >= 10000:
print("쟁반 짜장을 먹는다") # False
elif money >= 6000:
print("짬뽕을 먹는다") # True
elif money >= 4000:
print("짜장면을 먹는다") # skip
else:
print("단무지를 먹는다")
짬뽕을 먹는다
> if 문 중첩
if 문의 조건에 걸리는 명령의 종류에는 제한이 없다.
print 문으로 뭔가를 출력할 수도 있고 다른 변수에 값을 대입할 수도 있고 함수를 호출 할 수도 있다.
if 문도 하나의 명령이므로 if 문 안에 들어갈 수 있다.
똑같은 종류의 명령끼리 겹치는 현상을 중첩(Nesting)이라고 하는데 다음과 같은 경우이다.
# if if
man = True
age = 22
if man == True:
if age >= 19:
print("성인 남자입니다.")
성인남자입니다.
* 두가지 조건을 연속적으로 점검하여 두 조건이 모두 참일 때만 print 문을 실행한다.
man = True
age = 22
if man == True and age >= 19:
print("성인 남자입니다.")
성인남자입니다.
* if 문끼리 중첩되면 두 조건이 모두 참일 때만 명령을 실행하는데 이는 and 논리 연산자와 비슷하다.
# if if 2
man = True
age = 22
if man == True:
if age >= 19:
print("성인 남자입니다.")
else:
print("소년입니다.")
성인 남자입니다.
* if 문 안에 if else 문이 중첩되어있는 형태이다.
남자인지 먼저 점검한 후 맏다면 나이에 따라 다시 분기한다.
'Language > Python' 카테고리의 다른 글
Python_07. Function (0) | 2022.07.31 |
---|---|
Python_06. Iteration (0) | 2022.07.27 |
Python_04. Operator (0) | 2022.07.27 |
Python_03. Type (0) | 2022.07.25 |
Python_ 02. Variable (0) | 2022.07.25 |