Python 2.7:%d,%s和float()

时间:2013-03-05 03:22:09

标签: python

我试图通过“学习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)

2 个答案:

答案 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值转换为字符串。这样也可以。