python内置函数

Python 内置函数就是 python 标准库里(语言自身携带的)函数(公共函数)。

那么,接下来就来谈一谈 python 里的内置函数

进制转换

bin

描述

bin() 返回一个整数 int 或者长整数 long int 的二进制表示。

语法

以下是 bin() 方法的语法:

bin(x)

参数

  • x -- int 或者 long int 数字

返回值

字符串。

实例

以下展示了使用 bin 函数的实例:

print(bin(10))  #0b1010
print(bin(20))  #0b10100

float

描述

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

语法

float()方法语法:

float([x])

参数

  • x -- 整数或字符串

返回值

返回浮点数。

实例

以下实例展示了 float() 的使用方法:

>>>float(1)
1.0
>>> float(112)
112.0
>>> float(-123.6)
-123.6
>>> float('123')     # 字符串
123.0

hex

描述

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

语法

hex 语法:

hex(x)

参数说明:

  • x -- 10进制整数

返回值

返回16进制数,以字符串形式表示。

实例

以下实例展示了 hex 的使用方法:

>>>hex(255)
'0xff'
>>> hex(-42)
'-0x2a'
>>> hex(12)
'0xc'
>>> type(hex(12))
<class 'str'>      # 字符串

oct

描述

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

  • Python2.x 版本的 8 进制以 0 作为前缀表示。
  • Python3.x 版本的 8 进制以 0o 作为前缀表示。

语法

oct 语法:

oct(x)

参数说明:

  • x -- 整数。

返回值

返回 8 进制字符串。

实例

以下实例展示了 oct 的使用方法:

>>> oct(10)
'0o12'

int

描述

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

语法

以下是 int() 方法的语法:

int(x, base=10)

参数

  • x -- 字符串或数字。
  • base -- 进制数,默认十进制。

返回值

返回整型数据。

实例

以下展示了使用 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

数学运算

complex

描述

complex() 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。。

语法

complex 语法:

class complex([real[, imag]])

参数

  • real -- int, long, float或字符串;
  • imag -- int, long, float;

返回值

返回一个复数。

实例

以下实例展示了 complex 的使用方法:

print(complex(1, 2))  #(1 + 2j)
print(complex(1))  #(1 + 0j)
print(complex("3")) #(3+0j)

operator

描述

operator 模块提供了一套与Python的内置运算符对应的高效率函数

语法

适合任何对象,包含的方法有:

operator.lt(a, b)
operator.le(a, b)
operator.eq(a, b)
operator.ne(a, b)
operator.ge(a, b)
operator.gt(a, b)
operator.__lt__(a, b)
operator.__le__(a, b)
operator.__eq__(a, b)
operator.__ne__(a, b)
operator.__ge__(a, b)
operator.__gt__(a, b)

参数

  • a -- 任何对象。
  • b -- 任何对象。

返回值

比较之后,返回 True 或False

实例

以下展示了使用 operator模块的实例:

>>> import operator
>>> operator.eq('hello', 'name')
False
>>> operator.eq('hello', 'hello')
True

abs

描述

abs() 函数返回数字的绝对值。

语法

以下是 abs() 方法的语法:

abs( x )

参数

  • x -- 数值表达式。

返回值

函数返回x(数字)的绝对值。

实例

以下展示了使用 abs() 方法的实例:

a = 5
b = -10
print(abs(a))  #输出3
print(abs(b))  #输出5

round

描述

round() 方法返回浮点数 x 的四舍五入值。

语法

以下是 round() 方法的语法:

round( x [, n]  )

参数

  • x -- 数字表达式。
  • n -- 表示保留小数位数,默认值为 0。

返回值

返回浮点数x的四舍五入值。

实例

以下展示了使用 round() 方法的实例:

In [17]: round(9.33333)
Out[17]: 9

In [18]: round(9.33333, 2)
Out[18]: 9.33

In [19]: round(9.335, 2)
Out[19]: 9.34

divmod

描述

python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组。

语法

以下是 divmod() 方法的语法:

divmod(a, b)

参数

  • a: 数字
  • b: 数字

返回值

返回 (a // b, a % b)元组对象。

实例

以下展示了使用 divmod() 方法的实例:

>>>divmod(7, 2)
(3, 1)
>>> divmod(8, 2)
(4, 0)
>>> divmod(1+2j,1+0.5j)
((1+0j), 1.5j)

pow

描述

pow() 方法返回 $$x^y$$(x 的 y 次方) 的值。

语法

以下是 math 模块 pow() 方法的语法:

import math

math.pow( x, y )

内置的 pow() 方法

pow(x, y[, z])

函数是计算 x 的 y 次方,如果 z 在存在,则再对结果进行取模,其结果等效于 pow(x,y) %z。

**注意:**pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。

参数

  • x -- 数值表达式。
  • y -- 数值表达式。
  • z -- 数值表达式。

返回值

返回 $$x^y$$(x的y次方) 的值。

实例

以下展示了使用 pow() 方法的实例:

>>> pow(2, 2)
4
>>> pow(2, 0)
1
>>> pow(3, 4, 10)
1

eval

描述

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

语法

以下是 eval() 方法的语法:

eval(expression[, globals[, locals]])

参数

  • expression -- 表达式。
  • globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
  • locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

返回值

返回表达式计算结果。

实例

以下展示了使用 eval() 方法的实例:

>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85

exec

描述

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

需要说明的是在 Python2 中exec不是函数,而是一个内置语句(statement),但是Python 2中有一个 execfile() 函数。可以理解为 Python 3 把 exec 这个 statement 和 execfile() 函数的功能够整合到一个新的 exec() 函数中去了。

语法

以下是 exec 的语法:

exec(obj)

参数

  • obj -- 要执行的表达式。

返回值

exec 返回值永远为 None。

实例

以下展示了使用 exec 的实例:

>>> exec("print('hello world')")
hello world

>>> exec("a = 1+2")
>>> exec("print(a)")
3

compile

描述

compile() 函数将一个字符串编译为字节代码。

语法

以下是 compile() 方法的语法:

compile(source, filename, mode[, flags[, dont_inherit]])

参数

  • source -- 字符串或者AST(Abstract Syntax Trees)对象,代表了要编译的python 代码。
  • filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值,虽然是必需的,但通常被置为空串。
  • mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
    • 'eval' 可求值的表达式[和eval()一起使用]
    • 'single' 单一可执行语句[和exec或eval()一起使用]
    • 'exec' 可执行语句组[和exec一起使用]
  • flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
  • flags和dont_inherit是用来控制编译源码时的标志

返回值

返回表达式执行结果。

实例

以下展示了使用 compile 函数的实例:

>>> a = compile('1+2', '', 'eval')
>>> eval(a)
3
>>> a = compile('r = 1+2', '', 'exec')
>>> exec(a)
>>> r
3

hash

描述

hash() 用于获取取一个对象(字符串或者数值等)的哈希值。

语法

hash 语法:

hash(object)

参数说明:

  • object -- 对象;

返回值

返回对象的哈希值。

实例

以下实例展示了 hash 的使用方法:

>>>hash('test')            # 字符串
2314058222102390712
>>> hash(1)                 # 数字
1
>>> hash(str([1,2,3]))      # 集合
1335416675971793195
>>> hash(str(sorted({'1':1}))) # 字典
7666464346782421378
>>>

len

描述

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

语法

len()方法语法:

len( s )

参数

  • s -- 对象。

返回值

返回对象长度。

实例

以下实例展示了 len() 的使用方法:

>>> a = 'helloworld'
>>> b = [1, 2, 3]
>>> len(a)
10
>>> len(b)
3

max

描述

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

语法

以下是 max() 方法的语法:

max( x, y, z, .... )

参数

  • x -- 数值表达式。
  • y -- 数值表达式。
  • z -- 数值表达式。

返回值

返回给定参数的最大值。

实例

以下展示了使用 max() 方法的实例:

>>> max(1, 2, 3)
3
>>> max([1, 2, 3])
3
>>> max({'a':1, 'b':2})
'b'
>>> max([1], [2])
[2]

min

描述

min() 方法返回给定参数的最小值,参数可以为序列。

语法

以下是 min() 方法的语法:

min( x, y, z, .... )

参数

  • x -- 数值表达式。
  • y -- 数值表达式。
  • z -- 数值表达式。

返回值

返回给定参数的最小值。

实例

以下展示了使用 min() 方法的实例:

>>> min(1, 23, -43)
-43
>>> min([12, 0, -12])
-12

sum

描述

sum() 方法对序列进行求和计算。

语法

以下是 sum() 方法的语法:

sum(iterable[, start])

参数

  • iterable -- 可迭代对象,如:列表、元组、集合。
  • start -- 指定相加的参数,如果没有设置这个值,默认为0。

返回值

返回计算结果。

实例

以下展示了使用 sum 函数的实例:

In [64]: alist = [1, 2, 3]

In [65]: sum(alist)  # 不支持单个元素相加
Out[65]: 6

In [66]: sum(alist, 2)  # 在列表求和基础上再加2
Out[66]: 8

range

描述

range() 返回的是一个可迭代对象(类型是对象),而不是列表类型。

语法

range(start, stop[, step])

参数

  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0,5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5)[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0,5)等价于 range(0,5,1)

返回值

可迭代对象。

实例

以下展示了使用 range 函数的实例:

In [10]: range(10)
Out[10]: range(0, 10)

In [11]: list(range(10))
Out[11]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [12]: list(range(10, 7, -2))
Out[12]: [10, 8]

类型转换

chr

描述

chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。

语法

以下是 chr() 方法的语法:

chr(i)

参数

  • i -- 可以是10进制也可以是16进制的形式的数字。

返回值

返回值是当前整数对应的 ASCII 字符。

实例

以下展示了使用 chr() 方法的实例:

>>>print(chr(0x30), chr(0x31), chr(0x61))  # 十六进制
0 1 a
>>>print(chr(48), chr(49), chr(97))         # 十进制
0 1 a

ord

描述

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

语法

以下是 ord() 方法的语法:

ord(c)

参数

  • c -- 字符。

返回值

返回值是对应的十进制整数。

实例

以下展示了使用 ord() 方法的实例:

>>> ord('a')
97

str

描述

str() 函数将对象转化为字符串格式。

语法

以下是 str() 方法的语法:

str(object='')

参数

  • object -- 对象。

返回值

返回一个对象的string格式。

实例

以下展示了使用 str() 方法的实例:

In [31]: str()
Out[31]: ''

In [32]: str([1, 2, 3])
Out[32]: '[1, 2, 3]'

tuple

描述

tuple 函数将可迭代系列(如列表)转换为元组。

语法

以下是 tuple 的语法:

tuple( iterable )

参数

  • iterable -- 要转换为元组的可迭代序列。

返回值

返回元组。

实例

以下展示了使用 tuple 的实例:

In [62]: alist = [1, 2, 3]

In [63]: tuple(alist)
Out[63]: (1, 2, 3)

bool

描述

函数用于将给定参数转换为布尔类型,如果没有参数,返回 False

  • 传入布尔类型时,按原值返回
  • 参数如果缺省,则返回 False
  • 传入字符串时,空字符串返回 False,否则返回 True
  • 传入数值时,0 值返回 False,否则返回 True
  • 传入元组、列表、字典等对象时,元素个数为空返回 False,否则返回 True

bool 是 int 的子类。

语法

以下是 bool() 方法的语法:

bool([x])

参数

  • x -- 要进行转换的参数。

返回值

返回 True 或 False。

实例

以下展示了使用 bool 函数的实例:

print(bool())  #False
print(bool(True))  #True
print(bool(""))  #False
print(bool("123"))  #True
print(bool(0))  #False
print(bool(1))  #True
print(bool([])) #False  若元祖和字典为空时 也为False ,不为空 则为True

dict

描述

dict() 函数用于创建一个字典。

语法

dict 语法:

class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)

参数

  • **kwargs -- 关键字
  • mapping -- 元素的容器。
  • iterable -- 可迭代对象。

返回值

返回一个字典。

实例

以下实例展示了 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}
>>>

list

描述

list() 方法用于将可迭代对象转换为列表。

语法

list()方法语法:

list( iterable )

参数

  • iterable -- 要转换为列表的可迭代对象。

返回值

返回列表。

实例

以下实例展示了 list() 函数的使用方法:

>>> a = 'HELLO'
>>> list(a)
['H', 'E', 'L', 'L', 'O']

>>> b = (1, 2, 3)
>>> list(b)
[1, 2, 3]

>>> c = {1, 2, 3}
>>> list(c)
[1, 2, 3]

>>> d = {'a':1, 'b':2}
>>> list(d)
['a', 'b']
>>> list(d.values())
[1, 2]
>>> list(d.items())
[('a', 1), ('b', 2)]

set

描述

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

语法

set 语法:

set([iterable])

参数说明:

  • iterable -- 可迭代对象对象;

返回值

返回新的集合对象。

实例

以下实例展示了 set 的使用方法:

In [23]: x = set('hello')

In [24]: y = set('world')

In [25]: x  # 删除重复元素
Out[25]: {'e', 'h', 'l', 'o'}

In [26]: y
Out[26]: {'d', 'l', 'o', 'r', 'w'}

In [27]: x & y  # 交集
Out[27]: {'l', 'o'}

In [28]: x | y  # 并集
Out[28]: {'d', 'e', 'h', 'l', 'o', 'r', 'w'}

In [29]: x - y  # 差集
Out[29]: {'e', 'h'}

In [30]: y - x
Out[30]: {'d', 'r', 'w'}

frozenset

描述

frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

语法

frozenset() 函数语法:

frozenset([iterable])

参数

  • iterable -- 可迭代的对象,比如列表、字典、元组等等。

返回值

返回新的 frozenset 对象,如果不提供任何参数,默认会生成空集合。

实例

以下实例展示了 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'])   # 创建不可变集合
>>> c = frozenset()
>>> c
frozenset()
>>> len(c)
0

对象处理

id

描述

id() 函数返回对象的唯一标识符,标识符是一个整数。

CPython 中 id() 函数用于获取对象的内存地址。

语法

id 语法:

id([object])

参数说明:

  • object -- 对象。

返回值

返回对象的内存地址。

实例

以下实例展示了 id 的使用方法:

>>> a = 1
>>> id(a)
4490924448
>>> b = "bookandmusic"
>>> id(b)
4493910576

help

描述

help() 函数用于查看函数或模块用途的详细说明。

语法

help 语法:

help([object])

参数说明:

  • object -- 对象;

返回值

返回对象帮助信息。

实例

以下实例展示了 help 的使用方法:

>>>help('sys')             # 查看 sys 模块的帮助
……显示帮助信息……
 
>>>help('str')             # 查看 str 数据类型的帮助
……显示帮助信息……
 
>>>a = [1,2,3]
>>>help(a)                 # 查看列表 list 帮助信息
……显示帮助信息……
 
>>>help(a.append)          # 显示list的append方法的帮助
……显示帮助信息……

print

描述

print() 方法用于打印输出,最常见的一个函数。

在 Python3.3 版增加了 flush 关键字参数。

print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一个关键字。

语法

以下是 print() 方法的语法:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

参数

  • objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep -- 用来间隔多个对象,默认值是一个空格。
  • end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file -- 要写入的文件对象。
  • flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

返回值

无。

实例

以下展示了使用 print 函数的实例:

In [2]: f = open('1.txt', 'w')

In [3]: cat 1.txt

In [4]: print('hello', 'world', sep=',', end='!')
hello,world!
In [5]: print('hello', 'world')
hello world

In [6]: print('hello', 'world', sep=',', end='!', file=f)

In [7]: cat 1.txt

In [8]: print('hello', 'world', sep=',', end='!', file=f, flush=True)

In [9]: cat 1.txt
hello,world!hello,world!

type

描述

type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。

语法

以下是 type() 方法的语法:

type(object)
type(name, bases, dict)

参数

  • name -- 类的名称。
  • bases -- 基类的元组。
  • dict -- 字典,类内定义的命名空间变量。

返回值

一个参数返回对象类型;三个参数,返回新的类型对象。

实例

以下展示了使用 type 函数的实例:

In [51]: type(1)
Out[51]: int

In [52]: class A():
    ...:     a = 1
    ...:

In [53]: B = type('B', (A,), {'b': 2})  # 继承父类A,创建子类B

In [54]: dir(B)
Out[54]:['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'a', 'b']

instance

描述

isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。

isinstance() 与 type() 区别:

  • type() 不会认为子类是一种父类类型,不考虑继承关系。
  • isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。

语法

以下是 isinstance() 方法的语法:

isinstance(object, classinfo)

参数

  • object -- 实例对象。
  • classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。

返回值

如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。。

实例

以下展示了使用 isinstance 函数的实例:

>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list))    # 是元组中的一个返回 True
True

type()isinstance()区别:

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

对于基本类型来说 classinfo 可以是:

int,float,bool,complex,str(字符串),list,dict(字典),set,tuple

issubclass

描述

issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。

语法

以下是 issubclass() 方法的语法:

issubclass(class, classinfo)

参数

  • class -- 类。
  • classinfo -- 类。

返回值

如果 class 是 classinfo 的子类返回 True,否则返回 False。

实例

以下展示了使用 issubclass 函数的实例:

In [148]: class A():
     ...:     pass
     ...:

In [149]: class B(A):
     ...:     pass
     ...:

In [150]: issubclass(B, A)
Out[150]: True

In [151]: class C():
     ...:     pass
     ...:

In [152]: issubclass(C, A)
Out[152]: False

all

描述

此函数用于判断给定的可迭代参数 iterable 中的所有元素是否都不为 0、都不为 False 或者 iterable 都 为空,如果是返回 True, 否则返回 False

函数等价于:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

语法

以下是 all() 方法的语法:

all(iterable)

参数

  • iterable -- 元组或列表。

返回值

如果iterable的所有元素不为0、''、False或者iterable为空,all(iterable)返回True,否则返回False;

**注意:**空元组、空列表返回值为True,这里要特别注意。

实例

以下展示了使用 all() 方法的实例:

print(all(['a', 'b', 'c', 'd']))  # True
print(all(['a', 'b', '', 'd']))   # False
print(all([0, 1,2, 3]))          # False
print(all(('a', 'b', '', 'd')))   # False
print(all((0, 1,2, 3)))          # False
print(all([]))  # True
print(all(()))  # True

any

描述

any() 函数用于判断给定的可迭代参数 iterable 是否全部为空对象,如果都为空、都为 0、或者都为 false,则返回 False,如果不都为空、不都为 0、不都为 false,则返回 True

函数等价于:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

语法

以下是 any() 方法的语法:

any(iterable)

参数

  • iterable -- 元组或列表。

返回值

如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true。

实例

以下展示了使用 any() 方法的实例:

print(any(['a', 'b', 'c', 'd']))  # True
print(any(['a', 'b', '', 'd']))   # True
print(any([0, 1,2, 3]))          # True
print(any(('a', 'b', '', 'd')))   # True
print(any((0, 1,2, 3)))          # True
print(any([]))  # False
print(any(()))  # False

dir

描述

dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;

带参数时,返回参数的属性、方法列表。

如果参数包含方法__dir__(),该方法将被调用。

如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

语法

以下是 dir() 方法的语法:

dir([object])

参数

  • object -- 对象、变量、类型。

返回值

返回模块的属性列表。

实例

以下展示了使用 dir() 方法的实例:

>>>dir()   #  获得当前模块的属性列表
['__builtins__', '__doc__', '__name__', '__package__', 'arr', 'myslice']
>>> dir([ ])    # 查看列表的方法
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>>

locals

描述

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

对于函数, 方法, lambda 函式, 类, 以及实现了 call 方法的类实例, 它都返回 True。

语法

locals() 函数语法:

locals()

参数

返回值

返回字典类型的局部变量。

实例

以下实例展示了 locals() 的使用方法:

>>> def test():
...     a = 1
...     b = 2
...     return locals()  # 返回一个名字/值对的字典
...
>>> test()  
{'a': 1, 'b': 2}

vars

描述

vars() 函数返回对象object的属性和属性值的字典对象。

语法

vars() 函数语法:

vars(object)

参数

  • object -- 参数可以是模块、类、类实例,或者定义了__dict__属性的对象。

返回值

返回对象object的属性和属性值的字典对象,如果没有参数,就打印当前调用位置的属性和属性值 类似 locals()。

实例

以下实例展示了 vars() 的使用方法:

In [35]: class A():
    ...:     a = 1
    ...:     b = 2
    ...:

In [36]: vars(A)
Out[36]:
mappingproxy({'__module__': '__main__',
              'a': 1,
              'b': 2,
              '__dict__': <attribute '__dict__' of 'A' objects>,
              '__weakref__': <attribute '__weakref__' of 'A' objects>,
              '__doc__': None})

In [37]: def text():
    ...:     a = 1
    ...:     return vars()
    ...:

In [38]: text()
Out[38]: {'a': 1}

globals

描述

globals() 函数会以字典类型返回当前位置的全部全局变量。

语法

globals() 函数语法:

globals()

参数

返回值

返回全局变量的字典。

实例

以下实例展示了 globals() 的使用方法:

>>> a = 1
>>> def text():
...     b = 2
...     print(locals())
...     print(globals())
...
>>> text()
{'b': 2}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': 1, 'text': <function text at 0x10d454050>}

getattr

描述

getattr() 函数用于返回一个对象属性值。

语法

getattr 语法:

getattr(object, name[, default])

参数

  • object -- 对象。
  • name -- 字符串,对象属性。
  • default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

返回值

返回对象属性值。

实例

以下实例展示了 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
>>>

setattr

描述

setattr() 函数用于设置属性值,该属性不一定是存在的。

语法

setattr() 语法:

setattr(object, name, value)

参数

  • object -- 对象。
  • name -- 字符串,对象属性。
  • value -- 属性值。

返回值

无。

实例

以下实例展示了 setattr() 函数的使用方法:

对已存在的属性进行赋值:

In [74]: class A():
    ...:     a = 2
    ...:

In [75]: getattr(A, 'a')
Out[75]: 2

In [76]: setattr(A, 'a', 5)

In [77]: getattr(A, 'a')
Out[77]: 5

如果属性不存在会创建一个新的对象属性,并对属性赋值:

In [81]: class A():
    ...:     a = 2
    ...:

In [81]: setattr(A, 'b', 55)

In [82]: getattr(A, 'b')
Out[82]: 55

hasattr

描述

hasattr() 函数用于判断对象是否包含对应的属性。

语法

hasattr 语法:

hasattr(object, name)

参数

  • object -- 对象。
  • name -- 字符串,属性名。

返回值

如果对象有该属性返回 True,否则返回 False。

实例

以下实例展示了 hasattr 的使用方法:

In [88]: class A():
    ...:     a = 2
    ...:

In [89]: hasattr(A, 'a')
Out[89]: True

In [90]: hasattr(A, 'b')
Out[90]: False

delattr

描述

delattr 函数用于删除属性。

delattr(x, 'foobar') 相等于 del x.foobar

语法

delattr 语法:

delattr(object, name)

参数

  • object -- 对象。
  • name -- 必须是对象的属性。

返回值

无。

实例

以下实例展示了 delattr 的使用方法:

In [85]: class A():
    ...:     a = 2
    ...:

In [86]: delattr(A, 'a')
    
In [87]: hasattr(A, 'a')
Out[87]: False

reversed

描述

reversed 函数返回一个反转的迭代器。

语法

以下是 reversed 的语法:

reversed(seq)

参数

  • seq -- 要转换的序列,可以是 tuple, string, list 或 range。

返回值

返回一个反转的迭代器。

实例

以下展示了使用 reversed 的实例:

In [14]: reversed([1, 2, 3])
Out[14]: <list_reverseiterator at 0x10fa35850>

In [15]: list(reversed([1, 3, 2]))
Out[15]: [2, 3, 1]

enumerate

描述

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

语法

以下是 enumerate() 方法的语法:

enumerate(sequence, [start=0])

参数

  • sequence -- 一个序列、迭代器或其他支持迭代对象。
  • start -- 下标起始位置。

返回值

返回 enumerate(枚举) 对象。

实例

以下展示了使用 enumerate() 方法的实例:

>>>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')]

zip

描述

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

我们可以使用 list() 转换来输出列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 ***** 号操作符,可以将元组解压为列表。

语法

zip 语法:

zip([iterable, ...])

参数说明:

  • iterabl -- 一个或多个迭代器;

返回值

返回一个对象。

实例

以下实例展示了 zip 的使用方法:

In [103]: a  = [1, 2, 3]

In [104]: b = ['a', 'b']

In [105]: zip(a, b)
Out[105]: <zip at 0x10f32f870>

In [106]: list(zip(a, b))
Out[106]: [(1, 'a'), (2, 'b')]
    
In [125]: d = {'a':1, 'b':2, 'c':3}

In [127]: list(zip(*d.items()))
Out[127]: [('a', 'b', 'c'), (1, 2, 3)]