我正在尝试学习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编写的第二个“脚本”。
答案 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 /语法)。