标签:
一、compile()
将字符串编译成Python代码。
编译的模式,single,eval,exec
s = "print(123)" r = compile(s,"<string>","exec") #把字符串s 编译成python代码,然后让exec()执行。 exec(r)
二、exec()
执行python代码,没有返回值,即没有结果。也就是返回None
可以接收代码或者是字符串都可以执行。即如果接收到的是python代码,那么就会直接执行。如果接收到的是字符串,那么exec()会把字符串编译成python代码,然后再执行该代码。
‘‘‘例1:接收字符串,先把字符串转换为python代码,然后再执行该代码‘‘‘ s = "print(123)" exec(s)
输出结果:执行了print(123)
123
‘‘‘例2:接收到的是代码,直接执行该代码‘‘‘
‘‘‘首先是compile()把s字符串转换为代码,然后让exec()来执行‘‘‘
s = "print(123)"
r = compile(s,"<string>","exec")
exec(r)
输出结果:
123
‘‘‘例3:没有返回值,即没有结果。只能返回None‘‘‘
s = "print(123)"
r = compile(s,"<string>","exec")
k = exec(r)
输出结果:
None
三、eval()
执行代码,有返回值,把字符串转换为表达式,进行计算,并返回结果
‘‘‘例1:将字符串s转换为代码,并执行s的表达式‘‘‘ s = "8*8" ret = eval(s) print(ret)
输出结果:
64
注意:exec() 无返回结果
eval() 有返回值
四、dir()
快速查看对象提供了哪些功能
print(dir(list))
输出结果:
五、divmod(A,B)
博客分页需求:
假如有99个页面,每页显示10个页面,总共需要多少页
divmod()生成的是元组类型的数据。
‘‘‘例1:获取divmod()的值‘‘‘ r = divmod(98,10) #生成的是元组类型 print(r,type(r)) print(r[0]) print(r[1])
输出结果:
(9, 8) <class ‘tuple‘>
9
8
‘‘‘例2:获取n1,n2的值‘‘‘ n1,n2 = divmod(98,10) print(n1) print(n2)
输出结果:
9
8
六、filter()
对于序列中的元素进行筛选,最终获取符合条件的序列!
使用方法:
filter(函数,可迭代的对象)
filter,循环第二个参数,让每个循环元素执行函数,如果函数返回值True,表示元素合法。
需求:获取一个列表中大于22的元素。
‘‘‘例1:获取列表大于22的元素,平时做法‘‘‘ def f1(args): result_list = [] for item in args: if item > 22: result_list.append(item) return result_list list1 = [11,22,33,44,55] r = f1(list1) print(r)
输出结果:
[33, 44, 55]
‘‘‘例2:使用filter函数实现‘‘‘
def f2(a):
if a > 22:
return True
li = [11,22,33,44,55]
ret = filter(f2,li)
print(list(ret))
输出结果:
[33, 44, 55]
‘‘‘例3:使用filter函数与lambda‘‘‘
list1 = [11,22,33,44,55]
ret = filter(lambda a:a>22,list1)
print(list(ret))
输出结果:
[33, 44, 55]
通过上面的3个例子,发现例3 最简单。
七,map()
遍历序列,对序列中每个元素进行操作,最终获取新的序列。
map # 将函数返回元素添加到结果中
解释:在python中,最基本的数据结构是序列(sequence)。序列中的每个元素被分配一个序号--即元素的位置,也称为索引。第一个索引是0,第二个则是1,以此类推。序列中的最后一个元素标记为-1,倒数第二个元素为-2,以此类推。
Python包含6种内建的序列,包括列表、元组、字符串、Unicode 字符串,buffer对象和xrange对象。
标签:
原文地址:http://www.cnblogs.com/pangguoping/p/5544437.html