Python range() 함수: Float, List, For 루프 예

Python 범위?

Python range()는 다음에서 사용할 수 있는 내장 함수입니다. Python 에 Python(3.x)이며, 주어진 시작 및 종료 인덱스를 기반으로 숫자 시퀀스를 제공합니다. 시작 인덱스가 주어지지 않은 경우 인덱스는 0으로 간주되고 종료 인덱스까지 값을 1씩 증가시킵니다.

예를 들어 range(5)는 0,1,2,3,4 값을 출력합니다. Python range()는 매우 유용한 명령이며 for 루프를 사용하여 반복해야 할 때 주로 사용됩니다.

통사론

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() 함수가 주어진 정지 값에 대해 증가된 값을 제공하는 방법을 살펴보았습니다. 이제 주어진 범위에서 감소된 값을 가져오는 예제를 시도해 보겠습니다.

양의 단계를 사용하여 범위 내 값을 증가시킵니다.

range()의 매개변수 단계를 사용하여 값을 증가/감소시킬 수 있습니다. 기본적으로 양수 값 1입니다. 따라서 항상 증가된 값을 제공합니다.

증가된 값을 출력으로 원할 경우 단계 값은 양수여야 합니다.

for i in range(1, 30, 5):
    print(i, end =" ")

출력:

1 6 11 16 21 26

Reverse 범위: 음수 단계를 사용하여 값 감소

range()에서 음수 값을 갖는 매개변수 단계를 사용하여 감소된 값을 얻을 수 있습니다. 아래 예에서 단계 값은 음수이므로 출력은 지정된 범위 값에서 감소됩니다.

for i in range(15, 5, -1):
    print(i, end =" ")

출력:

15 14 13 12 11 10 9 8 7 6

시작 값은 15, 중지 값은 5, 단계 값은 음수, 즉 -1입니다. 위의 입력을 사용하면 range() 함수는 stop 값에 도달할 때까지 15부터 값을 감소시키지만 여기서 차이점은 마지막 값이 stop + 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 범위()

이 예제에서는 숫자 배열을 사용하고 range()를 사용하여 for 루프 내부에서 배열을 반복하는 방법을 살펴보겠습니다.

예:

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 루프는 중지 값, 즉 배열 길이가 4가 될 때까지 반복합니다. arr_list에 0개의 항목이 있기 때문입니다. 시작 값은 1이고 단계는 0입니다. 따라서 값은 3에서 시작하여 1에서 중지됩니다. 즉, 배열 길이 -4은 1 -3 = XNUMX을 의미합니다.

사용 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() 함수를 사용하여 2개의 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() 함수가 있습니다. 배열()은 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자리로 표시됩니다. 이는 XNUMX진수 부동 소수점을 XNUMX진수 형식으로 저장하는 복잡성 때문에 발생합니다. 필요한 경우 값을 반올림하여 필요한 소수점 자리로 제한할 수도 있습니다.

제품 개요

  • Python range()는 다음에서 사용할 수 있는 내장 함수입니다. Python 에 Python(3.x)이며, 주어진 시작 및 종료 인덱스를 기반으로 숫자 시퀀스를 제공합니다. 시작 인덱스가 주어지지 않은 경우 인덱스는 0으로 간주되고 종료 인덱스까지 값이 증가합니다.
  • Python range()는 다음에서 도입되었습니다. 파이썬 버전 3, 그 이전에는 xrange() 함수가 있었습니다.
  • range()는 숫자 시퀀스를 제공하고 숫자 목록을 반환합니다. xrange() 함수는 값을 얻기 위해 for-loop에서 반복해야 하는 생성기 객체를 제공합니다.
  • range()의 매개변수 단계를 사용하여 값을 증가/감소시킬 수 있습니다. 기본적으로 양수 값 1입니다. 따라서 항상 증가된 값을 제공합니다.
  • Python range() 함수는 정수 값만 지원하므로 부동 소수점 숫자에 대해서는 오류가 발생합니다.
  • range()의 값은 for 루프, index 및 list()를 사용하여 액세스할 수 있습니다.
  • NumPy 모듈에는 작동하고 range()와 유사한 출력을 제공하는 arange() 함수가 있습니다. arange()는 range()와 동일한 매개변수를 사용합니다.
  • range()를 사용하면 지원되지 않는 부동 소수점 시퀀스 NumPy arange()를 얻을 수 있습니다.