到目前为止(3.8.2),Python解释器共计提供了69个内置函数和类型,这些函数可以在任意条件下被调用。例如我们之前用来查询变量类型的type()就是一个内置函数。
type()实际上是类的构造方法,其返回值是一个type对象,大家在没有理解类与对象之前,也可以先简单地将其理解为一个函数。
下面我们来详细介绍一下在初学阶段比较常用的内置函数,在描述函数的功能时也主要以初学阶段可以用到的功能为主。
数据类型相关
首先,我们先来了解一下与数据类型相关的内置函数。刚才用作举例的type()方法就是与数据类型相关的重要内置函数,可以用来获取变量(对象)的类型。
此外,与数据类型相关的内置函数还包括一批构造函数,这些含义可以用来构造新变量,也可以用来转换变量类型。
这些内置函数实际上也是内置类型的构造方法。
在初学阶段,我们只需要了解几个常用的数据类型所对应的内置函数即可。如果参数的格式不合适,强行转换数据类型可能会造成报错。
x = str("123")y = int(x)print(type(x), type(y)) # 输出值:
序列操作
下面,我们来了解一些基本的操作序列的内置函数。
函数功能len()获取序列中包含的元素个数sorted()将对象重新排序为新的列表
len()
获取序列中包含的元素数量。当参数为字符串时,返回字符串的长度;当参数为列表、元组或集合时,返回其中元素的数量;当参数为字典时,返回字典第一层属性的数量。
a = "1234"b = [1, 2, 3]c = (1, 2, 3, 4, 5)d = {1, 2, 3, 4, 5, 6}e = {"a": 1, "b": 2}print(len(a)) # 输出值: 4print(len(b)) # 输出值: 3print(len(c)) # 输出值: 5print(len(d)) # 输出值: 6print(len(e)) # 输出值: 2
sorted()
将可迭代的对象重新排序为列表。当参数为列表、元组或集合时,会将元组转换为列表并排序;当参数为字符串时,会将字符串拆分为一个个的字符并排序;如果参数为字典时,会将字典第一层的属性名作为列表排序。
sorted()有一个默认为False的参数reverse,这个参数用来控制是否倒序,如果需要倒序的话可以将reserse参数设为True。
a = "1324"b = [1, 3, 2]c = (1, 3, 2, 5, 4)d = {1, 6, 5, 4, 2, 3}e = {"b": 5, "a": 1}print(sorted(a)) # 输出值: ['1', '2', '3', '4']print(sorted(b)) # 输出值: [1, 2, 3]print(sorted(c)) # 输出值: [1, 2, 3, 4, 5]print(sorted(d, reverse=True)) # 输出值: [6, 5, 4, 3, 2, 1]print(sorted(e)) # 输出值: ['a', 'b']
数学运算
内置函数中也包括一些经常会用到的进行数学运算的函数,包括求绝对值、去最大值、取最小值、幂运算、四舍五入和求和。
abs()
计算绝对值。当参数为整数或浮点数时,返回整数或浮点数的绝对值;当参数为虚数时,返回虚数的模。
print(abs(-3)) # 输出值: 3print(abs(-3.1415926)) # 输出值: 3.1415926print(abs(complex(2,1))) # 输出值: 2.23606797749979
max()
计算最大值。当参数为多个数值时,返回其中的最大值;若参数为一个序列,则返回序列中的最大值。
print(max(1, 2, 3, 4, 5)) # 输出值: 5print(max([1, 2, 3, 4, 5])) # 输出值: 5
min()
计算最小值。当参数为多个数值时,返回其中的最小值;若参数为一个序列,则返回序列中的最小值
print(min(1, 2, 3, 4, 5)) # 输出值: 1print(min([1, 2, 3, 4, 5])) # 输出值: 1
pow()
pow(base,exp)即为计算base的exp次幂,底数和幂都既可以是整数也可以是浮点数。
print(pow(3, 5)) # 输出值: 243print(pow(3.5, 4.2)) # 输出值: 192.79056951583615
round()
对浮点数进行四舍五入。当只有一个参数时,则将该参数四舍五入为整数;当有两个参数a和b时,则将a四舍五入到小数点后第b位。
print(round(3.1415926)) # 输出值: 3print(round(3.1415926, 2)) # 输出值: 3.14
sum()
求序列中元素之和。当果只有一个参数时,该参数可以是列表、元组或集合,计算该参数中元素之和;当有两个参数时,在计算第一个参数中元素之和的基础上,还会加上第二个参数的值。
print(sum([1, 2, 3, 4, 5])) # 输出值: 15print(sum((1, 2, 3, 4, 5))) # 输出值: 15print(sum({1, 2, 3, 4, 5})) # 输出值: 15print(sum([1, 2, 3, 4, 5], 2)) # 输出值: 17
迭代相关
在初学阶段,我们主要使用range()来实现循环。
range()用来生成不可变的序列,一般用于循环。当只有一个参数stop时,返回从0到stop-1的、以1位步长的不可变序列;当有两个参数start和stop时候,返回从start到stop-1的、以1位步长的不可变序列;当有三个参数start、stop和step时候,返回从start到stop-1的、以step为步长的不可变序列。
print(list(range(5))) # 输出值: [0, 1, 2, 3, 4]print(list(range(1, 5))) # 输出值: [1, 2, 3, 4]print(list(range(1, 5, 2))) # 输出值: [1, 3]
控制台相关
在此前,我们已经多次使用了input()和print()这两个控制台输入输出的方法。其中input()的参数相对简单,而print()的参数相对复杂。在初学阶段,直接使用这两个内置函数即可,暂不用深入理解
文件读写
在读写文件时,我们通常使用open()这个内置函数。这个函数同样也拥有大量的可选参数,在初学阶段我们只要了解file、mode和encoding三个参数的用法即可;其中file参数是文件所在路径,mode参数是打开文件的模式,encoding为文件的编码类型。
其中mode的模式类型如下(文件指针可以简单地理解为使用文本文档打开文件时光标所在的位置):