今日内容总结
-
重要内置函数
-
常见内置函数
-
可迭代对象
-
迭代器对象
-
for循环的本质
-
异常捕获/处理
重要内置函数
zip zip() 函数用于将可迭代的对象作为参数,主要功能是将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 如果各个iterable迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。 要点:打包成元组,返回列表,如果长度不一致,则与短的iterable对齐
filter filter函数是Python中常用的内置函数,调用无需加载库,直接使用即可。它主要用来根据特定条件过滤迭代器中不符合条件的元素,返回一个惰性计算的filter对象或迭代器。需要用list函数进行转换,才能得到符合的条件元素组成的新列表。 其基本调用语法如下: filter(function or None, iterable) function:函数,作用是对iterable中的每个元素判断是否符合特定条件。 None:不调用任何函数,只对可迭代对象中的元素本身判断真假,保留为真的元素。 iterables:可迭代对象(序列、字典等)。 ''' 从结果知,filter函数的作用是挑选出了序列c中大于0的元素组成了新的对象或迭代器。通过list函数进行转换,进而得到符合条件的元素组成的新列表。如果有朋友对代码中的lambda函数不熟悉,可以参考【Python常用函数】一文让你彻底掌握Python中的lambda函数。 '''
sorted 对于Python内置函数sorted(),先拿来跟list(列表)中的成员函数list.sort()进行下对比。在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的。 主要的区别在于,list.sort()是对已经存在的列表进行操作,进而可以改变进行操作的列表。而内建函数sorted返回的是一个新的list,而不是在原来的基础上进行的操作. ''' 即默认升序 '''
常见内置函数
1.abs() 绝对值 print(abs(-100)) print(abs(100)) 2.all() 所有数据值对应的布尔值为True结果才是True 否则返回False print(all([0, 1, 2, 3])) print(all([1, 2, 3, True])) 3.any() 所有数据值对应的布尔值有一个为True结果就是True 否则返回False print(any([0, None, '', 1])) print(any([0, None, ''])) 4.bin() oct() hex() int() 5.bytes() 转换成bytes类型 s1 = '今天周五 内容也很简单' print(s1.encode('utf8')) print(bytes(s1, 'utf8')) 6.callable() 判断名字是否可以加括号调用 name = 'jason' def index(): print('from index') print(callable(name)) # False print(callable(index)) # True 7.chr() ord() 基于ASCII码表做数字与字母的转换 print(chr(65)) # A print(ord('A')) # 65 8.dir() 返回括号内对象能够调用的名字 print(dir('hello')) 9.divmod() 元组 第一个数据为整除数 第二个是余数 res = divmod(100, 2) print(res) # (50, 0) res = divmod(100, 3) print(res) """ 总数据 每页展示的数据 总页码 100 10 10 99 10 10 101 10 11 """ page_num, more = divmod(9999, 20) print(divmod(99, 10)) # (9, 9) if more: page_num += 1 print('总页码为:', page_num) # 总页码为: 500 10.enumerate() 枚举 11.eval() exec() 能够识别字符串中的python并执行 s1 = 'print("哈哈哈")' eval(s1) exec(s1) s2 = 'for i in range(100):print(i)' eval(s2) # 只能识别简单的python代码 具有逻辑性的都不行 exec(s2) # 可以识别具有一定逻辑性的python代码 12.hash() 哈希加密 print(hash('jason')) 13.id() input() isinstance() 14.map() max() min() 15.open() 16.pow() 幂指数(次方) print(pow(2, 2)) print(pow(2, 3)) print(pow(2, 4)) 17.range() 18.round() 四舍五入 print(round(98.3)) print(round(98.6)) 19.sum() print(sum([11, 22, 33, 44, 55, 66])) 20.zip()
可迭代对象
1.可迭代对象 对象内置有_inter_方法的都成为可迭代对象 ''' 1.内置方法 通过点的方式能够调用的方法 2._inrer_ 双下liter方法 ''' 2.可迭代对象的范围 不是迭代对象 int float bool 函数对象 是迭代对象 str list dict tuple set 文件对象 3.可迭代的含义 """ 迭代:更新换代(每次更新都必须依赖上一次的结果) 比如:软件更新 """ 可迭代在python中可以理解为是否支持for循环
迭代器对象
1.迭代器对象 是由可迭代对象调用_iter_方法产生的 迭代器对象判断的本质是否有_inter_和_next_ 2.迭代器对象的作用 提供了一种不依赖于索引取值的方式 正因为有迭代器的存在 我们的字典、集合才能够被for循环 (因为自带和集合是无序的) 3.迭代器对象实操 s1 = 'hello' #可迭代对象 res = s1._inter_() #迭代器对象 print(res._next_()) #迭代取值 for循环的本质 一旦_next_取不到值 会直接报错 4.注意事项 可迭代对象调用_inter_会成为迭代器对象 迭代器对象如果还调用__iter__不会有任何变化 还是迭代器对象本身
for循环的本质
for 变量名 in 可迭代对象: 循环体代码 """ 1.先将in后面的数据调用_inter_转变成迭代器对象 2.依次让迭代器对象调用_next_取值 3.一旦_next_取不到值报错 for循环会自动捕获并处理 """
异常捕获/处理
1.异常 异常就是代码运行报错 行业俗语叫bug 2.异常分类 语法错误 不允许出现 一旦出现立刻改正 否则提捅跑路 逻辑错误 允许出现 因为他一眼发现不了 代码运行之后才可能出现 3.异常结构 错误位置 错误类型 错误详细