728x90
반응형

2019/01/29 - [Language/Python] - [Python 따라하기]1. Python 설치하기

2019/02/05 - [Language/Python] - [Python 따라하기] 2. 자료형_part 1(String, Int,Float, List)

2019/02/12 - [Language/Python] - [Python 따라하기]3. 자료형_part2(Tuple,Set,Dictionary)

2019/02/19 - [Language/Python] - [Python 따라하기]4.조건문

반복문

 같은 작업을 반복적으로 해야할 때, 반복문을 사용한다면 작업의 양이 줄어들 뿐만 아니라 보기에도 깔끔해지게 된다.
반복문에는 크게 for와 while 두 가지가 있다.



For

for는 주로 list 혹은 String과 같이 반복가능한 객체를 한 번씩 훑어보기 위해서 사용한다. for의 구조는 다음과 같다.

for <<variable>> in <<iterable>>:
<<contents>>

if 절과 같이 for 즉 반복적으로 행할 내용들은 for에 속하는 것임을 나타내기 위해서 indentation(들여쓰기)을 설정해둔다.
if 절과 같이 들여쓰기는 스페이스바 4번이나 탭 한번으로 통일하여 사용한다.
variable은 사용자가 임의로 변수를 설정해서 사용하는데 주로 i , j, k .... 순으로 사용하는게 일반적이다.
다음과 같이 iterable에 String 값을 넣으면 한 글자(char)씩 반복하며 진행한다.


Range

for 반복문을 사용할 때 iterable 부분에 list나 String 값을 넣어서 직접 값을 탐색하며 진행을 하기도 하지만 range를 사용해서 인덱스로 접근을 하기도 한다.
range는 range((start),stop,(step))으로 구성되어 있다. start(선택사항)부터 stop(필수적)까지 step(선택사항)씩 연속적인 정수 객체를 만들어 준다.


range 함수로 만들어진 값은 list와 비슷하게 작동을 하지만 range라는 객체를 가지고 있다. 따라서 list에 사용하는 메소드들을 사용하는 것은 불가능 하므로 사용하기 위해서는 list로 변환 후 사용해야 한다.



다음은 range 와 len 함수를 사용해서 인덱스로 배열값들을 접근하는 경우이다. iterable 자리에 list 나 String을 넣어서 직접 값에 접근을 하게 되면 하나의 배열만 반복문을 사용할 수 있지만 다음과 같이 range와 len을 사용하면 길이가 같은 두 개의 배열을 동시에 반복문을 사용할 수 있다.



enumerate

range에선 인덱스로 접근할 수 없다는 단점을 보완하기 위해서 인덱스와 값을 동시에 접근 할 수 있도록 해주는 함수이다.
enumerate(iterable)로 사용을 하며 인덱스와 값을 쌍으로 가지는 튜플값을 하나의 원소로 가지는 enumerate 객체로 반환을 한다.
enumerate((0,iterable[0]),(1,iterable[1]),.....)



이중 반복문

이중 반복문이란 반복문안에 반복문을 사용하는 것으로 주로 행렬을 나타내고자 할 때, 서로 연관있는 두 개의 반복가능한 객체를 동시에 사용하고자 할 때 사용한다.


위처럼 두 개의 반복문을 사용할 때 서로 각각의 variable을 사용해야 하며 first의 한 값당 second가 한 루틴씩 실행됨을 알 수 있다.


또한 들여쓰기에 따라서 실행되는 횟수가 달라지는데 print(i+"번째 중"+j+"번째")는 i와 j 둘다 속해있는 부분이라 총 9번 실행됨을 알 수 있지만

print("---------------")는 i에만 해당하는 부분이므로 3번만 실행됨을 알 수 있다.


While

while 반복문은 내가 얼마나 반복문을 사용해야 할지 정확히 모를 때 사용하거나 중복적인 인덱스 혹은 값을 접근해야 할 경우에 사용한다.


while의 구조는 다음과 같다.


while <<condition>>:

<<contents>>


while은 for와 달리 순차적으로 진행을 하지 않고 condition이 참인 경우에만 while 내의 내용을 반복한다. 이 말은 condition이 거짓이 될 때까지 계속 반복한다는 뜻이다. 따라서 처음에는 condition이 참이어야 while문이 실행이 되지만 contents를 진행하면서 condition이 거짓이 되도록 만들어야 한다. 그렇지 않으면 무한반복에 빠지게 된다. 만약 무한반복에 빠지게 된다면 ctrl+c 혹은 쥬피터를 사용한다면 위의 정지버튼을 누르면 된다.



아래는 탈출 조건이 없으므로 무한반복에 빠지게 된다.



반복문을 더 효율적으로 활용하기 위해서 break와 continue를 사용할 수 있다.


break

반복문 진행중에 이미 원하는 바를 이뤄서 뒤의 진행이 필요가 없을 수 있다. 따라서 더 효율적으로 사용하기 위해 반복문이 한참 진행중이라도 일정 조건을 만나면 반복문이 끝나게 만들어주는 것이 break다. 또한 while에서는 condition이 아직 참이라도 break를 만나면 반복문이 바로 끝내도록 할 수 있다.
break는 다음과 같이 사용한다.

continue

break는 일정 조건을 만나면 반복문을 깨뜨리지만 continue는 일정 조건에서만 반복문이 진행되지 않도록 한다. 반복문 내에서 continue를 만난다면 아직 반복문 내에 남은 내용이 있더라도 작동하지 않고 다음 값으로 넘어간다. continue는 다음과 같이 사용한다.


728x90
반응형

+ Recent posts