三角形判断(异常捕获)

给定三角形的三条边,依据数学定理可以判断三条边是否可以组成三角形。

请根据三条边的输入数值,判断三条边是否可以组成三角形,通过异常捕获数据输入问题或组成三角形可能存在的异常情况。

try:
    a = int(input("a="))
    b = int(input("b="))
    c = int(input("c="))

    if (a + b > c) and (a + c > b) and (b + c > a) and (a-b<c) and (a-c<b) and (b-a<c) and (b-c<a) and (c-a<b) and (c-b<a):
        print("能构成三角形")
    else:
        print("不能构成三角形")

except ValueError:
    print("请输入正确的整数")
except Exception as e:
    print("其他未知异常:{}".format(e))
else:
    print("没有捕捉到异常")
finally:
    print("finally子句,最后执行")

这段Python代码是一个简单的程序,旨在判断用户输入的三个整数是否能够构成一个三角形。下面是对每条代码的分析:

1. `try` 块:开始尝试执行的代码块。如果在 `try` 块中的代码执行过程中没有发生异常,则会跳过 `except` 块,直接执行后面的代码。

2. 用户输入和类型转换:
   ```python
   a = int(input("a="))
   b = int(input("b="))
   c = int(input("c="))
   ```
   这三行代码提示用户输入三个值(a、b、c),并将输入的字符串转换为整数类型。如果输入的不是可以转换为整数的字符串,将引发 `ValueError`。

3. 条件判断:
   ```python
   if (a + b > c) and (a + c > b) and (b + c > a) and (a-b<c) and (a-c<b) and (b-a<c) and (b-c<a) and (c-a<b) and (c-b<a):
   ```
   这个 `if` 语句检查三个数是否满足构成三角形的条件:任意两边之和大于第三边,以及任意一边的长度小于其他两边长度之差。如果所有条件都满足,说明能构成三角形。

4. 输出三角形类型:
   ```python
   print("能构成三角形")
   ```
   如果 `if` 条件为真,将执行这行代码,输出“能构成三角形”。

5. `else` 块:
   ```python
   else:
       print("不能构成三角形")
   ```
   如果 `if` 条件为假,将执行这个 `else` 块中的代码,输出“不能构成三角形”。

6. `except ValueError` 块:
   ```python
   except ValueError:
       print("请输入正确的整数")
   ```
   如果 `try` 块中的代码因为用户输入非整数而引发 `ValueError`,将执行这个 `except` 块中的代码,提示用户输入正确的整数。

7. `except Exception as e` 块:
   ```python
   except Exception as e:
       print("其他未知异常:{}".format(e))
   ```
   这个 `except` 块捕获除了 `ValueError` 之外的所有异常,并将异常信息打印出来。

8. `else` 块(与 `try` 块配对):
   ```python
   else:
       print("没有捕捉到异常")
   ```
   如果 `try` 块中的代码没有引发任何异常,将执行这个 `else` 块中的代码,输出“没有捕捉到异常”。

9. `finally` 块:
   ```python
   finally:
       print("finally子句,最后执行")
   ```
   `finally` 块中的代码无论是否发生异常都会执行。在这个例子中,它用于输出“finally子句,最后执行”,表示 `finally` 块已经执行。

10. 异常处理结束:
    代码中的异常处理结构确保了即使用户输入了无效的数据,程序也能够给出提示,而不会崩溃。同时,`finally` 块确保了无论是否发生异常,都会执行一些清理或最终的输出操作。

这个程序演示了异常处理的基本结构和用法,包括 `try`、`except`、`else` 和 `finally` 块的作用。
 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值