본문 바로가기
[ Python ]/- 파이썬 문법공부

파이썬 6장(반복문, while문, 중첩while문)

by MRG 2020. 7. 6.
728x90
반응형
728x90

▣ 안녕하세요 ^^
저번장 과제는 해보셨나요?
저번장에 조건문을 아직도 이해하지 못하신 분은
스크래치에 조건문 장을 한번 공부하시면 많은 도움이 될 겁니다.



▣ 오늘은 반복문을 진행하겠습니다.
우리가 컴퓨터를 사용하는 이유이기도 합니다. 
쉽게 반복문은 말 그래도 몇 번 반복할지를 명령해주는 코딩입니다. 
조건문과 거의 틀은 비슷합니다.
반복문도 우리가 정해준 조건이 맞을 경우에만 
반복을 하게 됩니다.
반복문은 대표적으로 두 가지를 사용하는데 
for문과 while문이 있습니다.
이건 스크래치로 예를 들어보면서 공부해보겠습니다



▣ for문은 쉽게 이야기하면 몇 번 반복해라고 명령하는 반복문입니다.

 

이렇게 스크래치에 10번 반복하기 블록을 for으로 보시면 됩니다.



while문은 

▣ 어떤 상황까지 반복해라는 명령 반복문입니다. 
이 차이를 기억해주시고 
먼저 while문부터 공부해보겠습니다.

 

 

▣ if문과 동일하게 wihle문을 사용하려면 
whlie문을 입력하고 
그다음에 조건을 넣어줘야 합니다. 
그 조건이 맞으면 whlie문 밑에 들여 쓰기 부분을 순차적으로
작동하게 됩니다. 
그런데 여기서도 주의해야 할 건 조건 끝에는 항상 조건에 끝을 알리는
: 콜론을 꼭 붙어주셔야 합니다. 



▣ 자 저렇게 코딩을 하면 i가 5보다 작을 동안에 계속 들여 쓰기 한 코딩을 작동하게 됩니다.
순차적으로요.
자 이제 반복문을 하나하나 해석해 보겠습니다.
i에 값을 처음에 정의할 때 0으로 지정했습니다.
i에 값은 그래서 0이기 때문에 i < 5 조건이 참이 됩니다.
5보다 0기 작기 때문이죠.
그렇기 때문에 밑에 있는 들여 쓰기를 한 두 가지를 
순서대로 하나하나 작동합니다.
print함수로 출력을 하고 그다음에
i에 값에 +1을 합니다.
그럼 i에 값은 1이 됩니다.
i +=1과
i = i + 1은 동일한 연산입니다.
밑에 있는 코딩을 끝내면 다시 while문 조건문을 검사합니다.
1 < 5에 조건은 맞기 때문에
또 밑에 있는 두 가지를 순차적으로 작동합니다.
이렇게 i 가 5가 되면 5 < 5에 조건은 
거짓이기 때문에 while문 반복문이 끝나게 됩니다. 



▣ 다시 말씀드립니다.
코딩은 읽는 게 너무 중요합니다.
그리고 순차적으로 작동하는 것 잊지 마시고,
제가 위에서 하나하나 읽고 해석한 것처럼 여러분들도 직접 
코딩을 해석해보세요.
그리고 다르게 바꿔보세요.
다르게 여러분 반복하게 할 수 있겠죠?
그럼 만약에 i +=1 이 부분은 빼면 어떻게 될까요?

 

▣ 조건이 계속 참이기 때문에 계속 출력이 됩니다.
왜냐 5보다 0이 작기 때문이죠.
i에 값이 변동이 없습니다.
이걸 멈추려면 run을 했던 창을 강제적으로 x를 눌러서 끄시면 됩니다.
이걸 무한반복이라고 합니다.
우리가 나중에 게임을 만들 때 사용하게 될 겁니다. 
왜냐 우리에 키값을 입력받는 거 
조건에 맞게 캐릭터가 움직일 때
계속 우리가 키 값을 입력해줄 때까지 
계속 검사하고 기다려야 하기 때문입니다.
한 번만 하면 안 되겠죠?
이건 나중에 입력 부분을 공부할 때 또 이야기하겠습니다.



▣ 그럼 무한반복을 더 쉽게 하려면 어떻게 해야 할까요?

 

▣ 이렇게 whlie문에 조건을 True 값으로 지정해주면 
무한반복을 하게 됩니다. 
c언어서는 1로 지정을 해야 무한반복이 가능했습니다.
이 차이점 기억해주시고, 
한번 무한반복을 코딩해보세요.

 

 

▣ 무한반복을 하셨다면 다시 i에 값을 넣어서 
이렇게 하나하나 해석하시면서 코딩을 해보세요.

 

 

▣ 이렇게 반복문을 이용해서 곱하기하게 할 수도 있습니다.
이런데 우리가 여기서 생각해야 할 건
변수가 두 개이기 때문에,
어떤 변수를 활용해서 반복문을 끝낼지를 생각해야 합니다. 
구구단 2단에서 숫자가 바뀌는 건 처음 피연산자가 아닌 두 번째 피연산자이기 때문에
두번째 피연산자를 반복문 조건에 넣어서 이렇게 구구단을 만들어 보았습니다. 
여러분들도 직접 실습해서 2단부터 9단까지 따로따로 만들어보시고
위에서 우리가 코딩을 해석한 것처럼 해석해보세요.



▣ 우리가 구구단을 다 만들어보면 이런 생각이 들 수 있습니다.
한꺼번에 2단부터 9단까지 반복해서 출력하려면 어떻게 해야 할까?라는 생각이 듭니다.
그런데 반복해야 하는 조건이 두 가지입니다.
이럴 때는 어떻게 해야 할까요?
바로 중첩 반복문을 사용하시면 됩니다.
whlie문안에 whlie문을 사용하시면 됩니다. 
우선 여러분들이 한번 시도해보시고,
그런 다음에 밑에 코딩을 봐주세요.

 

 

 

 

▣ 제가 이렇게 하나하나 해석을 주석으로 넣어두었습니다.
첫 번째 whlie문 조건1 반복문은 2단 3단 4단 첫번째 피연산자에 반복문이고
두 번째 whlie 반복문은 * 1, *2 ,  * 3, ~ * 9 까지 하는 두번째 피연산자에 반복입니다.
그럼 첫 번째 반복문에 조건 1이 맞으면 
두 번째 반복문이 작동하겠죠?
왜냐 프로그램은 무조건 순차적으로 작동하기 때문입니다. 
그래서 그 안에 들어 있는 들여 쓰기한 코딩들을 하나하나 실행합니다.
그러니 들여쓰기 한 부분을 잘 보고 구분해주세요.



▣ 그럼 두 번째 whlie 조건2에서도 그 조건이 맞을 때 까지 순서대로 작동합니다. 
두번째 반복문이 끝이 나면 그다음에 순차적으로 작동합니다.
바로 print함수를 실행합니다.
우리가 공부했습니다.
이스케이프 시퀀스이고 구구단 별로 제가 구분하기 위에서 넣어두었습니다. 
\n 이렇게 하게 되면 줄 바꿈을 하게 됩니다.
엔터를 넣었다고 생각하시면 됩니다.
그리고 다시 3단을 *1부터 해야 하기 곱해야 하기 때문에 두 번째 피연산자를 1로 초기화를 했고
첫 번째 피연산자 값 안에 +1을 했습니다.
그럼 2단이 끝나면 3단을 하겠죠?
3단이 끝나면 4단을 하게 됩니다.

 


▣ 이렇게 9까지 진행을 하면 모든 반복문이 끝나게 됩니다.
이건 제가 설명하는 것보다 
여러분들이 제가 주석을 써 놓을걸 하나하나 해석하면서 코딩을 
직접 과제로 만들어보세요.
꼭 읽는 걸 훈련하셔야 합니다.

 

▣ 이렇게 반복문에 조건에도 논리 연산자를 사용할 수 있습니다.
원래는 and라면 둘 중에 하나만 틀려도 끝나야 하지만 
or 논리 연산자이기 때문에 
둘 다 틀린 때까지 작동해서 저런 결과가 나오게 됩니다.


▣ 직접 and와 not을 사용해서 다르게 코딩을 해보세요.



▣ 자 오늘은 이렇게 반복 문중에 whlie문을 공부해보았습니다.
조금 어려우실 수도 있지만,
코딩에 대부분은 조건문과 반복문으로 이루어져 있기 때문에,
꼭 하나하나 해석하시면서 이해하고 
컴퓨터가 어떤 구조로 작동하는지를 생각하시면서 코딩을 만드셔야 합니다.
혹시 이 과정이 너무 어려우신 분은 스크래치장에 반복문을 공부하고 오시면 
많은 도움이 될 겁니다. 
결국 스크래치도 c언어기반이고 파이썬도 c언어 기반이기 때문입니다.
제가 드린 과제들은 꼭 해보시고 
질문 있으시면 댓글 남겨주세요.
그럼 다음장에서 뵙겠습니다. 



▣ 포기하지 마세요!!! 저도 했습니다!!! 파이팅!!! 

 

 

 

728x90
반응형

댓글