笨鸟编程-零基础入门Pyhton教程

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

[问题求助] 自定义异常求助

[复制链接]
发表于 2022-3-8 00:13:58 | 显示全部楼层 |阅读模式
  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'


不知道如何解决   不太理解  希望有帮忙解释下报错原因
谢谢拉
我知道答案 回答被采纳将会获得10 C币 已有2人回答
回复

使用道具 举报

新手上路

Rank: 1

积分
12
发表于 2022-3-8 00:14:19 | 显示全部楼层
self.high == high 不应该是 = 吗?

其它的我看不懂你要干嘛
回复

使用道具 举报

新手上路

Rank: 1

积分
6
发表于 2022-3-8 00:15:07 | 显示全部楼层
  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
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-11-21 19:27 , Processed in 0.088087 second(s), 22 queries .

© 2001-2020

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