首页 > 解决方案 > 如果是完美平方则返回 True/如果不是则返回 false

问题描述

我正在做一个关于代码战的练习,我应该找出一个数字是否是一个完美的正方形。我大部分时间都完成了代码,并且大部分时间都可以工作,但是当返回 False 时,我得到了错误的答案。

def is_square(n):  
    if n<0:
        return False
    if n == 0:
        return True
    if n>1:
        for i in range(0,n):
            if i*i==n:
                return True
            else:
                return False

如果我删除最后一个 else 语句,4 和 25 返回 true,但是当我添加最后一个 else 语句时,它说 4 和 25 是 false。如果输入 27 同时保持 25 为真,我将如何修复它以便返回假?

标签: python

解决方案


在循环return False 之后放置for

def is_square(n):
    if n<0:
        return False
    if n == 0 or n == 1:
        return True
    if n > 1:
        for i in range(0,n):
            if i*i==n:
                return True
    return False

推荐阅读