Python中的“ValueError:格式为零长度字段名称”错误在Python 3.0,3.1,3.2中

时间:2011-03-27 03:11:25

标签: python debugging

我正在尝试学习Python(3更具体),我收到了这个错误:

ValueError: zero length field name in format

我用Google搜索,我发现你需要指定数字:

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))

以下教程有Python 3.1,我使用3.2和我读到的关于这个错误的内容是这只发生在&lt; 3.1(3.0)中。他们在3.2中撤消了这个,还是我做错了什么?

另外,慢慢说;)这是我第一次学习Python的第一天,也是我用Python编写的第二个“脚本”。

3 个答案:

答案 0 :(得分:148)

Python 2.6和3.0需要字段编号。 In Python 2.7 and later和3.1及更高版本,可以省略它们。

  

在2.7版中更改:位置参数说明符可以是   省略,所以&#39; {} {}&#39;相当于&#39; {0} {1}&#39;。

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

答案 1 :(得分:129)

我猜不到你是在意外地运行python 2.6。

如果您使用的是python 3,则此功能仅适用于至少3.1;如果您使用的是python 2,则此功能仅适用于2.7。

答案 2 :(得分:2)

如果您正在使用Eclipse,则应该查看Window - &gt;偏好 - &gt; PyDev - &gt;口译员 - Python。你有一个口译员名单(名称和位置)。如果对于您当前的项目,您正在使用位于/ usr / bin / python中的解释器,那么可能执行/ usr / bin / python -V会给您类似“Python 2.6.6”的内容。还有像Winston Ewert所写的答案。

(您可以通过简单地单击“新建...”按钮添加新的交互操作员,并将/ usr / bin / python3作为“位置”。然后您可能要更改项目设置(首选项 - &gt; PyDev - Interpreter /语法)。