본문 바로가기
언어/파이썬, 루비 (python & ruby)

파이썬(Python) & 루비(ruby) 개념 5편 (반복문)

by 동국대 ICT 2021. 1. 28.

지난 1편, 2편, 3편, 4편 파이썬, 루비 포스팅에 이어서 5편 포스팅을 하도록 하겠습니다.

 

donggukice.tistory.com/category/%EC%96%B8%EC%96%B4/%ED%8C%8C%EC%9D%B4%EC%8D%AC%2C%20%EB%A3%A8%EB%B9%84%20%28python%20%26%20ruby%29

 

 

 

'언어/파이썬, 루비 (python & ruby)' 카테고리의 글 목록

동국대학교 재학생인 3학년 학생입니다. 컴퓨터 공부의 전반적인 도움이 되고자 개설했습니다!

donggukice.tistory.com

해당 링크를 통해 이전 파이썬 강의를 확인하실 수 있습니다.

 

 

파이썬


< 반복문 >

프로그래밍을 하다가 보면 반복적인 작업을 해야 할 경우가 있습니다.

 

흔히 '노가다'라고 하는 작업이죠.

 

예를 들어보겠습니다.

 

만약 구구단을 출력해야하는 프로그램을 만들어야 합니다.

구구단 중 1단의 경우를 살펴보겠습니다.

1*1
1*2
1*3
1*4
1*5
1*6
1*7
1*8
1*9

까지 입니다.

이런 경우에는 앞에 1* 까지는 모두 동일합니다.

하지만 뒤에 1부터 9까지 증가하는 수를 반영하기 위해

print 문을 총 9개 사용해야 합니다.

구구단 끝까지 출력한다면 81개의 print 가 필요할 것입니다.

그러면 메모리의 사용도 증가할 것이고 

가독성도 매우 떨어지게 됩니다.

이러한 문제를 보완하기 위해서 고안된 것이 반복문입니다.

반복문을 사용하면 반복하는 부분을 굳이 다 서술하지 않아도

실행할 수 있기 때문입니다.
while False:
	print('hello world');
    
    
i=0;
while i<3;
	pirnt('hello world');
    i = i+1;

우선, python의 반복문형태입니다.

 

while False:

 

조건문에서 if가 쓰였던 것처럼 반복분에서는 while이 사용됩니다.

 

그리고 조건문과 같이 while 뒤에 조건이 붙어야 합니다.

 

그리고 조건의 boolean 이 true 이면 실행하고 false인 경우에는 실행하지 않습니다.

 

따라서 위의 코드는 실행이 되지 않습니다.


print('hello world');
    

while 문의 조건문의 boolean 값이 false이기 때문에

 

실행되지 않는 구문입니다.

 



i=0;

 

i라는 변수에 0이라는 값을 할당시킵니다.


while i<3;

 

while 문도 조건문과 동일하게 조건의 boolean이 참이면 실행, 거짓이면 실행하지 않는다고 했습니다.

 

위에 변수 i는 0으로 초기화가 된 것을 볼 수 있습니다.

 

그러면 i가 3보다 작아야 한다는 조건에 만족하는 것을 볼 수 있습니다.

 

따라서 이 while 문에 속한 구문들은 실행이 됩니다.

 

다시 한번 바로잡아 정리하자면

 

while 문의 조건이 참이면 실행 + while 문의 조건이 거짓이면 실행하지 않는다.

 

= while 문이 거짓일 때까지 계속 실행

 

이러한 이유 덕분에 반복이라는 기능을 사용할 수 있는 것입니다.

 

또한 반복문을 사용한다면 코드의 양도 현저히 줄어드는 장점이 있습니다.

 

이는 가독성과 메모리 문제 둘 다 해결할 수 있는 방법입니다.


pirnt('hello world');

 

while 문이 조건에 적합하기 때문에 실행됩니다.

 

출력 형태 : hello wolrd


    i = i+1;

 

i의 값에 1을 더하여 i에 다시 할당해줍니다.

 

초기에 i의 값은 0으로 할당되었습니다.

 

그러면 계속 i의 값은 0이기에 반복문의 조건에 무한히 만족하게 됩니다.

 

이럴 경우 반복문이 끝나지 않는 무한 루프가 발생할 수 있습니다.

 

그리고 구구단의 경우를 생각해보면 우리는 1~9까지 9번 만을 반복해야 합니다.

 

이렇게 우리는 통제 불능의 프로그램을 만드는 것이 아니라 통제가 가능한 프로그램을 만들어야 합니다.

 

그렇기에 횟수를 프로그래머가 지정해주어야 할 필요가 있습니다.

 

따라서 i = i + 1; 이라는 구문의 필요성이 있습니다.

 

i = i + 1; 이 반복문이 실행되면서 i 값의 변화 추이를 살펴보겠습니다.

 

1> i = 0; 초기에 i가 0으로 할당되었습니다.

 

2> i = i + 1;  반복문 마지막 부분에 이 구문을 통해

i의 값이 1 증가하게 되어서 i = 1; i가 1로 할당됩니다.

hello world

 

3> i = i + 1;  반복문 마지막 부분에 이 구문을 통해

i의 값이 1증가하게 되어서 i = 1; i가 2로 할당됩니다.

hello world

hello world

 

4> i = i + 1;  반복문 마지막 부분에 이 구문을 통해

i의 값이 1증가하게 되어서 i = 1; i가 3으로 할당됩니다.

하지만 이 경우를 자세히 보면 반복문의 반복 조건이 i가 3보다 작다 였습니다.

하지만 현재에는 i 값이 3이 되었습니다.

따라서 조건에 적합하지 않아서 조건의 boolean 값이 false가 됩니다.

이럴 경우 반복문이 실행되지 않게 됩니다. 

hello world

hello world

hello world

 

따라서 3번 실행을 통제할 수가 있어집니다.

 

 

while false do
	print('hello world');
end

i=0
whle i<3 do
	puts('hello world');
    i = i+1;
end

ruby의 반복문 형태입니다.

 

반복문의 이론적인 측면은 파이썬의 반복문에서 설명해드렸으니

 

루비에서는 파이썬의 반복문과의 차이점에 대해서 다루도록 하겠습니다.

 

while false do

 

파이썬 : ':' 가 필수적이다.

루비 : 대신 do가 들어간다.


print('hello world');


end

 

파이썬 : 들여 쓰기를 통해 구별한다.

루비 : 들여쓰기 대신 end를 써줌으로써 구별 짓는다.

 

i=0


whle i<3 do

 

파이썬 : ':' 가 필수적이다.

루비 : 대신 do가 들어간다.


puts('hello world');

    

i = i+1;

 

end

 

파이썬 : 들여 쓰기를 통해 구별한다.

루비 : 들여쓰기 대신 end를 써줌으로써 구별 짓는다.

 

 

 

 

개발자

 

 

댓글