기타 강좌

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 912
파이널컷X 파컷 강좌 목록 아방스 2017.06.18 798
기타 바이러스 제작 모험기 : 상편.shutdown명령어! 4 file 창조자 신 2009.05.16 3779
웹디자인 관련 버튼 psd 템플릿사이트 모음 아방스 2011.12.07 2022
기타 번외 2편 : 게임 엔진 서론 1 코르뉴 2011.06.17 2780
Vegas Pro 베가스 8 - 분할 / 자르기 / fade in/ out 아방스 2008.06.08 6228
Vegas Pro 베가스 8 - 사진의 장면 전화 효과 크로스 페이드 2 아방스 2008.06.07 4870
Vegas Pro 베가스 8 - 사진의 크기를 동영상에 크기에 맞추기 아방스 2008.06.07 5198
Vegas Pro 베가스 8 - 자막 삽입하기 아방스 2008.06.08 4918
Vegas Pro 베가스 영화 비율 영상으로 만들기 (레터박스) 아방스 2016.12.19 718
Vegas Pro 베가스8 - 동영상 또는 사진을 가지고 오기 1 아방스 2008.06.07 4098
에프터 이펙트 붓 칠해지는 느낌의 자막 1 file 아방스 2011.02.27 3341
기타 비밀번호를 제작해볼까?? 8 file 아방이 2008.01.21 2919
C언어 사각형 테두리 그리기를 연습해봐요 3 file 정체불명 2012.01.21 5704
기타 색바꾸기 강좌 4 제니스 2008.06.24 3014
C언어 소코반 따라만들기 준비 파일읽어배열에담기 정체불명 2012.01.21 2992
C언어 소코반 따라하기 준비 1 파일에서 읽어와서 출력 정체불명 2012.01.21 2860
C언어 소코반 리팩토링 푸쉬푸쉬 file 정체불명 2012.01.25 2575
C언어 소코반 실행파일+소스+스크린샷 file 정체불명 2012.01.25 3526
C언어 소코반(푸쉬푸쉬) 구조 정체불명 2012.01.21 2868
어플개발 소프트아이스크림의 SRPG 만들기 - 4장 기본 문법과 배열 ! file 소프트아이스크림 2016.07.18 234
어플개발 소프트아이스크림의 SRPG 만들기 - 5장 게임 구성 및 잡담 + 배경 만들기 file 소프트아이스크림 2016.07.31 240
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19