2015-11-07 107 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)'。你应该得到'真实'。 –