if 조건문 사용 시 주의할 부분
값을 비교할 땐 =
대신 ==
을 사용하기
=
: 할당==
: 값 비교조건문 끝에 :
빠뜨리지 않기
4칸 들여쓰기
if 조건문에서 코드 생략하기
pass
사용 x = 5
if x == 10:
pass # TODO: x가 10일 때 처리가 필요함
기타 참고 사항
TODO는 "해야 할 일"이라는 뜻으로 보통 주석에 넣는다. 검색으로 쉽게 찾을 수 있다는 장점이 있다. 프로그래머들은 주석에 TODO 이외에도 FIXME, BUG, NOTE등과 같이 코드는 아니지만 일관된 주석을 사용한다.
중첩 if 조건문
if x == 15:
조건식은 if x >= 10:
이 만족해야만 실행된다. x = 15
if x >= 10:
print('10 이상입니다.')
if x == 15:
print('15입니다.') # 10 이상입니다.
# 15입니다.
if x == 10:
print('10입니다.')
True
vsFalse
False
▶ 1.list
,tuple
,dict
,str
,set
의 값이 비어있는 경우 2.0
,0.0
,0j
3.None
4. 클래스 인스턴스의 __ bool (), len __() 메서드가 0 또는 False를 반환할 때
True
▶ 1.반대의 경우
2.0
이 아닌 숫자
**참고
None == False
(False
) 2.[]or()or{} == False
(False
) 3.0 == False
(True
)
a = []
b = ['1']
if a: # 변수 a가 True인 경우...
print('@@@') # 출력x
if a is b: # 변수 a와 b가 같은 객체인 경우...
print('###') # 출력x
if not a: # 변수 a가 False인 경우 "not a"는 True가 되므로 출력
print('!!!') # 출력O
if
와 else
비교
else
는 if
의 조건식이 만족하지 않을 때 코드를 실행
if
없이 단독 사용 불가
if
와 else
축약
if
, else
에서 변수에 값을 할당할 때는 변수 = 값 if 조건문 else 값
형식으로 축약이 가능하며, 이런 문법을 조건부 표현식(conditional expression)이라고 부름 x = 4
print('!!') if x == 5 else print('@@') ## @@
x = 4
y = x if x == 5 else 0
print(y) # 0
# 참고
# ord(): 문자열을 아스키 코드 값을 return
chars = '!@#$%^&*()_+'
code3 = [ord(s) for s in chars if ord(s) > 40] # [64, 94, 42, 41, 95, 43]
code4 = list(filter(lambda x: x>40, map(ord, chars))) # [64, 94, 42, 41, 95, 43]
표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 여기서 네 과목의 평균 점수가 80점 이상일 때 합격이라고 정했습니다. 평균 점수에 따라 '합격', '불합격'을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 단, 점수는 0점부터 100점까지만 입력받을 수 있으며 범위를 벗어났다면 '잘못된 점수'를 출력하고 합격, 불합격 여부는 출력하지 않아야 합니다.
a, b, c, d = map(int, input().split())
if (0<=a<=100) and (0<=b<=100) and (0<=c<=100) and (0<=d<=100):
# 잘못된 풀이 1: if 0<= a, b, c, d <= 100
# 잘못된 풀이 2: if 0<= a and b and c and d <= 100
if (a + b + c + d) / 4 >= 80:
print('합격')
else:
print('불합격')
else:
print('잘못된 점수')
elif
특징
의미: else if
else
처럼 단독 사용이 불가능
여러 번 사용이 가능
반드시 else
보다 앞서 나와야 함
elif
의 조건식이 만족한 경우, 해당 elif
의 코드만 실행되고, 이후의 elif
조건식은 검사하지 않는다. (elif
는 if
와 달리 앞선 조건식이 만족하지 않았을 경우에만 실행되기 때문)
하지만 for와 while 반복문 내부에서 elif
가 사용된 경우와 헷갈려선 안됨!! ▶ 위의 설명은 조건문이 1회 시행되는 경우에 대해 다루고 있음 '반복 시행'과 '1회 시행'을 구분할 것!!