① 파이썬에서 for문은 다른 언어와 달리 보다 직관적인 방법을 채택했다.
㉠ 일반적인 for문의 사용은 반복자(iterator)를 사용해서 배열이나 자료 구조를 순회한다.
ⓐ 반복자라는 것을 통해서 배열이나 자료 구조의 요소에 접근할 수 있다.
㉡ 파이썬의 for 루프는 C/C++11 이전에서 제공하는 for 루프 방식과 달리 범위 기반 반복문(range based for)을 채택했다.
ⓐ 이는 오히려 C#의 foreach 루프와 비슷하다. 다른 루프에 비해 파이썬의 for루프는 더 단순하며, 보기 좋고 오류가 발생하기도 어렵다.
ⓑ 범위 기반 반복문은 C++11 이후로 추가되었다.
ⓒ 범위 기반 반복문의 장점은 시작 지점과 종료 지점을 알려 주지 않아도 알아서 데이터를 순회한다.
ⓓ 범위 기반 반복문의 단점은 for문에 index 정보가 존재하지 않다는 것이다. for문에서 사용하는 변수는 오직 값만 가지고 있다.
② 데이터를 순회하기 위해 변수를 따로 둔다.
ⓐ 데이터의 타입에는 리스트, 튜플, 문자열, 딕셔너리 등이 있다.
ⓑ 딕셔너리의 경우 특별하게 .items() 메서드를 이용해 키:값 쌍 리스트를 순회하는 것으로 딕셔너리의 키와 값을 모두 순회할 수도 있다.
③ 루프를 돌리는 것으로 전체 요소를 효율적으로 접근할 수 있다.
㉠ 동일한 작업을 반복하는 코드를 반복해서 작성하는 것은 매우 비효율적이다.
ⓐ 반복한 작업에 수정할 사항이 생겼을 때, 모든 작업을 코드로 작성해야하기 때문에 수정하기 번거롭다.
④ 루프는 이러한 문제를 해결해준다.
㉠ for 문의 변수는 각 루프마다 해당하는 개별 요소로 초기화(Initialize)된다.
㉡ for 문 안의 문장들은 들여쓰기로 시작되야 한다.
㉢ 반복 변수를 사용할 의무는 없고, 단지 루프를 돌리기 위한 용도로 사용할 수도 있다.
⑤ 들여쓰기를 잘못하면 원치 않는 상황을 겪을 수 있다.
㉠ 들여쓰기가 존재하지 않아 에러가 발생했다.
㉡ 에러가 발생하지 않았지만, 들여쓰기가 빠져있는 문장이 있어 원하는 결과를 얻지 못했다.
㉢ 불필요한 들여쓰기로 인해 반복할 필요가 없는 문장을 반복하게 되었다.
⑥ range() 함수는 for문과 자주 사용하며, 이 함수를 이용해 for 루프를 돌릴 수 있다.
⑦ 리스트 안에 for문을 포함하는 리스트 내포(List comprehension)를 사용하면 코드를 좀 더 압축시킬 수 있다.
⑧ 루프를 도는 도중 루프를 제어하려면 continue나 break를 사용하면 된다.
'All about Python > 기본' 카테고리의 다른 글
10. Python 딕셔너리(Dictionaries) (0) | 2022.07.17 |
---|---|
9. Python IF 문(IF STATESMENTS) (0) | 2022.07.12 |
7. Python 튜플(Tuples) (0) | 2022.05.27 |
6. Python 리스트(Lists) (0) | 2022.05.09 |
5. Python 불리언 형(Boolean types) (0) | 2022.05.07 |