for문에서 i는 단지 for문을 반복시키기 위해 변수를 준 것이고 그 i라는 변수의 범위는 range 함수에 의해 정해진다.
따라서 이를 혼동하지 않으려면 반드시 range 함수에 대한 이해가 필요하다.
사실 범위는 같게 읽어을 수도 있지만 index 개념이 아닌 단지 숫자 그 자체로 접근하는게 좋다.
range(start, stop[, step]) 구조로
range(a,b,c)는 'a에서 시작해 b에서 멈춰라. 등차는 c다.' 라는 범위를 정해주는 것이다.
즉, range(a,b,c) 는 'a부터 시작해서 cn + a >= b 면 멈춰라.' 와 같다.
이를 수식으로 표현하면 다음과 같다. a <= cn + a < b
출력되는 숫자의 범위 자체는 [a : b] 와 range(a, b, ) 가 같다. 또한 [a : b : c]는 range(a, b, c)와 같다.
a : start, b : stop, c : step 이라는 구조는 같지만 둘의 큰 차이는 다음과 같다.
1. [a : b]는 결과를 리스트로 반환하지만 range(a, b, )는 결과를 숫자로 반환한다. 따라서 range 함수는 결과 값을 for 문과 결합해 등차수열결과값의 범위를 지니는 변수로 사용할 수 있다.
2. [a : : c]는 가능한데 range(a, , c)는 불가능하다. 리스트 호출에서는 종료 지점을 설정하지 않고 a부터 마지막 리스트까지 c 간격으로 반환이 가능하지만, range 함수는 정지시키는 값이 반드시 필요하다. 따라서 [a : : c]는 range(a, len(listname), c)로 표현할 수 있다.
a : start, b : stop, c : step 이라는 구조는 같다.
단, [ ] 의 결과값은 리스트, range 함수의 결과값은 숫자다.
range 함수는 stop!! 정지시키는 값이 반드시 필요하다!
리스트 전체 길이의 값을 반환시켜 stop에 넣어줌으로써 같은 범위를 표현할 수는 있다.
'개발자 > Python' 카테고리의 다른 글
Python (파이썬) 자료형 5가지 (3. 리스트) (0) | 2020.03.25 |
---|---|
Python (파이썬) 자료형 5가지 (1. 수 2. 문자열) (0) | 2020.03.25 |
Python (파이썬) 홀수값, 짝수값 (0) | 2020.03.25 |
Python (파이썬) for문에서 범하기 쉬운 오류 (0) | 2020.03.25 |
Python (파이썬) 단계별 실습하며 배우는 빅데이터 프로그래밍 P.29 10번 문제 (0) | 2020.03.25 |