在pyschools中失败的“私有测试用例”

1 投票
3 回答
2583 浏览
提问于 2025-04-17 08:56

我用下面的脚本来尝试回答这个问题:

def isEquilateral(x, y, z): 
    if x<0 or y <0 or z<0:
        return False
    elif x==y==z:
        return True
    else:
        return False

结果返回了Private Test Cases,我不知道这是软件的错误,还是我的代码真的有问题。有没有人能帮帮我?谢谢。

更新 01

问题如下:写一个函数isEquilateral(x, y, z),这个函数接受三角形的三条边作为参数。如果这个三角形是等边三角形,程序应该返回True。

示例

>>> isEquilateral(2, 4, 3)
False
>>> isEquilateral(3, 3, 3)
True
>>> isEquilateral(-3, -3, -3)
False

3 个回答

0

这个对我有效

def isEquilateral(x, y, z): 
    a = [x,y,z]
    for e in a:
        if e> 0:
            if x==y==z:
                return True
            else:
                return False
        else:
            return False
1

这个对我有效

def isEquilateral(x, y, z): 
    if (x == y or x == z) and x > 0:
        return True
    return False
4

虽然我对他们的反馈系统不太满意,但问题在于当 x、y、z 都等于 0 时,你返回的是 True。这里有一个更简单的解决方案:

def isEquilateral(x, y, z):
    if x == y == z and x > 0:
        return True
    return False

还有一个更简单的解决方案,展示了 Python 的优雅之处(感谢 F.J!),使用了更多的链式比较

def isEquilateral(x, y, z):
    return x == y == z > 0

撰写回答