高等函数,异常处理,文件操作,迭代器。生成器。。

高等函数

## map ##
将序列中的每个元素依次作用到函数上,并将函数的返回值添加到新的序列中
参数2个 第一个参数:函数(有一个参数) 第二个参数:序列(元组,列表)
list1=[1,2,3,4,5]#创建一个列表
def pow1(x):定义1个方法
return x*x
list2=list(map(pow1,list1)) #map函数返回的是地址需要list()

## reduce ## 需要载入 from functools import reduce
将序列中的元素依次作用到函数上,最终会返回这个序列中每个元素运算后的结果
参数 :2个 函数名 (函数有两个参数) 序列
一次取出2个元素作用在函数上
list1=[1,2,3,4,5] a = 0
def mySum(x,y): for i in list1:
return x/y a = mySum(a,i)
sum=reduce(mySum,list1) print(a)
## filter ##
过滤数据,将序列中每个元素依次取出作用到函数上,符合条件的加到新的序列上
参数:函数,序列
list1=[1,2,3,4,5]
def oushu(x):
if x%2==0:
return x
list2=list(filter(oushu,list1)) # 返回的是地址,可列表化
## sorted ##
排序。sort()也可排序,但会更改原列表
sorted()则会生成新列表 有默认参数
reverse 默认为false 默认为升序 调为true 是降序
key 可以调用函数名 例如 绝对值abs 长度len 都是排序
key和reverse 可以不写

异常处理

当代码报错的时候,依然会执行后面的程序
格式 两种 try ….except…..else…..(当程序没错误时执行else)
try ……except……finally….(不论程序有没有错,都执行finally)
else。。。。finally。。。。可写可不写
try :
可能会出错的语句
except 错误类型 as e :
自定义错误原因,。《《当报错时,会输出这条语句

文件操作

可以将代码的数据写道记事本中,将记事本的内容读取到代码中
1.打开文件 2.读取数据 3. 关闭文件
打开方式 读 写 追加 r w a
r rb r+ w wb w+ a a+ (试一试,标记!!!!!!!!!!!!!!!!!!!!!!!!)
path=”/Users/yang/Desktop/111.txt”
f = open(path,’r’) 此处r 可看需求改r/r+(可读可写)/rd(二进制) w+/w/wd a+/a
f.read()
f.seek(num) 移动光标
f.close()

迭代器和生成器

迭代器 iterator
可以一次取出一个值,可以记住当前取到哪。下一次取的时候会接上一次的位置
可迭代对象:iterable 能用在for循环上的都是可迭代对象
字符串 。列表,元组。字典,集合set range()
只有可迭代对象才能转化为迭代器
iter()可以将可迭代对象转为迭代器
next()只有是迭代器才可以使用next()
from collections import Iterable
from collections import Iterator
it1=iter([1,2,3,4,5])
while True:
try:
print(next(it1))
except Exception as e:
print(“完了”)
break

## 生成器 ## 也可看做是迭代器
函数中出席那yield语句 此函数就是生成器 next()
主要优点: 节省内存
def fun(x):
while True:
x+=1
yield x

a=fun(1)
print(next(a))
print(next(a))

猜你喜欢

转载自blog.csdn.net/ww1006257029/article/details/81671428