Python built-in function

内置函数
abs() divmod() input() open() staticmethod()
all() enumerate() int() ord() str()
any() eval() isinstance() pow() sum()
basestring() execfile() issubclass() print() super()
bin() file() iter() property() tuple()
bool() filter() len() range() type()
bytearray() float() list() raw_input() unichr()
callable() format() locals() reduce() unicode()
chr() frozenset() long() reload() vars()
classmethod() getattr() map() repr() xrange()
cmp() globals() max() reverse() zip()
compile() hasattr() memoryview() round() __import__()
complex() hash() min() set()
delattr() help() next() setattr()
dict() hex() objcet() slice()
dir() id() oct() sorted() exce 内置表达式
  • 1 abs()
    返回数字的绝对值
abs(-45)     # 45
abs(1.1)     # 1.1
abs(110L)    # 110
  • 2 all()
    用于判断给定的可迭代对象iterable中的所有元素是否都为True,如果是返回True,否则返回False
# 函数等价于
def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True
  • 3 any()
    用于判断给定的可迭代对象iterable是否全为False,如果是返回False,如果有一个为True,则返回True
# 函数等价于
def all(iterable):
    for element in iterable:
        if element:
            return True
    return False
  • 4 basestring()
    是str和unicode的超类(父类),也是抽象类,因此不能被调用和实例化,但可以被用来判断一个对象是否为str或者unicode的实例
# 以下两个语句等价
isinstance(obj, basestring)
isinstance(obj, (str, unicode))
  • 5 bin()
    返回一个整数int或者长整数long int的二进制表示
bin(10)    # 返回字符串 '0b1010'
  • 6 bool()
    用户将给定参数转换为布尔类型,如果没有参数,返回False。bool是int的子类。
  • 7 bytearray()
    返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围 0<=x<=256
# 创建bytearray对象的方法规则
bytearray()
bytearray(b'')
bytearray(6)
bytearray('hello', encoding="utf-8")
  • 8 callable()
    用于检查一个对象是否可调用。如果返回True,object仍然可能调用失败;但如果返回False,调用对象object一定不会成功。
    对于函数,方法,lambda函数,类以及实现了call方法的类实例,都返回True

  • 9 chr()
    用一个范围在0~255的整数做参数,返回一个对应的字符

>>> chr(48)       # "0"
>>> chr(0x30)     # "0"
  • 10 classmethod()
    修饰类中的方法,被修饰的方法不需要self参数,但第一个参数需要时表示自身类的cls参数,可以来调用类的属性,类的方法,实例化对象等。

  • 11 cmp() (仅python2)
    cmp(x, y) , 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1

  • 12 compile()
    将一个字符串编译为字节代码

>>>str = "for i in range(0,10): print(i)" 
>>> c = compile(str,'','exec')   # 编译为字节代码对象 
>>> c
 at 0x10141e0b0, file "", line 1>
>>> exec(c)
0
1
2
3
4
5
6
7
8
9
  • 13 complex()
    用于创建一个值为real+imag*j的复数或者转化一个字符串或数字为复数。如果第一个参数为字符串,则不需要指定第二个参数。
>>>complex(1, 2)
(1 + 2j)
>>> complex(1)    # 数字
(1 + 0j)
>>> complex("1")  # 当做字符串处理
(1 + 0j)
# 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
>>> complex("1+2j")
(1 + 2j)
  • 14 delattr()
    用于删除属性。delattr(x, 'foobar') 相等于 del x.foobar。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
class Coordinate:
    x = 10
    y = -5
    z = 0
 
point1 = Coordinate() 
 
print('x = ',point1.x)
print('y = ',point1.y)
print('z = ',point1.z)
 
delattr(Coordinate, 'z')
 
print('--删除 z 属性后--')
print('x = ',point1.x)
print('y = ',point1.y)
 
# 触发错误
print('z = ',point1.z)
  • 15 dict()
    创建一个字典
>>>dict()                        # 创建空字典
{}
>>> dict(a='a', b='b', t='t')     # 传入关键字
{'a': 'a', 'b': 'b', 't': 't'}
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 映射函数方式来构造字典
{'three': 3, 'two': 2, 'one': 1} 
>>> dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代对象方式来构造字典
{'three': 3, 'two': 2, 'one': 1}
  • 16 dir()
    不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法dir(),该方法将被调用。如果参数不包含dir(),该方法将最大限度地收集参数信息。

  • 17 divmod()
    把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。在 python 2.3 版本之前不允许处理复数。

>>>divmod(7, 2)
(3, 1)
>>> divmod(8, 2)
(4, 0)
>>> divmod(1+2j,1+0.5j)
((1+0j), 1.5j)
  • 18 enumerate()
    用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。Python 2.3. 以上版本可用,2.6 添加 start 参数。
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))       # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
...     print i, element
... 
0 one
1 two
2 three
  • 19 eval()
    用来执行一个字符串表达式,并返回表达式的值。
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
  • 20 execfile() (仅python2)
    用来执行一个python文件

  • 21 file()
    用于创建一个 file 对象,它有一个别名叫 open() 更形象一些,它们是内置函数。参数是以字符串的形式传递的。

>>>f = file('test.txt')
>>>f.read()
  • 22 filter()
    用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
    该接受两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回返回True或False,最后将返回True的元素放到新列表中
    (注意:python2.7返回列表,Python3.x返回迭代器对象)

  • 23 float()
    用于将整数和字符串转换成浮点数。

>>>float(1)
1.0
>>> float(112)
112.0
>>> float(-123.6)
-123.6
>>> float('123')     # 字符串
123.0
  • 24 format()
    Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。format 函数可以接受不限个参数,位置可以不按顺序。
>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'

>>> "{hello} {name}".format(hello="Hello", name="China")  # 设置参数
'Hello China'
  • 25 frozenset()
    返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
>>>a = frozenset(range(10))     # 生成一个新的不可变集合
>>> a
frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = frozenset('runoob') 
>>> b
frozenset(['b', 'r', 'u', 'o', 'n'])   # 创建不可变集合
  • 26 getattr()
    用于返回一个对象属性值。
>>>class A(object):
...     bar = 1
... 
>>> a = A()
>>> getattr(a, 'bar')        # 获取属性 bar 值
1
>>> getattr(a, 'bar2')       # 属性 bar2 不存在,触发异常
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: 'A' object has no attribute 'bar2'
>>> getattr(a, 'bar2', 3)    # 属性 bar2 不存在,但设置了默认值
3
  • 27 globals()
    会以字典类型返回当前位置的全部全局变量
>>>a='runoob'
>>> print(globals()) # globals 函数返回一个全局变量的字典,包括所有导入的变量。
{'__builtins__': , '__name__': '__main__', '__doc__': None, 'a': 'runoob', '__package__': None}
  • 28 hasattr()
    用于判断对象是否包含对应的属性。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
class Coordinate:
    x = 10
    y = -5
    z = 0
 
point1 = Coordinate() 
print(hasattr(point1, 'x'))    # True
print(hasattr(point1, 'y'))    # True
print(hasattr(point1, 'z'))    # True
print(hasattr(point1, 'no'))   # False
  • 29 hash()
    用于获取取一个对象(字符串或者数值等)的哈希值。
>>>hash('test')            # 字符串
2314058222102390712
>>> hash(1)                 # 数字
1
>>> hash(str([1,2,3]))      # 集合
1335416675971793195
>>> hash(str(sorted({'1':1}))) # 字典
7666464346782421378
  • 30 help()
    用于查看函数或模块用途的详细说明。

  • 31 hex()
    用于将10进制整数转换成16进制,以字符串形式表示。

>>>hex(255)
'0xff'
>>> hex(-42)
'-0x2a'
>>> hex(1L)
'0x1L'
>>> hex(12)
'0xc'
>>> type(hex(12))
      # 字符串
  • 32 id()
    用于获取对象的内存地址。

  • 33 input()
    Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。
    Python2.x 中 input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入。
    raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )

  • 34 int()
    用于将一个字符串或数字转换为整型

>>>int()               # 不传入参数时,得到结果0
0
>>> int(3)
3
>>> int(3.6)
3
>>> int('12',16)        # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
18
>>> int('0xa',16)  
10  
>>> int('10',8)  
8
  • 35 isinstance()
    判断一个对象是否是一个已知的类型,类似 type()。

isinstance() 与 type() 区别:

  • type() 不会认为子类是一种父类类型,不考虑继承关系。
  • isinstance() 会认为子类是一种父类类型,考虑继承关系。
  • 如果要判断两个类型是否相同推荐使用 isinstance()。
>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list))    # 是元组中的一个返回 True
True
class A:
    pass
 
class B(A):
    pass
 
isinstance(A(), A)    # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False
  • 36 issubclass()
    issubclass(class, classinfo) 判断参数 class 是否是类型参数 classinfo 的子类。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
class A:
    pass
class B(A):
    pass
    
print(issubclass(B,A))    # 返回 True
  • 37 iter()
    函数用来生成迭代器。

  • 38 len()
    返回对象(字符、列表、元组等)长度或项目个数。

  • 39 list()
    用于将元组转换为列表。

  • 40 locals()
    以字典类型返回当前位置的全部局部变量。

  • 41 long()
    将数字或字符串转换为一个长整型。

  • 42 map()
    根据提供的函数对指定序列做映射。python2返回新列表,python3返回一个迭代器

  • 43 max()
    返回给定参数的最大值,参数可以为序列。

  • 44 memoryview()
    返回给定参数的内存查看对象(Momory view)。

  • 45 min()
    定参数的最小值,参数可以为序列。

  • 46 next()
    返回迭代器的下一个项目。

  • 47 oct()
    将一个整数转换成8进制字符串。

  • 48 open()
    打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。

  • 49 ord()
    ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。

>>>ord('a')
97
>>> ord('b')
98
>>> ord('c')
99
  • 50 pow()
    方法返回x的y次方的值。

  • 51 print()
    方法用于打印输出,最常见的一个函数。
    语法:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

>>>print(1)  
1  
>>> print("Hello World")  
Hello World  
 
>>> a = 1
>>> b = 'runoob'
>>> print(a,b)
1 runoob
 
>>> print("aaa""bbb")
aaabbb
>>> print("aaa","bbb")
aaa bbb
>>> 
 
>>> print("www","runoob","com",sep=".")  # 设置间隔符
www.runoob.com
import time

print("---RUNOOB EXAMPLE : Loading 效果---")

print("Loading",end = "")
for i in range(20):
    print(".",end = '',flush = True)
    time.sleep(0.5)
  • 52 property()
    property() 函数的作用是在新式类中返回属性值。
    语法:class property([fget[, fset[, fdel[, doc]]]])
# 定义一个可控的属性值

class C(object):
    def __init__(self):
        self._x = None
 
    def getx(self):
        return self._x
 
    def setx(self, value):
        self._x = value
 
    def delx(self):
        del self._x
 
    x = property(getx, setx, delx, "I'm the 'x' property.")
# 将 property 函数用作装饰器可以很方便的创建只读属性:

class Parrot(object):
    def __init__(self):
        self._voltage = 100000
 
    @property
    def voltage(self):
        """Get the current voltage."""
        return self._voltage
#上面的代码将 voltage() 方法转化成同名只读属性的 getter 方法。
#property 的 getter,setter 和 deleter 方法同样可以用作装饰器:

class C(object):
    def __init__(self):
        self._x = None
 
    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x
 
    @x.setter 
    def x(self, value):
        self._x = value
 
    @x.deleter
    def x(self):
        del self._x
  • 53 range()
    range() 函数可创建一个整数列表,一般用在 for 循环中。
    python3中返回迭代器

  • 54 reduce()
    python2内置函数,python3已经移除。
    reduce() 函数会对参数序列中元素进行累积。
    函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

  • 55 reload()
    python2中用于重新载入之前载入的模块。python3已经移除。

  • 56 repr()
    将对象转化为供解释器读取的形式。

  • 57 reverse()
    用于反转列表中元素。

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc', 'xyz']

aList.reverse()
print "List : ", aList

# List :  ['xyz', 'abc', 'zara', 'xyz', 123]
  • 58 round()
    返回浮点数x的四舍五入值。

  • 59 set()
    创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

  • 60 setatrr()
    对应函数 getattr,用于设置属性值,该属性不一定是存在的。

>>>class A(object):
...     bar = 1
... 
>>> a = A()
>>> getattr(a, 'bar')          # 获取属性 bar 值
1
>>> setattr(a, 'bar', 5)       # 设置属性 bar 值
>>> a.bar
5
  • 61 slice()
    实现切片对象,主要用在切片操作函数里的参数传递。
>>> myslice = slice(5)    # 设置截取5个元素的切片
>>> myslice
slice(None, 5, None)
>>> arr = range(10)
>>> arr
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> arr[myslice]         # 截取 5 个元素
[0, 1, 2, 3, 4]
>>>
  • 62 sorted()
    对所有可迭代的对象进行排序操作。

  • 63 staticmethod()
    返回函数的静态方法。

  • 64 str()
    将对象转化为适于人阅读的形式。

  • 65 sum()
    对序列进行求和计算

  • 66 super()
    用于调用父类(超类)的一个方法。

  • 67 tupe()
    元组 tuple() 函数将列表转换为元组。

>>>tuple([1,2,3,4])
 
(1, 2, 3, 4)
 
>>> tuple({1:2,3:4})    #针对字典 会返回字典的key组成的tuple
 
(1, 3)
 
>>> tuple((1,2,3,4))    #元组会返回元组自身
 
(1, 2, 3, 4)
  • 68 type()
    如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。

  • 69 unichr()
    unichr() 函数 和 chr()函数功能基本一样, 只不过是返回 unicode 的字符。

  • 70 xrange()
    python2 xrange() 返回一个生成器。python3已经移除

  • 71 zip()
    zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
    如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
    zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换

  • 72 exec()
    exec 执行储存在字符串或文件中的Python语句,相比于 eval,exec可以执行更复杂的 Python 代码。

>>>exec 'print "Hello World"'
Hello World
# 单行语句字符串
>>> exec "print 'runoob.com'"
runoob.com
 
#  多行语句字符串
>>> exec """for i in range(5):
...   print "iter time: %d" % i
... """
iter time: 0
iter time: 1
iter time: 2
iter time: 3
iter time: 4

你可能感兴趣的:(Python built-in function)