[파이썬에서의 반복문 활용]
파이썬과 다른 개발 언어 간의 가장 큰 차이는 바로 for문일 것이다.
물론 파이썬 역시 다중 for문을 쓸 수 있는 등, 사용 방법이 유의미하게 다른 것은 아니다
단지 증감연산자 ++, --를 지원하지 않기 때문에 다른 표현방식이 다르다는 점과 파이썬에선 자열과 리스트 등에 대하여 for 문 내에서 직관적으로 표현하고 있을 뿐이다.
1. for 변수 in 객체: 실행문
# 객체는 일반적으로 문자열, 리스트, 튜플, 딕셔너리를 의미함
# 파이썬은 데이터의 처리를 메인으로 개발된 언어이기에 그 부분에서 좀더 직관적으로 표현되어짐.
# 대부분의 개발 언어에서 문자열, 리스트, 튜플, 배열의 경우 index를 활용하여 표현하여 반복문을 처리하는 것과 대조적
# 변수는 객체의 첫 인덱스에 해당하는 값부터 마지막 인덱스에 해당하는 값까지 ㄹ정의됨
*. for x in 'abc'의 경우 x는 'a'부터 'c'까지의 값을 차례대로 x에 대입함.
*. for x in [1,2,3] 일 경우 x는 1부터 3까지의 수가 대입되어 반복문을 처리함.
*. for x in {'one' : 1, 'two' : 2, 'three' : 3} 일 경우 'one'부터 'three'
*. for [x, y] in [[1,2], [3,4],[5,6]] 일 경우 x, y는 각각 1,2부터 5,6까지 대입되어 정의됨.
2. 기본형 : for in range
for 변수 in range(시작값, 끝값, 증감크기)
- 변수가 시작값부터 끝값 - 1까지 증값크기 간격으로 증가하면서 처리하면서 아래의 실행문을 처리함.
- for i in range(0,10,1) 이라면 i는 1부터 9까지 1씩 증가하며, 실행문은 총 9번 실행됨
- for i in range(값1) : range()에 변수가 한개라면 시작값은 0, 끝값은 값1, 증감크기는 1로 지정되어 반복문이 실행됨.
- for i in range(값1,값2) : 값이 두개 일 경우 증감값이 기본값 1로 생략되어진 것.
- 증감크기를 생략하거나 시작값과 증감크기를 함께 생략할 수 있음
for 관련 함수 : continue, break
- continue : continue 다음 실행 문은 실행되지 않음(주로 특정 조건에서 아래 구분을 실행하고 싶지 않을 떄, 조건문과 함께 사용되어진다고 보면 됨.
- break : for문을 특정 순간에 종료시킬때 사용함(switch case문에서 특정 case의 처리가 끝날때 붙이는 break문과 동일)
for 관련 함수 else
- else : for문이 정상적으로 종료된 뒤 실행됨, break로 인해 for문이 종료된 경우 실행되지 않음
- 또한 다른 개발 언어에선 지원하지 않으니 사용에 유의 바람.
리스트 내포
또한 파이썬은 for문 안에 if문을 한 라인에 작성하여 코드를 직관적으로 만들고 실행 속도를 높여주는 기법이 존재한다.
영어로는 List Comprension이라고 한다.
리스트 명 = [표현식 for 변수 in 반복 가능 대상]
>>> meter_list = [3,7,9,10]
>>> centi_meter_list = [100*i for i in meter_list (if i %2 != 0)]
#. 리스트의 내용에 모두 100을 곱한 값을 세로운 리스트로 하여 centi_meter_list에 대입하여 표현하라는 의미
#. if문을 포함할 경우 조건식에 포함된 정보를 제외하여 처리할 수도 있다.
리스트 배포의 가장 큰 특징은 2중 for문을 활용한 구구단에서 정확히 알 수 있다.
result = [] for x in range (1,10) : for y in range (1,10) : result.append(x*y) |
result = [ x * y for x in range(1,10) for y in range(1,10)] |
4줄이나 되는 파이썬 구문을 단 한줄로 간단하게 포현할 수 있어, 프로그램 처리 속도 향상에 도움을 주기 때문에 자주 사용되는 기법이라 숙지하여 한다.
'개발 > phython' 카테고리의 다른 글
파이썬에서의 연산자 (0) | 2024.07.02 |
---|---|
파이썬의 주요 특징 - 문자열의 차이 (0) | 2024.06.08 |
파이썬 기본 문법 - 주석, 소개 (1) | 2024.06.08 |