6个月Python学习计划 Day 14 - 异常处理基础( 补充学习)

news2025/6/6 16:23:37

第二周

Day 8 - Python 函数基础
Day 9 - 函数进阶用法
Day 10 - 模块与标准库入门
Day 11 - 列表推导式、内置函数进阶、模块封装实战
Day 12 - 字符串处理 & 文件路径操作
Day 13 - 文件操作基础


🎯 今日目标

  • 理解异常的概念和常见异常类型
  • 掌握 try-except 结构的用法
  • 理解 else 和 finally 的作用
  • 实战练习:用户输入验证 + 文件读写容错

📘 什么是异常?

异常(Exception)指程序运行过程中出现的错误,常见类型如:

异常类型说明
ZeroDivisionError除以零错误
ValueError错误的值(如 int(“abc”))
FileNotFoundError文件不存在
TypeError类型不匹配的操作

🧱 try-except 基本结构

try:
    代码块(可能会出错)
except 异常类型:
    出错时执行的代码

示例:

try:
    num = int(input("请输入一个整数:"))
    print("你的输入是:", num)
except ValueError:
    print("⚠️ 输入无效,请输入整数!")

🧱 多个 except 捕获不同异常

try:
    x = int(input("x: "))
    y = int(input("y: "))
    print(x / y)
except ValueError:
    print("❌ 输入错误,请输入整数。")
except ZeroDivisionError:
    print("❌ 除数不能为 0。")

🧱 使用 else 和 finally

try:
    f = open("test.txt", 'r', encoding='utf-8')
    content = f.read()
except FileNotFoundError:
    print("文件不存在。")
else:
    print("文件内容:", content)
finally:
    print("不管有没有异常,都会执行这段话。")

各部分作用:

语句说明
try主逻辑代码
except捕获并处理错误
else如果没出错,执行(可选)
finally无论是否出错,始终执行,如关闭资源

🧪 练习任务

练习 1:输入两个数字,输出相除结果,处理输入异常与除零

try:
    a = float(input("输入第一个数:"))
    b = float(input("输入第二个数:"))
    result = a / b
except ValueError:
    print("❌ 请输入有效数字!")
except ZeroDivisionError:
    print("❌ 不能除以 0!")
else:
    print("✅ 结果是:", result)

练习 2:尝试打开文件,如果不存在则提示,并写入默认内容

try:
    with open("info.txt", 'r', encoding='utf-8') as f:
        print("文件内容:", f.read())
except FileNotFoundError:
    print("文件未找到,自动创建文件。")
    with open("info.txt", 'w', encoding='utf-8') as f:
        f.write("默认内容:Hello Exception!\n")

📌 总结归纳

技能内容说明
try-except用于捕获运行时错误,避免程序崩溃
多异常捕获可分别处理不同异常(如 ValueError, ZeroDivisionError)
else无异常时执行(通常用于主逻辑)
finally无论是否出错都会执行,常用于释放资源

题外话

以终身学习为目标,先了解自己,再优化自己💪
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2399342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用jstack排查CPU飙升的问题记录

最近,看到短视频传播了一个使用jstack来协助排查CPU飙升的案例。我也是比较感兴趣,参考了视频博主的流程,自己做了下对应案例的实战演练,在此,想做一下,针对相关问题模拟与排查演练的实战过程记录。 案例中…

cursor如何开启自动运行模式

在Cursor中,开启自动运行模式即启用“Yolo Mode”,具体操作如下: 按下Ctrl Shift J(Windows/Linux)或Cmd Shift J(Mac)打开Cursor设置。导航到“Features”(功能)选…

SecureCRT 设置超时自动断开连接时长

我们在使用SecureCRT 连接服务器时,经常性出现2分钟未操作已连接的服务器,就会自动断开连接,此时需要重新连接,非常影响服务器操作,本文可以很好带领大家解决这种问题。

IEC 61347-1:2015 灯控制装置安全标准详解

IEC 61347-1:2015灯控制装置安全标准详解 IEC 61347-1:2015 是国际电工委员会(IEC)发布的灯控制装置第1部分:通用要求和安全要求的核心标准,为各类照明用电子控制设备设定了全球通用的安全基准。该标准适用于独立式或内置于灯具/…

Ansys Zemax | 手机镜头设计 - 第 4 部分:用 LS-DYNA 进行冲击性能分析

附件下载 联系工作人员获取附件 该系列文章将讨论智能手机镜头模组设计的挑战,从概念和设计到制造和结构变形分析。本文是四部分系列中的第四部分,它涵盖了相机镜头的显式动态模拟,以及对光学性能的影响。使用 Ansys Mechanical 和 LS - DY…

[蓝桥杯]卡片换位

卡片换位 题目描述 你玩过华容道的游戏吗? 这是个类似的,但更简单的游戏。 看下面 3 x 2 的格子 --------- | A | * | * | --------- | B | | * | --------- 在其中放 5 张牌,其中 A 代表关羽,B 代表张飞,* …

【论文笔记】High-Resolution Representations for Labeling Pixels and Regions

【题目】:High-Resolution Representations for Labeling Pixels and Regions 【引用格式】:Sun K, Zhao Y, Jiang B, et al. High-resolution representations for labeling pixels and regions[J]. arXiv preprint arXiv:1904.04514, 2019. 【网址】…

【题解-洛谷】P9422 [蓝桥杯 2023 国 B] 合并数列

题目:P9422 [蓝桥杯 2023 国 B] 合并数列 题目描述 小明发现有很多方案可以把一个很大的正整数拆成若干正整数的和。他采取了其中两种方案,分别将他们列为两个数组 { a 1 , a 2 , ⋯ a n } \{a_1, a_2, \cdots a_n\} {a1​,a2​,⋯an​} 和 { b 1 , …

109页PPT华为流程模块L1-L4级梳理及研发采购服务资产5级建模

华为的流程体系是其核心竞争力之一,也是其从一家小型民营企业成长为全球领先科技巨头的重要支撑。这套体系的核心思想是以客户为中心、以价值创造为导向、以流程驱动业务、持续优化改进。 下载资料请查看文章中图片右下角信息 以下是华为流程体系的关键组成部分和特…

第N1周:one-hot编码案例

🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 一、one-hot编码概念 自然语言处理(NLP)中的文本数字化:文字对于计算机来说就仅仅只是一个个符号,计算…

Windows安装docker desktop

Windows 版本: Windows 10/11(64位)专业版、企业版或教育版(家庭版需手动配置)。 版本号需 ≥ 1909(建议更新到最新系统) 打开程序 启动服务后点点点 重启生效(没有的话 安装WSL…

Ros(俩不同包的节点 交流 topic message)

不同的俩节点 如chao_node 和ma_node .在俩不同的包下。 他们若想互相产生联系, 就需要靠这个关系了。 想象一下是开黑的场景 其实群名就是topic 而发送的消息就是Message。 其中主动刷屏的message的一方 就是 Publisher 而接受的那一方 就是subsciber

李沐《动手学深度学习》 | 数值稳定性

文章目录 数值稳定性梯度消失Sigmoid作为激活函数 梯度爆炸 让训练更加稳定合理的权重初始化Xavier初始化(常用)He初始化/Kaiming方法 Batch Normalization Q&A 数值稳定性 当神经网络的深度比较深时,非常容易数值不稳定。 不稳定梯度是…

OpenCV CUDA模块图像处理------图像连通域标记接口函数connectedComponents()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 该函数在 GPU 上执行二值图像的连通域标记操作,即将图像中所有相连的前景像素区域赋予相同的标签(label)&…

Android Studio 打包时遇到了签名报错问题:Invalid keystore format

错误指出密钥库的格式无效,可能是由于密钥库本身的问题导致的,还有一种可能是由于jdk版本导致。我试过重新签名,也是不行,后来发现是JDK版本问题,我的Studio之前是jbr11,好像后来合并代码重新下载编译了项目…

内存管理【Linux操作系统】

文章目录 简单谈一下物理内存管理页框为什么要把物理内存划分成一个一个固定大小的页框使用?对页框进行描述对页框进行组织管理虚拟地址→物理地址(真实的页表)真实的页表那我们如何把虚拟地址→物理地址呢?页表懒加载时&#xff…

Go语言学习-->从零开始搭建环境

Go语言学习–>从零开始搭建环境 1 开发环境 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ windos 平台下载: 我这里下载1.22稳定版 双击下载好的.msi文件 修改安装…

【力扣】3403. 从盒子中找出字典序最大的字符串 I

解法一: class Solution {public String answerString(String word, int numFriends) {//对字符的划分,word长度为n,共有n1个位置可以插入,但是要求被分为非空字符串,所以插入的位置最多为n-1。int n word.length();…

【前端】Vue3+elementui+ts,给标签设置样式属性style时,提示type check failed for prop,再次请出DeepSeek来解答

🌹欢迎来到《小5讲堂》🌹 🌹这是《前端》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!&…

PyTorch——优化器(9)

优化器根据梯度调整参数,以达到降低误差 import torch.optim import torchvision from torch import nn from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear from torch.utils.data import DataLoader# 加载CIFAR10测试数据集,设置tr…