我的代码是
if graph == square_grid and type(math.sqrt(nodes)) is not int:
print "Your netork can't have that number of nodes"
当然这不起作用,因为math.sqrt总是返回一个浮点数。我怎么能这样做?
答案 0 :(得分:13)
一种方法是
int(math.sqrt(x)) ** 2 == x
答案 1 :(得分:7)
因为math.sqrt总是返回一个浮点数,所以你可以使用内置的is_integer
方法
def is_square(x):
answer = math.sqrt(x)
return answer.is_integer()
如果True
是正方形,则返回x
,如果不是<{p>},则返回False
>>> is_square(25)
True
>>> is_square(14)
False
答案 2 :(得分:1)
尝试:
math.sqrt(nodes) == int(math.sqrt(nodes))