제어문(Control Statement)
if 문
을 이용한 미세먼지 측정
pm = 40 if pm > 35: print("미세 먼지 농도 : 나쁨") #미세 먼지 농도 : 나쁨
if-else 문
을 이용한 미세먼지 측정
pm = 30 if pm >= 36: print("미세 먼지 농도 : 나쁨") else: print("미세 먼저 농도 : 좋음") #미세 먼저 농도 : 좋음
if-elif-else 문
을 이용한 미세먼지 측정
pm = 40 if pm < 16: print("미세 먼지 농도 : 좋음") elif pm < 36: print("미세 먼저 농도 : 보통") elif pm < 76: print("미세 먼지 농도 : 나쁨") else : print("미세 먼지 농도 : 매우나") #미세 먼지 농도 : 나쁨
중첩 if 문을 이용한 미세먼지 측정
pm = 80 if pm < 36: if pm < 16: print("미세 먼지 농도 : 좋음") else: print("미세 먼지 농도 : 보통") else: if pm < 76: print("미세 먼지 농도 : 나쁨") else: print("미세 먼지 농도 : 매우 나쁨") #미세 먼지 농도 : 매우 나쁨
조건문은 있지만 실행할 문장이 없는 경우, 오류가 발생하지 않도록 무시하고 넘어가는 기능
if 10 > 5: print(10) else: pass #10
비교연산자: <, >, ==, !=, >=, <=
if 2 > 1: print(2) if 3 == 3: print(3) if 1 != 2: print(1) #2 #3 #1
논리연산자: and, or, not
rain = True snow = True sun = True #False if rain and snow: print("진눈깨비") if not sun: print("흐림") else: print("맑음") #진눈깨비 #맑음
멤버연산자: in, not in
list = ['One', 'Two', 'Three'] if 'One' in list: print('One') if 'Four' not in list: print('no') #One #no
식별연산자: is, is not
if 'One' is 'One': print('One') if 'One' is not 'Two': print("One is not Two") #One #One is not Two
한 라인으로 조건식을 사용한 표현
score = 90 msg = "통과" if score >= 70 else "탈락" print(msg) #통과
8세 미만 "학생 아님"
14세 미만 "초등학생"
17세 미만 "중학생"
20세 미만 "고등학생"
26세 미만 "대학생"
그 외에 "학생 아님"
age = 26 if age < 8: print("학생 아님") elif age < 14: print("초등학생") elif age < 17: print("중학생") elif age < 20: print("고등학생") elif age < 30: print("대학생") else: print("학생 아니다") #대학생
95점 이상 "A+"
90점 이상 "A"
85점 이상 "B+"
80점 이상 "B"
75점 이상 "C+"
70점 이상 "C"
65점 이상 "D+"
60점 이상 "D"
그 외 "F"
score = 75 if score >= 95: print("A+") elif score >= 90: print("A") elif score >= 85: print("B+") elif score >= 80: print("B") elif score >= 75: print("C+") elif score >= 70: print("C") elif score >= 65: print("D+") elif score > 60: print("D") else: print("F") #C+
while 문 예제: 1부터 10까지 반복
i = 1 while i <= 10: print(i) i += 1 #1 #1 #1 #1
while 문 예제: 1부터 10까지 더하기
i = 1 sum = 0 while i <= 10: sum += i i += 1 print(sum) #55
리스트 요소 반복
list = ['One', 'Two', 'Three'] for i in list: print(i) #One #Two #Three
튜플 요소 반복
tuple = ('One', 'Two', 'Three') for i in tuple: print(i) #One #Two #Three
문자열 요소 반복
string = "MinjunKim" for i in string: print(i) #M #i #n #j #u #n #K #i #m
range()
sum = 0 for i in range(101): sum += i print(sum) #5050
for i in range(1,10,2): print(i) #1 #3 #5 #7 #9
범위 반복 range를 이용한 구구단
for i in range(2,10): for j in range(1,10): print("{0} X {1} = {2}".format(i,j, i*j)) #2 X 1 = 2 #2 X 2 = 4 #2 X 3 = 6 #2 X 4 = 8 #2 X 5 = 10 #2 X 6 = 12 #2 X 7 = 14 #2 X 8 = 16 #2 X 9 = 18 #3 X 1 = 3 #3 X 2 = 6 #3 X 3 = 9 #9 X 4 = 36 #9 X 5 = 45 #9 X 6 = 54 #9 X 7 = 63 #9 X 8 = 72 #9 X 9 = 81
_기능
for i in range(5): print("Minjun IronBag") #Minjun IronBag #Minjun IronBag #Minjun IronBag #Minjun IronBag #Minjun IronBag
for _ in range(5): print("Minjun IronBag") #Minjun IronBag #Minjun IronBag #Minjun IronBag #Minjun IronBag #Minjun IronBag
반복이 종료된 후에 한번 더 실행되는 문장
i = 1 sum = 0 while i <= 10: sum += i i += 1 else : print(sum) #55
sum = 0 for i in range(11): sum += i else: print(sum) #55
반복문 종료
i = 0 while i < 100: print(i) if i == 10: break i += 1 #0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10
for i in range(100): print(i) if i == 10: break #0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10
반복 조건문으로 이동
i = 0 while i < 10: i += 1 if i % 2 == 0: continue print(i) #1 #3 #5 #7 #9
for i in range(10): if i % 2 == 0: continue print(i) #1 #3 #5 #7 #9
리스트 안에 for 문과 if 문 사용
list = [1,2,3,4,5] print([i*2 for i in list]) print([i*2 for i in range(10) if i %2 == 0]) #[2, 4, 6, 8, 10] #[0, 4, 8, 12, 16]
무자열을 역순으로 만든다.
string = "IronMinjun" #string.reverse() reverse = "" for c in string: reverse = c + reverse print(string) print(reverse) #IronMinjun #nujniMnorI
프로그램에서는 에러가 발생
에러에 대한 예외 처리가 필요
ZeroDivisionError
10 / 0
NameError
noname + 3
TypeError
'1' + 1
ValueError
int("String")
try, except 문
try: print(2/0) #2/1 -> 정상 출력 except: print("Error") #Error
에러 분류에 따른 except 문
ZeroDivisionError
에 대한 except 처리
try: print(2/0) except ZeroDivisionError: print("ZeroDivisionError") #ZeroDivisionError
에러 메시지가 포함된 except문
ZeroDivisionError
에 포함된 에러 메시지 e를 출력
try: print(2/0) except ZeroDivisionError as e: print(e) #division by zero
여러 에러 분류가 포함된 except 문
try: n = int(input("입력 :")) result = 1/n except ZeroDivisionError as e: print(e) except ValueError as e: print(e) else: print("결과 :"+str(result)) #입력 :1 #결과 :1.0
raise
문
직접적으로 에러를 발생시킬 수 있음
에러의 종류와 에러 상황을 정의하고 발생
raise ZeroDivisionError("숫자를 0으로 나눔")
raise NameError("지역 또는 전역 이름을 찾을 수 없다")
raise TypeError("연산이나 함수가 부적절하 형의 객체에 적용")
raise ValueError("연산이나 함수가 부적절한 값을 인자로 받는다")
assert 문
raise 문과 달리 주로 검증을 위한 목적으로 작성
상태를 검증하는 목적으로 작성되며 검증식이 포함됨
검증식이 False
일 경우 AssertionErro
발생
assert True
assert False
assert False, "에러 메시지"
b = 1 assert b != 0, "상태에 따라서 발생"