在Learn Python the Hard Way的示例5中,我遇到了一个问题。我继续把英寸换算成厘米,把磅换算成公斤。我遇到了一个格式化程序和语法错误read not all arguments converted during string formatting的错误。我的英寸到厘米和磅到公斤都很好,但是它没有显示字符串中的变量。它看起来是这样的:
print "%s is", cm, "tall in centimeters." % name我在发布变量时遇到了困难,因为它想以某种方式发布。变量不是问题,我不明白为什么我的变量没有使用格式化程序打印。我甚至用%r而不是%s来尝试它,但它仍然不能打印名称变量。谁能告诉我我做错了什么?
发布于 2016-01-05 03:12:40
使用format
print "{0} is {1} tall in centimeters.".format(name, cm)发布于 2016-01-05 03:12:49
您的字符串格式将在此基础上进行操作:
"tall in centimeters." % name由于在上述字符串中找不到%s,因此解释器失败。
一种做你想做的事情的方法:
print "%s is %s tall in centimeters." % (name, cm)或
print "%s is %.2f tall in centimeters." % (name, cm)如果你想在两位数上显示cm。
发布于 2016-01-05 03:16:44
你可以通过两种常见的方式来实现-
使用旧方法(%):
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/
https://stackoverflow.com/questions/34598111
复制相似问题