【发布时间】:2017-11-15 19:08:56
【问题描述】:
我写了一个函数,返回输入的数字是否为正方形
def is_square(n):
if n<1:
return False
else:
for i in range(int(n/2)+1):
if (i*i)==n:
return True
else:
return False
我相信这段代码可以正常工作。但是当我做测试用例时,例如:test.expect( is_square( 4)),它说该值不是预期的。
【问题讨论】:
-
is_square(1)的值是多少?还是is_square(4)?或者is_square(n**2)代表任何n? -
看起来您首先要尝试的是
if (1*1)==n。除非n==1,否则你的测试会失败。 -
您应该使用
print语句测试您的代码,然后才能确信您的代码可以正常工作。 -
请添加输入和输出示例,并更具体地说明您的问题。
-
如果您需要任何其他解决方案来解决完美的根本问题,您可以找到here。
标签: python input integer boolean