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입니다.')
TruevsFalse
False▶ 1.list,tuple,dict,str,set의 값이 비어있는 경우 2.0,0.0,0j3.None4. 클래스 인스턴스의 __ 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회 시행'을 구분할 것!!