Python range() 함수: Float, List, For 루프 예
⚡ 스마트 요약
Python range()는 시작 값부터 종료 값까지(종료 값은 포함하지 않음) 변경 불가능한 정수 시퀀스를 생성하는 내장 함수이며, 선택적으로 step을 사용하여 증가량을 제어할 수 있습니다.

Python 범위?
Python range()는 다음에서 사용할 수 있는 내장 함수입니다. Python 에 Python (3.x)이며, 주어진 시작 및 종료 인덱스를 기반으로 숫자 시퀀스를 제공합니다. 시작 인덱스가 주어지지 않은 경우 인덱스는 0으로 간주되고 종료 인덱스까지 값을 1씩 증가시킵니다.
예를 들어 range(5)는 0, 1, 2, 3, 4 값을 출력합니다. Python range()는 매우 유용한 명령어이며 주로 반복문을 사용할 때 사용됩니다. for 루프.
통사론
range() 함수의 구문은 다음과 같습니다.
range(start, stop, step)
파라미터
- 시작 : (선택사항) 시작 인덱스는 정수이며, 지정하지 않을 경우 기본값은 0이다.
- 중지: 정지 인덱스는 범위 함수가 종료되는 값을 결정합니다. 이는 범위 함수의 필수 입력값입니다. 마지막 값은 항상 정지 값보다 1 작습니다.
- 단계 : (선택 사항) 단계 값은 범위 내의 다음 숫자를 증가시킬 값입니다. 기본값은 1입니다.
반환 값
반환 값은 주어진 시작 인덱스부터 종료 인덱스까지의 숫자 시퀀스입니다.
Python range() 함수와 역사
Python range()는 다음에서 도입되었습니다. Python 버전 3입니다. 그 이전에는 xrange() 함수가 사용되었습니다.
range()와 xrange()는 모두 숫자 시퀀스를 생성하는 데 사용됩니다.
range()와 xrange()의 차이점은 다음과 같습니다.
| 범위() | 범위() |
|---|---|
| range()는 숫자의 시퀀스를 제공하고 숫자 목록을 반환합니다. | xrange() 함수는 값을 얻기 위해 for 루프에서 반복해야 하는 생성기 객체를 제공합니다. |
| range()는 목록을 반환합니다. | xrange()는 생성기 객체를 반환합니다. |
| range() 메서드는 xrange()에 비해 반환된 목록을 저장해야 하므로 더 많은 메모리를 사용합니다. | xrange() 함수는 제너레이터 객체를 반환하므로 값을 즉시 제공하지 않으며, 값을 얻으려면 for 루프 내에서 사용해야 합니다. |
| 메모리 사용량이 많아지므로 대규모 데이터 세트를 처리할 때 코드 실행 속도가 느려집니다. | xrange()를 사용하면 코드 실행이 더 빨라집니다. |
범위() 사용
이 예에서는 range()를 사용하여 0-9의 값을 인쇄하는 방법을 보여줍니다.
범위에 사용된 값은 10이므로 출력은 0 1 2 3 4 5 6 7 8 9입니다.
시작값이 주어지지 않았으므로 시작값은 0으로 간주하고 마지막 값은 9까지 주어집니다. 마지막 값은 항상 주어진 값보다 1 작은 값, 즉 stop-1입니다.
for i in range(10): print(i, end =" ")
출력:
0 1 2 3 4 5 6 7 8 9
range()에서 시작 및 중지 사용
이 코드에서 시작 값은 3이고 종료 값은 10입니다. 시작 인덱스가 3이므로 숫자 시퀀스는 3부터 종료 값까지 이어집니다. 시퀀스의 마지막 값은 종료 값보다 1 작은 값, 즉 10-1=9가 됩니다.
for i in range(3, 10): print(i, end =" ")
출력:
3 4 5 6 7 8 9
시작, 중지 및 단계 사용
시작 값은 3이므로 숫자 시퀀스는 3부터 시작합니다. 종료 값은 10이므로 숫자 시퀀스는 (10-1), 즉 9에서 종료됩니다. 증분 값은 2이므로 시퀀스의 각 값은 2씩 증가합니다. 증분 값이 지정되지 않으면 기본값은 1입니다.
for i in range(3, 10, 2): print(i, end =" ")
출력:
3 5 7 9
지금까지 range() 함수가 지정된 범위 내에서 값을 1씩 증가시키는 방법을 살펴보았습니다. 이제 지정된 범위 내에서 값을 1씩 감소시키는 예제를 살펴보겠습니다.
범위 내 값을 양의 단계로 증가시킵니다.
range() 함수의 step 매개변수는 값을 증가시키거나 감소시키는 데 사용할 수 있습니다. 기본값은 양수인 1입니다. 따라서 항상 값이 증가합니다.
출력값이 증가하는 형태로 나오려면 단계 값은 양수여야 합니다.
for i in range(1, 30, 5): print(i, end =" ")
출력:
1 6 11 16 21 26
Reverse 범위: 음수 단계를 사용하여 값을 감소시킵니다.
range() 함수에서 step 매개변수에 음수 값을 사용하면 값을 1씩 감소시킬 수 있습니다. 아래 예시에서 step 값은 음수이므로, 출력값은 지정된 range 값에서 1만큼 감소합니다.
for i in range(15, 5, -1): print(i, end =" ")
출력:
15 14 13 12 11 10 9 8 7 6
시작 값은 15, 종료 값은 5, 단계 값은 음수(-1)입니다. 위 입력값을 사용하면 range() 함수는 15부터 시작하여 종료 값에 도달할 때까지 값을 감소시키지만, 마지막 값은 종료 값에 1을 더한 값이 됩니다.
부동 소수점 사용 Python 범위()
이제 부동 소수점 숫자를 사용하여 range() 함수를 사용해 보겠습니다.
예:
for i in range(10.5): print(i, end =" ")
위 예시에서는 정지값을 10.5로 설정했습니다.
출력은 다음과 같습니다.
Traceback (most recent call last): File "python_range.py", line 1, in <module> for i in range(10.5): TypeError: 'float' object cannot be interpreted as an integer
Python range() 함수는 시작, 종료 및 단계에 부동 소수점 숫자를 지원하지 않으므로 오류가 발생합니다.
for 루프를 사용하여 Python 범위()
이 예제에서는 숫자 배열을 사용하여 for 루프 안에서 range() 함수를 이용해 배열을 순회하는 방법을 살펴보겠습니다.
예:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase'] for i in range(len(arr_list)): print(arr_list[i], end =" ")
출력:
MysqlMongodb PostgreSQL Firebase
위 예시에서는 종료 값으로 len(arr_list)를 사용했습니다. for 루프는 종료 값, 즉 배열의 길이(arr_list에 항목이 4개 있으므로 4)까지 반복합니다. 시작 값은 0이고 단계 값은 1이므로, 값은 0에서 시작하여 3(배열의 길이 - 1, 즉 4 - 1 = 3)에서 멈춥니다.
사용 Python range()를 목록으로
이 예에서는 범위의 출력을 목록으로 활용하는 방법을 보여줍니다.
예:
print(list(range(10)))
출력:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
출력이 목록 형식임을 알 수 있습니다. range()를 반복할 필요가 없었고 list() 메서드를 사용하여 출력을 range에서 목록 형식으로 직접 변환할 수 있었습니다.
Python 범위()에서 문자 사용하기
지금까지 파이썬 range()에서 정수를 사용했습니다. 또한 파이썬 range에서 부동 소수점 숫자가 지원되지 않는다는 것도 보았습니다. 문자를 사용하면 어떤 일이 일어나는지 출력을 시도해 보겠습니다.
예:
for c in range ('z'):
print(c, end =" ")
출력:
Traceback (most recent call last):
File "python_range.py", line 1, in <module>
for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer
문자열을 정수로 해석할 수 없다는 오류가 발생합니다.
알파벳 목록을 얻으려면 아래와 같이 코드를 사용자 정의하고 원하는 출력을 얻을 수 있습니다.
예:
def get_alphabets(startletter, stopletter, step):
for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):
yield chr(c)
print(list(get_alphabets("a", "h", 1)))
출력:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
범위 요소에 액세스하는 방법
for 루프를 사용하여 범위에서 값을 가져오거나 인덱스를 사용하여 range()에서 요소에 액세스할 수 있습니다.
for 루프 사용
예:
for i in range(6):
print(i)
출력:
0 1 2 3 4 5
색인을 사용하여
인덱스는 해당 위치에서 사용 가능한 값을 가져오기 위해 범위와 함께 사용됩니다. 범위 값이 5인 경우 시작 값을 얻으려면 range(5)[0] 및 다음 값 range(5)[1] 등을 사용할 수 있습니다.
예:
startvalue = range(5)[0]
print("The first element in range is = ", startvalue)
secondvalue = range(5)[1]
print("The second element in range is = ", secondvalue)
lastvalue = range(5)[-1]
print("The first element in range is = ", lastvalue)
출력:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
목록() 사용
이 메소드는 range()의 모든 요소를 인쇄합니다. list()를 사용하면 range()의 요소를 목록 형식으로 반환합니다.
예:
print(list(range(10)))
출력:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
주어진 범위에 대한 목록 출력을 제공합니다.
예: range()를 사용하여 짝수 가져오기
range() 함수를 사용하면 입력된 범위 내의 짝수 목록을 얻을 수 있습니다. range() 함수의 매개변수는 start가 2, stop이 20, step이 2이므로 값이 2씩 증가하여 stop-2까지의 짝수를 반환합니다.
예:
for i in range(2, 20, 2): print(i, end =" ")
출력:
2 4 6 8 10 12 14 16 18
두 범위() 출력 병합
이 예제에서는 itertools 모듈의 chain() 함수를 이용하여 두 개의 range() 함수를 연결해 보겠습니다.
예:
from itertools import chain print("Merging two range into one") frange =chain(range(10), range(10, 20, 1)) for i in frange: print(i, end=" ")
출력:
Merging two range into one 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
NumPy와 함께 range() 사용하기
NumPy 모듈에는 range() 함수와 유사한 기능을 하고 비슷한 결과를 출력하는 arange() 함수가 있습니다. arange() 함수는 range() 함수와 동일한 매개변수를 받습니다.
구문 :
arange(start, stop, step)
NumPy를 사용하려면 아래 단계를 따르세요.
1단계: NumPy 모듈 가져오기
import numpy
실행 중에 numpy 모듈을 찾을 수 없다는 오류가 발생하는 경우, 2단계에 나와 있는 대로 모듈을 설치해야 합니다.
2단계NumPy를 설치하세요
pip install numpy
3단계: NumPy를 사용한 arange()의 작업 예
import numpy as np for i in np.arange(10): print(i, end =" ")
출력:
0 1 2 3 4 5 6 7 8 9
NumPy arange()를 사용한 부동 소수점 숫자
range() 함수를 사용해서는 부동 소수점 시퀀스를 얻을 수 없지만, NumPy의 arange() 함수를 사용하면 가능합니다.
예:
우리가 원하는 범위는 0.5에서 1.5까지입니다. 값은 0.2씩 증가합니다.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
출력:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
출력 결과가 약간 이상하게 나올 수 있습니다. 일부 부동 소수점 숫자가 소수점 이하 16자리까지 표시됩니다. 이는 10진수 부동 소수점을 이진 형식으로 저장하는 과정의 복잡성 때문입니다. 필요에 따라 값을 반올림하여 원하는 소수점 자릿수로 제한할 수도 있습니다.
