2018.12.12 今日所学
Posted zty1304368100
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018.12.12 今日所学相关的知识,希望对你有一定的参考价值。
今日主要内容:
一 .内置函数
内置函数 : Python直接提供给我们的
作用域相关的 locals() 返回当前作用域的名字
globals() 返回全局作用域
与迭代器相关的 : range() 生成数据
next() 迭代器向下执行一次,内部实际使用了__next__()方法返回迭代器的下一个项目 iter() 或取迭代器,内部实际使用的是__iter__()方法或取迭代器
字符串类型代码的执行 eval :执行字符串类型的代码,并返回最终结果
相当于把字符串里面的内容执行 ,有返回值
print(eval(‘2+2‘)) n=8 print(eval(‘2+n‘)) def func(): print(‘666‘) eval(‘func()‘) #666
exec() 执行字符串类型的代码 (没有返回值)
exec(""" for i in range(10): print(i) """) exec(""" def func(): print("我是周杰伦") func()
""")
compile() 将字符串类型的代码编译,代码对象能够通过exec语句来执行或者eval()进行求值
‘‘‘ 参数说明: 1. resource 要执行的代码, 动态代码片段 2. 文件名, 代码存放的文件名, 当传入了第一个参数的时候, 这个参数给空就可以了 3. 模式, 取值有3个, 1. exec: 一般放一些流程语句的时候 2. eval: resource只存放一个求值表达式. 3. single: resource存放的代码有交互的时候. mode应为single ‘‘‘ code1 = "for i in range(10): print(i)" c1 = compile(code1, "", mode="exec") exec(c1) code2 = "1+2+3" c2 = compile(code2, "", mode="eval") a = eval(c2)print(a) code3 = "name = input(‘请输入你的名字:‘)" c3 = compile(code3, "", mode="single") exec(c3) print(name)
注: 有返回值的字符串形式的代码用eval() ,没有返回值的字符串形式的代码用exec().一般很少用到compile()
关于数字运算的 : sum() max() min() 都必须是可迭代的对象 abs()绝对值
divmod(a,b) 计算商和余数 10/3=a...b
round(小数) 整数是奇数 ->四舍五入
整数是偶数-> 五舍六入
pow(2,4)--> 2的4次方
all() 类比于and记
any() 类比于or记
拉链函数 zip()
l1=[1,2,3] l2=[4,5,6] l3=[7,8,9] z=zip([l1,l2,l3]) for i in z: print(i) # 结果(1,4,7) (2,5,8) (3,6,9)
二 .lambda匿名函数 (简单的函数用,复杂的函数不要用)
计算n的 n次方 def func(n): return n**n print(func(10)) fn=lambda n : n**n print(fn(10)) # 与上面的结果一样
语法 : 函数名=lambda 参数(a,b) : 返回值
三.sorted 排序函数
语法 : sorted(你要循环的内容,key=函数名,renerse=‘T or F‘)
Iterable: 可迭代对象
key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函
数的参数. 根据函数运算的结果进行排序
reverse: 是否是倒叙. True: 倒叙, False: 正序
四.map 映射函数
语法 map(function,iterable) 可以对可迭代对象中的每一个元素进行映射.分别取执行function
计算列表中每个元素的平方 ,返回新列表
def func(e): return e**e m=map(func,[1,2,3,4]) print(m) print(list(m))
五.filter 筛选函数 (过滤)
filter(function,iterable)
function: 用来筛选的函数. 在filter中会自动的把iterable中的元素传递给function. 然后
根据function返回的True或者False来判断是否保留此项数据
Iterable: 可迭代对象
以上是关于2018.12.12 今日所学的主要内容,如果未能解决你的问题,请参考以下文章