abs(x) : 返回一个数字的绝对值,参数可以为一个整数或浮点数,如果参数为复数,则返回它的模。
all(iter) : 当iter中所有元素均为True时,或者iter为空时,返回True。效果类似如下:
def all(iterable):
for element in iterable:
if not element:
return False
return True
any(iter) : 当iter中所有元素为True时返回True,iter为空时返回False,类似:
def any(iterable):
for element in iterable:
if element:
return True
return False
ascii(obj) : 类似repr(),返回一个输入对象的可打印字符串,但是在返回字符串中去掉非ASCII编码字符。类似python2中的repr()。
bin(x) : 将一个整数转化为一个二进制字符串,结果是一个可用的Python表达式,如果x不是Python中的int类型,则需要定义index()方法使之返回一个整数。
bool([x]) : 将一个值转换为布尔类型。
bytearray([source[, encoding[, errors]]]) : 返回一个新的字节数组,该bytearray类型是0<=x<256范围内的可变整数序列。同时具有可变序列和bytes类型的大多数方法。
bytes([source[, encoding[, errors]]]) : 返回一个新的字节类型。
callable(obj) : 检查对象的可调用性。返回False的对象肯定不能调用,但返回True的对象仍有可能调用失败。
chr(i) : 返回表示Unicode码的整数的字符串,例如chr(97)返回字符串’a’。与之功能相反的函数为ord()。接收整数范围为0~1114111,超出范围会抛出ValueError的异常。
classmethod(func) : 返回一个类方法。一个类方法接收类本身作为第一个参数,声明方法:
class C:
@classmethod
def func(cls, arg1, arg2, ...): ...
可以被类调用(C.func()),也可以被实例调用(C().func())
delattr(obj, name) : 参数分别为一个对象和一个字符串,其中字符串必须对应对象中的一个属性,可以删除对象中的对应属性。delattr(x, ‘foobar’) = del x.foobar
dict([arg]) : 创建一个新字典。
dir(obj) : 参数为空时返回本地作用域内的名字列表,有参数时,则尝试返回该对象有效属性的列表。
>>> import struct
>>> dir() # show the names in the module namespace
['__builtins__', '__doc__', '__name__', 'struct']
>>> dir(struct) # show the names in the struct module
['Struct', '__builtins__', '__doc__', '__file__', '__name__',
'__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
'unpack', 'unpack_from']
>>> class Shape(object):
def __dir__(self):
return ['area', 'perimeter', 'location']
>>> s = Shape()
>>> dir(s)
['area', 'perimeter', 'location']
divmod(a, b) : 当两个参数都为整数时,返回(a//b, a%b);当有一个为浮点数时,返回(q, a%b),其中q一般情况是math.floor(a/b)的结果,但也可能比这个结果小1。
enumerate(iter, start=0) : 返回一个列举对象,其中iter必须为序列,或可迭代。该列举对象的next()方法返回一个由计数(start开始)和对应值组成的元组。举例:
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
相当于:
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1
eval(expression, globals=None, locals=None) : expression为字符串,global必须为字典,locals可以为任意映射对象。主要功能为将字符串转换为对应的python语句,使用globals和locals字典作为全局和局部命名空间,返回值为执行语句后的结果:
>>> x = 1
>>> eval('x+1')
2
filter(function, iter) : 对iter中的元素进行过滤,其中function为过滤条件,function返回false的元素会被过滤掉,当function为None时,iter中的所有元素都会被过滤掉。filter函数和列表生成式的作用有点相似(item for item in iterable if function(item),或item for item in iterable if item).
float([x]) : 将字符串或数字转换成浮点。如果参数为字符串,则需要包含小数数字。举例:
>>> float('+1.23')
1.23
>>> float(' -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf
frozenset([iterable]) : 返回一个frozenset对象,属于容器对象。
getattr(obj, name[, default]) : 返回obj对象中属性名为name的属性。getattr(x, ‘foobar’) = x.foobar。如果属性不存在则返回default,否则会抛出AttributeError。
hasattr(obj, name) : 判断obj对象是否有属性名为name的属性。
help(obj) : 唤醒内置帮助系统,提供帮助的交互。当不提供参数时,交互系统进入一个交互控制台。如果参数为字符串,则帮助系统会查找任何名字为该参数的帮助信息;如果参数是一个对象,则会显示一个帮助页面
id(obj) : 返回对象的唯一标识,为一个整数。
input([prompt]) : 接收用户输入内容,读取一行内容并将其转化为字符串并返回。其中prompt为输入提示内容:
>>> s = input('--> ')
--> Monty Python's Flying Circus
>>> s
"Monty Python's Flying Circus"
int([number|string[,base]]) : 将一个数字或字符串转化为整数,如果未传参数,返回0;否则返回参数number.int()。浮点数会截止到0位,字符串字面必须是基数为数字的,可以在前边加上’+’或’-‘(中间不能有空格),两边可以添加空格。base参数默认值为10,可选值为2,8,10,16。
isinstance(obj, classinfo) : 如果obj参数是classinfo参数的一个实例,则返回True,否则返回False。classinfo可以为一个类,或一个类组成的元组,否则会抛出TypeError的错误。
issubclass(class, classinfo) : 判断class是不是classinfo的子类。同样的,classinfo也可以是由类组成的元组,否则抛出TypeError异常。
iter(obj, [sentinel]) : 返回迭代器对象。第一个参数会受第二个参数影响,如果没有第二个参数,则第一个参数必须是支持迭代协议(iter**()方法)的集合对象,或者必须支持序列协议(__**getitem**()整数参数始终为0),否则会引发TypeError。如果给出了第二个参数,那obj必须为可调用对象,此时创建的迭代器将为调用其__**next()方法。如果迭代的返回值等于sentinal参数,则抛出Stopiteration,否则继续迭代并返回值。此方法可以用来按行迭代读取文件内容,遇到空字符则返回:
with open('mydata.txt') as fp:
for line in iter(fp.readline, ''):
process_line(line)
len(s) : 返回一个对象的长度,参数可以为序列或映射。
list([iterable]) : 返回一个由iterable元素组成的同序列表。iterable可以为支持迭代的序列、容器,或是一个迭代器对象。如果iterable已经是一个列表,会拷贝一份该列表并返回,类似iterable[:]。举例:
list('abc') ---> ['a', 'b', 'c']
list((1, 2, 3)) ---> [1, 2, 3]
# 如果iterable参数为空,则返回空列表
max(iterm, [args.., ], *[, key]) : 单个可迭代参数,则返回参数中最大的值;如果是多个参数,则返回参数中最大的值。
min(iterm, [args.., ], *[, key]) : 用法同max,返回最小。
next(iter, [, default]) : 通过调用iter的next()方法来获取下一个值。如果default赋值,当iter元素耗尽时,返回default,否则会引发StopIteration异常。
object() : 返回一个没什么功能的对象。object是所有类的基础,拥有所有python类实例的通用方法。不接收任何参数。
oct(x) : 将一个整数转化为八进制字符串。结果是一个合法的python表达式。如果参数x不是python的int对象,则要求参数具有返回整数的index()方法。
open(file, mode=”r”, buffering=-1, encoding=None, errors=None, newline=None, closefd=True) : 打开文件并返回通信流。如果打不开文件则会抛出IOError异常。
file是字符串或字节对象,提供要打开的路径名或要打开的文件的文件描述符。
mode是打开文件方式的字符串,具体对应关系如下:
参数 | 作用 |
---|---|
‘r’ | 只读(默认) |
‘w’ | 只写,会覆盖原来的内容 |
‘a’ | 只写,将内容追加到已有内容的后边 |
‘b’ | 二进制模式,跟’r’ 和’w’结合使用 |
‘t’ | 文本模式(默认) |
‘+’ | 以更新的状态打开磁盘文件,与’r’和’w’结合使用 |
‘U’ | 通用换行模式(方便向后兼容,不推荐新代码中使用) |
buffering是设置缓存模式的参数。0—关闭缓存,仅用于二进制模式;1—按行取缓存,仅用于文本模式
ord(C) : 返回字符对应Unicode表的编号,与chr()功能相反。
pow(x, y[,z]) : 返回x的y次方幂,等于x**y。如果提供了z参数,则返回pow(x, y) % z。
print([obj,…,]*, sep=”, end=’\n’, file=sys.stdout) : 打印一个或多个对象,以stdout的方式输出,多个对象打印结果以sep参数提供的字符串分隔,打印结束后以end参数的值结尾。
range([start, ]stop[,step]) : 一个用来创建数字迭代生成器的函数。通常用于for循环,参数必须为整数,默认步长参数为1,开始参数默认为0。完整形式返回方式为:[start, start+step, start+2*step, …]。如果步长为整数,最后一个元素为比stop小的最大start+i*step;如果步长为负数,最后一个元素为start+i*step中比stop大的最小值。步长不能为零,否则会抛出ValueError异常。
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> list(range(0))
[]
>>> list(range(1, 0))
[]
需要注意的是,该方法支持索引,切片并且支持负数索引:
>>> r = range(0, 20, 2)
>>> r
range(0, 20, 2)
>>> 11 in r
False
>>> 10 in r
True
>>> r.index(10)
5
>>> r[5]
10
>>> r[:5]
range(0, 10, 2)
>>> r[-1]
18
repr(object) :返回一个包含对象可打印表示的字符串。通常会返回一个尖括号包裹的字符串,包含了对象类型名称以及附加信息。一个类通常可以定义一个repr()方法来控制返回的内容。
reversed(seq) : 返回一个反向迭代器。其中seq必须具有reversed()方法或者支持序列协议。
round(x[, n]) : 将浮点数x的小数点后面的浮点值舍为n位数,n默认为0。委托给x.round()方法执行。
set([iterable]) : 返回一个新集合,如果传入了参数,则以参数中的值构造集合。
setattr(obj, name, value) : 给obj对象设置一个属性,该属性名为name,属性值为value。setattr(x, ‘foobar’, 123) == x.foobar=123。
sorted(iterable[,key][,reverse]): 返回一个排好序的列表,其中元素为iterable的元素。key参数指定每个元素的对比规则,默认为空;reverse参数是一个布尔值,如果为True则按逆序排。
staticmethod(function) : 返回函数的静态方法。静态方法不接受未指明的第一个参数(参考classmethod会默认接收cls为第一个参数),声明方式为:
class C:
@staticmethod
def f(arg1, arg2, ...): ...
静态方法同时可以在类和实例对象中调用。Python的静态方法和Java、C++的静态方法类似。
str([object[,encoding[, errors]]]) : 返回对象的字符串形式。encoding参数为转换字符串的编码方式,传入的是字符串,如果传入未知编码方式,则会抛出LookupError异常。errors为处理异常的方式,当为’strict’时,会第一时间抛出ValueError错误;当值为’ignore’时,会静默处理异常;当值为’replace’时,会把无法解码的字符替换为Unicode。如果只给了object参数,则会返回对象的str()方法返回的值。
super([type[, object-or-type]]) : 返回一个代理对象,委托调用超类或兄弟类的方法,一般用于继承并覆盖同名方法。寻找方法顺序与继承顺序一致。使用方法如下:
class C(B):
def method(self, arg):
super().method(arg) # This does the same thing as:
# super(C, self).method(arg)
tuple([iterable]) : 返回一个元组,如果iterable参数不为空,则该元组的元素为iterable中的元素。
type(object) : 返回一个对象的类型,与object.class方法返回的内容一致。
type(name, bases, dict) : 返回一个新的type类。实际上所有的类都可以由这个方法构成的:
>>> class X:
... a = 1
...
>>> X = type('X', (object,), dict(a=1))
zip(*iterables) : 返回一个由元组组成的迭代器,第i个元组由iterable的第i个元素组成。元组个数取决于最短的iterable。当只传入一个iterable参数时,返回的元组只包含一个元素。不传入参数,则返回一个空的迭代器。功能类似于:
def zip(*iterables):
# zip('ABCD', 'xy') --> Ax By
sentinel = object()
iterables = [iter(it) for it in iterables]
while iterables:
result = []
for it in iterables:
elem = next(it, sentinel)
if elem is sentinel:
return
result.append(elem)
yield tuple(result)
返回元组的左右顺序都是确定的,所以可以确保zip输出的结果的稳定性。
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> list(zipped)
[(1, 4), (2, 5), (3, 6)]
>>> x2, y2 = zip(*zip(x, y))
>>> x == list(x2) and y == list(y2)
True
__import__(name, globals={}, locals={}, fromlist=[], level=0) : 该函数由import调用,通过导入builtins模块来导入该方法,用的比较少,除非在已知导入模块的名称时使用。可以通过globals和locals来确定包的上下文的名称。而fromlist则给出了需要导入的对象或子模块的名字。标准使用方式一般不使用locals这个参数,而且只有在决定包的上下文引用时才使用globals参数。level参数用来区分是相对引用还是绝对引用。0表示绝对引用,正数则表示相对引用。
Python命名空间中有一些内置的常量:
False : bool值中的假,对该值声明变量时会引发SyntaxError错误。
True : bool值中的真,对该值声明变量时会引发SyntaxError错误。
None : 属于types.NoneType的惟一的值,经常用于表示值的缺失,很多时候用在未对函数默认参数赋值的时候,对该值声明变量时会引发SyntaxError错误。
NotImplemented : 通常由一些用来比较的特殊方法,如eq()、__lt()等作为结果返回,用来告知某些类型之间无法进行比较。
Ellipsis : 表现形式为’…’,类似省略号,bool测试返回True。
debug : 当Python解释器以-O参数模式启动时,返回False,否则返回True
site模块添加的常量:
quit(code=None) & exit(code=None) : 用来停止程序并退出解释器环境,code参数为退出时打印的信息,当被调用时,会抛出SystemExit异常并终止代码的执行。
copyright & license & credits : 用来打印一些版本内容等信息。