Python

파이썬을 배워보자!(반복문)

25G 2021. 4. 10. 16:47

안녕하세요 여러분 네! 접니다 하핳 오늘은 파이썬에서 반복문을 보여드리겠습니다. 저번에 제가 if문을 말씀드렸잖아요? 그 친구랑 어떻게 보면 메커니즘이 비슷하지만 완전히 다른 결과를 만들어 내는 그런 친구라고 볼 수 있겠습니다.

여러분 예를들어서요 누군가가 여러분에게 같은 문구를 100번 출력해달라고 한다면 어떻게 하시겠어요??

이렇게 하면 되기야 하겠지만 엄청 불편하겠죠? 하물며 그걸 부탁한 사람이 죄송한데 제가 잘못 말씀드렸어요 10000번 출력해 주세요!!!! 하면... 그건... 완전 말도 안 되는 막일이 될 거예요 그래서 프로그래밍 언어를 만드신 똑똑한 분들께서 이런 민생들을 위해 반복문이라는 문법을 만들어 주신 겁니다 ㅎㅎ

 

일단 기초적인 while문 부터 보여드릴게요!

네 이게 가장 기본적인 반복문의 형태입니다! 제 글을 처음부터 찬찬히 읽어오신 분이면 감이 잡히실 거예요! 위에서 말씀드렸다시피 조건문과 형태는 뭔가 비슷한 것 같죠?

위 소스코드를 해석하자면

i라는 변수를 선언하고 그 i를 while문에 사용합니다 while 옆에 비교연산자가 있죠? i가 100 미만이라고 돼있는데요 바로 밑에 줄의 코드를 보시죠! " Hello, world!"가 있고 i +1이 바로 밑에 있습니다

이쯤 되면 감이 잡히실 겁니다

위 소스코드를 말로 풀자면 i가 0인데 while문을 만나서 조건이 붙습니다. i가 100 미만인가요? 하는 조건식이 참일 겨우 에 while문의 코드 뭉치 안에 있는 소스코드들이 위 조건식이 참 일동 안 반복 하는 것이지요! 그럼 0부터 시작해서 99까지 100번 '반복'해서 "Hello, woreld"를 출력하는 그런 소스 코드가 되겠습니다

 

이제 감이 잡히시죠?! 그럼 좀더 감을 단단히 하기 위해 다른 예제를 보여드릴게요!

위 소스코드는 if문까지 while문안에 들어가서 좀 당황스러우실 수도 있는데요! 하나도 걱정하실 것 없습니다!

프로그래밍은 위에서 아래로 한줄 한 줄 읽어나가며 제어를 따르는 정직한 친구니까요 차분하게 읽어나가시면 어려울 거 없습니다! 적어도 아직까지는요 ㅎㅎ

1번에 hit변수에 0을 저장하고 while문을 만납니다! 그럼 그 조건이 참일경우동안 반복이 되는 것이니까 어떤 조건인지 봐야겠죠? hit가 10 이하인가요?!라고 묻고 있는 조건 식입니다. 그럼 현제 hit에는 무엇이 들어있죠? 네 0이죠? ㅎㅎ 그럼 그 조건식이 참(true)이기 때문에 밑에 있는 와일 문의 소스코드 뭉치가 다시 하나하나 읽히기 시작합니다 4번째 줄을 보죠 hit변수에 hit에 1을 더하고 다시 hit변수에 넣음으로써 hit는 1이 됐습니다 그리고 6번으로 넘어가면 "나무를 hit번 찍었습니다"라는 문구가 출력되고 제어가 내려가면 8번에 바로 조건문을 만나면서 if문을 만납니다. if hit와 10은 같나요?!라고 물어보는 조건식이죠? 하지만 지금 hit변수에는 1이 들어있고 이 조건문은 false가 되어 실행되지 않고 while문의 소스코드의 끝을 만나게 됩니다.

그럼 제어가 다시 while문의 조건식이 있는 3번줄로 들어가고 지금 hit변수는 1이 들어있습니다. 그리고 참이기 때문에 다시 한번 while문이 실행되겠죠!

 

이렇게 hit변수에 10이 담기게 되면 8번 줄에 if문은 참이 되고 "나무가 넘어갑니다."라는 문구가 출력이 될 수 있는 조건을 갖추게 됩니다 그렇게 출력을 하면 while소스코드의 끝을 만났으니 다시 제어가 3번으로 돌아가게 되겠죠? 하지만 이제 hit변수에는 10이 들어있습니다 그럼 while조건문은 false가 되며 while반복문의 소스 뭉치를 탈출하게 됩니다! 만약에 9번 이후에 소스코드들이 있다면 실행이 되겠죠? 

 

여러분 어떤가요?? 참 재밌지 않나요? 결과를 직접 소스코드를 쳐 보시면 아시겠지만 10번찍어 안 넘어가는 나무가 없다는 속담을 반복문에 응용한 것이랍니다 ㅎㅎ 수업시간에 했는데 저는 참 재밌었어요 너무 신기한 거 있죠 

이런 보잘것없는 프로그램이라도 제가 만들어 내었다는 것에 성취감을 느낄 수 있었습니다.

그럼 위의 소스코드는 여러분이 한번 해석해보시면 좀 더 조건문과 while문에 대해서 좀더 깊은 이해를 하시게 될 거예요!

참고로 17번 줄에 있는 break가 뭐냐면! 어떠한 상황에서든 제어가 저 break를 만나게 되면 그 즉시! 바로 누구보다 빠르게 그 조건문 혹은 반복문을 빠져나가게 되는 문법입니다!

그럼 소스코드 한번 풀어보시고! 도움이 되셨길 바라며 오늘은 마무리 지어 보겠습니다!

그럼 이만~~~~ 안녕히~