翼度科技»论坛 编程开发 python 查看内容

匿名函数和常见是内置函数(配合匿名使用)和for循环的原理,异常的捕获

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
匿名函数和常见是内置函数(配合匿名使用)和for循环的原理,异常的捕获


  • 匿名函数
  • 常见的内置函数(配合匿名函数使用)
  • 可迭代对象
  • 迭代器对象
  • for循环内部原理
  • 异常捕获
匿名函数
  1. 匿名函数不需要显示地定义函数名,使用【lambda + 参数 +表达式】的方式
  2. lambda [arg1 [,arg2, ... argN]] : expression
复制代码
常见的内置函数(配合匿名函数使用)
  1. # map() 会根据提供的函数对指定序列做映射。
  2. l1 = [1, 2, 3,4,5,6]
  3. res=map(lambda a:a*2,l1)
  4. print(list(res))
复制代码
  1. #zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
  2. 利用 * 号操作符,可以将元组解压为列表。
  3. l1 = [1, 2, 3,4,5,6]
  4. l2=[1,2,3,4,5,56,7]
  5. res=zip(l1,l2)
  6. print(list(res))
  7. l1 = [1, 2, 3,4,5,6]
  8. l2=[1,2,3,4,5,56,7]
  9. res=zip(*zip(l1,l2))
  10. print(list(res))
复制代码
  1. #max() 方法返回给定参数的最大值,参数可以为序列。
  2. l1 = [1, 2, 3,4,5,6]
  3. res=max(l1)
  4. print(res)
  5. d = {
  6.     'kevin': 1000,
  7.     'jerry': 30000,
  8.     'Tank': 200000,
  9.     'Oscar': 100
  10. }
  11. print(max(d,key=lambda x:d[x]))
复制代码
  1. filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表
  2. 过滤出1~100中平方根是整数的数:
  3. import math
  4. def is_sqr(x):
  5.     return math.sqrt(x) % 1 == 0
  6. newlist = filter(is_sqr, range(1, 101))
  7. print(list(newlist))
复制代码
可迭代对象
  1. 迭代:更新换代,每一次的更新都是基于上一次的结果
  2. 可迭代对象:
  3.         内置有__iter__方法的都可以称之为是可迭代对象
  4.     '内置': 直接可以使用点出来的
  5.     """
  6.             __iter__方法的读法
  7.             后面会有_开头的方法,这种方式也是有特殊含义的,大家最后先不要使用
  8.     """
  9. """
  10. 可迭代对象:
  11.     str、list、dict、set、tuple、文件类型
  12. 以上基本数据类型都是可迭代对象
  13. """
  14. '''可迭代对象调用__iter__方法之后就是迭代器对象了'''
  15. __iter__开头的方法都有一个与之对应的简写:iter(s) 方法名()
  16. i = 123
  17. f = 1.11
  18. s = 'hello'
  19. l = [1, 2, 3, 4]
  20. t = (1, 2, 3, 4)
  21. se = {1, 2, 3, 4}
  22. d = {'a':1, 'b':2}
  23. b = True
  24. # i.__iter
  25. # f.__ite
  26. s.__iter__()
  27. l.__iter__()
  28. t.__iter__()
  29. se.__iter__()
  30. d.__iter__()
  31. # b.__iter
  32. file = open('a.txt', 'w')
  33. file.__iter__()
复制代码
  1. '''可迭代对象调用__iter__方法之后就是迭代器对象了'''
  2. print(s.__iter__()) # <str_iterator object at 0x0000023F68F31100>
  3. print(iter(s))
  4. def iter(s):
  5.     return s.__iter__()
  6. print(len(s))
  7. print(s.__len__())
  8. def len(s):
  9.     return s.__len__()
  10. """
  11. __iter__开头的方法都有一个与之对应的简写:iter(s) 方法名()
  12. """
复制代码
迭代器对象
  1. 迭代器:
  2.         内置有__iter__方法还内置有__next__方法
  3.    
  4. 如何转为迭代器对象
  5.         有可迭代对象调用__iter__()方法转为迭代器对象
复制代码
  1. l = [1, 2, 3, 4]
  2. print(l.__iter__().__next__()) # 1
  3. print(l.__iter__().__next__()) # 1
  4. print(l.__iter__().__next__()) # 1
  5. print(l.__iter__().__next__()) # 1
  6. res = l.__iter__()
  7. print(res.__next__())  # 1
  8. print(res.__next__())  # 2
  9. print(res.__next__())  # 3
  10. print(res.__next__())  # 4
复制代码
for循环内部原理
  1. for循环内部的原理:
  2.                 1. 首先把关键字in后面的可迭代对象转为迭代器对象
  3.                 2. while循环取值__next__迭代取值,当next取值完毕的时候会报错
  4.                 3. 当内部报错的时候,for循环进行了异常捕捉
复制代码
异常捕获

  1. 捕捉异常可以使用try/except语句。
  2. try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
  3. 如果你不想在异常发生时结束你的程序,只需在try里捕获它。
复制代码
  1. try:
  2.     正常的操作
  3.    ......................
  4. except:
  5.     发生异常,执行这块代码
  6.    ......................
  7. else:
  8.     如果没有异常执行这块代码
  9.    
  10.    
  11.     try:
  12.     正常的操作
  13.    ......................
  14. except(Exception1[,Exception2[,...ExceptionN]]):
  15.    发生以上多个异常中的一个,执行这块代码
  16.    ......................
  17. else:
  18.     如果没有异常执行这块代码
复制代码
  1. try-finally 语句无论是否发生异常都将执行最后的代码。
  2. try:
  3.     fh = open("testfile", "w")
  4.     fh.write("这是一个测试文件,用于测试异常!!")
  5. finally:
  6.     print( 没有找到文件或读取文件失败")
  7. '''
  8. try:
  9.     正常的操作
  10.    ......................
  11. except ExceptionType, Argument:
  12.     你可以在这输出 Argument 的值...
  13. '''
  14. l=[1,2,3,4,5]
  15. res= l.__iter__()
  16. while True:
  17.     try:
  18.         print(res.__next__())
  19.     except Exception:
  20.         break
复制代码
来源:https://www.cnblogs.com/zhangfanshixiaobai/p/17700592.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具