以艰难的方式学习Python示例5

时间:2016-01-04 19:09:49

标签: python python-2.7 python-2.x

Learn Python the Hard Way的示例5中,我遇到了问题。我继续将英寸转换为厘米,将磅转换为千克。我遇到了一个错误,但格式化程序和语法错误只读not all arguments converted during string formatting。我的英寸到厘米和磅到公斤是好的,但它没有显示字符串中的变量。它看起来像这样:

print "%s is", cm, "tall in centimeters." % name

我很难发布变量,因为它希望以某种方式发布。变量不是问题我很困惑为什么我的变量没有使用格式化程序打印。我甚至尝试使用%r代替%s,但它仍然不会打印名称变量。有人能告诉我我做错了吗?

4 个答案:

答案 0 :(得分:4)

使用format

print "{0} is {1} tall in centimeters.".format(name, cm)

答案 1 :(得分:2)

您的字符串格式正在对此进行操作:

"tall in centimeters." % name

由于在上面的字符串中找不到%s,解释器失败。

一种做你想做的事的方法:

print "%s is %s tall in centimeters." % (name, cm)

print "%s is %.2f tall in centimeters." % (name, cm)

如果您想在2位数字上显示cm

答案 2 :(得分:2)

您可以通过两种常见方式进行操作 -

使用旧方式(%):

print "%s is %s tall in centimeters." % (name, cm)

参考文献:https://docs.python.org/2/library/stdtypes.html#string-formatting

使用新方式(format

print "{} is {} tall in centimeters.".format(name, cm)

参考文献:https://docs.python.org/3/library/string.html#string-formatting

请注意,使用format是一种很好的做法,因为它是新的方法。您可以在此网站上详细了解这些内容:https://pyformat.info/

答案 3 :(得分:1)

如果你想保留你的语法:

print "%s is" %name, cm, "tall in centimeters."

第一个打印部分中引用的字符串需要立即跟进。