作为编程人员,无论我们学习何种编程语言,在学习的初期,都会在运行中遇见许多异常,这往往会给我们带来很大的困扰,所以如何避免异常就变得尤为重要。可能对许多从事多年编码的人员,会在编码的过程中就解决掉了,所以今天我所要说的python异常处理,仅仅是针对于初学者,希望我的浅薄之言可以对你有所帮助,同时希望指出错误,大家共同学习,进步。
1.python异常处理方式
list = [1,2,3,4,5,6,7,8]
# IndexError: list index out of range
# print(list[14])
dic = {}
# 如果dic有name属性 则修改这个属性的值,如果没有name属性 则添加name属性
dic['name'] = '张三'
# KeyError: 'age'
print(dic['name'])
# 将有可能引起错误的代码放进try里面, 如果出现错误,代码会根据错误类型 进入到指定的except, 这样做的,代码不会因为错误而中断执行。
try :
# print(list[14])
print(dic['age'])
except IndexError as e :
print('捕获了一个索引错误{}'.format(e))
except KeyError as e :
print('捕获了一个关键字错误{}'.format(e))
print('hello world')
try :
print(list[21])
# Exception 和 IndexError , KeyError ...
# 为父与子关系
except Exception as e :
print('捕获了一个错误{}'.format(e))
try:
print('这是一个标准格式')
print(dic['data'])
except IndexError as e:
print('上一行代码出现了索引错误{}'.format(e))
except KeyError as e:
print('上一行代码出现了关键字错误{}'.format(e))
# 如果没有出现任何错误 即执行else代码块
else :
print('目前代码感觉良好')
finally:
print('代码结束')
2.函数的基础操作
# def define 定义
# def + 方法名字 + (参数(形参))
def mySelf():
print('今天是2018年7月4日,'
'我上班的第一天,'
'省略一万字....感觉自己萌萌哒,'
'谢谢大家')
print('今天是2018年7月5日,'
'今天领导批评了我,'
'感觉很不爽,'
'要辞职')
print('今天是2018年7月6日,已辞职')
mySelf()
mySelf()
mySelf()
# 无参数无返回值
def fun1():
print('Hello World')
fun1()
# 参数的实质就是变量
# 声明方法时候的参数 叫做形式参数
def fun1(name):
print('大家好,我的名字是{}'.format(name))
# 声明方法的时候 如果有参数, 那么调用方法一定也要有参数,声明方法时候的参数叫做形参(形参即为变量),调用方法时候的参数叫做实参(实参为给变量赋值)。
fun1('渣渣辉')
# 没有参数 有返回值的方法
# 局部变量
def fun1():
# 在局部声明的变量即为局部变量,(在方法内部声明的变量全部是是局部变量
# 局部变量的作用范围, 即为声明变量的这个方法,出了这个方法的范围 就不能再使用这个变量)
result = 1 + 2 + 3 + 4 + 5+ 6 + 7 + 8 + 9
# 将这个值拿到方法的外面使用
return result
content = fun1()
print('1+ 9 的结果是{}'.format(content))
def fun1():
result = 1+2+3+4+5
return result
print('1+9的结果是{}'.format(fun1()))
# 有返回值 有参数的方法
def fun1(name , age ):
result = '我的姓名是{},我的年龄是{}'.format(name ,age)
return result
print(fun1('张三',17))
# 全局变量------------------------------
# name = '张三'
def fun1():
# global 全球的;全局的
# global name
# print(name)
name = '李四'
print(name)
fun1()
# 默认参数-------------------------------
# 想让哪个参数成为默认参数都可以,但是一定要注意:默认参数放入参数列表的队尾
def fun1(name , fond, age=17 ):
print('我是{},我的年龄是{},我的爱好是{}'.format(name ,age ,fond))
fun1('小明','吃鸡',99)
fun1('小明','LOL')
# def fun1(age=17 ,fond ='吃鸡',name):
# pass
# 上面这种写法是错误的:
# 因为默认参数一定要写在参数列表的队尾
# 关键参数------------------------------------------
def fun1(name ,age=17 ,sex='男',fond='game'):
print('我是{},我今年{},我是{}的,我喜欢{}'.format(name ,age ,sex,fond))
fun1('小明')
fun1('小兰',16 ,'女')
# 指定指明给某个参数赋值 这个参数就叫做关键参数
fun1('小张',fond='吃饭')
fun1(fond='学习',age = 7 ,name = '小王')
# 如果参数中参数为非默认参数
# 那么调用方法的时候 一定要给它赋值
# fun1(age = 7 , fond='吃饭')
# *args用法-----------------------------------
# arguments 参数
# 将多余的参数统统放入args里面
def fun1(a ,b ,*args):
print('a的值是:{}'.format(a))
print('b的值是:{}'.format(b))
print('args的值是:{}'.format(args[0]))
print('{} + {} = {}'.format(a , b , a + b ))
# fun1(10 , 15)
fun1(10, 15 ,20)
fun1(10, 15, 20, 25)
fun1(10 , 15 ,20 ,25 ,30)
# 返回值return--------------------------------
# 作用1:将方法内部的结果 让外面来使用
def jing():
jingShui = '我是井水,我只能在jing这个方法里面用,外面用不到'
# 将井水运送出井
return jingShui
print(jing())
def fun1():
print('今天走了一步')
print('今天走了两步')
# 截断 :return后面的代码 统统不执行
return
print('今天走了三步')
fun1()
def isOpen(open):
# 如果灯已经打开了
if open == True:
return
print('打开灯')
isOpen(False)