>백엔드 개발 >파이썬 튜토리얼 >Python\의 `range(start, end)`에서 `end` 값을 제외하는 이유는 무엇입니까?

Python\의 `range(start, end)`에서 `end` 값을 제외하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-02 22:00:17331검색

Why Does Python's `range(start, end)` Exclude the `end` Value?

Range(start, end): 왜 끝 값을 제외하나요?

Python의 range(start, end) 함수는 일반적으로 일련의 숫자를 생성하는 유틸리티를 사용했습니다. 그러나 range()의 한 가지 독특한 측면은 최종 값을 제외한다는 것입니다. 예를 들어, range(1, 11)은 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]을 반환하고 11에서 멈춥니다.

왜 그런가요? 답은 range()의 광범위한 사용법과 프로그래밍의 일반적인 관행에 있습니다.

1. 인덱싱의 균일성:

프로그래머는 시퀀스의 첫 번째 요소가 인덱스 0으로 참조되는 0 기반 인덱싱을 선호하는 경우가 많습니다. range(0, 10)을 사용하면 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 정확히 10개의 요소를 포함하고 길이(len(range(0, 10))).

2. 반복 및 반복:

공통 루프 구조를 고려하십시오.

for i in range(len(li)):
    pass

range()에 끝 값이 포함된 경우 이 루프는 목록 li의 유효한 인덱스를 지나서 하나를 반복합니다. . 프로그래머는 범위를 지정할 때 len(li)에서 1을 빼는 것을 잊어버리고 잘못된 루프가 발생할 수 있습니다.

3. 반복자와의 일관성:

Python에서 range() 함수는 반복자 역할을 하며 한 번에 하나씩 값을 생성합니다. 최종 값이 포함된 경우 반복을 종료하기 위한 추가 확인이나 논리가 필요하여 복잡성과 오류 가능성이 추가됩니다.

포용 필요성 해결:

최종 값을 자주 포함해야 하는 경우 다음의 기능을 확장하는 사용자 정의 함수를 만들 수 있습니다. range():

def range1(start, end):
    return range(start, end + 1)

print(range1(1, 10))  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

range()가 최종 값을 제외하는 이유를 이해하고 필요한 경우 사용자 정의 함수를 활용함으로써 프로그래머는 Python 코드에서 이 다용도 도구를 효과적으로 활용할 수 있습니다.

위 내용은 Python\의 `range(start, end)`에서 `end` 값을 제외하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.