首页 新闻 会员 周边

用python自建异常(三角形)

0
[待解决问题]

写一个方法sanjiao(a,b,c),判断三个参数(a,b,c)是否能构成三角形,如果不能则抛出异常iiiegalArgumentException,显示异常信息“(a,b,c)不能构成三角形”,如果能构成三角形则显示“(a,b,c)能构成三角形”,从键盘获取输入的三个整数,调用此方法,并捕获并处理异常。这代码用python怎么写呀?兄弟们!

momominmin的主页 momominmin | 初学一级 | 园豆:134
提问于:2021-12-17 10:30
< >
分享
所有回答(4)
0

3个整数是无法构成三角形的,三角形需要3个顶点的座标,一个坐标最少需要2个值(x坐标和y坐标)判断三个点能不能构成三角形,只需要判断三角形的其中2个点是否相同,3个x坐标或3个y坐标 是否相同,符合的不能构成三角形,不符合的可以构成三角形

中华鲟3670 | 园豆:847 (小虾三级) | 2021-12-17 10:46

我估计这三个数是边长

支持(0) 反对(0) echo_lovely | 园豆:1435 (小虾三级) | 2021-12-17 10:47

三条边长的也简单啊,每条边长大于0且任意2条边的和大于第三边,就能够成三角形

支持(0) 反对(0) 中华鲟3670 | 园豆:847 (小虾三级) | 2021-12-17 10:54
0

等我学下python给你说

echo_lovely | 园豆:1435 (小虾三级) | 2021-12-17 10:47
import math


class illegalArgumentException(Exception):
    '''
        4 — 13行可以写在另一个文件中,需要手动引入即可
    '''

    def __init__(self, value):
        self.value = value

    def __str__(self):
        return repr(self.value)


def triggle(a, b, c):
    try:
        if(a <= abs(b-c) or a >= b+c or b <= abs(a-c) or b >= a+c or c <= abs(a-b) or c >= a+b):
            raise illegalArgumentException(
                '%d' % a+","+'%d' % b+","+'%d' % c+"不能够成三角形")  # 数字转字符串
        else:
            print('%d' % a+","+'%d' % b+","+'%d' % c+"能够成三角形")
    except illegalArgumentException as e:
        print(e.value)


if __name__ == '__main__':
    a, b, c = (input("请输入三角形三边的长:").split())
    a = int(a)  # 字符串转数字
    b = int(b)
    c = int(c)

    triggle(a, b, c)
    pass
请输入三角形三边的长:2 3 5
2,3,5不能够成三角形


请输入三角形三边的长:3 4 5
3,4,5能够成三角形
支持(1) 反对(0) echo_lovely | 园豆:1435 (小虾三级) | 2021-12-17 13:44
0

看你的问题,应该是输入三遍而不是三个坐标,代码实现看链接
https://www.jb51.net/article/184533.htm

另外你说的异常,自己搜一下《python自定义异常》《python raise》都能找到答案

〆灬丶 | 园豆:2287 (老鸟四级) | 2021-12-17 11:22
0

两边之和大于第三边,这个很简单就能实现了

计算机知识杂谈 | 园豆:470 (菜鸟二级) | 2021-12-18 18:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册