[Zerobase][Python Basic] 조건문과 반복문

솔비·2023년 11월 26일
0

💻 Python. w/zerobase

목록 보기
4/33
post-thumbnail

1. 조건식 : A if 조건식 else B

어떤 조건에 따라 실행이 분기 되는 식
A if 조건식 else B
조건식의 결과가 True이면 A실행,
그렇지 않으면 B 실행

#적설량을 입력하고 적설량이 30mm 이상이면 대설경보, 아니면 대설경보 해제

snow_amount = int(input ('적설양 입력 (mm) : '))
alert = '대설경보 발령' if snow_amount > 30 else '대설경보 해제'

print('적설량 : {}, {}' .format(snow_amount, alert))

2. 조건문

특정조건에 따라 프로그램을 분기한다.

A. 단일조건 : if문

if 조건식 : (들여쓰기)실행문
True이면 출력

#국영수 점수 평균 90점 이상이면 참 잘했어요

kor = int(input('국어 점수 입력 : '))
eng = int(input('영어 점수 입력 : '))
math = int(input('수학 점수 입력 : '))
avg = (kor+eng+math)/3

print('평균 : {}'.format(avg))

if avg >= 90 :
    print('참 잘했어요')

B. 양자택일 : if ~ else 문

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(소수) : 소수점을 잘라낸다.

➕ pass : 나중에 코딩할게

if my_score >=  pass_score :
    pass
else :
    pass
    
    

C. 다자택일 : if ~ elif 문

여러가지 조건식 결과에 따라 실행문이 결정됨
주의사항
1. 조건식 순서 2. 명확한 조건

✔️ 조건식 <> if ~ else문

📢 변수를 할당하는 경우는
맨 앞에 변수명을 선언해주고 else에서는 할당될 변수값만 적어줄것

📢 모든 조건식은 if else문으로 변경할 수 있다.
다만 모든 if else문을 조건식으로 변경할 수는 없다.
(else문의 실행문이 많을경우)

D. 중첩 조건문

조건문 안에 또 다른 조건문

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('잘못입력했습니다.')

3. 반복문

반복문이란 특정실행을 반복하는것.
반복문을 사용하면 프로그래밍이 간결하고 유지보수가 쉽다.

A. for문

횟수에 의한 반복
e.g. 대량메일 또는 문자발송

반복 횟수에 해당하는 부분은
이터러블이 가능한 모든 객체가 들어올 수 있다.
e.g. range, 리스트, 튜플, 딕셔너리 등등

➕range() 함수

**시작이 0일때, 단계가 1일 때 생략가능**

주의할 점은 끝은 미만이다.
쉽게 알 수 있는 방법은

  • 단계가 양수일경우 range(1,11,1)
    1부터 11-1까지 1씩 증가
  • 단계가 음수일경우 range(10,0,-1)
    10부터 0+1까지 1씩 감소
#사용자화 구구단
num = int(input('몇단? : '))

for i in range (1,10) :
    result = num * i
    print('{} * {} = {}'.format(num,i,result))

B.while문

조건에 의한 반복
(조건에 만족하면 실행한다. 그렇지않으면 반복을 중단한다.)
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))

C. 반복문제어

continue

반복실행 중 continue를 만나면 실행을 생략하고, 다음 반복 실행문으로 넘어간다.

7로 나눠질때만 print 출력

else

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

반복실행 중 break 를 만나면 반복문을 빠져나온다.

#몸무게가 2200g일때 식사중단

current = 800
meal = 70
date = 0

while True :
    date += 1
    weight = current + meal * date

    if weight > 2200 :
        break

print(date, weight)

D. 중첩반복문

반복문안에 또 다른 반복문을 선언한다.

#구구단

for i in range(1,10) :
    for j in range(2,10):
        print('{} * {} = {}\t'.format(j,i,j*i),end='')

    print()

제로베이스 데이터취업스쿨
Daily Study Note
profile
Study Log

0개의 댓글