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 중국어 웹사이트의 기타 관련 기사를 참조하세요!