我想在字符串中使用格式说明符来处理数字
Alist = ["1,25,56.7890,7.8"]
tokens = Alist[0].split(',')
for number in tokens:
print "%6.2f" %number ,
结果:它给我了一个错误。
我想在字符串中使用格式说明符来处理数字
Alist = ["1,25,56.7890,7.8"]
tokens = Alist[0].split(',')
for number in tokens:
print "%6.2f" %number ,
结果:它给我了一个错误。
TypeError: float argument required, not str
这个错误明显说明你正在尝试将一个字符串作为浮点数传递。
你需要将字符串值转换为浮点数:
for number in tokens:
print '{:6.2f}'.format(float(number))
注意 如果您使用的Python版本早于2.6,则无法使用format()
函数。
您需要使用以下方法:
print '%6.2f' % (float(number),) # This is ugly.
这里是关于Python 2.7格式化示例的一些文档。
%
前面的句号)。 - Caleb Hattinghformat
在Python 2.6中是可以使用的,但你不能省略数字参数,所以上面的例子必须写成这样:{0:6.2f}
。我会建议将上述语句改写为format(float(number), '6.2f')
。 - Jon Clementsformat(value, format_spec)
对我来说看起来很奇怪。 - Mr. Polywhirl'%6.2f' % float(number)
吗?还是你不喜欢%
运算符本身的原因? - Alois Mahdal
print number
而不是print "%6.2f" %number
可能是最明显的解决方案,但你最终想要做什么(我猜你不只是想打印数字,对吗?)?你确定需要将字符串格式化为数字来实现你的目标吗?如果是这样,int()用于整数或float()用于浮点数应该可以解决问题。 - Sitsesprint "%6.2f" % float(number)
- Fredrik Pihl