[python] Python 3.0,3.1,3.2에서 “ValueError : 형식의 길이가 0 인 필드 이름”오류

나는 파이썬을 배우려고 노력하고 있는데 (3 더 구체적으로)이 오류가 발생합니다.

ValueError: zero length field name in format

나는 그것을 봤는데 번호를 지정해야한다는 것을 알았습니다.

a, b = 0, 1
if a < b:
     print('a ({0}) is less than b ({1})'.format(a, b))
else:
     print('a ({0}) is not less than b ({1})'.format(a, b))

그리고 (lynda.com의) 튜토리얼과는 달리 실제로 다음과 같이 말합니다.

a, b = 0, 1
if a < b:
     print('a ({}) is less than b ({})'.format(a, b))
else:
     print('a ({}) is not less than b ({})'.format(a, b))

다음 튜토리얼 im에는 Python 3.1이 있고 im은 3.2를 사용하고 있으며이 오류에 대해 읽은 것은 이것이 <3.1 (3.0)에서만 발생한다는 것입니다. 3.2에서이 작업을 취소 했습니까? 아니면 내가 뭘 잘못하고 있습니까?

또한 천천히 말하십시오;) 이것은 말 그대로 파이썬을 배우는 첫날이며 파이썬으로 작성한 두 번째 “스크립트”입니다.



답변

나는 당신이 어떻게 든 우연히 파이썬 2.6을 실행하고 있다고 추측 할 것입니다.

이 기능은 python 3을 사용하는 경우 3.1 이상, python 2를 사용하는 경우 2.7에서만 사용할 수 있습니다.


답변

Python 2.6 및 3.0에는 필드 번호가 필요합니다. Python 2.7 이상 및 3.1 이상에서는 생략 할 수 있습니다.

버전 2.7에서 변경 : 위치 인수 지정자를 생략 할 수 있으므로 ‘{} {}’는 ‘{0} {1}’와 동일합니다.

python2.6.4>>> print '|{0:^12}|{1:^12}|'.format(3,4)
|     3      |     4     |


답변

Eclipse를 사용하는 경우 Window-> Preferences-> PyDev-> Interpreter-Python을 살펴 봐야합니다. 거기에 통역사 목록 (이름과 위치 포함)이 있습니다. 현재 프로젝트의 경우 예를 들어 / usr / bin / python에있는 인터프리터를 사용하고 있다면 아마도 / usr / bin / python -V를 실행하면 “Python 2.6.6″과 같은 결과를 얻을 수 있습니다. 그리고 Winston Ewert가 쓴 답이 있습니다.

( “New …”버튼을 클릭하고 / usr / bin / python3을 “location”으로 지정하여 새 인터 퍼터를 추가 할 수 있습니다. 그런 다음 프로젝트 설정을 변경해야합니다 (Preferences-> PyDev-Interpreter / Grammar)).


답변