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

파이썬 range() 함수 마스터하기: 기초부터 고급 활용까지

파이썬 range() 함수 마스터하기: 기초부터 고급 활용까지

파이썬 range란 무엇인가?

파이썬의 range()는 시작, 정지, 선택적 단계(step)를 기반으로 정수 시퀀스를 생성하는 내장 제너레이터입니다. 시작 값이 생략되면 0이 기본값이며, 정지 값(미포함)에 도달할 때까지 1씩 증가합니다. 예를 들어 range(5)는 0, 1, 2, 3, 4를 생성합니다. for 루프로 반복할 때 필수적입니다.

이 튜토리얼에서 배울 내용:

문법

range(start, stop, step)

매개변수

반환값

range 객체를 반환하며, 정수의 불변 시퀀스처럼 동작합니다. 리스트로 변환하면 전체 시퀀스가 표시됩니다.

파이썬 range() 함수와 역사

파이썬 3에 도입된 range()는 파이썬 2에서 쓰이던 xrange()를 대체했습니다. 주요 차이점:

range()xrange()
숫자의 불변 시퀀스 반환제너레이터 객체 반환
시퀀스 길이에 비례하는 메모리 소비최소 메모리 사용; 값 지연 생성
중소 규모 범위에 적합대규모 범위나 무한 시퀀스에 선호
대규모 범위에서 메모리 할당으로 느림대규모 범위 반복 시 빠름

range() 사용하기

0부터 9까지 숫자 출력 기본 예제:

for i in range(10):
    print(i, end=" ")

출력: 0 1 2 3 4 5 6 7 8 9

range()에서 start와 stop 사용

시작 값 지정으로 시퀀스 이동:

for i in range(3, 10):
    print(i, end=" ")

출력: 3 4 5 6 7 8 9

start, stop, step 모두 사용

단계 추가로 숫자 간격 제어:

for i in range(3, 10, 2):
    print(i, end=" ")

출력: 3 5 7 9

양수 단계로 값 증가

기본 단계는 1이지만 양의 정수 지정 가능:

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

출력: 1 6 11 16 21 26

역방향 range: 음수 단계로 감소

음수 단계로 내림차순 시퀀스 생성:

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

출력: 15 14 13 12 11 10 9 8 7 6

파이썬 range()에서 부동소수점 사용

내장 range()는 정수만 허용합니다. 실수 전달 시 TypeError 발생:

for i in range(10.5):
    print(i, end=" ")
# TypeError: 'float' object cannot be interpreted as an integer

파이썬 range()와 for 루프

len()과 함께 리스트 인덱스 반복에 자주 사용:

arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']
for i in range(len(arr_list)):
    print(arr_list[i], end=" ")

출력: Mysql Mongodb PostgreSQL Firebase

range()를 리스트로 사용

print(list(range(10)))

출력: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

파이썬 range()에서 문자 사용

range()는 정수만 다루지만, 문자를 유니코드 코드 포인트로 변환해 알파벳 시퀀스 생성 가능:

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']

range 요소 접근 방법

반복, 인덱싱, 리스트 변환으로 값 검색 가능:

반복

for i in range(6):
    print(i)

인덱싱

startvalue = range(5)[0]
print("첫 번째 요소:", startvalue)
secondvalue = range(5)[1]
print("두 번째 요소:", secondvalue)
lastvalue = range(5)[-1]
print("마지막 요소:", lastvalue)

list() 사용

print(list(range(10)))

예제: range()로 짝수 구하기

18까지 짝수 생성:

for i in range(2, 20, 2):
    print(i, end=" ")

출력: 2 4 6 8 10 12 14 16 18

두 range() 출력 병합

itertools.chain으로 두 range 객체 결합:

from itertools import chain
print("두 range 병합")
frange = chain(range(10), range(10, 20, 1))
for i in frange:
    print(i, end=" ")

출력: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

NumPy와 range() 사용

NumPy의 arange()는 range()를 본떠 만들었지만 부동소수점 단계 지원:

문법

arange(start, stop, step)

예제

import numpy as np
for i in np.arange(10):
    print(i, end=" ")

출력: 0 1 2 3 4 5 6 7 8 9

NumPy로 부동소수점 range

for i in np.arange(0.5, 1.5, 0.2):
    print(i, end=" ")

출력: 0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

부동소수점 연산은 이진법이므로 긴 소수 확장이 나타날 수 있습니다. 필요시 반올림하세요.

요약

python

  1. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  2. 파이썬 람다 함수: 익명 함수 실전 가이드
  3. Python 제너레이터: 효율적 이터레이션과 고급 활용
  4. 파이썬 람다 함수 마스터하기: 실용 예제 & 모범 사례
  5. 파이썬 abs() 함수: 숫자 & 복소수의 절댓값 구하기
  6. 파이썬 round() 함수 완전 정복: 실용 예제로 이해하기
  7. 파이썬 range() 함수 마스터하기: 기초부터 고급 활용까지
  8. 파이썬 map() 함수 마스터하기: 문법, 예제, 모범 사례
  9. 파이썬 enumerate() 마스터하기: 리스트, 튜플, 문자열, 딕셔너리 인덱스와 함께 루프
  10. 파이썬 list.count() 전문가 가이드: 실전 예제로 배우는 요소 개수 세기