조건문, while 반복문, for 반복문 맛보기

728x90

1. 조건문

 

"만약 a라면 b해줘 아니라면 c해줘"

 

조건문 기본 구조

 

4칸 들여쓰기를 이용해서 해당 조건에서 실행하고 싶은 문장들을 구분한다.

 

들여쓰기 칸이 같은 부분은 모두 수행한다는 이야기

 

 

예를 들어 dust가 50보다 크면 "50 초과"를 출력하고 그렇지 않다면 "50 이하"를 출력하라면?

 

if dust > 50:
    print("50 초과")
else:
    print("50 이하")

 

둘 중 하나를 충족하면 다른 문장은 수행하지 않는다는 점이 중요하다

 

 

2. 여러개의 조건문

 

"만약 a이면 b해줘, 그게 아니라 c이면 d해줘, 모두 아니면 e해줘"

 

elif를 사용해서 여러개의 조건을 계속 추가할 수 있다

 

if a: b elif c: d elif e: f elif g: h else: i 이런식으로 완전 많이 여러개도 가능

 

 

3. 조건문 예제코드

 

여기서 주목할게

 

파이썬은 우리가 쓰는 수식처럼 150 >= dust > 80 처럼 써도 인식은 하지만 권장하지 않는다는걸 알고있지?

 

다른 언어는 dust > 30 and dust <= 80 이런식으로 나눠 쓰거든

 

추가로 조건문에서 pass가 있는데

 

해당 조건이 참이면 pass를 수행한다는 것은 아무것도 수행하지 않고 넘어간다는 소리

 

dust = 60

#50초과만 출력
#조건 하나가 충족되면 다른건 출력하지 않아
if dust > 50:
    print('50초과')

else:
    print('50이하')

#들여쓰기 된 부분은 모두 해당 조건에 대한 명령문
#50초과랑 미세먼지 보통을 모두 출력
if dust > 50:
    print('50초과')
    print('미세먼지 보통')

else:
    print('50이하')
    print('미세먼지 좋음')

#if~else가 있을때 중간에 들여쓰기를 하지 않으면? 에러난다
if dust > 50:
    print('50초과')
    print('미세먼지 보통')

#print('여기는?')

else:
    print('50이하')
    print('미세먼지 좋음')


#else를 쓰지 않고 if만 쓴다면
dust = 45

if dust > 50:
    print('50초과')
    print('미세먼지 보통') #dust는 50보다 작아서 수행되지 않는다
print('여기는?') #들여쓰기가 없어서 if문 범위에 포함되지 않아, 조건과 상관없이 수행



dust = 30

if dust > 70:
    print('미세먼지 농도는 70보다 크다.')

elif dust > 50: #dust가 70보다 크지 않으면 여기로 이동

    print('미세먼지 농도는 50보다 크다.')

elif dust > 30:
    pass #dust가 30보다 크고 50이하이면 pass함 #아무런 명령도 수행하지 않음

else: #dust가 30보다도 작으면 여기로 이동

    print('미세먼지 농도는 30보다 작거나 같다.')

#dust 변수에 들어있는 값을 기준으로 미세먼지 정보 출력하기


#elif를 여러개 추가해서 조건을 더욱 많이 만들 수 있다

dust = 70

if dust > 150:
    print('매우 나쁨')

elif dust >80: #elif 150 >= dust > 80: #파이썬은 우리가 쓰는 수식처럼 이렇게도 사용가능함
    print('나쁨')

elif dust >30: #elif dust>30 and dust <=80: #다른 언어는 이렇게 함
    print('보통')

else:
    print('좋음')

 

4. while 반복문

 

"만약 a라면 계속 b해줘"

 

 

4칸 들여쓰기로 while 반복문 내부에 범위를 지정함

 

들여쓰기가 되어있지 않으면 그 반복문 범위를 벗어난 코드임

 

while 반복문에서 주의할 점은 해당 조건 a가 True이면 반복적으로 무한히 수행될 수 있다는 점

 

그래서 그 조건 a를 언젠가는 False로 만들어서 반복하지 않게 만들어야 프로그램이 끝나겠지

 

while 반복문 내에 종료를 시킬 수 있는 수단을 필요에 따라 작성해야함

 

n = 0

while n < 3:
    
    print(n)
    n = n + 1

 

n = 0일때,  <이렇게 시작하는 값을 초기값이라고 부름>

 

n이 3보다 작으면 <반복문의 조건>

 

4칸 들여쓰기 된 print(n), n = n + 1을 차례대로 계속해서 수행함

 

그러면 n = 0이면 print(0)

 

n = 1이면 print(1)

 

n = 2이면 print(2)

 

그리고 n = 3이 되어 n <3이 거짓이되니까 더 이상 수행하지 않고 종료

 

 

5. while 반복문 예제 코드

 

n = 0 #초기값

while n < 3: #n이 3일때 계속 반복

    print(n)

    n = n + 1 #n의 값을 1씩 계속 증가시킴 #n이 3이면 반복을 종료함

print(n) #while의 범위 밖(들여쓰기가 없음)

#n = 0, n<3 이 True, 0을 출력하고 n은 1
#n = 1, n < 3이 True, 1을 출력하고 n은 2
#n = 2, n <3이 True, 2를 출력하고 n은 3

#n = 3, n<3이 False이므로 반복을 멈춘다
#그리고 while의 범위 밖에 있는 print(n)을 n = 3에서 수행한다

###########################

#n=0부터 시작해서 n이 10보다 작을때까지 n을 반복해서 출력하고 n을 2씩 증가시킴

n = 0

while n < 10:

    print(n)

    n = n + 2

 

6. for 반복문

 

"a에 있는 b를 이용해서 c해줘"

 

 

dusts = [59,24,102]

#dusts 리스트의 길이만큼 반복함

for dust in dusts: #dusts안에 있는 값의 이름을 dust라 하고 사용함

    print(dust) #dust의 값은 반복이 될때마다 바뀌게 된다

#dust가 59 > 24 > 102로 변함

 

7. 예시 코드

 

'안녕하세요'를 반복적으로 출력하는 프로그램

 

n = n + 1은 프로그래밍적으로  n+=1로 줄여쓸수있다

 

range(n) 함수는 0부터 n-1까지 마치 리스트처럼 가지고 있는 하나의 range 타입을 생성함

 

단순 반복을 하고싶을 때는 range()와 for문을 이용하는 것이 효과적

 

#변수를 활용하여 '안녕하세요.'을 출력하는 프로그램

string = '안녕하세요.'
print(string)

#python 파일을 실행시키는 기본방법
#cmd에서 
# 코드파일 저장 경로> python (파일이름)

#예)C:\Users\multicampus\Desktop\code>python hello.py

#while문을 사용하여 '안녕하세요!'를 4번 반복해서 출력하는 프로그램

print('================================')

n = 0 #현재 몇번 반복을 했을지, 초기값으로 0

while n < 4: #반복횟수가 4번이 될때까지

    print('안녕하세요!')
    
    #n = n + 1
    n += 1 # n = n + 1을 줄여서 사용함

print('==============================')

#for문으로 바꾼 프로그램

#단순히 반복만 하고 싶을 때 range()함수 사용할 수 있다
#range(n):기본적으로 0부터 시작하고 n-1까지 
#예)range(4): 0,1,2,3 리스트가 아니라 파이썬은 range라는 하나의 타입이 또 존재함

for i in range(4): #4번 반복
    print('안녕하세요!')

 

 

728x90
TAGS.

Comments