2017-10-16 86 views
-1
a = input('enter a ') 
b = input('enter b ') 
c = input('enter c ') 


def is_right_angled(a, b, c): 
    a, b, c = sorted([a, b, c])    #sort inputs smallest to largest 
    pathag=(a * a + b * b - c * c) #< 0.1 #a ^2 + b ^2 - c ^2 should = 0 approx 

    if pathag<0.1:       # test "pathag" to to see if close 
    print ("This is a right triangle") 
    else:         # if "pathag" not close, not "right" 
    print ("This is NOT a right triangle") 

    return abs(a * a + b * b - c * c) < 0.1 
+0

您的输入是什么? –

+4

你已经定义了一个函数,但是我没有看到任何对它的调用。你发布的内容应该输入3个值,然后下降到底部并退出而不做其他任何事情。 –

+0

此外,只是防守 - 如果您使用'a','b'和'c'调用函数,可能会出现类型错误。从'input'中读取它们会产生字符串;您需要将它们更改为数字类型。例如,你可以通过说'a,b,c = float(a),float(b),float(c)'来做到这一点。 –

回答

0

可能有特定的打印功能不能正常工作了几个问题(我想你可能也想重温一些逻辑假设,驾驶你的is_right_angled功能。)

1)一个输入函数创建一个字符串变量。您需要将其明确地转换为int或float变量,以便您的函数能够正确使用这些变量。

a = float(input('enter a ')) 

2)你实际上没有在上面的代码中调用函数。一定要调用它,否则代码将无法运行。将此添加到脚本末尾:

is_right_angled(a, b, c) 
+0

输入是基于用户的。我输入它们来测试算法并查看是否打印了正确的语句(如果/当我学会如何使其工作时)。 I.E .: 3,4,5应呈现“是直角三角形” –