Python基础15

今日内容概要

  • 重要内置函数
  • 常见内置函数
  • 可迭代对象
  • 迭代器对象
  • for循环的本质
  • 异常

今日内容详细

重要内置函数

1.zip()
	zip 函数是可以接收多个可迭代对象,然后把每个可迭代对象中的第i个元素组合在一起,形成一个新的迭代器,类型为元组。
	# 两个可迭代对象数据值个数相同的情况下
	l1 = [1, 2, 3]
	l2 = ['jason', 'jack', 'tony']
	res = zip(l1, l2)
	# 此时的res是一个迭代器对象 需要转换类型才能看到具体的数据
	print(list(res))  # [(1, 'jason'), (2, 'jack'), (3, 'tony')]
   # 两个可迭代对象数据值个数不相同的情况下
	l3 = [1, 2, 3]
	l4 = ['jason', 'jack']
	res1 = zip(l1, l2)
	print(list(res1))  # [(1, 'jason'), (2, 'jack')] 多余的丢弃
    
3.filter
	filter 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
	语法:filter(function, iterable)
	参数:function是进行判断的条件,可以是匿名函数,function必须返回一个bool变量,当function判断为True时,该元素进行保留,当function判断为False时,该元素不保留。
	l5 = [11, 22, 33, 44 ,55]
	res2 = filter(lambda x:x > 30, new_list)
	# 特别需要注意到一点是在Python2.7版本中filter()返回列表,而在Python3.x版本中filter()返回迭代器对象,我们可以使用内置函数list()手动将filter迭代器对象转化为列表
	print(list(res2))  # [33, 44, 55]
    
4.sorted
	sorted 函数是对可迭代对象进行排序。
	语法:sorted(iterable, cmp=None, key=None, reverse=False)
	参数:
		iterable是待排序的可迭代对象。
		cmp是比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
		key是排序关键字,主要是用来进行比较的元素,只有一个参数,具体的函数的参	数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
		reverse是排序规则reverse = True 降序 , reverse = False 升序(默认)

	l6 = [33, 22, 55, 11, 88]
	res = sorted(l6)
	print(res)  # 默认是升序 [11, 22, 33, 55, 88]

常见内置函数

1.abs()
	其主要作用是对传入的参数,返回其的绝对量或绝对值
2.all()
	所有数据值对应的布尔值为True结果才是True 否则返回False
3.any()
	所有数据值对应的布尔值有一个为True结果就是True 否则返回False
4.bin() oct() hex() int()
	bin()转换为二进制 oct()转换为八进制 hex()转换为十六进制 int()转换为十进制
5.bytes()
	转换成bytes类型
6.callable()
	用于检查一个对象是否是可调用的。如果返回 True,仍然可能调用失败;但如果返回 False,调用对象绝对不会成功
7.chr() ord()
	基于ASCII码表做数字与字母的转换
	chr(数字) 返回值是对应的字符
	ord(字符) 返回值是对应的数字
8.dir()
	返回括号内对象能够调用的名字
9.divmod()
	返回元组 第一个数据为整除数 第二个是余数
	print(divmod(100, 3))  # (33, 1)
10.enumerate()
	返回一个元组,里面包含一个计数值(从 start 开始,默认为 0)和通过可迭代对象迭代获得的值
11.eval() exec()
	能够识别字符串中的python代码并执行
   eval() 只能识别简单的python代码 具有逻辑性的都不行
	exec() 可以识别具有一定逻辑性的python代码
12.hash()
	哈希加密
	用于获取取一个对象(字符串或者数值等的哈希值
13.isinstance()
	判断是否是一个已知类型
	a = 100
	res = isinstance(a, int)
	print(res)  # True
14.id() input() map() max() min() open() range() zip()
15.pow()
	返回一个数的次幂,可以利用pow函数计算一个数的平方,3次方等常见的操作
	print(pow(2, 2))  # 4
	print(pow(2, 3))  # 8
16.round()
	返回四舍五入值  # 其实是五舍六入
   print(round(98.3))  # 98
	print(round(98.6))  # 99
17.sum()
	对序列进行求和计算

可迭代对象

1.可迭代对象
	对象内置有__iter__方法的都称为可迭代对象
	'''
	内置方法 通过点的方法能够调用的方法
	__iter__ 通常叫双下iter方法
	'''
2.可迭代对象的范围
	不可迭代对象
		int float bool 函数对象
   不可迭代对象
		str list dict tuple set 文件对象
3.可迭代的含义
	'''
	迭代:更新换代(每次更新都必须依赖上一次的结果),如手机app更新
	'''
	可迭代在python中可以理解为是否支持for循环

迭代器对象

1.迭代器对象
	是由可迭代对象调用__iter__方法产生的
	迭代器对象判断的本质是看是否内置有__iter__和__next__
2.迭代器对象的作用
	提供了一种不依赖于索引取值的方式
	正因为有迭代器的存在 我们的字典 集合才能够被for循环
3.迭代器对象实操
	s1 = 'hello'   # 字符串是可迭代对象
	res = s1.__iter__()  # 将s1转换成迭代器对象 并赋值给res
	print(res.__next__())  # 迭代取值 相当于for循环的本质
	当__next__取不到值的时候 会直接报错
4.注意事项
	可迭代对象调用__iter__会成为迭代器对象 如果成为迭代器对象后还调用__iter__不会有任何的变化 还是迭代器对象本身
	s1 = 'hello'
	res = s1.__iter__().__iter__()  
   # 没有任何作用和调用一次__iter__一样
	count = 0
	while count < 5:
		print(res.__next__())
		count += 1

for循环的本质

for 变量名 i in 可迭代对象:
    循环体代码
'''
1.先将in后面的数据调用__iter__转变成迭代器对象
2.依次让迭代器对象调用__next__取值
3.一旦__next__取不到值报错 for循环会自动捕获异常并处理
'''

异常捕获/处理

1.异常
	异常就是代码运行报错 行业俗语叫bug 代码运行过程中一旦遇到异常会直接结束整个程序的运行 在编写代码的过程中要尽可能的避免
2.异常分类
	语法错误
		不允许出现 一旦出现立刻改正 否则提桶跑路
	逻辑错误
    	允许出现的 因为它一眼发现不了 代码运行之后才可能会出现
3.异常结构
	错误位置  告诉你哪行代码出现问题
	错误类型  什么错误类型 
	错误详情  为什么错误

posted @ 2022-10-14 17:06  LZJJJ  阅读(30)  评论(0)    收藏  举报