前言

更多内容,请访问我的 个人博客。

https://www.zhihu.com/video/1172664518139371520

Python3报错

我们在写程序的时候最喜闻乐见的就是程序打印出我们想要的结果。

最怕的就是程序没有按照我们预先设想的样子运行,完了还爆出一堆的错误信息。

本章要介绍的就是python中的报错信息。报错信息有很多种,这里介绍两种比较常见的报错信息: - 语法错误 - 逻辑异常

语法错误

我们先来看看什么是语法错误。还记得我们之前讲的for循环语句,必须要带冒号,如果不带冒号,就会报语法错误。

list = ['苹果', '西瓜', '葡萄']

for lt in list

print(lt)

for lt in list

^

SyntaxError: invalid syntax

如果循环语句中没有缩进,也会报语法错误。

list = ['苹果', '西瓜', '葡萄']

for lt in list:

print(lt)

print(lt)

^

IndentationError: expected an indented block

报错信息中写的很清楚,按照提示修改就可以了。

逻辑异常

在语法正确的情况下,如果程序中出现逻辑错误,那么也是会报错的,这类错误就是逻辑异常。

比如计算1/0,我们知道0是不能作为除数的,这属于逻辑错误,程序就会报异常。

a = 1 / 0

print(a)

a = 1 / 0

ZeroDivisionError: division by zero

再比如这个例子,程序就会报异常,说b这个玩意儿没有定义,不知道是啥。

a = 1 / b

print(a)

a = 1 / b

NameError: name 'b' is not defined

异常处理

有的时候我们怀疑某段代码可能会报错,或者说是担心会报错,但是又不希望程序会因此断掉。这时候我们就可以用try语句捕获异常信息。

try:

1/0

except:

print('程序报错了')

print('无论1/0对不对,我都不希望程序中止')

正如上面这个例子,虽然1/0是逻辑错误,但是程序并不会报错,程序会依次输出这两句话,然后程序正常退出。

我们也可以根据报错信息的不同做分类处理。

try:

a/0

except ZeroDivisionError:

print('0不能作为被除数')

except NameError:

print('变量没有被定义')

正如上面这个例子,我们可以分别捕获 0不能作为被除数 和 变量没有被定义 这两类异常信息。

当然,我们也可以加上else语句,当try里的内容一点错误也没有时,执行else里的代码。

try:

a/0

except ZeroDivisionError:

print('0不能作为被除数')

except NameError:

print('变量没有被定义')

else:

print('没有任何报错')

练习题

尝试给下列代码添加上try语句,并分别捕获 ZeroDivisionError 、NameError 异常。

x = int(input("请输入一个整数: "))

y = 1 / x

print(x + "的倒数是:" + y)

关注公众号:潘高陪你学编程,回复020,获取习题答案。

Python3报错-Python入门到精通

python除数为0报错_Python3报错-Python入门到精通相关推荐

  1. 【Vue学习笔记】尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通

    尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通 1.Vue核心部分 1.1 Vue简介 1.1.1 Vue是什么? Vue是一套用于构建用户界面的渐进式JavaScript框架. ...

  2. PROE4.0二次开发基视频教程从入门到精通教程

    PROE4.0二次开发基视频教程从入门到精通教程 链接:https://pan.baidu.com/s/19UVFQz351Qa4tpWfPw3jRg 提取码:x7g8

  3. python如何分别控制2个相同的窗口_Python入门到精通(2):使用Python计算数学算式...

    IDLE是Python的集成开发环境,IDLE包含在Python安装包中,Python安装完成后,IDLE就自动安装好了. 1.启动IDLE 启动IDLE开发工具主要有两种方法:第一种方法是在小娜搜索 ...

  4. python除数为0报错_浅谈pandas dataframe对除数是零的处理

    如下例 data2['营业成本率'] = data2['营业成本本年累计']/data2['营业收入本年累计']*100 但有营业收入本年累计为0的情况, 则营业成本率为inf,即无穷大,而需要在表中 ...

  5. python处理报错_python3报错及解决方案/须注意的细节(持续更新)

    问题: 编码的问题导致.在pymysql.connect()创建连接时,参数charset="utf8",而非"utf-8". 2.latin-1 codec ...

  6. python下标从0开始_从零学Python之入门(三)序列

    sequence 序列 sequence(序列)是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于我们还没有引入"对象"概念,暂时说元素) 序列可以包含一个或多个元素,也可 ...

  7. python类的定义和使用_Python3基础之python 之 面向对象基础(定义类、创|python基础教程|python入门|python教程...

    第七章面向对象 1.面向过程编程核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式 优点:复杂的问题流 ...

  8. python中换行符怎么写_python3中换行 python中换行符怎么写

    英文换行格式规定? 可以断开连接.即使是有趣的单词,也可以加上连字符"-",然后断开连接 \n是回车和换行符,即光标移动到下一行,并从下一行输入和输出.这和新线效应是一样的.\r只 ...

  9. python中if语句and和or用法_Python从入门到精通——一文读懂if语句用法

    1.if语句概述 if语句能够进行条件测试,并依据一定的条件进行具体的操作 2.if语句条件测试 if语句的核心是一个值为True或False的表达式,这种表达式称为条件测试.Python根据条件测试 ...

  10. 0基础如何自学Java(从入门到精通)

    如果你想自学 Java,认真看完本文,你以后的职场生涯至少少走1年弯路. 行业现状 ==== 程序员现状 由于程序员的薪水比较高,最近几年有很多其他专业的人涌进了程序员行业,加速了这个行业的内卷,但是 ...

最新文章

  1. MySQL下的NoSQL解决方案HandlerSocket
  2. 【Ubuntu】ubuntu物理机安装方法:wubi
  3. ABAP Netweaver上调用Java程序
  4. 5G时代到来,那我们现在用的4G手机怎么办?
  5. python-包机制
  6. button html ios,iOS实现UIButton图标和文字上下布局
  7. windows nslookup 查询域名并生成路由批处理
  8. 用C语言实现猜数字游戏
  9. 【2022 李宏毅】机器学习导论
  10. MySQL嵌套查询(子查询)
  11. 关于 未受信任的企业级开发者 提示的解决
  12. java 读文件时,readline的问题
  13. 工控组态编程相关知识点介绍
  14. chromeOS运行Steam Alpha版
  15. 【虚拟机Linux系统】如何将系统语言由英文改成中文?
  16. 数据挖掘学习笔记01——数据挖掘的基本流程
  17. 使用python进行北京二手房信息数据分析及可视化展示
  18. 关于android的nfc问题 Ultralight c (通用卡)
  19. 如何静下心做些事情呢
  20. APP爬虫之央视新闻

热门文章

  1. 线性代数_1、二阶、三阶行列式、排列、逆序
  2. KITTI数据集calib文件解析
  3. 查学籍网站报服务器错误,学籍系统常见问题
  4. 炉石兄弟 修复图腾师问题 by大神beebee102, 还有阴燃电鳗
  5. Zabbix监控网站
  6. 【githubboy】一份开源的小型金融知识图谱构建流程,可帮助你更好的学习与理解知识图谱的使用
  7. SpringBoot系列之集成EasyExcel导入合并行数据
  8. 机器学习10大经典算法
  9. Word to PDF Converter v3.0 算法分析及注册机
  10. 电子设计大赛-无线电类题目分析