【发布时间】:2021-02-28 12:56:24
【问题描述】:
我正在编写以下代码:
def form_triangle(num1,num2,num3):
success="Triangle can be formed"
failure="Triangle can't be formed"
if(num1 < num2 + num3):
if(num2 < num1 + num3):
if(num3 < num1 + num2):
return success
else:
return failure
num1=3
num2=3
num3=5
result = form_triangle(num1, num2, num3)
print(result)
但问题是这段代码无法通过所有的测试用例。例如,如果 num1、num2、num3 的值分别为 1、2、3,那么预期的输出应该是 N/A,但我的输出是 None。那么,我应该对我的代码进行哪些更改才能获得预期的输出。
【问题讨论】:
-
使用 1、2 和 3,您会得到一个扁平三角形,其中 3 = 1 +2(而不是 3 <= 而不是
<即可解决此类情况。 -
另外,您的
else仅在第一个条件为 False 时运行。如果其中任何一个为假,您希望它被执行,因此要么将if部分重写为if num1 <= num2+num3 and num2 <= ...,要么完全删除else,以便return failure在任何情况下都被执行,如果你没有达到第一个return。 -
None 不是您想要的功能吗? Python 没有 N/A 除非你用字符串或其他东西明确定义它。
标签: python if-statement testing error-handling logic