异常
异常是一种运行时的错误,通常是由于程序的运行状态超出了程序员所掌控的范围。
常见的异常
AttributeError 向一个对象发起了不可用的功能请求
(3,2,1).sort #元组不能进行更改,无sort方法
FileNotFoundError 请求的文件不存在或不再指定位置
importError import语句无法找到请求的模块
IndexError 索引越界
KeyError 字典中没有该键
NameError 变量的值无法找到
TypeError 一个函数或一个操作符收到的参数类型错误
x = len(23) #len()是对于字符串的操作
ValueError 函数或操作符收到的参数类型正确,但是值不正确
x = int('a') #error
ZeroDivisionError 在除法或取余操作中第二个操作数为0
num = 1/0 #error
try语句
python会首先去执行try语句块,如果异常发生,则跳到except子句
try:
#如果用户在此处不进行输入则会发生异常,因为输入的空字符串无法转换为一个整数
num = int(input("Enter number of dependents:"))
except ValueError:
print("\nYou did not respond with an integer value.\n")
print("We will assume your answer is 0\n")
num = 0
sum = 1000*num
print("sum:",sum)
注:不论是否发生异常,最后两条语句都会被执行。
except类型
一个try语句可以包含几个except子句,下面是三种except子句类型
- except:发生任何异常都会执行这个语句块的内容。
- except ExceptionType:只有发生了特定类型的异常才执行这个语句块的内容。
- except ExceptionType as exp: 只有发生了特定类型的异常才执行这个语句块的内容,问题的附加信息赋值给了exp变量。
- 一个单独的except子句可以涉及多种错误类型,如果是这样的话,错误名称需要在元组中列出来,except (ValueError,NameError) as exc:。
生成随机数
random模块中的函数
如果L是一个列表
random.choice(L) 从L中随机选择一个元素
random.sample(L,n) 将会创建一个列表,其中包含从L中随机选取的n个元素
random.shuffle(L) 将会随机重排L中的元素
random.randint(m,n) 将会从m~n中随机选择一个整数