help
输入三角形的3条边长,判断其形状。输入错误则,输出“EER”。(例:输入:3 4 5,输出:直角三角形)我的代码有哪些问题,请指出。另外if语句有没有满足则继续执行,不满足则将后面的代码不再执行的函数?a=input()
b=a.isdigit()
if b==False:
print("ERR")
x=a.split(" ")
x.sort(key=int)
c=int(x)
d=int(x)
e=int(x)
if c**2+d**2==e**2:
print("直角三角形")
elif c**2+d**2>e**2:
print("钝角三角形")
elif c**2+d**2<e**2:
print("锐角三角形")
本帖最后由 qiuyouzhi 于 2020-5-6 13:26 编辑
1,
a=input()
x=a.split(" ")
for each in x:
b=each.isdigit()
if b==False:
print("ERR")
x.sort(key=int)
c=int(x)
d=int(x)
e=int(x)
if c**2+d**2==e**2:
print("直角三角形")
elif c**2+d**2>e**2:
print("钝角三角形")
elif c**2+d**2<e**2:
print("锐角三角形")
2,exit。 qiuyouzhi 发表于 2020-5-6 13:22
1,你可以自己测试一下,我没看出来什么错误。
2,exit。
很明显,有空格的字符串 isdigit 返回 False 本帖最后由 liuzhengyuan 于 2020-5-6 13:29 编辑
a = input()
x = a.split(" ")
b = True
if len(x) != 3:
b = False
for i in x:
if not i.isdigit():
b = False
if b == False:
print("ERR")
else:
x.sort()
c=int(x)
d=int(x)
e=int(x)
if c**2+d**2==e**2:
print("直角三角形")
elif c**2+d**2>e**2:
print("钝角三角形")
elif c**2+d**2<e**2:
print("锐角三角形") try:
a,b,c=sorted(map(lambda i:i*i,map(int,input().split())))
except:
print('ERR')
else:
a+=b
if a>c:
print('钝角三角形')
elif a<c:
print('锐角三角形')
else:
print('直角三角形') 永恒的蓝色梦想 发表于 2020-5-6 13:24
很明显,有空格的字符串 isdigit 返回 False
那有什么解决的办法吗?转成列表之类的吗? 可爱的菲菲酱 发表于 2020-5-6 13:48
那有什么解决的办法吗?转成列表之类的吗?
对,
页:
[1]