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
<code object <module> 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 "<stdin>", line 1, in <module>
AttributeError: 'A' object has no attribute 'bar2'
>>> getattr(a, 'bar2', 3)    # 属性 bar2 不存在,但设置了默认值
3
  • 27 globals()
    会以字典类型返回当前位置的全部全局变量
>>>a='runoob'
>>> print(globals()) # globals 函数返回一个全局变量的字典,包括所有导入的变量。
{'__builtins__': <module '__builtin__' (built-in)>, '__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))
<class 'str'>      # 字符串
  • 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,367评论 0 5
  • dir(object) 默认dir()机制对不同类型的对象表现不同,因为它尝试生成最相关但非完整的信息。 如果对象...
    彗色阅读 1,303评论 0 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,212评论 0 4
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,732评论 2 9
  • 【圈规】天津职业大学的小伙伴必看 来到校园圈你,算是找到组织啦!! 这里的每一个小伙伴都是在校的一员~~ 校园圈为...
    173eff1342b1阅读 314评论 0 0