산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

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

파이썬 범위란 무엇입니까?

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

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

이 자습서에서는 다음을 배우게 됩니다.

구문

range(start, stop, step)

매개변수

반환 값:

반환 값은 지정된 시작에서 중지 인덱스까지의 숫자 시퀀스입니다.

Python range() 함수 및 역사

Python range()는 xrange()가 함수이기 전에 python 버전 3부터 도입되었습니다.

range 및 xrange()는 모두 일련의 숫자를 생성하는 데 사용됩니다.

다음은 range와 xrange()의 차이점입니다.

범위() xrange()
range()는 일련의 숫자를 제공하고 숫자 목록을 반환합니다. xrange() 함수는 값을 얻기 위해 for 루프에서 반복되어야 하는 생성기 객체를 제공합니다.
range()는 목록을 반환합니다. xrange()는 생성기 객체를 반환합니다.
range() 메서드는 xrange()와 비교하여 반환된 목록을 저장해야 하므로 더 많은 메모리를 사용합니다. xrange()는 제너레이터 객체를 반환하므로 즉시 값을 제공하지 않으며 값을 얻기 위해 for-loop 내부에서 사용해야 합니다.
메모리 사용량이 많기 때문에 방대한 양의 데이터를 작업할 때 코드 실행이 느립니다. xrange()를 사용하면 코드 실행이 더 빨라집니다.

range() 사용

이 예는 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

범위()에서 시작 및 중지 사용

코드에서 시작 값은 3이고 중지 값은 10입니다. 여기에서 시작 인덱스는 3이므로 숫자 시퀀스는 3에서 시작 값까지 시작됩니다. 시퀀스의 마지막 값은 정지 값 10-1 =9보다 작은 1이 됩니다.

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

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

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

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부터 시작하여 stop 값에 도달할 때까지 감소하지만 여기서 차이점은 마지막 값이 stop + 1이 된다는 것입니다.

Python range()에서 부동 숫자 사용

이제 부동 소수점 숫자를 사용하여 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

range() 함수가 시작, 중지 및 단계에 대한 부동 소수점 숫자를 지원하지 않기 때문에 Python에서 오류가 발생합니다.

파이썬 range()와 함께 for 루프 사용

이 예제에서는 숫자 배열을 사용하고 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 루프는 arr_list에 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에서 list 형식으로 직접 변환할 수 있었습니다.

파이썬 범위()에서 문자 사용

지금까지 파이썬 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)

출력:

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)

list() 사용

이 메서드는 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()와 같은 유사한 출력을 제공하는 range() 함수가 있습니다. Arrange()는 range()와 같은 매개변수를 사용합니다.

구문:

arange(start, stop, step)

NumPy를 사용하려면 아래 단계를 따르세요.

1단계 :NumPy 모듈 가져오기

import numpy

실행 중 numpy 모듈을 찾을 수 없다는 오류가 발생하는 경우 2단계와 같이 모듈을 설치해야 합니다.

2단계 :넘파이 설치

pip install numpy

3단계 :NumPy를 사용한 range() 예제

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 range()를 사용하면 가능합니다.

예:

우리가 원하는 범위는 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

우리가 얻는 출력은 약간 이상합니다. 일부 float 숫자는 소수점 이하 16자리로 표시됩니다. 이것은 10진수 부동 숫자를 2진 형식으로 저장하는 복잡성 때문에 발생합니다. 필요한 경우 값을 반올림하고 필요한 소수 자릿수로 제한할 수도 있습니다.

요약:


python

  1. 파이썬 함수 인수
  2. Python 익명/람다 함수
  3. 파이썬 생성기
  4. 예제가 있는 Python Lambda 함수
  5. Python abs() 함수:절대값 예제
  6. 예제가 있는 Python round() 함수
  7. Python range() 함수:Float, List, For 루프 예제
  8. 예제가 있는 Python map() 함수
  9. Python의 Enumerate() 함수:루프, 튜플, 문자열(예제)
  10. 예제가 있는 Python 목록 count()