어떤 조건에 따라 실행이 분기 되는 식
A if 조건식 else B
조건식의 결과가 True이면 A실행,
그렇지 않으면 B 실행
#적설량을 입력하고 적설량이 30mm 이상이면 대설경보, 아니면 대설경보 해제
snow_amount = int(input ('적설양 입력 (mm) : '))
alert = '대설경보 발령' if snow_amount > 30 else '대설경보 해제'
print('적설량 : {}, {}' .format(snow_amount, alert))
특정조건에 따라 프로그램을 분기한다.
if 조건식 : (들여쓰기)실행문
True이면 출력
#국영수 점수 평균 90점 이상이면 참 잘했어요
kor = int(input('국어 점수 입력 : '))
eng = int(input('영어 점수 입력 : '))
math = int(input('수학 점수 입력 : '))
avg = (kor+eng+math)/3
print('평균 : {}'.format(avg))
if avg >= 90 :
print('참 잘했어요')
if 조건식 : 실행문
else : 실행문
조건식 결과에 따라 둘 중 하나가 실행
#소수점 첫번째 자리에서 반올림하는 프로그램
float_num = float(input('소수입력 : '))
if float_num - int(float_num) >= 0.5 :
print('올림 : {}'.format(int(float_num) + 1))
else :
print('내림 : {}'.format(int(float_num)))
📢 복습
int(소수) : 소수점을 잘라낸다.
if my_score >= pass_score :
pass
else :
pass
여러가지 조건식 결과에 따라 실행문이 결정됨
주의사항
1. 조건식 순서 2. 명확한 조건
📢 변수를 할당하는 경우는
맨 앞에 변수명을 선언해주고 else에서는 할당될 변수값만 적어줄것
📢 모든 조건식은 if else문으로 변경할 수 있다.
다만 모든 if else문을 조건식으로 변경할 수는 없다.
(else문의 실행문이 많을경우)
조건문 안에 또 다른 조건문
select_num = int(input('출퇴근 대상인가요? 1. Yes \t2. No \n번호 입력 : '))
if select_num ==1:
print('교통수단을 선택하세요.')
trans = int(input('1.도보,자전거 \t 2.버스지하철 \t 3.자가용 \n번호 입력 : '))
if trans == 1:
print('세금감면 5%')
elif trans == 2:
print('세금감면 3%')
elif trans ==3:
print('추가세금 1%')
else : print('잘못입력했습니다.')
elif select_num ==2:
print('세금변동없음')
else :
print('잘못입력했습니다.')
반복문이란 특정실행을 반복하는것.
반복문을 사용하면 프로그래밍이 간결하고 유지보수가 쉽다.
횟수에 의한 반복
e.g. 대량메일 또는 문자발송
반복 횟수에 해당하는 부분은
이터러블이 가능한 모든 객체가 들어올 수 있다.
e.g. range, 리스트, 튜플, 딕셔너리 등등
주의할 점은 끝은 미만이다.
쉽게 알 수 있는 방법은
#사용자화 구구단
num = int(input('몇단? : '))
for i in range (1,10) :
result = num * i
print('{} * {} = {}'.format(num,i,result))
조건에 의한 반복
(조건에 만족하면 실행한다. 그렇지않으면 반복을 중단한다.)
e.g. 매일아침기상알람, 타이머, 게임반복실행
gugudan = int(input('희망 구구단 입력 : '))
n=1
while n < 10:
result= gugudan * n
print('{} * {} = {}'.format(gugudan,n,result))
n += 1
while문에서 조건문에 제어를 걸지 않으면(조건식이 항상True) 무한루프(시스템이 계속돌아감)에 빠지게 된다.
그래서 위처럼 n+= 1을 사용하거나
flag 변수를 사용 할 수 있는데,
아래처럼 특정 조건이 되었을 때 flag를 False로 할당하여 반복문을 멈출 수 있다.
#하루 독감으로 병원에 내방하는 환자수가 50에서 100사이
#누적독감환자수가 최초로 10000명이 넘는 날짜를 구하라
import random
sum = 0
date = 1
flag = True
while flag :
sum += random.randint(50,100)
date += 1
if sum >= 10000 :
flag = False
print('날짜 : {},\t누적환자수 : {}'.format(date,sum))
반복실행 중 continue를 만나면 실행을 생략하고, 다음 반복 실행문으로 넘어간다.
7로 나눠질때만 print 출력
else의 실행문은 반복문이 종료된 후 실행된다.
#3과 7의 공배수
cnt = 0
for i in range(1,101) :
if i % 3 !=0 or i % 7 != 0 :
continue
print(f'공배수 : {i}')
cnt += 1
else :
print(f'공배수 개수 : {cnt}')
반복실행 중 break 를 만나면 반복문을 빠져나온다.
#몸무게가 2200g일때 식사중단
current = 800
meal = 70
date = 0
while True :
date += 1
weight = current + meal * date
if weight > 2200 :
break
print(date, weight)
반복문안에 또 다른 반복문을 선언한다.
#구구단
for i in range(1,10) :
for j in range(2,10):
print('{} * {} = {}\t'.format(j,i,j*i),end='')
print()