abs()
返回数字的绝对值。
>>> abs(-100)
100
>>> abs(100)
100
dict()
创建一个字典。
>>> dict() #构建空字典
{}
>>> dict(a='fengxinli',b='chenlijian') #传入关键字
{'a': 'fengxinli', 'b': 'chenlijian'}
>>> dict(zip(['one','two'],[1,2])) #映射函数方式构建字典
{'one': 1, 'two': 2}
>>> dict([('one',1),('two',2)]) #可迭代方式构建字典
{'one': 1, 'two': 2}
help()
查看函数或模块的详细用途。
>>> help(str)
Help on class str in module builtins:
class str(object)
| str(object='') -> str
| str(bytes_or_buffer[, encoding[, errors]]) -> str
......
min(),max()
返回给定参数的最小值/最大值,参数可以为序列。
>>> min(156,3,9,100)
3
>>> max(156,3,9,100)
156
>>> min('fengxinli','chenlijian')
'chenlijian'
setattr(),getattr()
与getattr()相对应,用于设置属性值,该属性不一定是存在的。
>>> class A(object):
... hua = 1
...
>>> a = A()
>>> getattr(a,'hua')
1
>>> setattr(a,'hua',100)
>>> getattr(a,'hua')
100
all()
判断可迭代的参数是否都为TRUE,如果是返回True,否则返回False。
>>> a = [a,1,'','chen'] #此处为空
>>> all(a)
False
>>> a = [a,1,' ','chen'] #此处有一个空格
>>> a.all()
>>> all(a)
True
dir()
不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
hex()
转换为十六进制。
>>> hex(13)
'0xd'
next()
返回迭代器的下一个项目
>>> it = iter([1, 2, 3, 4, 5])
>>> # 循环:
... while True:
... try:
... # 获得下一个值:
... x = next(it)
... print(x)
... except StopIteration:
... # 遇到StopIteration就退出循环
... break
...
1
2
3
4
5
slice()
实现切片对象,主要用在切片操作函数里参数传递。
>>> arr = [1,2,3,4,5,6,7,8,9,]
>>> arr[slice(5)]
[1, 2, 3, 4, 5]
any()
判断可迭代的任意一个参数是否为空。
>>> a = ['',2,'xixi']
>>> any(a)
True
>>> b = ['','']
>>> any(b)
False
divmod()
接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)。
>>> divmod(10,3)
(3, 1)
id()
获取对象的内存地址。
>>> fengxinli = 'chenlijian'
>>> id(fengxinli)
15194176
sorted()
对所有的迭代对象进行排序操作。
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
sorted 语法:
sorted(iterable, key=None, reverse=False)
iterable -- 可迭代对象。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
>>> a = [25,99,6]
>>> b = [25,99,6]
>>> a.sort()
>>> a
[6, 25, 99]
>>> sorted(b)
[6, 25, 99]
>>> b
[25, 99, 6]
ascii()
把非ASCII码转化为ACSII码。
>>> a = [3,'hua','哈']
>>> ascii(a)
"[3, 'hua', '\\u54c8']"
enumerate()
将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
>>>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')]
input(),print()
标准输入输出函数。
>>> a = input("请输入a的值:")
请输入a的值:34
>>> print(a)
34
oct()
转换为十进制。
>>> oct(0xffff)
'0o177777'
bin()
转化为二进制。
>>> bin(0xFFFF)
'0b1111111111111111'
eval()
执行一个字符串表达式,并返回表达式的值。
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n = 45
>>> eval("n + 40")
85
int(),float(),str()
将一个字符串或数字转换为整型/浮点型/字符串。
>>> a = 3
>>> int(a)
3
>>> float(a)
3.0
>>> str(a)
'3'
open()
打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
注意:使用 open() 函数一定要保证关闭文件对象,即调用 close() 函数。
open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。
>>> f = open('D:\\test.txt')
>>> f.read()
'hello world!'
bool()
将给定参数转换为布尔类型,如果没有参数,返回 False。
>>> bool()
False
>>> bool(4)
True
>>> bool(0)
False
>>> bool('')
False
>>> bool(None)
False
exec()
执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。
>>> exec("print('chenlijian is a big pig')")
chenlijian is a big pig
ord(),chr()
ord() 函数是 chr() 函数(对于 8 位的 ASCII 字符串)的配对函数,它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。
>>> ord('3')
51
>>> chr(51)
'3'
sum()
求和。
>>> sum([1,2,3,4,5,6,7,8,9])
45
bytearray()
返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。
>>> bytearray()
bytearray(b'')
>>> bytearray([1,2,3,4,5])
bytearray(b'\x01\x02\x03\x04\x05')
>>> bytearray('chenlijian','utf-8')
bytearray(b'chenlijian')
bytes()
返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。
>>> bytes()
b''
>>> bytes([1,2,3,4,5])
b'\x01\x02\x03\x04\x05'
filter()
过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
def is_odd(n):
return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
输出结果为:
F:\study huahua\python>python test.py
[1, 3, 5, 7, 9]
issubclass()
判断参数 class 是否是类型参数 classinfo 的子类。
判断参数 class 是否是类型参数 classinfo 的子类。
pow()
幂运算。
>>> pow(4,3)
64
super()
是用于调用父类(超类)的一个方法。
iter()
生成迭代器。
>>> lis = [1,2,3,4,5]
>>> for i in iter(lis) :
... print(i)
...
1
2
3
4
5
tuple()
创建一个元组。
callable()
检查一个对象是否是可调用。如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。
>>> callable('chenlijian')
False
>>> def add(a,b) :
... return a + b
...
>>> callable(add)
True
format()
字符换格式化。
>>> "{2} {1} {0}".format("I","am","yours") #注意下标从0开始
'yours am I'
>>> site = {"name":"chenlijian","age":"24"} #通过字典设置参数
>>> print("姓名:{name},年龄:{age}".format(**site))
姓名:chenlijian,年龄:24
>>> mylist = ['chenlijian','is mine.'] #通过列表索引设置参数
>>> print("姓名:{0[0]},谁的:{0[1]}".format(mylist)) #"0"是必须的
姓名:chenlijian,谁的:is mine.
len()
求列表,集合,元组等的长度。
>>> len([1,2,3,4,5])
5
>>> len({1,'hua',3})
3
>>> len((1,2,4,6,7))
5
type()
查看当前所定义对象的类型。
>>> a = {1,'hua',3}
>>> type(a)
<class 'set'>
frozenset()
返回一个一个冻结的集合,冻结后的结合不能再添加或者删除任何元素。
>>> a = frozenset(range(5))
>>> a
frozenset({0, 1, 2, 3, 4})
list()
创建一个集合。
range()
range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。
list() 函数是对象迭代器,可以把range()返回的可迭代对象转为一个列表,返回的变量类型为列表。
语法:range(stop) range(start, stop[, step])
>>> list(range(0,30,5))
[0, 5, 10, 15, 20, 25]
>>> list(range(0,-20,-4))
[0, -4, -8, -12, -16]
vars()
返回对象object的属性和属性值的字典对象。
>>> class A :
... a = 'huahua'
...
>>> print(vars(A))
{'__module__': '__main__', 'a': 'huahua', '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None}
classmethod()
修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。
getattr()
返回一个对象属性值。
locals()
以字典类型返回当前位置的全部局部变量。
对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。
>>> def run(str) :
... ru = 1
... print(locals())
...
>>> run(5)
{'str': 5, 'ru': 1}
repr()
将对象转化为供解释器读取的形式。返回一个对象的 string 格式。
{'str': 5, 'ru': 1}
>>> a = {'huahua',1,5,'wu'}
>>> repr(a)
"{1, 5, 'wu', 'huahua'}"
zip()
将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。
>>> a = [1,4,6]
>>> b = [2,5,9]
>>> zip(a,b)
<zip object at 0x00E897B0>
>>> list(zip(a,b))
[(1, 2), (4, 5), (6, 9)]
compile()
将一个字符串编译为字节代码。
>>> str = "for i in 'chen' : print(i)"
>>> c = compile(str,'','exec')
>>> c
<code object <module> at 0x00E84F98, file "", line 1>
>>> exec(c)
c
h
e
n
globals()
以字典类型返回当前位置的全部全局变量。
>>> fengxinli = 'chenlijian'
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'hua': {'a': 'chenlijian', 'b': 'fengxinli'},
map()
提供的函数对指定序列做映射。Python 2.x 返回列表。Python 3.x 返回迭代器。
>>> def square(x) :
... return x ** 2
...
>>> map(square,[1,2,3,4,5])
<map object at 0x00E87BF0>
>>> list(map(square,[1,2,3,4,5]))
[1, 4, 9, 16, 25]
reversed()
反转迭代器。
>>> str = 'chenlijian'
>>> reversed(str)
<reversed object at 0x00E87C90>
>>> list(reversed(str))
['n', 'a', 'i', 'j', 'i', 'l', 'n', 'e', 'h', 'c']
_import_()
用于动态加载类和函数 。
>>> random.randint(1,10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'random' is not defined
>>> import random
>>> random.randint(1,10)
9
complex()
创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。
>>> complex(1,4)
(1+4j)
>>> complex('7')
(7+0j)
>>> complex(7)
(7+0j)
hasattr()
用于判断对象是否包含对应的属性。
round()
四舍五入。
>>> round(3.666)
4
>>> round(3.466)
3
delattr()
删除对象的属性。
hash()
获取取一个对象(字符串或者数值等)的哈希值。
>>> hash('chenlijian')
-1589180721
>>> hash(100)
100
merroyview()
返回给定参数的内存查看对象.
>>> v = memoryview(bytearray("fengxinli","utf-8"))
>>> v[1]
101
>>> v[6]
110
>>> v[1:6]
<memory at 0x00E00A58>
>>> v[1:6].tobytes()
b'engxi'
set()
创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。