我的问题是当我除以如下数字时: 10 / 2 \xe2\x86\x92 整数/整数。
\n结果是5.0,是float,但不应该是float。问题是Python 给每个接受的数字加上0.0 来除以第二个数字。
\n所以我希望 10/2 是整数。
\n我试过
\nx = 10\ny = x/2\ntype(y) == int\nRun Code Online (Sandbox Code Playgroud)\n它打印错误。我想要 type(y) 打印真实结果,尽管 x 是素数或奇数。
\n/给出浮点结果。如果您想要整数结果,请使用//.
它这样工作的原因是如果你有类似的东西
function1() / function2()
Run Code Online (Sandbox Code Playgroud)
即使您不知道各个函数返回的类型,也可以判断结果的类型。
编辑1
请注意,情况并非总是如此。这是一个“新的”Python 3 行为,也适用于 Python 2.2 及以上版本(但默认情况下不活动) - 请参阅PEP 238。感谢@Steve314 指出了这一点。
编辑2
然而,似乎您真正想做的是判断一个数字是否完全符合另一个数字。为此,您应该使用%(余数)
print(15 % 5 == 0)
print(16 % 3 == 0)
Run Code Online (Sandbox Code Playgroud)
这打印
True
False
Run Code Online (Sandbox Code Playgroud)
编辑3
如果您希望结果的类型取决于除法是否精确,您需要这样做
a // b if a % b == 0 else a / b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5777 次 |
| 最近记录: |