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
相关推荐
A__tao2 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
研究点啥好呢2 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
xiaotao1312 小时前
第九章:Vite API 参考手册
前端·vite·前端打包
午安~婉2 小时前
Electron桌面应用聊天(续)
前端·javascript·electron
lly2024062 小时前
C 标准库 - `<stdio.h>`
开发语言
沫璃染墨2 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++
jwn9992 小时前
Laravel6.x核心特性全解析
开发语言·php·laravel
迷藏4942 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
彧翎Pro3 小时前
基于 RO1 noetic 配置 robosense Helios 32(速腾) & xsense mti 300
前端·jvm
功德+n3 小时前
Linux下安装与配置Docker完整详细步骤
linux·运维·服务器·开发语言·docker·centos