2011-03-22 3 views
6

이것이 잘못된 일임을 알고 있지만 파이썬 3을 사용하고 있지만 파이썬 2 권의 책으로 연구하고 있습니다. 파이썬 3.2 유휴 : 범위 기능 - 인쇄 또는 목록?

>>>range(2,7) 

[2,3,4,5,6] 

을 보여줍니다하지만 난 생각 THAT, 그것은 위의 출력을 표시하지 않습니다 알고

는 말한다. 그래서 시도 :

range(2,7) 

이 보이는

는 I 시도 P3을 P2에서 변경 한 그렇다 :

list(range(2,7)) 

>>>>print(range(2,7)) 

및 TA-DA-은 팔로우 도시 이 하나의 IDLE에 괜찮지 만 긴 코딩에 대한 메모장에서 확인 작동하지 않습니다. 그래서 마침내 나는 시도했다 :

print(list(range(2,7))) 

그리고 그것은 내가 의도했던 것과 비슷한 것을 보여줬다. 나는 올바르게하고 있냐? 이것을 쓰는 유일한 방법일까요?

+0

이 문제는 zip에도 적용됩니다. 'list (zip (stuff))'가 필요합니다. –

답변

6

IDLE의 경우 IDLE의 PyShell 윈도우에서 코드를 실행하고 있습니다. 대화 형 인터프리터가 실행 중입니다. 대화식 모드에서 Python은 입력 한 각 행을 즉시 해석하고 입력 한 명령문을 평가하여 반환 된 값과 표준 출력 또는 표준 오류에 기록 된 값을 표시합니다. Python 2의 경우 range()은 목록을 반환하고, 발견 한대로 Python 3에서는 목록 개체를 만들거나 반복 컨텍스트의 다른 곳에서 사용할 수있는 반복 가능한 range() 개체를 반환합니다. Python 3 range()은 Python 2의 xrange()과 비슷합니다.

메모장과 같은 편집기에서 파일을 편집 할 때 스크립트 파일을 작성하고 파이썬 인터프리터에서 파일을 실행하면 전체 스크립트가 해석되어 한 줄로 되어도 전체 스크립트가 하나의 단위로 실행됩니다 긴. 화면에는 표준 출력 (예 : print()) 또는 표준 오류 (즉, 오류 추적)에 기록 된 내용 만 표시됩니다. 대화식 모드에서와 마 y 가지로 각 명령문의 평가 결과를 볼 수 없습니다. 따라서 예제에서 스크립트 파일을 실행할 때 무언가를 평가 한 결과를 인쇄하지 않으면 보지 못할 것입니다.

파이썬 튜토리얼은이 here에 대해 조금 이야기합니다.

4

유일한 목표가 목록 표현을 되 찾는 것 인 경우 올바른 작업이 수행됩니다. 파이썬 3.0은 이제 반복자를 반환하는 것으로 range을 처리합니다 (xrange).