鱼C论坛

 找回密码
 立即注册
查看: 612|回复: 2

[已解决]自定义异常求助

[复制链接]
发表于 2018-12-26 23:06:49 | 显示全部楼层 |阅读模式

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

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

x
  1. class WeightError(Exception):
  2.     def __init__(self, high, athigh, cehigh):
  3.         self.high == high
  4.         self.athigh == athigh
  5.         self.cehigh == cehigh
  6. try:
  7.     weight = int(input('请输入体重 单位(斤):'))
  8.     height = int(input('请输入身高 单位(CM):'))
  9.     if height<30 or height>250:
  10.         # 引发异常
  11.         raise WeightError (height , 30, 250)
  12. except WeightError as result:
  13.     print('你输入的身高为%s,身高请输入在%s到%s范围。'%(self.high, self.athigh ,self.cehigh))
  14. else:
  15.     bz_weight = height - 100
  16.     cz = ((weight-bz_weight*2)/weight)
  17.     if  -0.05 <=cz<= 0.05:
  18.         print('恭喜您,体重正常达标!')
  19.     elif cz>0.05:
  20.         print('很遗憾,你的体重超标,请及时锻炼!')
  21.     elif cz<-0.05:
  22.         print('抱歉,你的体重不达标!')
复制代码




变量名有点乱
出现的问题是 AttributeError: 'WeightError' object has no attribute 'high'


不知道如何解决   不太理解  希望有帮忙解释下报错原因
谢谢拉
最佳答案
2018-12-27 07:42:44
  1. class WeightError(Exception):
  2.     def __init__(self, high, athigh, cehigh):
  3.         self.high = high
  4.         self.athigh =athigh
  5.         self.cehigh =cehigh
  6. if __name__=='__main__':
  7.     try:
  8.         weight = int(input('请输入体重 单位(斤):'))
  9.         height = int(input('请输入身高 单位(CM):'))
  10.         if height<30 or height>250:
  11.             # 引发异常
  12.             raise WeightError (height , 30, 250)
  13.     except WeightError as result:
  14.         print('你输入的身高为%s,身高请输入在%s到%s范围。'%(result.high, result.athigh ,result.cehigh))
  15.     else:
  16.         bz_weight = height - 100
  17.         cz = ((weight-bz_weight*2)/weight)
  18.         if  -0.05 <=cz<= 0.05:
  19.             print('恭喜您,体重正常达标!')
  20.         elif cz>0.05:
  21.             print('很遗憾,你的体重超标,请及时锻炼!')
  22.         elif cz<-0.05:
  23.             print('抱歉,你的体重不达标!')
复制代码

错误:
1、类定义,赋值
2、错误引用,已经对象化的错误对象WeightError,不能用self
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-26 23:34:25 | 显示全部楼层
self.high == high 不应该是 = 吗?

其它的我看不懂你要干嘛。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-27 07:42:44 | 显示全部楼层    本楼为最佳答案   
  1. class WeightError(Exception):
  2.     def __init__(self, high, athigh, cehigh):
  3.         self.high = high
  4.         self.athigh =athigh
  5.         self.cehigh =cehigh
  6. if __name__=='__main__':
  7.     try:
  8.         weight = int(input('请输入体重 单位(斤):'))
  9.         height = int(input('请输入身高 单位(CM):'))
  10.         if height<30 or height>250:
  11.             # 引发异常
  12.             raise WeightError (height , 30, 250)
  13.     except WeightError as result:
  14.         print('你输入的身高为%s,身高请输入在%s到%s范围。'%(result.high, result.athigh ,result.cehigh))
  15.     else:
  16.         bz_weight = height - 100
  17.         cz = ((weight-bz_weight*2)/weight)
  18.         if  -0.05 <=cz<= 0.05:
  19.             print('恭喜您,体重正常达标!')
  20.         elif cz>0.05:
  21.             print('很遗憾,你的体重超标,请及时锻炼!')
  22.         elif cz<-0.05:
  23.             print('抱歉,你的体重不达标!')
复制代码

错误:
1、类定义,赋值
2、错误引用,已经对象化的错误对象WeightError,不能用self
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 06:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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