在pyschools失败的“私人测试案例”

时间:2011-12-24 03:09:53

标签: python

我使用以下脚本尝试回答this问题:

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),它接受三角形的3个边作为参数。如果程序是等边三角形,程序应该返回True。

实施例

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

3 个答案:

答案 0 :(得分:4)

虽然我对他们的反馈系统没有留下深刻印象,但问题是当x,y,z == 0时你返回True。一个更简单的解决方案:

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

这是一个更简单的解决方案,它使用更多chained comparisons来展示Python的美丽(感谢,F.J!):

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

答案 1 :(得分:1)

这对我有用

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

答案 2 :(得分: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