기타 강좌

7.while문 제어구조 알아보기

 

오늘은 한석봉 이야기를 해보겠습니다.

 

큰 뜻을 품고 어머니를 떠나 숫자공부를 하던 석봉은 어머니가 너무 그리워 집을 찾아갔지요.

 

돌아온 석봉을 본 어머니는 말씀하셨습니다.

 

“나는 떡을 썰 테니, 너는 글을 쓰거라...... "

 

불을 끈 어머니는 떡을 썰기 시작합니다.

 

엄마는 내일 아침에 아들에게 떡국을 끓여주려고 길다란 떡을 써셨던 것 같습니다...

 

그 동안에 석봉이는 그 동안 연마한 실력을 총동원하여 1부터 10까지 숫자를 씁니다....

 

1, 2, 3, …

 

이 상황을 파이썬으로 만드려면 어떻게 하는 것이 좋을까요?

 

지금까지 배웠던 것만 가지고 해보겠습니다....

 

>>> print 1

1

>>> print 2

2

>>> print 3

3

>>>

 

 

좀 귀찮기는 해도 쓸만하지요?

 

그런데, 어머니께서 1부터 100까지 써보라고 하십니다.....헉.... 어떻게하지....

 

, 막막합니다. 어느 세월에 다 씁니까. 100까지 쓰면 아침이 밝아오겠군요.

 

이럴 땐 다른 방법을 찾아야겠죠?

 

오늘 그 비밀을 알려드리려고 하는데요!!

 

바로 while이라는 녀석[놈]입니다.

 

1,2,3, … , 98, 99, 100

1부터 100까지는 저런 모양이 될텐데요, 가만 보면 다음에 나오는 숫자는 앞의 숫자보다 1이 더 큽니다.

 

다시 말하면 앞의 숫자에 1을 더하면 다음 숫자가 나온다는 것이지요.

 

그러니까 계속 앞의 숫자에 1을 더해나가다가 100까지 쓰고 그만두면 되는 겁니다.

 

다음을 잘 보세요.

 

>>> num = 1

>>> while num <= 100:

...     print num

...     num = num + 1

...

 

우리가 쓸 숫자를 num이라고 했구요, 여기에 1을 넣어줬습니다...

 

이해가 잘 안 되시는 분은 변수 강좌를 다시 한 번 보세요...!

 

그 다음에 while이라는 놈이 나옵니다...

 

아직 알쏭달쏭하시죠? 일단 다음 문장으로 넘어가보도록 하겠습니다.

 

print num

 

이것은 num이라는 변수에 들어있는 수를 찍어달라는 것입니다. 지금까지의 강좌 내용을 이해하셨다면 이해하실 거에요...

 

지금 num에는 1이 들어있으니 당근 1을 찍어주겠지요.

 

그 다음 문장을 봅시다.

 

num = num + 1

 

이번엔 진짜로 이상한 것이 나왔습니다. num이 1이라면 1 = 1 + 1 이 된다는 얼토당토 않은 소리군요.

 

그런데 프로그래밍에서 = 표시는 ‘같다’는 뜻 말고 다른 뜻을 갖고 있습니다.... 잘 생각해 보세용~~

 

제 시계가 백만원이라는 것을 어떻게 표현했죠??

 

그렇죠, watch = 1000000 입니다. 이 것은 watch라는 변수에 1000000 이라는 값을 넣어주라는 뜻이었습니다.

 

조금 전에 num = num + 1이라고 쓴 것은 num이라는 변수가 가진 값에 1을 더해서 다시 num에게 넣어주라는 의미입니다.

 

그래도 이해가 안 되신다면 다른 걸 보여드리도록 하지요.

 

>>> a = 3

>>> b = a + 2

 

위의 문장을 보세요. b의 값이 얼마가 되었을까요? 이제 이해가 가시겠죠?

 

, 이야기가 한참 딴데로 샜습니다. 원래 공부하던 것을 보시려면

 

화면을 한참 오르락 내리락하셔야 할 테니까 제가 한 번 더 쓰지요, 뭐. (ㅡㅡ;ㅎㅎ)

 

>>>  num = 1

>>>   while num <= 100:

  ...     print num

...     num = num + 1

...

 

while은 어떤 조건이 만족되는 동안 그 아래에 쓴 문장들을 반복하는 기능을 갖고 있습니다.

 

여기서는 num이 100 이 될 때까지 print num과 num = num + 1을 반복하는 것이지요.

 

제가 반복을 해볼게요....

 

처음엔 num 값이 1 이니까 100보다 작습니다. 그렇다면 그 다음 문장을 수행해야죠?

 

print num 이니까 화면에 1을 찍고 num = num + 1해서 num은 2가 됩니다.

 

그리고는 다시 위의 while로 돌아가지요.

 

그러면 num 값이 2 이므로 print num이 2를 찍고 num = num + 1해서 num은 3이 됩니다.

 

그 다음엔 num 값이 3 이므로 print num이 3을 찍고 num = num + 1해서 num은 4가 됩니다.

 

그 다음엔 num 값이 4 이므로 print num이 4를 찍고 num = num + 1해서 num은 5가 됩니다.

 

헉헉헉…

 

그 다음엔,… 헉헉헉…...헉헉허겋ㄱ허거ㅓ/....

 

그렇게 하다보면 언젠가는 num 값이 99까지 올라갑니다. 이번에도 100보다는 작으니까 또 99 찍고, num은 드디어 100 되지요.

 

이제 또 다시 while문으로 갑니다. while 다음에 뭐라고 써있죠?

 

num <= 100:

 

그렇습니다. num이 100보다 작거나 같을 때 조건을 만족하는 겁니다.

 

그러면 하던 일을 계속해야겠죠? print num하면 화면에 100을 찍고 num = num + 1해서 num에는 101 이 들어갑니다.

 

그 다음에 while을 만나면 이번엔 num이 100보다 크니까 그 다음의 문장을 수행하지 않고 끝이 나고야 맙니다.

 

헉... 이게 끝인가? ... 이게 끝입니다...ㅎㅎ [썰렁..]

 

우리는 머리를 약간 굴리고 프로그램 네 줄만 치면 1부터 100까지가 아니라 백만, 천만,

 

억까지도 숫자를 쓸 수 있는 것입니다. 놀랍지 않습니까, 여러분?

 

믿기지 않으신다구요? 그럼 한 번 따라해보실까요?

 

먼저 파이썬 프로그램을 띄우시구요, 처음 두 문장을 쳐보세요. while 문 마지막에 콜론(:)이 꼭 들어가야하니 빼먹지 마시구요.

 

>>> num = 1

>>> while num <= 100:

...

 

둘째 줄까지 치면 다음 줄에 점 세 개가 자동으로 나타납니다. while 문은 여러 줄로 구성되기 때문에

 

다음 줄을 계속 입력하라는 뜻으로 나타나는 것이지요.

 

그럼 다음 줄을 입력하겠습니다. 점 세 개 뒤에 바로 쓰지 마시고 <Tab>키를 한 번 눌러서

 

간격을 띄운 다음에 명령을 입력하세요.

 

파이썬에서는 여러 줄로 이루어진 명령을 입력할 때 둘째 줄부터는 반드시 들여쓰기를 해줘야하거든요.

 

...     print num

.  ..     num = num + 1

...

 

그렇게 셋째, 넷째 줄까지 치고 …이 나오면 <Enter>를 한 번 더 눌러주세요.

 

그러면 더 이상 입력할 것이 없다는 것으로 알고 while 문이 끝나게 됩니다.

 

제대로 따라하셨다면 순식간에 1부터 100까지 화면에 나타날 겁니다.

 

while 문 이해 잘가셧나요? 오늘도 파이썬 강좌 마치겠습니다! ㅎㅎ

TAG •

List of Articles
분류 제목 글쓴이 날짜 조회 수
Vegas Pro 베가스 강좌 목록 아방스 2017.09.28 886
파이널컷X 파컷 강좌 목록 아방스 2017.06.18 757
C언어 [비쥬얼 C++ 동영상 강좌] 07회 GDI 를 배우자 - 1 아방스 2009.01.12 1710
기타 [RPGXP] 기술 데이터 읽기 실패 해결법 2 file 맵만드는중.. 2014.02.17 1717
C언어 정체불명의 프로그래밍 입문 main 함수작성 3 file 정체불명 2012.01.18 1721
기타 [루비] 프로그래밍 공부하는 법 1 자연철학의수학적원리 2013.10.25 1724
기타 [루비][네트워크] 다른 컴퓨터에서 명령어 받아서 실행후 결과 돌려주는 서버 자연철학의수학적원리 2013.10.25 1736
C언어 [C 언어 강의] 데이터 출력 함수 printf() file 마린레이 2011.10.12 1746
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - “Call To Action” Buttons file 아방스 2011.12.07 1750
기타 응용..에 관한 간단한 고찰.(??) 개촙포에버 2011.10.13 1770
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - 3D Buttons file 아방스 2011.12.07 1791
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - Check It Out Button file 아방스 2011.12.07 1815
C언어 [비쥬얼 C++ 동영상 강좌] 09회 화면을 마음대로 만들기 1 아방스 2009.01.12 1826
어도비 프리미어 [프리미어 프로] 영상 회전시키기 (거꾸로 촬영된경우) 아방스 2017.08.01 1835
C언어 [비쥬얼 C++ 동영상 강좌] 11회 Application Rc & 클래스 위자드 배우기 1 아방스 2009.01.12 1847
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - 36 Web Buttons Collection file 아방스 2011.12.07 1856
게임 업로드 방법 아방스 2009.01.06 1857
C언어 [ - Zennys -] C언어의 기초 ... 8 file - Zennys - 2009.06.08 1861
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [printf함수] file -Zennys- 2009.06.13 1878
C언어 [비쥬얼 C++ 동영상 강좌] 12회 그림 텍스트 리스트 CListCtrl 클래스 아방스 2009.01.12 1883
시네마4D Navié Plants & Effex Krakatoa Edition v2.00.20 For Cinema 4D R14 – R15 – Win64 file 아방스 2013.09.24 1951
C언어 스릴 쇼크 서스펜스!!!!!!!! 정체불명 2009.05.01 1967
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19