Day30 Python Study

@浙大疏锦行

python 复制代码
print("--- 使用 try-except 捕获 ZeroDivisionError ---")
numerator = 10
denominator = 0

try:
    print("尝试进行除法运算...")
    result = numerator / denominator # 潜在的风险代码
    print(f"计算结果是: {result}") # 如果上面出错,这行不会执行
except ZeroDivisionError:
    print("发生了一个除以零的错误!")
    result = "未定义 (除以零)" # 可以给一个默认值或提示

print(f"程序继续执行... 最终结果的记录为: {result}")
python 复制代码
print("--- 使用 try-except 捕获 TypeError ---")
x = "Total items: "
y = 5 # 假设这是一个从某处获取的数字

try:
    print("尝试连接字符串和数字...")
    message = x + y # 潜在的 TypeError
    print(f"最终消息: {message}")
except TypeError:
    print("类型错误!不能直接将字符串和数字相加。")
    print("尝试将数字转换为字符串进行连接...")
    message = x + str(y) # 修正操作
    print(f"修正后的消息: {message}")

print(f"程序继续... 生成的消息是: {message}")
python 复制代码
print("--- try-except-else 示例 ---")

def safe_divide(a, b):
    print(f"\n尝试计算 {a} / {b}")
    try:
        result = a / b
    except ZeroDivisionError:
        print("错误:除数不能为零!")
        return None # 或者其他表示失败的值
    except TypeError:
        print("错误:输入必须是数字!")
        return None
    else:
        # 只有当 try 块中的 a / b 成功执行时,这里才会执行
        print("除法运算成功!")
        print(f"结果是: {result}")
        # 可以在这里进行基于成功结果的进一步操作
        print(f"结果的两倍是: {result * 2}")
        return result

# 测试用例
safe_divide(10, 2)  # 成功
safe_divide(10, 0)  # ZeroDivisionError
safe_divide("10", 2) # TypeError (如果我们不先做类型转换的话)
safe_divide(20, "abc") # TypeError
相关推荐
程序猿编码7 分钟前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码
开发语言·c++·大模型推理·qwen3·多模态推理
三天不学习28 分钟前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194051 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
bkspiderx2 小时前
Qt 插件机制:动态扩展应用功能的核心框架
开发语言·qt·元数据·qt 插件·qpluginloader
程序员老陆2 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
沐晓时光2 小时前
C语言入门,深入理解指针(3)
c语言·开发语言
明月_清风2 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
码云数智-园园2 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
禾小西3 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨3 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言