判断输出的浮点数的结果是否等价于其整数-一个数是否为2的幂次

比如想要知道一个数是否为2的幂次,运行为:

import math

power1 = math.log(256, 2)
power2 = math.log(224, 2)
print(power1) # 8.0
print(power2) # 7.807354922057604

assert int(power1) == power1, 'input has to be the power of 2'
assert int(power2) == power2, 'input has to be the power of 2'

返回:

/anaconda3/envs/deeplearning/bin/python3.7 /Users/user/PycharmProjects/new/learning.py
8.0
7.807354922057604
Traceback (most recent call last):
  File "/Users/user/PycharmProjects/new/learning.py", line 9, in <module>
    assert int(power2) == power2, 'input is power of 2'
AssertionError: input is power of 2

Process finished with exit code 1

可见8.0 == 8

原文地址:https://www.cnblogs.com/wanghui-garcia/p/11542480.html