我试图通过“学习python the hard way”一书来教自己一点编码,并且在搭建显示浮点数时,我正在努力学习%d /%s /%r。如何正确传递带有格式字符的浮点数?首先我尝试了%d但是这使得我的答案显示为整数....我在%r中取得了一些成功,但我是在假设通常保留用于调试?我想出了python 2.x中的除法你必须手动浮动它的分母才能正常工作。
示例代码:
def divide (a, b):
print "WE DIVIDING %r and %r NOW" % (a, b)
return a / float(b)
print "Input first number:"
first = float(raw_input("> "))
print "OK, now input second number:"
second = float(raw_input("> "))
ans = divide(first, second)
print "DONE: %r DIVIDED BY %r EQUALS %r, SWEET MATH BRO!" % (first, second, ans)
答案 0 :(得分:22)
请参阅String Formatting Operations:
%d
是整数的格式代码。 %f
是float的格式代码。
%s
打印对象的str()
(当您print(object)
时看到的内容)。
%r
打印对象的repr()
(当您print(repr(object))
时看到的内容。
对于浮点%s,%r和%f都显示相同的值,但并非所有对象都是如此。格式说明符的其他字段也有不同的作用:
>>> print('%10.2s' % 1.123) # print as string, truncate to 2 characters in a 10-place field.
1.
>>> print('%10.2f' % 1.123) # print as float, round to 2 decimal places in a 10-place field.
1.12
答案 1 :(得分:8)
尝试以下方法:
print "First is: %f" % (first)
print "Second is: %f" % (second)
我不确定答案是什么。但除此之外,这将是:
print "DONE: %f DIVIDED BY %f EQUALS %f, SWEET MATH BRO!" % (first, second, ans)
格式字符串说明符上有很多文本。您可以谷歌并获取说明符列表。有一点我忘了注意:
如果您尝试这样做:
print "First is: %s" % (first)
它首先将float值转换为字符串。这样也可以。