본문 바로가기



개발 도구들/Python

파이썬으로 프로그래밍에 도전하자(6)

이 글의 주요 대상은 이제 프로그래밍에 첫 발을 들여놓는, 프로그래밍의 경험이 없는 분들을 대상으로 합니다.

지난 글까지 for 문을 이용한 반복문에 대하여 공부했습니다.

이번 글에서는 또 다른 반복문인 while 구문을 살펴보도록 하겠습니다.

 

지난 시간까지 공부했던 for 문을 이용한 반복문의 특징은 반복하기 위한 범위가 주어졌다는 점입니다.

이번에 다룰 while 문은 for 문과 다르게 반복하기 위한 조건이 주어진다는 점이 특징입니다.

while 문에 따라오는 조건을 만족하는 동안 계속해서 반복 작업을 수행하라.. 라는 의미입니다.

 

예제 코드를 먼저 보겠습니다.

예제 코드의 내용은 먼저 x의 초기 값을 1로 잡아 두고 x가 10보다 작은 동안에는 계속 반복 작업을 시키는 것입니다.

"x가 10보다 작은 동안"이라는 말은 "x < 10" 이라는 조건이 "참(True)"이 되는 경우를 말하죠.

즉 주어진 x에 대하여 x < 10을 만족한다면 계속 반복 작업을 시키고, x < 10을 만족하지 않는다면, 다시 말해서 x가 10 이상의 값을 가지게 된다면 반복 작업을 중단시켜라.. 라는의미입니다.

 

그렇다면 x의 값이 변하지 않으면 while 문은 영원히 반복하게 되겠죠.

그래서 반복 작업을 한 번 수행할 때마다 x의 값을 1씩 증가시킵니다.

x = x + 1 구문은 x의 값에 1을 더한 값을 다시 x로 할당하여라.. 라는 명령입니다.

즉 x의 값을 x + 1로 바꿔주라는... 1을 증가시키라는 뜻이죠.

그러면 반복 작업을 한 번 수행할 때마다 x의 값은 2, 3, 4, ... 와 같이 계속 증가하게 될 것입니다.

 

이렇게 x의 값을 증가시키도록 명령하고 나서 조건문이 들어왔습니다.

만약 x가 5보다 작으면 continue 명령에 따라 뒤에 따라오는 명령은 무시하고 다시 처음부터 작업을 반복합니다.

x의 처음 값은 1이니까 1씩 증가하다가 x = 5가 되는 순간부터 continue 명령을 벗어나서 print(x)를 실행하게 됩니다.

 

이때 print(x) 명령 다음에 다시 x > 7인 경우에 대한 조건문이 들어왔죠.

x가 7보다 커지면 while 반복문을 빠져나가라는 명령입니다.

 

x = 5, 6, 7까지 print문을 수행하고 나서, 여전히 x > 7을 만족하지 않으니까 한 번 더 반복 작업을 실행합니다.

x = 8이 되었고 첫 번째의 조건문을 만족하지 않으니까, 즉 첫 번째 조건의 결과가 False가 되니까 print(x)를 수행합니다.

8까지 출력이 되었죠.

다음으로 두 번째의 조건문을 만났습니다.

지금 x의 값은 8이니까 x > 7 이라는 조건문을 만족합니다.

그럼 break 명령에 따라서 반복문을 빠져나가게 됩니다.

 

그럼 결과는 5, 6, 7, 8의 네 개의 숫자가 출력이 되겠죠.

이렇게 while 문을 이용한 반복문을 살펴보았습니다.

 

그런데 우리가 사용하는 많은 프로그램들은 직접 종료시키지 않으면 무한정 반복하는 프로그램들이 대부분이죠.

공부할 때 사용하는 예제코드에서는 처음부터 특정 조건을 주고 반복을 시키지만 일반적인 프로그램들은 그냥 계속 동작합니다.

 

대표적인 예로 윈도우, 리눅스와 같은 OS, 즉 운영체계 프로그램을 들 수 있습니다.

우리가 컴퓨터를 종료시키지 않으면 계속` 끝없이 동작합니다.

 

이처럼 강제로 무한루프(끝없이 반복, 즉 루프를 도는 구조)를 지정하려고 하면 어떻게 해야 할까요?

앞에서 while문은 따라오는 조건을 만족하는 한 계속 반복한다고 말씁드렸습니다.

그렇다면 그 조건이 언제나 참(True)이 되면 되겠네요.

예제 코드에서 사용한 것처럼 그냥 조건문 자리에 True를 넣어버리면 해당 반복문은 break를 만날때까지 무한루프를 돌게 됩니다.

 

여기서 True (참) / False (거짓) 라고 하는 값은 boolean 값(논리 값이라고도 합니다)이라고 부르며 어떤 조건에 대하여 참과 거짓을 나타내는 두 개의 값을 가지는 자료형(데이터 타입)입니다.

그런데 두 개의 값을 가진다는 점에서 또 다른 사용법을 생각할 수 있습니다.

 

컴퓨터는 전기로 동작하죠.

전기는 켜져있거나(on, 1) 꺼져있는(off, 0) 두 가지의 상태로 나뉘어집니다.

그래서 컴퓨터는 모든 동작이 on / off로 이루어집니다.

이때 on / off 값을 두 개의 숫자로 구성되는 2진수를 이용하여 1과 0으로 표현하도록 OS가 만들어졌습니다.

 

참과 거짓도 동일한 기준에 따라 참(True)은 1, 거짓(False)은 0으로 할당이 되어 있죠.

그래서 while문에 따라오는 조건에 True 대신 1을 넣어주어도 동일하게 동작합니다.

그렇지만 보기 쉽게 True / False를 이용하는 것을 권장하기도 합니다.

 

여기까지해서 while 문을 이용한 반복문에 대하여 알아보았습니다.

이것으로 가장 기본적인 프로그래밍 기술은 모두 살펴보았다고 생각되네요.

이후에는 제대로 된 알고리즘이나 활용, 사용자가 처리해야 할 업무 분야에 대한 기술 등이 필요할 것으로 보입니다.

 

 

 

 

반응형