Python异常处理及函数

短命女 2022-05-21 09:50 300阅读 0赞

1.异常处理:

1.1.报错代码

  1. list = [1,2,3,4,5,6,7,8,9]
  2. #IndexError: list index out of range 超出范围牵引
  3. #print(list[14])
  4. dic = {}
  5. 1.2.如果dicname属性 则修改这个属性的值 如果没有name属性 则添加name属性
  6. dic ['name'] = '张三'
  7. 1.3.KeyError: 'age' 没有键值 print(dic['age']) 将有可能引起错误的代码放进try里面 如果出现错误 代码会根据错误类型 进入到指定的except 这样做的: 代码不会因为错误而中断执行好处
  8. try :
  9. print('---------------------------')
  10. #print(list[14])
  11. print(dic['age'])
  12. except ImportError as e:
  13. print('捕获了一个牵引错诶{}'.format(e))
  14. except KeyError as e:
  15. print('捕获了一个关键字错误:{}'.format(e))
  16. print('hrllo world')
  17. try:
  18. print('这是一个标准格式')
  19. print(dic['data'])
  20. except IndexError as e:
  21. print('上一行代码出现了索引错误{}'.format(e))
  22. except KeyError as e:
  23. print('上一行代码出现了关键字错误{}'.format(e))
  24. 如果没有出现任何错误 即执行else代码块
  25. else:
  26. print('目前代码感觉良好')
  27. finally:
  28. print('代码结束')
  29. age = input('请输入你的年龄')
  30. age = int(age)
  31. if age < 0:
  32. print('年龄不对')
  33. raise 升起: 在此指抛出错误 手动抛出异常
  34. raise Exception('年龄不对。请务必输入一个大于0的数值')

2.python函数:

  1. 2.1.def define定义 def + 方法名字 + (参数(形参))
  2. def mySelf():
  3. print('今天是2018年7月4日,我到智游上班的第一天,'
  4. '感觉自己萌萌哒,'
  5. '省略一万字0......,'
  6. '谢谢大家')
  7. print('今天是2018年7月5日,'
  8. '今天领导批评了我,'
  9. '感觉很不爽,'
  10. '我要辞职')
  11. print('今天是2018年7月6日,已辞职')
  12. mySelf()
  13. mySelf()
  14. mySelf()
  15. mySelf()

2.2.无参数无返回值

  1. def fun1():
  2. print('hrllo world')
  3. fun1()

2.3. 参数的实质就是变量

  1. 声明方法的时候的参数 叫做形式参数
  2. def fun1(name):#name形参
  3. print('大家好,我的名字是:{}'.format(name))

2.4. 声明方法的时候 如果有参数

  1. 那么调用方法一定也要有参数 声明方法时候的参数叫做形参(形参即为变量) 调用方法的时候的参数叫做实参(实参为给变量赋值
  2. fun1('渣渣辉')#渣渣辉实参
  3. 少了一个必须的参数 #TypeError: fun1() missing 1 required positional argument: 'name' 声明方法的时候 如果有参数
  4. 2.5.没有参数 有返回值的方法 局部变量
  5. def fun1():
  6. #在局部声明的变量即为局部变量
  7. #(在方法内部声明的变量全部是局部变量
  8. #局部变量的作用范围
  9. #即为声明变量的这个方法
  10. #出了这个方法的范围 就不能再使用这个变量 )
  11. result = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9
  12. #将这个值拿到这个方法的外面使用
  13. return result
  14. content = fun1()
  15. print('1+9的结果是{}'.format(content))
  16. print('1+9的结果是{}'.format(fun1()))
  17. 有返回值 有参数的方法
  18. def fin1(name,age): result = '我的姓名是{},我的年龄是{}'.format(name,age) return result print(fin1('张三',17))
  19. 全局变量
  20. name = '张三'
  21. def fun1():
  22. #global 全球的;全局的
  23. global name
  24. name = '李四'
  25. print(name)
  26. fun1()
  27. 3.默认参数 想让那个参数成为默认参数都可以 但是一定要注意:默认参数放入参数列表的队尾
  28. def fun1(name,age=17,fond = '吃鸡'):
  29. print('我是{},我的年龄是{},我的爱好{}'.format(name,age,fond))
  30. fun1('小明',18)
  31. fun1('小明')
  32. 这种写法是错误的: 因为默认参数一定要写在参数列表的队尾 def fun1(age=17,fond='吃鸡',name): pass
  33. 3.1关键参数
  34. def fun1(name,age=17,sex='男',fond='game'):
  35. print('我是{},今年{},我是{}的,我喜欢{}'.format(name,age,sex,fond))
  36. fun1('小兰')
  37. fun1('小兰',16,'女')
  38. 指定指明给某个参数 这个参数就叫做关键参数
  39. fun1('校长',fond='吃饭')
  40. fun1(fond='学习',age=7,name='小啊')
  41. 3.2如果参数中参数为非默认参数 那么调用方法的时候 一定要给它赋值
  42. #fun1(age=7,fond='吃饭')
  43. #*args用法--------------
  44. #args arguments 参数
  45. #将多余的参数统统放入args里面
  46. def fun1 (a,b,*args):
  47. print('a的值是:{}'.format(a))
  48. print('b的值是:{}'.format(b))
  49. print('args的值是:{}'.format(args))
  50. print('{} + {} = {}'.format(a,b,a+b))
  51. fun1(10,15)
  52. fun1(10,12,13)
  53. fun1(12,23,56,45)
  54. fun1(12,456,78,9,78,78)
  55. 3.3返回值return 作用1:将方法内部的结果 让外面来使用的
  56. def jing ():
  57. jingshui= '我是井水,我只能在fun1这个方法里面使用,外面用不到'
  58. #将井水运送出井
  59. return jingshui
  60. print(jing())
  61. def fun1():
  62. print('今天走了一步')
  63. print('今天走了两步')
  64. #return:截断后面的代码 统统不执行
  65. return
  66. print('今天走了三部')
  67. fun1()
  68. def isOpen(open):
  69. #如果灯已经打开了
  70. if open == True:
  71. return
  72. print('打开灯')
  73. isOpen(False)

4.高级函数:

4.1:

  1. space = '---------'
  2. word = 'Hello World'
  3. print(space.join(word))
  4. def fum1(*args,sep = ''):
  5. pstr = sep.join(args)
  6. print(pstr)
  7. print('a','b','c',sep='~~~')
  8. fum1('a','b','c', sep='!!!')
  9. def my_map(string):
  10. allNumberList={
  11. '0':0,
  12. '1':1,
  13. '2':2,
  14. '3':3,
  15. '4':4,
  16. '5':5
  17. }
  18. return allNumberList[string]
  19. 4.2map接受两个参数:参数1是函数 参数2是序列 map函数的意义就是讲序列里面的每一个值都在 前面的函数中进行处理 并返回一个新的列表
  20. resilt = list(map(my_map,'5555'))
  21. print(resilt)
  22. *指针
  23. def fun1(*args):
  24. print(args)
  25. 讲元组里面的每一个元素转化成字符串放入list里面 为什么讲元组转化成列表? 元组不可变 列表可变
  26. args = list(map(str,args))
  27. print(args)
  28. fun1(1,2,3)
  29. 4.3reduce()函数接受的参数和map()一样 参数1:函数 参数2:x序列 不同的是reduce()对序列里面的每一个元素反复 调用函数 并返回一个最终结果
  30. from functools import reduce
  31. def my_reduce(x,y):
  32. return x+y
  33. print(reduce(my_reduce,[1,2,3,4,5,6,7,8,9,10]))
  34. def fun1(a,b=10,*args,**kwargs):
  35. print('a的值是{}'.format(a))
  36. print('args的值是{}'.format(args))
  37. print('kwargs的值是:{}'.format(kwargs))
  38. fun1('你好')
  39. fun1('nice','to','meet','you')
  40. #name 和 age不是关键参数
  41. fun1('hello',name='张三',age=18)
  42. fun1(a=10,b=10)
  43. fun1(10,None,[{'name':'张三'}])
  44. fun1(10,[{'name':'张三'}],[{'name':'张三'}])
  45. eval() 将括号里面的内容当成代码来执行 慎用 确保安全
  46. result = '12/3*4'
  47. content = eval(result)
  48. print(content)

4.4:匿名函数———————————————

  1. lambda 匿名函数 后面只能写比较简单的逻辑
  2. result = lambda x , y : x + y
  3. print(result(5,6))
  4. print(result(11,12))
  5. def fun1(x,y):
  6. return x+y
  7. print(fun1(5,6))
  8. list1= [1,22,11,12,32,45,7,8,56,14]
  9. list1= sorted(list1,key=lambda x:x)
  10. print(list1)
  11. list2 = [
  12. {
  13. 'name':'张三',
  14. 'age' :16
  15. },
  16. {
  17. 'name':'李四',
  18. 'age':45
  19. },
  20. {
  21. 'nmae':'校长',
  22. 'age':46
  23. }
  24. ]
  25. list2 = sorted(list2,key=lambda x:x['age'],reverse = True)
  26. print(list2)
  27. list3 = [
  28. {
  29. 'name':'张三',
  30. 'info':{
  31. 'age':14,
  32. 'height':456
  33. }
  34. },
  35. {
  36. 'name':'夏' ,
  37. 'info':{
  38. 'age':13,
  39. 'height':457
  40. }
  41. },
  42. {
  43. 'name':'夹',
  44. 'info':{
  45. 'age':15,
  46. 'height':158
  47. }
  48. }
  49. ]
  50. list3 = sorted(list3,key=lambda x:x['info']['age'])
  51. print(list3)

发表评论

表情:
评论列表 (有 0 条评论,300人围观)

还没有评论,来说两句吧...

相关阅读