首页 > 代码库 > 第二周(2)——内置函数
第二周(2)——内置函数
内置函数 | ||||
abs()√ | all() | any() | ascii() | bin() |
bool() | bytearry() | bytes() | callable() | chr() |
compile() | complex() | dict() | dir() | enumerate() |
help() | id() | isinstance() | float() | format() |
frozenset() | globals() | locals() | hash() | hex() |
len() | list() | map() | max() | min() |
sum() | type() | zip() | memoryview() | set() |
oct() | ord() | str() | int() | float() |
open() | pow() | print() | range | reversed() |
round() | sorted() | tuple() | zip() | eval() |
exec() | filter() | apply() |
>>详情
内置函数讲解:
abs()--求绝对值
参数可以是整型,也可以是复数
若参数是复数,则返回复数的模all(iter)--参数可以被迭代对象;
如果迭代对象全部为真,则返回真,否则为假
如果迭代对象为空,则也为真
any(iter)--参数可以被迭代的对象
如果迭代对象有一个为真,则返回真。
ascii(object)--
只要执行ascii(object),自动执行对象的__repr__()方法
bool()--判断对象的真假
一般为False:空列表,元组,字典,字符串。None,0;
bin()/oct()/hex()
bin(x)--十进制转换为二进制
oct(x)--十进制转换为八进制
hex(x)--十进制转为十六进制
bytes()/bytearry()
bytes(source,encoding)--字节码
>>>name = "李阳" >>>bytes(name,encoding=‘utf-8‘) >>>print(bytes(name,encoding=‘utf-8‘)) b‘\xe6\x9d\x8e\xe9\x98\xb3‘
bytearry()返回一个字节序的数组
#将字节转换为字符串
bytes(name,encoding=‘utf-8‘),encoding=‘utf-8‘)
chr()/ord()
chr()--将十进制转换成ASCII码中的字符
ord()--将ASCII表中的字符转换为十进制数
compile()/eval()/exec()
compile()-- 编译代码
{python s1.py 执行代码步骤:
1.读取文件内容,把str存到内存
2.将s1.py把文件字符编译成可执行的python代码
3.执行代码 }
>>>s ="print(123)"#字符串 相当于py文件 如何编译呢? >>>r = compile(s,"<string>","exec")#编译 >>>exec(r)#执行 123
exec()--接受编译好的python代码,或者字符串
>>>s = "print(234)" >>>exec(s)#内部先编译然后执行 234
只执行,无返回值
eval()--接收一个字符串表达式(只能是表达式)
>>>s = "8*8" >>>reval = eval(s) #可以执行并返回 >>>print(reval) 64
complex()--返回一个复数
divmod(num1,num2) 返回(商,余数)(用途:计算分页)
>>>r = divmod(100,9) >>>print(r) (11,1) #元组 r[0] r[1] >>>n1,n2 = divmod(100,9) >>>print(n1,n2) 11,1
max()/min()/sum()/pow()
max()--取一个对象最大值 (列表,元组,集合,字符串)
min()--取一个对象最小值 (列表,元组,集合,字符串)
sum()--对象的元素的和(对象里必须是整数)
pow(m,n)--m的n次幂
len()
#python2.7: >>>len("中")# utf-8编码 3 #python3.5: >>>len("中") 1 #求字节 转换字节码 >>>len(bytes("中",encoding=‘utf-8‘)) 3
enumerate(iterable,start=0)-- 返回有序的元组序列,默认从0开始
>>>li = ["dog","cat","pig"] >>>for item in enumerate(li): ... print item ... (0,‘dog‘) #item[0] item[1] 继续引用元组中的元素 (1,‘cat‘) (2,‘pig‘)
format()--字符串的格式化
>>>s = "alex,{0},{1}" >>>print(s.format("lcy","sumy")) ‘alex,lcy,sumy‘
dir(object)--查看对象所属的类全部方法
map()/filter()/apply()
apply(func,param)--执行函数
def myfunc(num): print(num) apply(myfunc,11)
map(func,iterable)# 调用函数 操作每个元素的值(与filter不同,filter过滤不会改变值)
#匿名函数 >>>lst =[1,2,3,4] >>>t = map(lambda a:a+100,lst) >>>print(t) [101,102,103,104] # 函数 >>>def func(args): ... args+100 ... >>>t = map(func,lst) >>>print(t) [101,102,103,104] # 不是过滤 而是返回函数结果 >>>r =map(lambda a:a>22,lst) #lst[0]开始迭代传入函数 ,判断a>22;返回False; >>>print(list(r)) [False,False,False,False]
filter(func,iterable)--过滤。参数1:函数;参数2:可迭代的对象
# 内部实现原理_伪代码 ‘‘‘ list = [] 1.迭代iter每个元素 for item in iterable: 2.将每个元素传递给函数 r =func(item) 3.判断函数返回真假 如果为真将item过滤出来 if r: list.append(item) 4.返回过滤结果 return list ‘‘‘ >>>def func(a): ... if a>22: ... return True >>>li = [11, 22, 33, 44] >>>ret = filter(func,li) >>>print(list(ret)) [33,44] # 用匿名函数lambda >>>li =[11,22,33,44] >>>ret = filter(lambda a:a>22,li) >>>print(list(ret)) [33,44]
filter和map本质区别:
filter:函数返回TRUE,将元素添加到结果中
map:将函数返回值添加到结果中
isinstance(object,classinfo)--判断对象是否是类的实例
>>>s ="sdf" >>>r = isinstance(s,str) >>>print(r) True
frozenset(set)--不可变的集合
globals()/locals()
globals()--返回所有全局变量
locals()--返回所有局部变量
reversed()--反转
round()--四舍五入
sorted(iterable)--排序
zip()
zip(iterable...)#混合每个迭代对象的元素 返回一个元组
>>>s = ["alex",12] >>>s1= ["lcy",23] >>>s2 = ["susan",33] >>>r =zip(s,s1,s2) >>>t = list(r)[0] >>>print(" ".join(t)) ‘alex lcy susan‘
END
本文出自 “大神是不被超越的” 博客,请务必保留此出处http://wuyuzegang.blog.51cto.com/8653728/1858553
第二周(2)——内置函数