鱼C论坛

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

求助大佬一道题,感谢

[复制链接]
发表于 2024-5-20 21:31:34 | 显示全部楼层 |阅读模式

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

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

x
这是题:

从键盘输入a和b,求a除以b的结果并输出。完善下面程序,使之能够处理多种异常。

例如:从键盘输入除数,就有可能会输入0,而除数为0是个很严重的错误,应该进行ZeroDivisionError异常的捕获和处理。
【输入形式】
【输出形式】
【样例输入】
10
abc
【样例输出】输入的值不对!
【样例输入】
a
10
【样例输出】一个其他异常!
【样例输入】
10
0
【样例输出】 除数不能为0!


这是我目前的答案:
try:
    a=int(input())
    b=int(input())
    c=a/b
except(ValueError):
    print("输入的值不对!")
except(ZeroDivisionError):
    print("除数不能为0!")
else:
    print("c=",c)


肯定是有问题的,少一种情况,我应该怎么改?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-20 21:31:46 | 显示全部楼层
你的代码已经很棒了,只需要再加一个对于其他异常的捕获即可。完整的代码如下:
try:
    a = int(input())
    b = int(input())
    c = a / b
except ValueError:
    print("输入的值不对!")
except ZeroDivisionError:
    print("除数不能为0!")
except:
    print("发生了其他异常!")
else:
    print(f"c = {c}")

解释一下:

1. 首先我们用 `try` 语句捕获可能出现的异常,包括 `ValueError` (当输入无法转换为整数时)和 `ZeroDivisionError` (当除数为0时)。
2. 对于 `ValueError` 异常,我们打印 "输入的值不对!"。
3. 对于 `ZeroDivisionError` 异常,我们打印 "除数不能为0!"。
4. 对于其他未知的异常,我们使用一个空的 `except` 语句捕获,并打印 "发生了其他异常!"。
5. 如果没有发生任何异常,我们就在 `else` 语句块中打印计算结果 `c`。

这样就能够处理你提到的所有可能的情况了。如果你有任何其他问题,欢迎继续问我!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 21:00:41 | 显示全部楼层
def main():
    a=input()
    b=input()
    try:
        b = int(b)
    except:
        print("输入的值不对!")
        return
    try:    
        a = int(a)
    except:
        print("一个其他异常")
        return
    
    if b == 0:
        print("除数不能为0!")
        return
    print(a/b)

if __name__ == '__main__':
    main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 18:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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