2015-11-07 102 views
0

我的問題是當我將數字分隔如:10/2 - > int/int 結果是5.0並且它是浮點數,它不應該是浮點數, 問題是python加1.0到每一個號碼接受進行分割,第二個數字 所以我想10/2是intalways int int = float float in python

我試圖

x = 10 
y= x/2 
type(y)== int 

其打印假 我想類型(Y)打印真正的結果雖然X是一個素數或奇數

感謝

+0

你爲什麼_n eed_結果是一個int? – Ben

回答

3

/給出了一個浮點結果。如果你想要一個整數結果,使用//

它的工作原理是這樣的原因是,如果您有類似

function1()/function2() 

可以告訴結果的類型,即使你不知道由各個函數的返回類型。

編輯1

注意,它並不總是這樣。這是一個「新」Python 3行爲,Python 2.2以上版本也可以使用(但默認情況下不會激活) - 請參閱PEP 238。感謝@ Steve314指出了這一點。

編輯2

然而,似乎你真正要做的是告訴我們,如果一個數字正好去到另一個。爲此,您應該使用%(餘)

print(15 % 5 == 0) 
print(16 % 3 == 0) 

這將打印

True 
False 

編輯3

如果你想要的結果的類型依賴於分工是否已經準確,你需要做

a // b if a % b == 0 else a/b 
+0

它試圖爲EXP劃分:X = 10/5 類型(X)== int和它的打印假它應該是int –

+0

我試圖 X = 10 Y = X/2 型(Y)== INT它打印錯誤 –

+0

@user_user嘗試'x = 10 y = x // 2 print(type(y)== int)'。你應該得到'真實'。 –