目录
1.内置函数的概述
python内置了很多有用的函数。
这些函数不需要导入任何模块就能直接使用,非常方便。
这篇笔记是对一些内置函数的简要总结。
对我来说,这既是一次分享。也能巩固知识。
一般地,我们会把内置函数进行分类,方便记忆。
下面便是内置函数的介绍。
2.有关输入输出的函数
input()
语法:
input([prompt])
参数:
prompt
----字符串(可选项,用于提醒用户输入)
返回:
- 该函数从输入中读取一行,转换为字符串并返回。
- 返回的值是字符串类型
实例:
print()
语法:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
参数:
objects
----表示输出的对象,对象不知一个时,相互之间需用逗号隔开
sep
----字符串,表示输出语句中多个对象之间的间隔符,默认为空格
end
----字符串,表示输出语句中的结束符,默认值是换行符 \n
file
----表示输出位置,是一个具有 write(string)
方法的对象,默认为标准输出
flush
----表示是否强制刷新输出缓存里的内容,默认值是False
实例:
加了end
的效果如下:
也就是说,print()
默认输出是换行的。
3.有关运算的函数
abs(x)
语法:
abs(x)
参数:
x
----数值表达式,可以是整数,浮点数,复数等
返回:
- 返回参数
x
的绝对值。若x
是复数,则返回复数的模。
实例:
pow()
语法:
pow(x, y[, mod])
参数:
x,y,mod
----都是数值表达式。参数mod
是可选的。
返回:
-
返回
x
的y
次方,即 x y x^y xy. -
如果加了参数
mod
的话,就对结果进行取模,即pow(x,y) % mod
实例:
round()
语法:
round(number[, ndigits])
参数:
number
----数值表达式
ndigits
----数值表达式
返回:
-
返回
number
舍入到小数点后ndigits
位精度的值。 -
ndigits
是可选的,如果不加参数ndigits
,则默认返回最接近输入值的整数,即四舍五入。
实例:
还有这个例子:
divmod()
语法:
divmod(a, b)
参数:
a,b
----数值表达式
返回:
- 返回一个元组。该元组包含着商和余数,即
(a//b, a%b)
实例:
max()
语法:
max(iterable,[,default])
或
max(x1, x2...)
参数:
iterable
----可迭代对象,比如列表,元组等。
default
----数值表达式
x
----数值表达式
返回:
如果只有一个参数:
- 那该参数必须是可迭代对象,如列表,元组等。
- 此时会返回可迭代对象中最大的元素。
- 注意:参数
default
是可选的,用于当可迭代对象为空时返回的值。 - 如果可迭代对象为空,并且没有给 default ,则会触发异常
ValueError
,即报错。
如果不止一个参数:
- 那么返回若干实参中的最大值。
实例:
min()
语法:
min(iterable,[,default])
或
min(x1, x2...)
参数:
iterable
----可迭代对象,比如列表,元组等。
default
----数值表达式
x
----数值表达式
返回:
如果只有一个参数:
- 那该参数必须是可迭代对象,如列表,元组等。
- 此时会返回可迭代对象中最小的元素。
- 注意:参数
default
是可选的,用于当可迭代对象为空时返回的值。 - 如果可迭代对象为空,并且没有给 default ,则会触发异常
ValueError
,即报错。
如果不止一个参数:
- 那么返回若干实参中的最小值。
实例:
sum()
语法:
sum(iterable[,x])
参数:
iterable
----可迭代对象,如列表,元组等
x
----数值表达式,是可选的,默认为0,表示计算总和之后再加上x。
返回:
- 对可迭代对象中的项进行求和运算,并返回结果。
实例:
4.有关转换的函数
int()
语法:
int(x {,base=10])
参数:
x
----整数或字符串
base
----可选项,用来表示x
是多少进制数,默认为10进制(允许的进制有 0、2-36)
返回:
-
该函数返回一个基于数字或字符串 x 构造的整数对象
-
如果有 base 参数,那么 x 必须是字符串
-
如果不给出参数,则返回 0
实例:
温馨小知识:
float()
语法:
float([x])
参数:
x
----整数或字符串
返回:
-
该函数返回从数字或字符串 x 中生成的浮点数。
-
如果不给出参数,则返回 0.0
-
我们可以使用下划线将字符串中的数字进行分组,这并不会影响到值
实例:
complex()
语法:
complex([real[, imag]])
参数:
real
---- 整数或字符串
imag
----整数
返回:
-
该函数返回值为
real + imag j
的复数,或将字符串或数字转换为复数。 -
如果不给出参数,则返回
0j
-
如果参数是字符串,则必须有且仅有一个这个字符串参数
实例:
注意:传入的字符串里面的加号不能有空格!
否则会引起异常,即报错。
如图:
str()
语法:
str(object='')
参数:
object
----一个对象
返回:
-
将传入的对象转换成字符串形式。
-
如果不给出参数,则返回空字符串
实例:
bool()
语法:
bool([x])
参数:
x
----要进行转换的参数
返回:
- 该函数返回布尔值,
True
或False
- 如果没有参数,返回
False
- 如果是数值0或者空序列,则返回
False
- 如果是非零值,则返回
True
实例:
list()
语法:
list([iterable])
参数:
iterable----可迭代对象,比如元组,字符串等。
返回:
- 将对象转换为列表
- 如果没有传入参数,则返回空列表
实例:
tuple()
语法:
tuple([iterable])
参数:
iterable
----可迭代对象,比如列表,字符串等。
返回:
- 将对象转换为元组
- 如果没有传入参数,则返回空元组
实例:
注意:如果传入的是字典,那么返回的是由字典的key
组成的元组
如图:
dict()
语法:
dict(**kwarg)
或
dict(mapping, **kwarg)
或
dict(iterable, **kwarg)
参数:
**kwarg
----关键字
mapping
----关联式的容器类型,即字典。其存储了对象与对象之间的映射关系。
iterable
----可迭代对象
返回:
- 该函数根据传入的参数创建一个字典
- 如果没有参数,则返回一个空字典
- 如果是一个参数,并且参数为映射对象,则返回一个具有与映射对象相同值键对的字典
- 如果是一个参数,并且参数为可迭代对象,则该对象必须每个元素都是包含两个元素的可迭代对象。其中每一项的第一个对象将成为新字典的一个键,第二个对象将成为其对应的值。
- 如果有两个参数,即多了个关键字参数,则关键字参数及其值会被加入到基于位置参数创建的字典。 如果要加入的键已存在,来自关键字参数的值将替代来自位置参数的值。
实例:
创建一个空字典:
语法一举例(即dict(**kwarg)
)
如图:
语法二举例(即dict(mapping, **kwarg)
)
如图:
语法三举例(即dict(iterable, **kwarg)
)
如图:
事实上,我们还能结合zip()
函数来创建一个字典
如图:
set()
语法:
set([iterable])
参数:
iterable
----可迭代对象
返回:
- 返回一个新的集合,也就是无序不重复元素集
实例:
frozenset()
语法:
frozenset([iterable])
参数:
iterable
---- 可迭代的对象,比如列表、元组等。
返回:
- 返回一个被冻结的集合,即不可变集合,其不能再添加或删除任何元素
- 如果没有参数,则返回一个空集合
实例:
eval()
语法:
eval(expression[, globals[, locals]])
参数:
expression
– 字符串,是一条表达式
globals
– 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals
– 变量作用域,局部命名空间,如果被提供,可以是任何映射对象
返回:
- 返回表达式
expression
中的计算结果。
实例:
chr()
语法:
chr(i)
参数:
i
----整数
返回:
- 该函数返回 Unicode 码位为整数 i 的字符的字符串格式。
实例:
需要注意的是,参数i
的范围在0~1114111
如图:
备注:1114111
的16进制表示就是0x10FFFF
ord()
语法:
chr(c)
参数:
c
----字符
返回:
- 该函数返回与字符相对应的十进制整数
实例:
bin()
语法:
bin(x)
参数:
x
----整数
返回:
- 该函数返回一个以“0b”为前缀的二进制字符串
实例:
oct()
语法:
oct(i)
参数:
i
----整数
返回:
- 该函数返回一个前缀为“0o”的八进制字符串
实例:
hex()
语法:
hex(i)
参数:
i
----整数
返回:
- 该函数返回一个以“0x”为前缀的十六进制字符串
实例:
5.有关逻辑判断的函数
all()
语法:
all(iterable)
参数:
iterable----可迭代对象,如元组,列表等。
返回:
- 如果
iterable
的所有元素均为真值则返回True
。 - 如果传入的
iterable
为空,也返回True
- 如果
iterable
中存在0,None、False
则返回False
实例:
any()
语法:
any(iterable)
参数:
iterable
----可迭代对象。
返回:
- 如果传入的可迭代对象里不全是0,空,None,False,就返回True
- 如果传入的对象里全是空的,0,None,或者False,则返回False
- 也就是说,只要传入的参数里有一个是真,返回值就为真
实例:
6.有关迭代的函数
filter()
语法:
filter(function, iterable)
参数:
function
----判断函数,用于过滤掉对象里不符合条件的元素
iterable
----可迭代对象,如列表,元组等。
返回:
- 返回一个新的迭代器,其中的元素都符合判断函数的条件
实例:
我们可以利用list()
函数来转换filter()
函数的返回值
map()
语法:
map(function, iterable, ...)
参数:
function
---- 函数
iterable
---- 可迭代对象,可以有多个iterable
返回:
- 该函数返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器。
- 当有多个可迭代对象时,最短的可迭代对象耗尽则整个迭代就将结束
实例:
由于该函数返回的是迭代器,所有我们可以用list()
函数将结果转换为列表。
range()
range
类型是一种不可变的数字序列,通常用于在 for
循环中循环指定的次数。
语法:
range(stop)
或
range(start, stop[, step])
参数:
start
----表示序列从 start
开始 (如果该形参未提供则为 0)
stop
----表示序列到 stop
结束。(但不包括 stop)
step
----表示步长 (如果该形参未提供则为 1)
返回:
- 需要注意的是,该函数返回的是一个可迭代对象,而不是一个列表
如图:
实例:
- 我们可以使用
list()
函数来获得列表。
如图:
- 前文讲过
range
对象也是一种序列,相比于list
和tuple
,range
的优势在于其总是占用固定数量的内存,因为它只保存了start
,stop
和step
值。 - 所以,一般序列的操作它都能完成(除了拼接和重复,即加法和乘法),因为其内存已经固定了。
range
对象也能进行检测、元素索引查找、切片等操作
如图:
reversed()
语法:
reversed(seq)
参数:
seq
---- 序列类型或者是具有 __reversed__()
方法的对象
返回:
- 返回一个反转的序列或迭代器
实例:
sorted()
语法:
sorted(iterable[,key=None, reverse=False])
参数:
iterable
---- 可迭代对象。
key
---- 可选项,指带有单个参数的函数。用于从 iterable
的每个元素中提取用于比较的键进行排序,默认为None,即对所有元素进行排序。
reverse
---- 可选项,指排序规则(默认为False)注:reverse
= True
是降序 , reverse
= False
是升序
返回:
- 返回一个重新排好序的列表
实例:
zip()
语法:
zip(iterable, ...)
参数:
iterable
----可迭代对象,可以有多个。
返回:
- 该函数在多个
iterable
上并行迭代,从每个可迭代对象上返回一个数据项组成元组。
也就是说, zip()
返回元组的迭代器,其中第 i 个元组包含的是每个参数迭代器的第 i 个元素。
如图:
需要注意的是:
- 如果若干个可迭代对象的长度不同,此时
zip()
在最短的迭代完成后停止。较长可迭代对象中的剩余项将被忽略
如图:
7.其他函数
dir()
语法:
dir([object])
参数:
object
----变量、类型等对象
返回:
-
一般返回对象的属性名称,它的类属性名称,并且递归查找它的类的所有基类的属性
-
如果对象是模块,则返回模块的属性名称
-
如果对象是类型或类对象,则返回它们的属性名称,并且递归查找所有基类的属性
-
如果不带参数,则返回当前范围内的变量、方法和定义的类型列表
实例:
help()
语法:
help([object])
参数:
object----对象
返回:
- 如果对象是一个字符串,则在模块、函数、类、方法、关键字或文档主题中搜索该字符串,并在控制台上打印帮助信息。如果实参是其他任意对象,则会生成该对象的帮助页。
实例:
如果没有传入参数,解释器控制台就会启动交互式帮助系统。
如图:
id()
语法:
id([object])
参数:
object
----对象
返回:
- 该函数返回对象的内存地址
实例:
注意:在对象的生命周期中,id
值是唯一且恒定的
len()
语法:
len(s)
参数:
s
----对象,可以是列表,元组,字符串,集合,字典等。
返回:
- 该函数防护对象的长度或者说元素个数
实例:
locals()
语法:
locals()
参数:
无参数
返回:
- 该函数更新并返回表示当前本地符号表的字典
如图:
- 在函数内部调用
locals()
时,返回由局部变量组成的字典。
如图:
vars()
语法:
vars(object)
参数:
object
----对象
返回:
- 该函数返回模块、类、实例或任何其它具有
__dict__
属性的对象的__dict__
属性。
如图:
查看math
模块
注意:
- 如果不带参数,那么
vars()
的行为类似于locals()
如图:
type()
语法1:
type(object)
参数:
object
----对象
语法2:
type(name, bases, dict)
参数:
name
---- 类的名称。
bases
---- 基类的元组。
dict
----- 字典,类内定义的命名空间变量。
返回
-
如果只有一个参数
object
,那么返回值是一个type
对象。 -
通常与
object.__class__
所返回的对象相同。
如图:
- 如果传入三个参数,则返回一个新的 type 对象
- 这其实是
class
语句的一种动态形式 name
字符串即类名并会成为__name__
属性bases
元组包含基类并会成为__bases__
属性,如果为空则会添加所有类的终极基类object
dict
字典包含类主体的属性和方法定义,它在成为__dict__
属性之前可能会被拷贝或包装。
比如:
calss A:
var = 666
# 上面语句等同于下面这一条语句
A = type('X',(),dict(var=666))
8.小结
以上便是python内置函数的简要总结。
实际上还有一点python
的内置函数没讲,我准备用到了再讲。
用好内置函数,能事半功倍,让我们一起加油,学好python