Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.6之前版本中的字符串格式_Python_Format - Fatal编程技术网

Python 2.6之前版本中的字符串格式

Python 2.6之前版本中的字符串格式,python,format,Python,Format,在Python 2.5.2中运行以下代码时: for x in range(1, 11): print '{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x) 我得到: Traceback (most recent call last): File "<pyshell#9>", line 2, in <module> print '{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x)

在Python 2.5.2中运行以下代码时:

for x in range(1, 11):
    print '{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x)
我得到:

Traceback (most recent call last):
  File "<pyshell#9>", line 2, in <module>
    print '{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x)
AttributeError: 'str' object has no attribute 'format'
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
打印“{0:2d}{1:3d}{2:4d}”。格式(x,x*x,x*x*x)
AttributeError:“str”对象没有属性“format”
我不明白这个问题

dir('hello')
没有
format
属性


如何解决这个问题?

您使用哪种Python版本

编辑 对于Python2.5,使用
“x=%s”%(x)
(用于打印字符串)


如果您想打印其他类型,我认为这是Python 3.0的一个特性,尽管它在2.6版中。但是,如果您的Python版本低于此版本,那么这种类型的字符串格式将不起作用

如果您试图打印格式化字符串,请通过
%
操作符使用Python的printf样式语法。例如:

print '%.2f' % some_var

str.format
方法适用于Python2.6及更高版本。

您的示例代码似乎是为Python2.6或更高版本编写的,其中

对于低于2.6的Python版本,使用将值序列插入到格式字符串中:

for x in range(1, 11):
    print '%2d %3d %4d' % (x, x*x, x*x*x)

还应注意,此运算符可以从映射中按名称插入,而不仅仅是位置参数:

>>> "%(foo)s %(bar)d" % {'bar': 42, 'foo': "spam", 'baz': None}
'spam 42'
结合内置vars()函数将命名空间的属性作为映射返回的事实,这可能非常方便:

>>> bar = 42
>>> foo = "spam"
>>> baz = None
>>> "%(foo)s %(bar)d" % vars()
'spam 42'
尽管现有的答案描述了原因并指出了解决问题的方向,但实际上没有一个答案能够解决问题

你有两个选择来解决这个问题。首先是升级到Python2.6或更高版本,它支持

第二种选择是使用。您所展示内容的等效代码如下所示

for x in range(1,11):
  print '%2d %3d %4d' % (x, x*x, x*x*x)

此代码在Python 2.5中生成的输出与您的示例代码在Python 2.6及更高版本中生成的输出完全相同。

这是一个很好的描述,但它没有描述如何在所示示例中实现格式。@JasonR.Coombs:谢谢,我现在将与所示示例对应的代码作为答案中的第一个代码。