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

我试图学习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)) 

教程im以下有Python 3.1,即时通讯使用3.2和我读到关于这个错误的是,这只发生在<3.1(3.0)。 他们是否在3.2中撤消了这个,或者我做错了什么?

另外,慢慢说吧),这实际上是我第一次学习Python,只有我用Python编写的第二个“脚本”。

我会猜测你以某种方式偶然运行了python 2.6。

如果你使用的是python 3,这个特性至less可以使用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 …”button并添加/ usr / bin / python3作为“location”来添加新的interperter,然后你可能会改变你的项目设置(Preferences – > PyDev – Interpreter / Grammar)。