티스토리 뷰

반응형

 

Python range( ) 함수

 

- 순서 -

1. range 함수 설명

2. Possible type

3. for문을 이용한 사용 예시

4. 정리

 


 

1. range 함수 설명

 

정수로 이루어진 숫자 리스트를 생성할 때 사용한다. 숫자 범위는 일정한 규칙의 배열로 나열할 수 있다. 1,2,3,4,.. 와 같이 오름차순으로 정렬하거나 5,4,3,... 과 같이 내림차순으로 정렬할 수도 있다. 정수의 간격은 꼭 1이 아니어도 된다. 지정하는 규칙에 따라 배열하는 숫자 범위를 생성할 수 있다.

 

함수의 사용방법은 range(숫자) 형태로 사용한다. 사용예시를 먼저 보면 아래와 같다. 

 

1.1) 0부터 4까지 숫자범위를 생성하는 사용 예시

>>> numbers = range(5)	# 괄호()안에 stop숫자 입력
>>> print(numbers)
range(0, 5)	# 0이상~5미만

range( ) 함수의 괄호( ) 안에 숫자 한 개만 입력하는 경우 stop숫자를 의미한다. stop 숫자는 숫자 범위 안에 포함되지 않고 바로 앞의 숫자까지 숫자 범위 안에 포함된다. 즉, stop-1까지로 범위가 지정된다.

 

1.2) range함수로 지정한 변수를 호출하면 range타입으로 출력된다.

위 예시에서 numbers 변수를 호출한 화면을 보면 ragne(0, 5)라는 값이 출력되었다. 0, 1, 2, 3, 4와 같은 숫자로 출력되는 것이 아니라 range 타입으로 출력이 된 것을 알 수 있다. type 함수로 타입을 출력해보고 len함수로 개수를 출력해보면 아래와 같다.

>>> numbers = range(5)	
>>> print(type(numbers),len(numbers))
<class 'range'> 5

 

1.3) range함수는 다른 자료형으로 변환하거나 for문을 이용해서 출력할 수 있다.

range 함수로 생성된 숫자 범위는 리스트, 튜플 등 다른 자료형으로 변환하는 것도 가능하고 for문을 이용해서 출력할 수도 있다. 그중 for문을 이용하는 사용 예시는 아래와 같다.

>>> numbers = range(5)	
>>> for n in numbers :
>>>     print(n, end=' ')
0 1 2 3 4 
# end=' '로 문자 사이에 공백을 입력, 가로로 정렬함

range(5)로 함수를 사용해서 0 이상 5 미만 숫자가 출력되었다. 같은 변수를 list 타입으로 변환하는 사용 예시는 아래와 같다. 

>>> numbers = list(range(5))
>>> print(numbers)
[0, 1, 2, 3, 4]

 

 

2. Possible types

 

range 함수를 사용할 대, 함수의 괄호( ) 안에 숫자 개수에 따라 숫자의 의미가 달라진다. 숫자의 의미는 아래와 같다. 

- 숫자 1개 : stop숫자를 의미한다. 시작 숫자는 0이 기본값이다.

- 숫자 2개 : start, stop을 의미한다.

- 숫자 3개 : start, stop, stetp을 의미한다.

 

2.1) range함수의 괄호 안에 숫자를 달리해서 사용해보았다.

>>> for n in range(10) :  # range(stop)
>>>     print(n, end=' ')
0 1 2 3 4 5 6 7 8 9

>>> for n in range(1, 11) :  # range(start, stop)
>>>     print(n, end=' ')
1 2 3 4 5 6 7 8 9 10

>>> for n in range(1, 11, 2) :  # range(start, stop, step)
>>>     print(n, end=' ')
1 3 5 7 9 

- 첫 번째 코드는 위에서 예시로 했던 것처럼 range함수의 괄호 안에 숫자를 한 개만 사용한 경우이다. 0부터 시작해서 stop숫자 직전 숫자까지만 출력되는 것을 볼 수 있다.

- 두 번째 코드는 start숫자와 stop숫자를 지정하였다. 시작 숫자인 1부터 정지 숫자인 11 바로 이전인 10까지의 숫자가 출력되었다.

- 세 번째 코드는 괄호 안에 숫자 3개를 입력해서 start, stop, step을 모두 지정해보았다. step은 숫자의 간격을 의미한다. 간격을 2로 지정했기 때문에 1부터 10 사이의 홀수만 출력되었다. 

 

2.2) range 함수의 숫자의 의미를 활용하여 역순으로 출력해 보았다. 

>>> for i in range(10, 0, -1):  # 10부터 1까지 출력
>>>     print(i, end=' ')
10 9 8 7 6 5 4 3 2 1

>>> for i in range(10, -1, -1): # 10부터 0까지 출력
>>> 	print(i, end=' ')
10 9 8 7 6 5 4 3 2 1 0

>>> for i in range(10)[::-1]:  # 범위연산자를 이용해서 9부터 0까지 출력
>>>     print(i, end=' ')
9 8 7 6 5 4 3 2 1 0

- 역순으로 출력할 때는 start숫자를 크게 하고 stop 숫자를 작게 한다. 그리고 step 숫자는 양수가 아닌 음수를 지정하는데 -1은 1씩 줄어드는 것을 의미하고 여기에서 응용해서 -2, -3 등의 숫자를 활용하면 2씩 3씩 줄어들게 할 수 있다.

 

- 세 번째 코드는 범위 연산자를 이용했다. range 함수는 0부터 9까지 순서대로 범위가 지정되도록 하고 range함수 뒤에 [::-1] 범위연산자를 사용하면 역순으로 출력될 수 있다. 

 

계속해서 for문과 range 함수를 활용한 예시들을 살펴본다.

 

3. for문과 range( ) 함수를 다양하게 활용해본다.

 

3.1) 구구단 2단 출력의 사용 예시는 아래와 같다.

>>> for i in range(1, 10):
>>>     print(f'2 * {i} = {2*i}')  # f-string을 이용하여 출력문 작성
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18

 

3.2) 1부터 10까지 더하는 코드. sum 함수를 사용하지 않고 for문으로 작성한 사용 예시이다.

>>> total = 0
>>> for i in range(1, 11):
>>>     total += i  # 'total= total+i' 와 같은 의미
>>> print(total)
55

 

3.3) range 함수로 for문을 반복하는 기능만으로 사용할 수도 있다. 

>>> for _ in range(5):  # in 뒤의 데이터가 필요하지 않은경우 '_' 사용가능
>>>     print('Hello world')
Hello world
Hello world
Hello world
Hello world
Hello world

range 함수로 생성한 숫자 범위는 출력 값으로 사용되지 않고 for문의 반복 용도로만 사용하였다. for문을 실행할 문장 부분은 출력 값을 print 함수로 작성해서 문자열을 반복하도록 하였다. 이와 같이 range 함수를 응용해서 사용할 수 있다.

 

 

4. 정리

1) range(숫자) 형태로 사용한다.

2) 함수의 괄호 안의 숫자 개수에 따라 의미가 달라진다. 1개는 (stop), 2개는 (start, stop), 3개는 (start, stop, step)을 의미한다. 

3) 숫자를 역순으로 출력할 때는 step의 숫자를 -1로 지정하면 된다.

4) range 함수를 그대로 출력하면 range 타입이 된다. list, tuple 등의 타입으로 변환하여 출력하거나 for문을 이용하여 출력할 수 있다.

5) range 함수를 for문에 이용하면 다양한 응용이 가능하다.

 

반응형
댓글
반응형