零基础学python:错误与异常

news2024/12/28 18:33:30

嗨喽,大家好呀~这里是爱看美女的茜茜呐

语法错误

异常:大多数的异常都不会被程序处理,都以错误信息的形式展现在这里


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可


异常处理:
while True:
    try:
        x = int(input("请输入一个错误:"))
        break
    except ValueError:
        print("不是有效数字,再试一遍")

try 语句执行顺序:

先执行try语句里面的语句,如果没有异常发生,忽略except语句,try子句执行后结束。

如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。

如果异常的类型和 except 之后的名称相符,那么对应的except子句将被执行。

如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。(try可以嵌套try)
一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如:

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
except (RuntimeError, TypeError, NameError):
        pass

最后一个except子句可以忽略异常的名称,它将被当作通配符使用。

你可以使用这种方法打印一个错误信息,然后再次把异常抛出。

except:
    print("作为最后一个,我能捕获所有之前没有捕获的异常")

try except 语句还有一个可选的else子句,如果使用这个子句,那么必须放在所有的except子句之后。

这个子句将在try子句没有发生任何异常(正常执行)的时候执行。例如:

else:
    print("else在正常情况下会被执行")

使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免一些意想不到的、而except又没有捕获的异常。

异常处理而且还能处理子句中调用的函数(甚至间接调用的函数)里抛出的异常。例如:

except…as err;(err为错误类型),as可以返回错误类型

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def this_fails():
    x = 1 / 0

try:
    this_fails()
except ZeroDivisionError as err:
    print('Handling run-time error:', err)

#结果:Handling run-time error: division by zero

finally子句的语句在任何情况下都会被执行

finally:
    print("finally在任何情况写都会被执行")

try-finally语句

语法:

try:
可能触发异常的语句

finally:
最终语句

说明:finally 子句不可以省略,一定不存在except子句

作用:做必须要做的事情,无论异常是否发生,finally子句都会被执行

注: try-finally语句不会改变程序的(正常/异常)状态

raise 语句

作用: 触发一个错误,让程序进入异常状态

语法:raise 异常类型或raise 异常对象

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# #raise 语句
def make_except():
    print("开始...")
    # raise ZeroDivisionError  # 手动发生一个错误通知
    e = ZeroDivisionError("被零除啦!!!!!")
    raise e  # 触发e绑定的错误,进入异常状态
    print("结束")

try:
    make_except()
    print("make_except调用完毕!")
except ZeroDivisionError as err:
    print('出现了被零除的错误,已处理并转为正常状态!')
    print('err 绑定的对象是:', err)

#开始...
#出现了被零除的错误,已处理并转为正常状态!
#err 绑定的对象是: 被零除啦!!!!!

assert 断言语句

语法:assert 真值表达式 , 错误信息(通常是字符串)

作用:如果真值表达式为假时,主动的发出异常;如果真值表达式为真,当断言语句不存在。

assert b==1            # 也可以没有 异常说明
assert len(lists) >=5,'列表元素个数小于5'        # 当len(lists)<5时,主动发出异常
assert b==1,'2不等于1'                        # 当b不等于1时,主动发出异常,并提示异常

出现使用print()函数打印出内存地址的情况,说明你输出的是打印函数名/模块名/类名,需要用函数把内存中的值取出来

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

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

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

相关文章

【STM32】GPIO控制LED(寄存器版)

在开始之前记得先准备好环境&#xff1a; STM32F103核心板下载教程.pdf 林何/STM32F103C8 - 码云 - 开源中国 (gitee.com) 一、STM32的GPIO模块数据手册详解 每个GPIO端口对应16个引脚&#xff0c;例GPIOA&#xff08;PA0~PA15&#xff09;内核cpu就可以通过APB2总线对寄存器…

电路电子技术3 电位的计算受控源在电路分析中的作用

1.计算电压 思路&#xff1a;注意到这个串联电路&#xff0c;有两个电压源&#xff0c;所以我们首先可以将两个电压源串联等效为一个电压源。 即&#xff1a; 故可得答案选B. 2.计算点位 思路&#xff1a;题目说明了B点开路&#xff0c;所以没有流过电阻R的电流&#xff0c;…

光学配件简介

光学配件简介 延长管介绍 延长管&#xff0c;是加在镜头和相机之间的一根通心的环状管&#xff0c;但里面没有任何光学部件&#xff0c;也没有放大作用。它不会改变光圈值&#xff0c;但因为延长了镜头&#xff0c;光线会减弱。延长管可以使镜头的对焦距离缩短&#xff0c;也就…

Uniapp 酷炫钱包页面模板 直接引用

使用教程 直接引用Vue页面 即可 <template><view><TCqianbao></TCqianbao></view> </template> <script>import TCqianbao from /uni_modules/TC-qianbao/pages/index.vueexport default {components:{TCqianbao},} </script&…

【斗破年番】彩鳞送老公新挂,薰儿霸气回归,萧炎招揽古河,邀请美杜莎战魂殿

【侵权联系删除】【文/郑尔巴金】 斗破苍穹年番动画已经更新了&#xff0c;萧炎与美杜莎女王一起回娘家&#xff0c;并且也与小医仙制定了同盟计划&#xff0c;准备对金雁宗与慕兰谷斩草除根。从官方公布的第69集预告来看&#xff0c;慕兰三老与雁落天已经陨落&#xff0c;美杜…

Warning: [antd: Switch] `value` is not a valid prop, do you mean `checked`?

解决方案&#xff1a; <Form.Item label"更多设置" name"moreSetting" valuePropName"checked"><Switch onChange{handleMoreSetting} /></Form.Item> 参考链接&#xff1a; https://chat.xutongbao.top/

医药保健品经营小程序商城的作用是什么

互联网经济下&#xff0c;线上线下商家难以生存&#xff0c;自营平台成为各行业商家的选择&#xff0c;摆脱平台限制及线下门店地域的限制&#xff0c;多渠道线上获客引流转化营销、留存复购裂变等&#xff0c;更利于直接触达消费者&#xff0c;无其它商家夺流及坑位费、流量费…

最详细STM32,cubeMX 定时器

这篇文章将详细介绍 STM32,cubeMX 定时器的配置和使用。 文章目录 前言一、定时器基础知识二、cubeMX 配置三、定时时长四、自动生成代码讲解五、实验程序总结 前言 实验开发板&#xff1a;STM32F103C8T6。所需软件&#xff1a;keil5 &#xff0c; cubeMX 。实验目的&#xff…

探索未来的视觉革命:卷积神经网络的崭新时代(二)

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

自主武器系统对伦理和法律的挑战

【第十届北京香山论坛是中国军事科学学会、中国国际战略学会联合主办的论坛&#xff0c;将于2023年10月29日至31日在北京举行。本次论坛的主题是“共同安全、持久和平”&#xff0c;聚焦全球安全倡议重点合作方向&#xff0c;为各方共议安全难题、求解安全之策、促进安全合作提…

Leetcode1971. 寻找图中是否存在路径

Every day a Leetcode 题目来源&#xff1a;1971. 寻找图中是否存在路径 解法1&#xff1a;并查集 并查集介绍&#xff1a;并查集详解 代码&#xff1a; /** lc appleetcode.cn id1971 langcpp** [1971] 寻找图中是否存在路径*/// lc codestart class UnionFind {vector&…

Node-RED系列教程-27node-red操作邮件节点

提前注册好一个163邮箱: 安装以下节点: 演示发送邮件的功能

ESXI6.5安装教程

设置从IPMI Virtual Disk 3000启动&#xff0c;出现如下界面&#xff1a; 默认选择第一项&#xff0c;回车安装 安装程序正在检测服务器硬件信息&#xff0c;如果不满足系统安装条件会跳出错误提示。 检测完成之后会出现下面界面 回车 按F11 这里列出了服务器硬盘信息&#…

【算法|动态规划No.29】leetcode132. 分割回文串 II

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

022-第三代软件开发-QCustomPlot核心迁移

第三代软件开发-QCustomPlot核心迁移 文章目录 第三代软件开发-QCustomPlot核心迁移项目介绍先说点GitHub CopilotQCustomPlot核心迁移QQuickPaintedItemXXX_QCustomChart 关键字&#xff1a; Qt、 Qml、 QCustomPlot、 GitHub Copilo、 关键字5 项目介绍 欢迎来到我们的 …

Leetcode—2331.计算布尔二叉树的值【简单】

2023每日刷题&#xff08;六&#xff09; Leetcode—2331.计算布尔二叉树的值 递归实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool evaluateTree(struct TreeNod…

计算机网络_网络层概述

4.1 网络层概述 4.1.1 一.分组转发和路由选择 网络层的主要任务就是将分组从源主机经过多个网络和多段链路传输到目的主机&#xff0c;可以将该任务划分为分组转发和路由选择两种重要的功能。 注释:A发送到B,从1端口进入. 如何得知是从2还是从3中转发出去呢?--------->这…

M4内核启动全过程(从零写代码,不用任何库,深入分析启动过程和函数调用规则)

引言 玩过stm32的小伙伴&#xff0c;应该知道&#xff0c;在使用的keil工程里面有一个start.s的启动文件&#xff08;网上关于这个启动文件的分析很多&#xff0c;本文不是讲解启动文件的文字&#xff0c;不打算具体讲解这个文件的内容&#xff09;。start.s文件是芯片复位、启…

微信小程序-微信授权登录

前言 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识&#xff0c;快速建立小程序内的用户体系 一.微信授权登录工作流程 1.理论叙述 触发授权登录: 用户在小程序中触发登录操作&#xff0c;通常通过点击登录按钮或执行相关操作。 授权弹窗: 小程序弹…

python树结构包treelib入门及其计算应用

树是计算机科学中重要的数据结构。例如决策树等机器学习算法设计、文件系统索引等。创建treelib包是为了在Python中提供树数据结构的有效实现。 Treelib的主要特点包括&#xff1a; 节点搜索的高效操作。支持常见的树操作&#xff0c;如遍历、插入、删除、节点移动、浅/深复制…