python除数为0报错_Python3报错-Python入门到精通
前言
更多内容,请访问我的 个人博客。
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入门到精通相关推荐
- 【Vue学习笔记】尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通
尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通 1.Vue核心部分 1.1 Vue简介 1.1.1 Vue是什么? Vue是一套用于构建用户界面的渐进式JavaScript框架. ...
- PROE4.0二次开发基视频教程从入门到精通教程
PROE4.0二次开发基视频教程从入门到精通教程 链接:https://pan.baidu.com/s/19UVFQz351Qa4tpWfPw3jRg 提取码:x7g8
- python如何分别控制2个相同的窗口_Python入门到精通(2):使用Python计算数学算式...
IDLE是Python的集成开发环境,IDLE包含在Python安装包中,Python安装完成后,IDLE就自动安装好了. 1.启动IDLE 启动IDLE开发工具主要有两种方法:第一种方法是在小娜搜索 ...
- python除数为0报错_浅谈pandas dataframe对除数是零的处理
如下例 data2['营业成本率'] = data2['营业成本本年累计']/data2['营业收入本年累计']*100 但有营业收入本年累计为0的情况, 则营业成本率为inf,即无穷大,而需要在表中 ...
- python处理报错_python3报错及解决方案/须注意的细节(持续更新)
问题: 编码的问题导致.在pymysql.connect()创建连接时,参数charset="utf8",而非"utf-8". 2.latin-1 codec ...
- python下标从0开始_从零学Python之入门(三)序列
sequence 序列 sequence(序列)是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于我们还没有引入"对象"概念,暂时说元素) 序列可以包含一个或多个元素,也可 ...
- python类的定义和使用_Python3基础之python 之 面向对象基础(定义类、创|python基础教程|python入门|python教程...
第七章面向对象 1.面向过程编程核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式 优点:复杂的问题流 ...
- python中换行符怎么写_python3中换行 python中换行符怎么写
英文换行格式规定? 可以断开连接.即使是有趣的单词,也可以加上连字符"-",然后断开连接 \n是回车和换行符,即光标移动到下一行,并从下一行输入和输出.这和新线效应是一样的.\r只 ...
- python中if语句and和or用法_Python从入门到精通——一文读懂if语句用法
1.if语句概述 if语句能够进行条件测试,并依据一定的条件进行具体的操作 2.if语句条件测试 if语句的核心是一个值为True或False的表达式,这种表达式称为条件测试.Python根据条件测试 ...
- 0基础如何自学Java(从入门到精通)
如果你想自学 Java,认真看完本文,你以后的职场生涯至少少走1年弯路. 行业现状 ==== 程序员现状 由于程序员的薪水比较高,最近几年有很多其他专业的人涌进了程序员行业,加速了这个行业的内卷,但是 ...
最新文章
- MySQL下的NoSQL解决方案HandlerSocket
- 【Ubuntu】ubuntu物理机安装方法:wubi
- ABAP Netweaver上调用Java程序
- 5G时代到来,那我们现在用的4G手机怎么办?
- python-包机制
- button html ios,iOS实现UIButton图标和文字上下布局
- windows nslookup 查询域名并生成路由批处理
- 用C语言实现猜数字游戏
- 【2022 李宏毅】机器学习导论
- MySQL嵌套查询(子查询)
- 关于 未受信任的企业级开发者 提示的解决
- java 读文件时,readline的问题
- 工控组态编程相关知识点介绍
- chromeOS运行Steam Alpha版
- 【虚拟机Linux系统】如何将系统语言由英文改成中文?
- 数据挖掘学习笔记01——数据挖掘的基本流程
- 使用python进行北京二手房信息数据分析及可视化展示
- 关于android的nfc问题 Ultralight c (通用卡)
- 如何静下心做些事情呢
- APP爬虫之央视新闻