任意輸入3個數,判斷能否組成三角形。
三角形:兩邊之和大於第三邊
直角三角形:勾股定理
代碼如下:
# 輸入合法性檢查,必須輸入正數,不支持科學計數法
'''
try:
<語句>
except <name>:
<語句> #如果在try部份引發了名為'name'的異常,則執行這段代碼
else:
<語句> #如果沒有異常發生,則執行這段代碼
'''
def ispositive(num):
try:
float(num)
except:
return False
else:
if float(num) <= 0:
return False
else:
return True
# 直角三角形判斷
def isRightTriangle(num1,num2,num3):
if num1**2 + num2**2 == num3**2 or num1**2 + num3**2 == num2**2 or num2**2 + num3**2 == num1**2:
return True
else:
return False
a = input("請輸入第1個數字:")
while not ispositive(a):
a = input("不是有效數字,請重新輸入:")
b = input("請輸入第2個數字:")
while not ispositive(b):
b = input("不是有效數字,請重新輸入:")
c = input("請輸入第3個數字:")
while not ispositive(c):
c = input("不是有效數字,請重新輸入:")
a = float(a)
b = float(b)
c = float(c)
# 判斷是否可以組成三角形
if a + b > c and a + c > b and b + c > a:
if a == b == c:
print('%.2f,%.2f,%.2f能組成等邊三角形'%(a,b,c))
elif a == b or a == c or b == c:
if isRightTriangle(a,b,c):
print('%.2f,%.2f,%.2f能組成等腰直角三角形'%(a,b,c))
else:
print('%.2f,%.2f,%.2f能組成等腰三角形'%(a,b,c))
elif isRightTriangle(a,b,c):
print('%.2f,%.2f,%.2f能組成直角三角形'%(a,b,c))
else:
print('%.2f,%.2f,%.2f能組成普通三角形'%(a, b, c))
else:
print('%.2f,%.2f,%.2f不能組成三角形'%(a,b,c))