码迷,mamicode.com
首页 > 其他好文 > 详细

第二周(2)——内置函数

时间:2016-10-04 08:03:05      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:python

                                                              内置函数
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)——内置函数

标签:python

原文地址:http://wuyuzegang.blog.51cto.com/8653728/1858553

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!