【问题标题】:how to write a python program that can tell whether the numbers entered can form a triangle or not?如何编写一个python程序来判断输入的数字是否可以形成三角形?
【发布时间】: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 <= 而不是 &lt; 即可解决此类情况。
  • 另外,您的 else 仅在第一个条件为 False 时运行。如果其中任何一个为假,您希望它被执行,因此要么将if 部分重写为if num1 &lt;= num2+num3 and num2 &lt;= ...,要么完全删除else,以便return failure 在任何情况下都被执行,如果你没有达到第一个return
  • None 不是您想要的功能吗? Python 没有 N/A 除非你用字符串或其他东西明确定义它。

标签: python if-statement testing error-handling logic


【解决方案1】:

使用多条件if statement如下

def form_triangle(num1,num2,num3):
    success="Triangle can be formed"
    failure="Triangle can't be formed"
    if(num1 < num2 + num3) and (num2 < num1 + num3) and (num3 < num1 + num2):
        return success
        
    else:
        return failure
num1, num2, num3 = 1,2,3
result = form_triangle(num1, num2, num3)  
print(result)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2014-08-01
    • 2011-10-30
    • 2013-04-24
    • 2022-12-10
    相关资源
    最近更新 更多