在pyschools中失败的“私有测试用例”
我用下面的脚本来尝试回答这个问题:
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