一、Python常用内置函数介绍

1、abs() 函数返回数字的绝对值。
# abs(x) x -- 数值表达式,可以是整数,浮点数,复数。#print("-26的绝对值为:",abs(-26)) # -26的绝对值为:26#
2、dict() 函数用于创建一个字典。
# dict 语法:## class dict(**kwarg)# class dict(mapping, **kwarg)# class dict(iterable, **kwarg)# 参数说明:## **kwargs -- 关键字# mapping -- 元素的容器。# iterable -- 可迭代对象。#print("创建空字典:", dict()) #创建空字典:{}print("传入关键字: ", dict(a='a', b='b', t='t')) # 传入关键字: {'a': 'a', 'b': 'b', 't':'t'}print(dict(zip(['one', 'two', 'three'], [1, 2, 3]))) # 映射函数方式来构造字典 {'one': 1, 'two': 2, 'three': 3}print(dict([('one', 1), ('two', 2), ('three', 3)]))# 可迭代对象方式来构造字典 {'one': 1, 'two': 2,'three': 3}#
3、help() 函数用于查看函数或模块用途的详细说明。
# help([object])#a =list()print(help(a.append)) # 显示list的append方法的帮助# Help on built-in function append:# append(object, ) method of builtins.list instance# Append object to the end of the list.## None#
4、min() 方法返回给定参数的最小值,参数可以为序列。
# min( x, y, z, .... )#print ("min(-20, 100, 400) : ", min(-20, 100, 400)) # -20##
5、setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。
# setattr(object, name, value)# 参数# object -- 对象。# name -- 字符串,对象属性。# value -- 属性值。## 如果属性不存在会创建一个新的对象属性,并对属性赋值class A():name = yc1993a = A()setattr(a, age, 28)print(a.age) # 28#
6、all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
# 元素除了是 0、空、None、False 外都算 True。# 函数相当于:def all(iterable):for element in iterable:if not element:return Falsereturn True# all(iterable) # iterable -- 元组或列表print(all(['a', 'b', 'c', 'd'])) #列表list,元素都不为空或0 Trueprint( all(['a', 'b', '', 'd'])) #列表list,存在一个为空的元素 Falseprint(all([0, 1, 2, 3])) # 列表list,存在一个为0的元素 Falseprint(all([])) # 空列表 Trueprint(all(())) # 空列表 True
7、hex() 函数用于将一个指定数字转换为 16 进制数。
# hex(x) x -- 一个整数print("789的16进制数为:",hex(789)) # 789的16进制数为:0x315#
8、next() 返回迭代器的下一个项目。
# next() 函数要和生成迭代器的 iter() 函数一起使用。# next(iterable[, default])# 参数说明:## iterable -- 可迭代对象# default -- 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发StopIteration 异常。## 首先获得Iterator对象:# it = iter([1, 2, 3, 4, 5])# # 循环:while True:try:# 获得下一个值:x = next(it)print(x, type(x))except StopIteration:# 遇到StopIteration就退出循环break
9、slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。
# class slice(stop)# class slice(start, stop[, step])# start -- 起始位置# stop -- 结束位置# step -- 间距myslice = slice(5) # 设置截取5个元素的切片myslicearr = range(10)print(arr)print(arr[myslice])# 截取 5 个元素
10、any() 函数用于判断给定的可迭代参数
# iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。# 元素除了是 0、空、FALSE 外都算 TRUE。## 函数等价于def any(iterable):for element in iterable:if element:return Truereturn Falseprint( any(['a', 'b', '', 'd'])) # 列表list,存在一个为空的元素 Trueprint(any([0, '', False])) # 列表list,元素全为0,'',false
11、id() 函数返回对象的唯一标识符,标识符是一个整数。
# CPython 中 id()函数用于获取对象的内存地址。# id([object]) object -- 对象。返回值是内存地址a = yc1993xm1996print(id(a)) # 2163314263536
12、eval() 函数用来执行一个字符串表达式,并返回表达式的值。
# eval(expression[, globals[, locals]])# expression -- 表达式。# globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。# locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象xm = 89print(eval(9*xm)) # 801
13、pow() 方法返回 xy(x 的 y 次方) 的值。
# import math#math.pow( x, y )print(pow(3, 2)) # 9
14、enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
# enumerate(sequence, [start=0])
# sequence -- 一个序列、迭代器或其他支持迭代对象。# start -- 下标起始位置。xm = ['Spring', 'Summer', 'Fall', 'Winter']print(list(enumerate(xm))) #[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
15、zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存
# 我们可以使用 list() 转换来输出列表。## 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。# zip([iterable, ...]) iterable 一个或多个迭代器yc = [1, 2, 4, 5]xm = [6, 7, 8, 9]print(list(zip(yc, xm))) # [(1, 6), (2, 7), (4, 8), (5, 9)]
16、map() 函数会根据提供的函数对指定序列做映射。
# 第一个参数 function以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。# map(function, iterable, ...)# function -- 函数# iterable -- 一个或多个序列def squre(x):return x*2yc =[2, 4, 5, 6, 7]print(list(map(squre, yc))) # [4, 8, 10, 12, 14]
17、Python open() 函数用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
# 使用 open() 函数一定要保证关闭文件对象,即调用close() 函数。# 就是file()函数# open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。# open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None,closefd=True, opener=None)# file: 必需,文件路径(相对或者绝对路径)。# mode: 可选,文件打开模式# buffering: 设置缓冲# encoding: 一般使用utf8# errors: 报错级别# newline: 区分换行符# closefd: 传入的file参数类型# opener:# t :文本模式 (默认)。# x :写模式,新建一个文件,如果该文件已存在则会报错。# b :二进制模式。# + :打开一个文件进行更新(可读可写)。# U :通用换行模式(不推荐)。# r :以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。# rb :以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。# r+ :打开一个文件用于读写。文件指针将会放在文件的开头。# rb+ :以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。# w :打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。# wb :以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。# w+ :打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。# wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。# a :打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。# ab :以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。# a+ :打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。# ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。f = open("new_test.txt");print(f.read());
18、memoryview() 函数返回给定参数的内存查看对象(memory view)。
# 所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问。# memoryview(obj)v = memoryview(bytearray("abcefg", 'utf-8'))print(v[1]) # 98print(v[-1]) # 103print(v[1:4]) # <memory at 0x000001CCF9F7C7C8>print(v[1:4].tobytes()) # b'bce'
19、dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),
# 该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息# dir([object])# print(dir()) # 获得当前模块的属性列表# print(dir([])) # 查看列表的方法# ['__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']
20、exec 执行储存在字符串或文件中的Python语句,相比于 eval,exec可以执行更复杂的Python 代码。
# exec objexec ("""for i in range(5):print(i)""") # 换行时候必须采用4格缩进# 0# 1# 2# 3# 4
21 、format 格式化函数
# Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。# 基本语法是通过 {} 和 : 来代替以前的 % 。print("{}{}".format("hello", "world"))# 不设置指定位置,按默认顺序print( "{1} {0} {1}".format("hello", "world")) # 设置指定位置# 数字格式化# 下表展示了 str.format() 格式化数字的多种方法:# 3.1415926 {:.2f} 3.14 保留小数点后两位# 3.1415926 {:+.2f} +3.14 带符号保留小数点后两位# -1 {:+.2f} -1.00 带符号保留小数点后两位# 2.71828 {:.0f} 3 不带小数# 5 {:0>2d} 05 数字补零 (填充左边, 宽度为2)# 5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4)# 10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)# 1000000 {:,} 1,000,000 以逗号分隔的数字格式# 0.25 {:.2%} 25.00% 百分比格式# 1000000000 {:.2e} 1.00e+09 指数记法# 13 {:>10d} 13 右对齐 (默认, 宽度为10)# 13 {:<10d} 13 左对齐 (宽度为10)# 13 {:^10d} 13 中间对齐 (宽度为10)# ^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。# + 表示在正数前显示 +,负数前显示 -;(空格)表示在正数前加空格# b、d、o、x 分别是二进制、十进制、八进制、十六进制。# 此外我们可以使用大括号{} 来转义大括号,如下实例:# 实例print("{} 对应的位置是{{1}}".format("runoob"))
22、round() 方法返回浮点数x的四舍五入值。
# round( x [, n] )# x -- 数值表达式。# n -- 数值表达式,表示从小数点位数print("round(80.23456, 2) :", round(80.23456, 2)) # 80.23print("round(100.000056,3) :" , round(100.000056, 3)) # 100.0
23 、reverse() 函数用于反向列表中元素。
# list.reverse()yc =["1232", "sdw", "sda", "sdv","sdg"]print(yc.reverse())print(yc)
24、Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型,所以打印的时候不会打印列表。
# range(stop)# range(start, stop[, step])for yc in range(2, 6, 2):print(yc) # 2
二、内置函数总结整理
1、数学运算类
abs(x) | 求绝对值 |
complex([real[, imag]]) | 创建一个复数 |
divmod(a, b) | 分别取商和余数 |
float([x]) | 将一个字符串或数转换为浮点数。如果无参数将返回0.0 |
int([x[, base]]) | 将一个字符转换为int类型,base表示进制 |
long([x[, base]]) | 将一个字符转换为long类型 |
pow(x, y[, z]) | 返回x的y次幂 |
range([start], stop[, step]) | 产生一个序列,默认从0开始 |
round(x[, n]) | 四舍五入 |
sum(iterable[, start]) | 对集合求和 |
oct(x) | 将一个数字转化为8进制 |
hex(x) | 将整数x转换为16进制字符串 |
chr(i) | 返回整数i对应的ASCII字符 |
bin(x) | 将整数x转换为二进制字符串 |
bool([x]) | 将x转换为Boolean类型 |
2、集合类操作
basestring() | str和unicode的超类 |
format(value [, format_spec]) | 格式化输出字符串 |
unichr(i) | 返回给定int类型的unicode |
enumerate(sequence [, start = 0]) | 返回一个可枚举的对象,该对象的next()方法将返回一个tuple |
iter(o[, sentinel]) | 生成一个对象的迭代器,第二个参数表示分隔符 |
max(iterable[, args...][key]) | 返回集合中的最大值 |
min(iterable[, args...][key]) | 返回集合中的最小值 |
dict([arg]) | 创建数据字典 |
list([iterable]) | 将一个集合类转换为另外一个集合类 |
set() | set对象实例化 |
frozenset([iterable]) | 产生一个不可变的set |
str([object]) | 转换为string类型 |
sorted(iterable[, cmp[, key[, reverse]]]) | 队集合排序 |
tuple([iterable]) | 生成一个tuple类型 |
xrange([start], stop[, step]) | xrange()函数与range()类似,但xrnage()并不创建列表,而是返回一个xrange对象,它的行为与列表相似,但是只在需要时才计算列表值,当列表很大时,这个特性能为我们节省内存 |
3、逻辑判断
all(iterable) | 1、集合中的元素都为真的时候为真 |
any(iterable) | 1、集合中的元素有一个为真的时候为真 |
cmp(x, y) | 如果x < y ,返回负数;x == y, 返回0;x > y,返回正数 |
4、反射
callable(object) | 检查对象object是否可调用 |
classmethod() | 1、注解,用来说明这个方式是个类方法 |
compile(source, filename, mode[, flags[, dont_inherit]]) | 将source编译为代码或者AST对象。代码对象能够通过exec语句来执行或者eval()进行求值。 |
dir([object]) | 1、不带参数时,返回当前范围内的变量、方法和定义的类型列表; |
delattr(object, name) | 删除object对象名为name的属性 |
eval(expression [, globals [, locals]]) | 计算表达式expression的值 |
execfile(filename [, globals [, locals]]) | 用法类似exec(),不同的是execfile的参数filename为文件名,而exec的参数为字符串。 |
filter(function, iterable) | 构造一个序列,等价于[ item for item in iterable if function(item)] |
getattr(object, name [, defalut]) | 获取一个类的属性 |
globals() | 返回一个描述当前全局符号表的字典 |
hasattr(object, name) | 判断对象object是否包含名为name的特性 |
hash(object) | 如果对象object为哈希表类型,返回对象object的哈希值 |
id(object) | 返回对象的唯一标识 |
isinstance(object, classinfo) | 判断object是否是class的实例 |
issubclass(class, classinfo) | 判断是否是子类 |
len(s) | 返回集合长度 |
locals() | 返回当前的变量列表 |
map(function, iterable, ...) | 遍历每个元素,执行function操作 |
memoryview(obj) | 返回一个内存镜像类型的对象 |
next(iterator[, default]) | 类似于iterator.next() |
object() | 基类 |
property([fget[, fset[, fdel[, doc]]]]) | 属性访问的包装类,设置后可以通过c.x=value等来访问setter和getter |
reduce(function, iterable[, initializer]) | 合并操作,从第一个开始是前两个参数,然后是前两个的结果与第三个合并进行处理,以此类推 |
reload(module) | 重新加载模块 |
setattr(object, name, value) | 设置属性值 |
repr(object) | 将一个对象变幻为可打印的格式 |
slice() | |
staticmethod | 声明静态方法,是个注解 |
super(type[, object-or-type]) | 引用父类 |
type(object) | 返回该object的类型 |
vars([object]) | 返回对象的变量,若无参数与dict()方法类似 |
bytearray([source [, encoding [, errors]]]) | 返回一个byte数组 |
zip([iterable, ...]) | 实在是没有看懂,只是看到了矩阵的变幻方面 |
5、IO操作
file(filename [, mode [, bufsize]]) | file类型的构造函数,作用为打开一个文件,如果文件不存在且mode为写或追加时,文件将被创建。添加‘b’到mode参数中,将对文件以二进制形式操作。添加‘+’到mode参数中,将允许对文件同时进行读写操作 |
input([prompt]) | 获取用户输入 |
open(name[, mode[, buffering]]) | 打开文件 |
print() | 打印函数 |
raw_input([prompt]) | 设置输入,输入都是作为字符串处理 |
6、其他
help()--帮助信息
__import__()--没太看明白了,看到了那句“Direct useof __import__() is rare”之后就没心看下去了apply()、buffer()、coerce()、intern()---这些是过期的内置函数,故不说明
三、个人总结
我个人觉得内置函数,通常是使用频率比较频繁的操作,所以通过内置函数的形式提供出来,通过对python的内置函数分类分析可以看出来:基本的数据操作很多都是一些数学运算(当然除了加减乘除)、逻辑操作、集合操作、基本IO操作,然后就是对于语言自身的反射操作,还有就是字符串操作,也是比较常用的,尤其需要注意的是反射操作。




