본문 바로가기

Programming/Python Tutorials

[PYTHON 3] Tutorials 8. Range and While

안녕하세요.

이번 시간에는 범위와 간격을 설정할 수 있는 range 와 반복문의 또 다른 형태인 while 에 대해서 간략히 알아 보도록 하겠습니다.

위의 그림은 앞에서 다룬 for 의 형태입니다. 여기에서 뒷 부분에 range() 라고 하는 부분이 보이는데요. 이 range() 는 괄호안의 범위까지를 의미합니다. 즉 range(10) 은 0,1,2,3,4,5,6,7,8,9 까지의 숫자를 의미합니다. 위의 for 문에서는 0,1,2,3,4,5,6,7,8,9 를 각각 한번씩 number 로 할당해서 아래의 명령을 수행하라는 의미가 됩니다. 결과값을 한번 예측 해보시고 아래로 내려가보세요.

네.. 위의 숫자들을 예측하셨다면, 제대로 이해하고 계신겁니다. 여기에서 왜 숫자들이 옆으로 나열이 안되고 아래로 나열이 되냐고 하면,

print() 함수 때문입니다. 이 프린트 함수에는 사용자에게는 보이지 않지만 내부적으로 개행문자은 \n 이 포함되어 있기 때문입니다.

이번에는 range() 에 두 개의 숫자가 있군요. 이는 첫번째는 시작값, 뒤에는 마지막 값을 넣은 것입니다. 위의 코드를 실행하면 어떻게 될까요?

위의 그림처럼 1부터 10미만(9) 표시를 해주고 있군요.

그렇다면 이번에는 range() 안에 숫자를 3개를 적으면 어떻게 될까요? 이는 range(시작값, 마지막값, 간격) 을 의미합니다. 위의 코드에서 range(1,10,2) 는 첫번째 수로 1부터 마지막 수 10 까지 간격을 2씩 건너띄라는 의미입니다. 결과를 예측하면.......?

위의 그림처럼 1부터 10미만 홀수값들이 나열이 될 것입니다.

이번에는 약간 응용을 해 볼까요?  위의 코드에서처럼 숫자를 string(문자로 변환)화 시키고 또 다른 문자열인 "Hello World" 와 합쳐보면 어떻게 될까요? 예상을 하시고 다음 그림을 보시면 도움이 될 겁니다.

동일한 일을 쭈~욱 반복하게 되면서, 몇 번째 인지 한 눈에 확인을 할 수 있게 나열이 되는군요.

이를 잘 이해하시면 향후에 다른 형태로 응용할 때 많은 도움이 될 것입니다.

이번에는 While  에 대해 알아 보겠습니다. 위의 코드에서 times 라는 변수에 숫자 5를 할당해 주었습니다.

while 은 뒤의 조건이 참(True) 일 동안 무한 반복하게 하는 반복문의 형태입니다.

즉, while 아래에 이 while문을 빠져 나올수 있는 코드가 없다면 무한루프(Infinite Loop)에 빠지게 되어 컴퓨터 자원이 많이 낭비됨은 물론이거니와 무한히 돌아가는 코드가 되어버립니다.

따라서, while 을 사용할 시에는 반드시!!! 이 while 을 빠져 나올 수 있는 조건을 염두해 두고 코딩을 하여야 합니다.

위의 코드에서는 단순히 times 에 있는 값을 출력하고 그 times 값에 1씩 더하라는 코딩을 하였습니다.

이렇게 하면 어떻게 될까요?

1. 처음 times의 값은 5일 것입니다.

2. 그럼 while 조건문에서 5<10  은 참(True)이 되어 아래의 코드가 실행이 됩니다.

3. print(5) 가 되므로 숫자 5를 출력하고

4. 숫자 5 에 1을 더해서 다시 times 에 넣어주므로, times 는 6이 되겠죠.

여기에서 times += 1  은   times = times + 1  과 같은 의미입니다.

5. 다시 while 의 조건으로 올라가게 되고, 6 < 10  도 참(True) 가 되므로 동일한 방식으로 루프를 돌게 됩니다.

6. times 가 10이 되면 조건이 10 < 10 은 거짓(False)이 되어 이 while 문은 종료되게 됩니다.

그렇다면 위의 결과치를 예상해 보세요.

위의 그림처럼 예상하셨다면, 잘 이해하고 있다고 할 수 있습니다.

여기까지 range 와 while 에 대해 알아보았습니다.

수고하셨습니다.