Checking if the a number is a whole cube
本问题已经有最佳答案,请猛点这里访问。
我是Python的初学者,我编写了一个代码来检查一个数字是否是一个整数的立方体。对于某些值,代码似乎工作正常,但是对于某些(甚至整个多维数据集),它将多维数据集根打印为(
1 2 3 4 5 6 7 8 | n=int(input("Please enter the number:")) print (n) x=n**(1/3) print (x) if x==int(x): print ('%s is a whole cube'%(n)) else: print ('%s is not a whole cube'%(n)) |
忽略中间打印语句,它们只是用于逐行调试。
您正在检查错误的条件,比较浮点值是否相等很容易让您陷入噩梦。检查python文档在这方面的内容。
相反,对根进行四舍五入,将其转换为int,然后将此整数的多维数据集与原始数字进行比较:
1 2 3 4 5 6 7 8 | n = int(input("Please enter the number:")) print (n) x = n**(1/3) x = int(round(x)) if x**3 == n: print ('%s is a whole cube'%(n)) else: print ('%s is not a whole cube'%(n)) |
正如@stevenrumbalski在评论中指出的,在python3中,由于