鱼C论坛

 找回密码
 立即注册
查看: 1538|回复: 6

[已解决]help

[复制链接]
发表于 2020-5-6 13:19:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入三角形的3条边长,判断其形状。输入错误则,输出“EER”。(例:输入:3 4 5,输出:直角三角形)我的代码有哪些问题,请指出。另外if语句有没有满足则继续执行,不满足则将后面的代码不再执行的函数?

  1. a=input()
  2. b=a.isdigit()
  3. if b==False:
  4.     print("ERR")
  5. x=a.split(" ")
  6. x.sort(key=int)
  7. c=int(x[0])
  8. d=int(x[1])
  9. e=int(x[2])
  10. if c**2+d**2==e**2:
  11.     print("直角三角形")
  12. elif c**2+d**2>e**2:
  13.     print("钝角三角形")
  14. elif c**2+d**2<e**2:
  15.     print("锐角三角形")

复制代码
最佳答案
2020-5-6 13:25:08
本帖最后由 liuzhengyuan 于 2020-5-6 13:29 编辑
  1. a = input()
  2. x = a.split(" ")

  3. b = True
  4. if len(x) != 3:
  5.         b = False
  6. for i in x:
  7.     if not i.isdigit():
  8.         b = False
  9.         
  10. if b == False:
  11.     print("ERR")
  12. else:
  13.     x.sort()
  14.     c=int(x[0])
  15.     d=int(x[1])
  16.     e=int(x[2])
  17.     if c**2+d**2==e**2:
  18.         print("直角三角形")
  19.     elif c**2+d**2>e**2:
  20.         print("钝角三角形")
  21.     elif c**2+d**2<e**2:
  22.         print("锐角三角形")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 13:22:27 | 显示全部楼层
本帖最后由 qiuyouzhi 于 2020-5-6 13:26 编辑

1,
  1. a=input()
  2. x=a.split(" ")
  3. for each in x:
  4.     b=each.isdigit()
  5.     if b==False:
  6.         print("ERR")
  7. x.sort(key=int)
  8. c=int(x[0])
  9. d=int(x[1])
  10. e=int(x[2])
  11. if c**2+d**2==e**2:
  12.     print("直角三角形")
  13. elif c**2+d**2>e**2:
  14.     print("钝角三角形")
  15. elif c**2+d**2<e**2:
  16.     print("锐角三角形")
复制代码

2,exit。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 13:24:19 | 显示全部楼层
qiuyouzhi 发表于 2020-5-6 13:22
1,你可以自己测试一下,我没看出来什么错误。
2,exit。

很明显,有空格的字符串 isdigit 返回 False

评分

参与人数 1荣誉 +3 鱼币 +2 收起 理由
qiuyouzhi + 3 + 2 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 13:25:08 | 显示全部楼层    本楼为最佳答案   
本帖最后由 liuzhengyuan 于 2020-5-6 13:29 编辑
  1. a = input()
  2. x = a.split(" ")

  3. b = True
  4. if len(x) != 3:
  5.         b = False
  6. for i in x:
  7.     if not i.isdigit():
  8.         b = False
  9.         
  10. if b == False:
  11.     print("ERR")
  12. else:
  13.     x.sort()
  14.     c=int(x[0])
  15.     d=int(x[1])
  16.     e=int(x[2])
  17.     if c**2+d**2==e**2:
  18.         print("直角三角形")
  19.     elif c**2+d**2>e**2:
  20.         print("钝角三角形")
  21.     elif c**2+d**2<e**2:
  22.         print("锐角三角形")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 13:30:04 | 显示全部楼层
  1. try:
  2.     a,b,c=sorted(map(lambda i:i*i,map(int,input().split())))
  3.    
  4. except:
  5.     print('ERR')

  6. else:
  7.     a+=b
  8.    
  9.     if a>c:
  10.         print('钝角三角形')
  11.     elif a<c:
  12.         print('锐角三角形')
  13.     else:
  14.         print('直角三角形')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-6 13:48:10 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-6 13:24
很明显,有空格的字符串 isdigit 返回 False

那有什么解决的办法吗?转成列表之类的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:23:16 | 显示全部楼层
可爱的菲菲酱 发表于 2020-5-6 13:48
那有什么解决的办法吗?转成列表之类的吗?

对,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 11:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表