str.format() 在 Python 2.6 中打印浮点数时出错
str.format() error for printing floats in Python 2.6
我正在尝试使用 Python 的 str.format() 打印一些浮点数。这是示例代码
table = {'pi':3.1415926}
for variable, value in table.items():
print '{0:10} ==> {0:.2f}'.format(variable, value)
执行此操作时出现以下错误
ValueError: Unknown format code 'f' for object of type 'str'
我不明白为什么 Python 认为 3.1415926 是一个字符串。
谢谢。
你的位置倒过来了:
table = {'pi':3.1415926}
for variable, value in table.items():
print '{0} ==> {1:.2f}'.format(variable, value)
pi ==> 3.14
或者简单地删除变量,除非你真的想打印 pi 并迭代这些值:
for value in table.values():
print '{0} ==> {0:.2f}'.format(value)
3.1415926 ==> 3.14
你也可以使用 **:
table = {'pi':3.1415926}
print '{pi} ==> {pi:.2f}'.format(**table)
当您编写 {0} 时,它指的是格式函数的第一个参数。您需要将其更改为 1.
table = {'pi':3.1415926}
for variable, value in table.items():
print '{0:10} ==> {1:.2f}'.format(variable, value)
Edit 按照@AshwiniChaudhary 的评论 - 在 Python 2.7 你甚至不需要指定数字,它将自动按顺序使用它们
table = {'pi':3.1415926}
for variable, value in table.items():
print '{:10} ==> {:.2f}'.format(variable, value)
我正在尝试使用 Python 的 str.format() 打印一些浮点数。这是示例代码
table = {'pi':3.1415926}
for variable, value in table.items():
print '{0:10} ==> {0:.2f}'.format(variable, value)
执行此操作时出现以下错误
ValueError: Unknown format code 'f' for object of type 'str'
我不明白为什么 Python 认为 3.1415926 是一个字符串。
谢谢。
你的位置倒过来了:
table = {'pi':3.1415926}
for variable, value in table.items():
print '{0} ==> {1:.2f}'.format(variable, value)
pi ==> 3.14
或者简单地删除变量,除非你真的想打印 pi 并迭代这些值:
for value in table.values():
print '{0} ==> {0:.2f}'.format(value)
3.1415926 ==> 3.14
你也可以使用 **:
table = {'pi':3.1415926}
print '{pi} ==> {pi:.2f}'.format(**table)
当您编写 {0} 时,它指的是格式函数的第一个参数。您需要将其更改为 1.
table = {'pi':3.1415926}
for variable, value in table.items():
print '{0:10} ==> {1:.2f}'.format(variable, value)
Edit 按照@AshwiniChaudhary 的评论 - 在 Python 2.7 你甚至不需要指定数字,它将自动按顺序使用它们
table = {'pi':3.1415926}
for variable, value in table.items():
print '{:10} ==> {:.2f}'.format(variable, value)