반응형

 

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

 

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


 오늘은 3가지 제어문 중, while문에 대해서 공부해보겠습니다.


while문 기초

 

while은 한국어로 변역하면 "~하는 동안"입니다. 즉, 'while 조건문' = '조건문 하는 동안' = '조건문이 참인 동안'으로 해석할 수 있습니다.

빠른 이해를 위해서 코드를 보시겠습니다.

 

while 3 > 2:

    실행할 코드 1
    실행할 코드 2

 

이 코드를 해석하면 "3> 2 인 동안에 실행할 코드 1과 2를 계속 반복하겠다"라는 뜻입니다. 조금 감이 잡히시니요?

 

여기서 눈치가 빠르신 분들은 이런 생각을 하셨을텐데요.

 

"3 > 2는 항상 참이니깐 무한히 반복하겠네?"

 

네, 맞습니다! 3 > 2는 앞서 배웠던 불 자료형의 True와 같습니다. 이런 것을 무한루프라고 합니다.

 

그렇다면 while문을 어떻게 무한루프가 아니게 만들 수 있을까요? 바로 이렇게 하시면 됩니다.

 

a = 0

while a < 5:     # 가장 처음 a = 0이므로 조건이 참

    a = a + 1    # a = 0 + 1
    print(a)     # print(1)
    
<결과>
1
2
3
4
5

 

위의 코드가 어떻게 실행되는지 차례대로 설명해보겠습니다. 차근차근 코드를 씹고 뜯고 맛보고 즐겨보세요!

 

1) 가장 처음 a=0으로 a라는 변수를 설정해주고 0이라는 값을 대입해줍니다.

2) while문에 진입하여 조건문 (a < 5)의 참/거짓을 판단합니다.

3) a = 0이므로 참으로 판단합니다.

4) 변수 a에 현재 a가 가지고 있는 값 + 1을 대입

    ( '=' 을 기준으로 좌항은 항상 변수를 뜻하며 우항은 현재 가지고 있는 값을 뜻함)

5) print() 함수로 a의 현재값을 출력

6) while문 안의 실행할 코드가 끝났으므로 다시 while문의 처음으로 돌아가서 조건문의 참/거짓을 판단

7) 현재 a에 들어있는 값은 1이므로 1 < 5는 참

8) 이런 식으로 계속 a를 1씩 증가, a의 현재 값을 출력

9) 그러다가 5가 출력된 후에 다시 while문으로 돌아갔을 때 조건문이 5 < 5가 되어 거짓

10) while문을 빠져나옴 (while문 다음에 코드가 있다면 이어서 실행하며 없다면 프로그램을 종료)

 

 

while문의 쓰임

사실 위의 예는 while문을 제대로 활용한 것이 아닙니다. 왜냐하면 보통 반복횟수가 정해져있는 경우는 다음 시간에 배울 for문을 사용하는 것이 일반적이기 때문입니다. 그렇다면 while문은 언제 사용하기 위해 만들어 진 것일까요?

 

바로 언제 끝날지 예측하기 힘들 때 혹은 무한히 실행할 코드가 있을 때 while문을 사용합니다.

 

현실에서 while문을 사용하는 예는 무엇일까요?

 

저는 오락실의 게임기가 생각이 납니다. 게임기는 사람이 있으나 없으나 계속 켜져있죠. 그러다가 동전(입력)을 넣을 때 게임이 시작됩니다.

계속해서 무한루프를 돌면서 동전이 들어오는지 확인하다가, while문 안의 if문으로 게임을 실행시킬 것이라 짐작되네요.

 

제가 생각했던 예를 아주 단순화 시켜보면 아래와 같은 코드로 표현해볼 수 있겠네요.

 

while True:
    
    게임 화면 자동 재생
    
    if 동전 투입구에 동전을 넣으면
        게임 시작!

 

 

break와 continue

while문에는 치트키 같은 명령어들이 존재합니다. 이 치트키들을 코드에 넣어두면 모든 법칙을 무시하고 어떤 명령을 수행하게됩니다.

 

break

while문을 즉시 빠져나가고 다음 코드를 이어서 실행

energy = 100

while True:
    
    누나가 외출한동안 누나집에서 조카와 놀아준다
    energy = energy - 1
    
    if energy == 0:
        누나한테 전화해서 빨리오라고 한다
    
    if 누나가 돌아오면:
        break
        
집으로 돌아간다
print("어우 힘들어")

 

 

continue

while문의 처음으로 돌아가서 조건문의 참/거짓을 판단

#잠이 오질 않아서 양을 짝수로 세어보기로 했다..

sheep = 0

while sheep < 10000:
    
    sheep = sheep + 1
    
    if sheep % 2 == 1:     # sheep을 2로 나눠서 그 나머지가 1이면 참 (홀수라는 말)
        continue           # 다시 while문으로 돌아가서 조건문 판단 (이때, sheep은 1씩 계속 더해진 상태)
    
    print("양 %d마리" %sheep)
    
    if 잠들면:
        break

 

결과는 지금 껏 배운 지식을 이용해서 예측해보시길 바랍니다.

 


오늘 준비한 내용은 여기까지입니다.

 

다음 시간에는 for문에 대해서 공부해보겠습니다.

반응형

+ Recent posts