[英]Using .format() to print a variable string and a rounded number
我想打印看起来像这样的东西:
您好| 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
类%s
东西?
您在第二个字段中使用了编号引用 ; 0
表示您要使用传递给str.format()
的第一个参数(例如MyString
),而不是MyFloat
值,即参数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)
注意str.format()
的关键字参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.