2013-03-05 50 views
7

我試圖通過「learn python hard way」一書教我自己一點編碼,並且在綁定到%d /%s /%r時掙扎着顯示一個浮點數。你如何正確地傳遞一個格式字符的浮點數?首先,我嘗試了%d,但這使得我的答案顯示爲整數....我在%r方面取得了一些成功,但是我的設想通常是爲調試而保留的?我想出了在Python 2.x中的劃分,你必須手動將分母手動浮動以使其正常工作。Python 2.7:%d,%s和float()

示例代碼:

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) 
+1

使用「%F」 - f表示浮 – IamAlexAlright 2013-03-05 03:24:53

回答

3

嘗試以下操作:

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) 

它在第一個浮點值轉換爲字符串。所以這也會起作用。

+1

有趣的是,並沒有意識到,%s就自動將其轉換爲字符串ANS只是我喜歡第一或第二個使用的變量,謝謝! – user2134093 2013-03-06 04:11:06

13

參見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