我想要打印出这样的内容:
您好| 7.16
这是我正在使用的代码
MyString = 'Hello'
MyFloat = 7.157777777
print "{} ¦ {0:.2f}".format(MyString, MyFloat)
但我收到错误:
ValueError: cannot switch from automatic field numbering to manual field specification
如果我尝试:
MyString = 'Hello'
MyFloat = 7.157777777
print "{s} ¦ {0:.2f}".format(MyString, MyFloat)
或str而不是s我收到错误:
KeyError: 's'
我是如何使用圆形浮点打印变量字符串的?或者我应该使用%s
这样的东西吗?
答案 0 :(得分:20)
您在第二个字段中使用编号的参考; 0
表示您要使用传递给str.format()
的第一个参数(例如MyString
),而不是参数MyFloat
的{{1}}值。
由于您无法在字符串对象上使用1
格式,因此会收到错误。
删除.2f
:
0
由于没有名称或索引号的字段是自动编号的,或使用正确的数字:
print "{} ¦ {:.2f}".format(MyString, MyFloat)
如果您选择后者,最好始终明确表示并使用print "{} ¦ {1:.2f}".format(MyString, MyFloat)
作为第一个占位符:
0
另一种选择是使用命名引用:
print "{0} ¦ {1:.2f}".format(MyString, MyFloat)
请注意print "{s} ¦ {f:.2f}".format(s=MyString, f=MyFloat)
的关键字参数。