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

Osc*_*son 119 python debugging

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

ValueError: zero length field name in format
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索它,我发现你需要指定数字:

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))
Run Code Online (Sandbox Code Playgroud)

并不像教程(来自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))
Run Code Online (Sandbox Code Playgroud)

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

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

Pau*_*ce. 148

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     |
Run Code Online (Sandbox Code Playgroud)

  • 今天的版本差异让我高兴起来!感谢指针. (2认同)

Win*_*ert 130

我猜想你不知何故意外运行python 2.6.

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

  • 这部分是正确的:OP的代码如果是python 2.7,则可以工作,但不是2.6.(见@Dennis Williamson的回答). (4认同)
  • 谢谢!就是这样!不得不改变我的shebangs:`#!看完后看/ usr/local/bin/python3`.Mac -_- wtf上有3个不同的python安装位置. (3认同)