5. Range
range명령어는 굉장히 유용하면서 파이썬에서 자주 쓰이는 명령어 입니다.
간단하게 예제로 알아 보겠습니다.
print range(1)
결과 값은 [0] 입니다.
이번엔 print range(2) 를 해 보겠습니다.
결과 값은 [0,1] 입니다.
이번엔 print range(3)을 해 보겠습니다.
결과 값은 [0,1,2] 입니다.
이번엔 print range(20) 을 해 보겠습니다.
결과 값은 [0,1,2,3...... 18,19] 입니다.
여기까지 해 본 결과로 range(100) 을 유추가 가능하시다면 더이상 배울 건 없습니다.
물론 range 에 몇가지 기능이 더 있긴 하지만 그건 차차....
range( n ) 의 괄호 안에 들어가는 n 과 결과 값인 [0,1,2,3,........... X ] 의
X와의 관계를 알아내는게 중요 합니다.
어떻게 생각하시는지요?
또 한가지 특이한 점은 결과 값이 그냥 0,1,2,3,4, 가 아니라 사각괄호 [ 안에 들어 있다는 겁니다.
어디서 많이 본건데....?
바로 이 전 예제인 리스트에서 봤습니다.
리스트를 만들때
a = [1,2,3,4,5] 이렇게 만들었지요.
즉,
range 의 결과값은 리스트 라는 것 입니다.
그렇다면 이 range 는 어떤 경우에 활용이 될까요?
바로
연속된 수의 리스트를 한번에 만들어야 할 때 입니다.
예를 들어 1 부터 1000 까지 숫자가 들어 있는 리스트를 만들어야 한다고 생각해 보겠습니다.
a = [1,2,3,4,5,6,7,8..........999,1000]
이걸 직접 다 일일이 치는데 얼마정도의 시간이 걸릴까요?
타자가 빠르신 분들도 최소한 십수분은 걸릴 겁니다.
그러나 range 명령어를 이용해서
a = range(1000)
이라고 하면 단 한줄에 해결 되는군요!
그리고 또한,
a[0] = 0
a[1] = 1
이렇게 a 를 이요한 호출이 가능 해 집니다.
어디에 사용하면 가장 효율적으로 쓸수 있을지 한번 고민 해 볼만 합니다.
예제 1 )
range 명령어를 이용하여 0부터 5 까지의 리스트를 만든뒤 a 에 저장하세요
a의 인자( a[0] , a[1] , a[2]....) 들은 총 몇개 입니까?
예제 2)
제일 큰 숫자가 678 인 리스트를 range 로 만든다면 range ( n ) 에 들어갈 숫자는 얼마 입니까?
예제 3)
다음 명령어를 실행 하고 그 결과값들을 상세히 비교 해 보세요
print range(10)
print range(0,10)
print range(1,10)
print range(2,10,1)
print range(2,10,2)
print range(0,10,2)
예제 4)
예제 3의 결과를 보고 print range(10,0) 이 아무런 결과값이 없는 이유를 유추 하세요
print range(10)
print range(0,10)
print range(10,0)
예제 5)
다음 명령어들을 실행 하고 그 결과 값들을 상세히 비교해 보세요
print range(10,0)
print range(10,0,1)
print range(10,0,-1)
print range(10,2,-1)
print range(10,2,-2)
print range(10,-2,-2)