题目:写一个方法sanjiao(a, b, c),判断三个参数(a, b, c)是否能构成一个三角形,如果不能则抛出异常IllegalArgumentException,显示异常信息”(a,b,c)不能构成三角形”,如果可以构成则显示”(a,b,c)能构成三角形”,从键盘获取输入的三个整数,调用此方法,并捕获并处理异常。
编码:
class SanJiao:
def sanjiao(self,a, b, c):
try:
if a + b > c and a + c > b and b + c > a:
print('该三边能构成三角形')
else:
raise Exception('IllegalArgumentException')
except Exception as error:
print('Error:',error,'a,b,c”不能构成三角形”')
a = SanJiao()
a,b,c=eval(input("请输入您想知道是否能构成三角形的三个整数,并用逗号隔开:"))
print('第一种情况:')
a.sanjiao(a, b, c)
print()
print('第二种情况:')
a.sanjiao(a, b, c)
错误: File "C:\Users\Administrator\PycharmProjects\pythonProject\还有人符合.py", line 14, in <module>
a.sanjiao(a, b, c)
AttributeError: 'int' object has no attribute 'sanjiao'
兄弟们,这怎么弄呀?怎么改正呀?
啊这个?有点熟悉啊,兄嘚
class SanJiao:
def sanjiao(self,a, b, c):
try:
if a + b > c and a + c > b and b + c > a:
print('该三边能构成三角形')
else:
raise Exception('IllegalArgumentException')
except Exception as error:
print('Error:',error,'a,b,c”不能构成三角形”')
a = SanJiao()// 这里有个 a.
a,b,c=eval(input("请输入您想知道是否能构成三角形的三个整数,并用逗号隔开:"))// 又有个a ,电脑不知道那个是数字a,那个是三角a
print('第一种情况:')
a.sanjiao(a, b, c)
print()
print('第二种情况:')
a.sanjiao(a, b, c)
建议变量使用英文单词,数字我一般用i,j,k……
变量名重复了,变量a类在后面被input()函数重新赋值了,变成了int类型,所以报属性错误。
class SanJiao:
def sanjiao(self, a, b, c):
try:
if a + b > c and a + c > b and b + c > a:
print('该三边能构成三角形')
else:
raise Exception('IllegalArgumentException')
except Exception as error:
print('Error:',error,'a,b,c”不能构成三角形”')
mySanjiao = SanJiao() # 这里把 a 改成了 mySanjiao
# 这里的类新建出来是为了用它内部的 sanjiao() 函数做判断,所以作为一个工具,它不能和下面的变量名重复
a,b,c=eval(input("请输入您想知道是否能构成三角形的三个整数,并用逗号隔开:"))
print('第一种情况:')
mySanjiao.sanjiao(a, b, c)
print()
print('第二种情况:')
mySanjiao.sanjiao(a, b, c)