반복문이란?
특정한 소스코드를 반복적으로 실행하고자 할 때 사용하는 문법이다.
반복문으로는 while과 for문이 있다. (for문이 더 간결한 경우가 많다)
위 예제를 통해 1부터 9까지 모든 정수의 합을 구해보자.
반복을 위해 i라는 변수를 이용하는 것이 일반적이다.
while은 특정한 조건을 만족하고 반복적으로 코드를 실행하고자 할 때 사용한다.
i가 9보다 작을 때 , 식이 참 값을 가질때만 아래쪽 코드들이 실행된다. (result += i, i += 1)
반복을 할 때 마다 result에 i의 값을 더해준다.
i의 값을 1만큼 증가시켜 준다.
반복할 때 마다 i의 값이 1씩 증가하기 때문에 i는 1부터 9까지 증가하게 되고
i가 9일때까지 반복문을 실행하여 result에 값을 담아주고
i가 10이 되었을 때 반복문을 탈출하게 된다.
while문에 if문을 넣어서 작성한다.
i가 2로 나누어 나머지 값이 1일때 즉 홀수일 때만 result에 담아주도록 하였다.
반복문에서의 무한루프
끊임없이 반복되는 반복구문을 의미한다.
반복문을 작성한 뒤에서는 항상 반복문을 탈출할 수 있는지 확인해야 한다.
x의 값을 감소시키거나 증가시키는 코드가 없기 때문에 x값은 바뀌지 않고 탈출 없는 무한 루프 반복문이 실행하게 된다.
for문
특정한 변수를 이용하여 ‘in’ 뒤에 오는 데이터(리스트, 튜플 등)에 포함되어 있는 원소를 첫 번째 인덱스부터 차례대로 하나씩 방문한다.
for 변수 in 리스트:
실행할 소스코드
x 변수를 이용해서 array 리스트에 있는 원소를 하나씩 방문한다.
한줄에 하나씩 값이 출력된다.
for문에서 연속적인 값을 차례대로 순회할 때는 range()를 주로 사용한다.
이때 range(시작 값, 끝 값 + 1) 형태로 사용한다.
인자를 하나만 넣으면 자동으로 시작 값은 0이 된다.
1부터 9까지의 값이 차례대로 i 변수에 의해서 방문될 수 있도록 처리할 수 있다.
1부터 9까지의 더해진 값이 result에 담길 수 있다.
continue 키워드
반복문에서 남은 코드의 실행을 건너뛰고 다음 반복을 진행하고자 할 때 continue를 사용한다.
i가 2로 나눌때 나머지 값이 0일때, 즉 짝수일때는 continue로 인해 건너뛰어 버리고 result에 i를 더해주는 부분을 실행하지 않고 건너뛰어 홀수일때만 result에 i가 더해지도록 처리할 수 있다.
continue는 continue 아래에 있는 반복문을 건너뛰고 다음 방법을 진행하고자 할 때 사용된다.
break
반복문을 즉시 탈출하고자 할 때 break를 사용한다.
while문에 true을 넣어서 무조건 반복문이 실행되게 만든다.
i의 값이 5에 도달했을 때 반복문을 탈출할 수 있도록 break구문이 사용된다.
for i in range(5): i를 0부터 4까지 증가시키면서
scores[i]: 각 인덱스에 접근할 수 있다.
(i + 1): 인덱스는 0부터 출발하기 때문에 학생의 번호를 출력할 때는 1을 더한 값을 이용한다.
2번, 4번 학생을 부정행위를 저지를 학생이기 때문에 합격 대상에서 제외하도록 하기 위해 별도의 리스트를 작성한다.
(cheating_student_list = {2, 4})
부정행위 학생들은 continue 구문을 이용해서 제외하도록 한다.
2중 for문이라고도 한다.
바깥쪽 반복문이 진행될 때 마다 안쪽의 반복문도 같이 진행된다.
range(2, 10): i는 2부터 9까지 증가하게 된다.
i값이 증가할 때마다 j값은 1부터 9까지 매번 더해지면서 i와 j가 곱해지는 값이 출력된다.
즉, i는 2부터 9까지 반복될 때 마다 j가 1부터 9까지 반복을 하는 것이기 때문에
8 x 9 = 72, i와 j가 곱해지는 횟수는 72번으로 72개의 결과값이 출력된다.
'이코테 강의 정리' 카테고리의 다른 글
(이코테 w/ Python) 유용한 표준 라이브러리 (4) | 2022.06.21 |
---|---|
(이코테 w/ Python) 함수와 람다 표현식 (1) | 2022.06.20 |
(이코테 w/ Python) 조건문 (0) | 2022.06.18 |
(이코테 w/ Python) 기본 입출력 (1) | 2022.06.17 |
(이코테 w/ Python) 사전, 집합 자료형 (0) | 2022.06.16 |