bug的由来及分类 p81
字符串形式表示的数字之间也可以比较大小
import re
age=input('年龄:')
if age>'18':print(age)
列表的append操作每次只能添加一个元素:
lst=[]
lst.append('A')
lst.append('B')
# lst.append('A','B') 错误
python中的异常处理机制 p82
try…except的语法结构:
try:可能会抛出异常的代码
except 异常类型:异常处理代码(报错后执行的代码)
代码实例:
try:num1=int(input('请输入一个整数:'))num2=int(input('请输入另一个整数:'))result=num1/num2print('结果:{0:.2f}'.format())
except ZeroDivisionError:print('除数为0')'''
第2个输入为0的时候,会走到except异常分支。
但若输入的不是整数,包含了其它字符,还是会运行报错。
解决方法见下一种语法结构。
若except后面不指定异常名称,则表示捕获全部异常
try…except…except的语法结构:
try:可能抛出异常的代码
except 异常类型A:异常处理代码(报错后执行的代码)
except 异常类型B:异常处理代码(报错后执行的代码)
代码实例:
try:num1 = int(input('请输入一个整数:'))num2 = int(input('请输入另一个整数:'))result = num1 / num2print('结果:{0:.2f}'.format(result))
except ZeroDivisionError:print('除数不能为0')
except ValueError:print('不能将字符串转为整数')
except BaseException:print('未知异常')
try…except…else的语法结构为:
try:可能会抛出异常的代码
except 异常类型:异常处理代码(报错后执行的代码)
else:没有抛异常要执行的代码
代码实例:
try:num1 = int(input('请输入一个整数:'))num2 = int(input('请输入另一个整数:'))result = num1 / num2
# print('结果:{0:.2f}'.format(result))
except ZeroDivisionError:print('除数不能为0')
except ValueError:print('不能将字符串转为整数')
except BaseException:print('未知异常')
else:print('结果:{0:.2f}'.format(result)) # 把第五航执行成功打印的语句挪到此处,也是可以的
try…except…else…finally的语法结构:
try:可能会抛出异常的代码
except 异常类型:异常处理代码(报错后执行的代码)
else:没有抛异常要执行的代码
finally:无论是否产生异常都要执行的代码
raise关键字的使用 p83
raise:抛出一个异常,从而提醒程序出现了异常情况,程序能够正确的处理这些异常情况
语法结构:
raise Exception类型(异常描述信息)
代码实例:
try:gender=input('请输入您的性别:')if gender!='男' and gender!='女':raise Exception('性别只能是男或女') # 此处抛出异常,然后被第七行捕获else:print('您的性别是:{0}'.format(gender))
except Exception as e:print(e)
Python中常见的异常类型 p84
异常类型 | 描述说明 |
---|---|
ZeroDivisionError | 当除数为0时,引发的异常 |
IndexError | 索引超出范围所引发的异常 |
KeyError | 字典取值时key不存在的异常 |
NameError | 使用一个没有声明的变量时引发的异常 |
SyntaxError | Python中的语法错误 |
ValueError | 传入的值错误 |
AttributeError | 属性或方法不存在的异常 |
TypeError | 类型不合适引发的异常 |
IndentationError | 不正确的缩进引发的异常 |
代码实例:
# ZeroDivisionError
#print(10/0)# IndexError
#lst=[10,20]
#print(lst[2])# KeyError
#d={'a':1}
#print(d['b'])# NameError
#print(a)# SyntaxError
#print('a)# ValueError
# int('a')# AttributeError
#i=10
#print(i.name) 整数没有这个属性# TypeError
#print('hello'+123)# IndentationErrorprint('不在if里面就不能缩进')
PyCharm的程序调试 p85
1、设置断点:点击行号,设置断点到对应位置处
2、进入代码调试窗口:a.点击右上角小虫子 b.shift+f9 c.右键+debug main
下面会生成四个窗口:变量查看窗口、调试控制窗口、线程控制窗口、程序控制窗口
本章总结及章节选择题 p86
若except后面不指定异常名称,则表示捕获全部异常