Подтвердить что ты не робот

"Ошибка значения ValueError: имя нулевой длины в формате" в Python 3.0,3.1,3.2

Я пытаюсь изучить Python (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, или я что-то не так?

Кроме того, говорите медленно;) это буквально моя первая ночь, изучающая Python, и только второй "script", который я написал на Python.

4b9b3361

Ответ 1

Я собираюсь предположить, что вы запускаете python 2.6 случайно.

Эта функция доступна только для 3.1, если вы используете python 3 или 2.7, если используете python 2.

Ответ 2

Для 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     |

Ответ 3

Если вы используете Eclipse, вы должны посмотреть в Window → Preferences → PyDev → Interpreter - Python. Там у вас есть список переводчиков (с именем и местоположением). Если для вашего текущего проекта вы используете интерпретатор, который находится, например, в /usr/bin/python, то, вероятно, выполнение /usr/bin/python -V даст вам что-то вроде "Python 2.6.6". И есть ваш ответ, как писал Уинстон Эверт.

(вы можете добавить нового интерпертера, просто нажав кнопку "Создать..." и указав /usr/bin/python 3 как "местоположение". Тогда вы, возможно, измените настройки своего проекта ( "Настройки" → PyDev - Переводчик/Грамматика).