안졸리냐젤리 2016. 6. 27. 12:46

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)