欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python数据挖掘教程-第7天(1):Python常用内置函数

程序员文章站 2022-05-25 13:01:05
...

到目前为止(3.8.2),Python解释器共计提供了69个内置函数和类型,这些函数可以在任意条件下被调用。例如我们之前用来查询变量类型的type()就是一个内置函数。

type()实际上是类的构造方法,其返回值是一个type对象,大家在没有理解类与对象之前,也可以先简单地将其理解为一个函数。

下面我们来详细介绍一下在初学阶段比较常用的内置函数,在描述函数的功能时也主要以初学阶段可以用到的功能为主。

1. 数据类型相关

首先,我们先来了解一下与数据类型相关的内置函数。刚才用作举例的type()方法就是与数据类型相关的重要内置函数,可以用来获取变量(对象)的类型。

函数 功能
type() 获取对象的类型

此外,与数据类型相关的内置函数还包括一批构造函数,这些含义可以用来构造新变量,也可以用来转换变量类型。

这些内置函数实际上也是内置类型的构造方法。

函数 功能
bool() 构造布尔型变量或将变量转换为布尔型
dict() 构造字典
float() 构造浮点型变量或将变量转换为浮点型
list() 构造列表或将对象转换为列表
int() 构造整数型变量或将变量转换为整数型
set() 构造集合或将对象转换为集合
str() 构造字符串变量或将变量转换为字符串
tuple() 构造元组或将对象转换为元组
x = str("123")
y = int(x)
print(type(x), type(y))  # 输出值: <class 'str'> <class 'int'>

在初学阶段,我们只需要了解几个常用的数据类型所对应的内置函数即可。如果参数的格式不合适,强行转换数据类型可能会造成报错。

2. 序列操作

下面,我们来了解一些基本的操作序列的内置函数。

函数 功能
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))  # 输出值: 4
print(len(b))  # 输出值: 3
print(len(c))  # 输出值: 5
print(len(d))  # 输出值: 6
print(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']

3. 数学运算

内置函数中也包括一些经常会用到的进行数学运算的函数,包括求绝对值、去最大值、取最小值、幂运算、四舍五入和求和。

函数 功能
abs(x) 计算x的绝对值
max() 计算最大值
min() 计算最小值
pow(base,exp) 计算base的exp次幂
round(number[,ndigits]) 返回nunmer四舍五入到小数点后ndigits位精度的值;当不设置ndigits时,默认为取整
sum() 求和

abs()

计算绝对值。当参数为整数或浮点数时,返回整数或浮点数的绝对值;当参数为虚数时,返回虚数的模。

print(abs(-3))  # 输出值: 3
print(abs(-3.1415926))  # 输出值: 3.1415926
print(abs(complex(2,1)))  # 输出值: 2.23606797749979

max()

计算最大值。当参数为多个数值时,返回其中的最大值;若参数为一个序列,则返回序列中的最大值。

print(max(1, 2, 3, 4, 5))  # 输出值: 5
print(max([1, 2, 3, 4, 5]))  # 输出值: 5

min()

计算最小值。当参数为多个数值时,返回其中的最小值;若参数为一个序列,则返回序列中的最小值

print(min(1, 2, 3, 4, 5))  # 输出值: 1
print(min([1, 2, 3, 4, 5]))  # 输出值: 1

pow()

pow(base,exp)即为计算base的exp次幂,底数和幂都既可以是整数也可以是浮点数。

print(pow(3, 5))  # 输出值: 243
print(pow(3.5, 4.2))  # 输出值: 192.79056951583615

round()

对浮点数进行四舍五入。当只有一个参数时,则将该参数四舍五入为整数;当有两个参数a和b时,则将a四舍五入到小数点后第b位。

print(round(3.1415926))  # 输出值: 3
print(round(3.1415926, 2))  # 输出值: 3.14

sum()

求序列中元素之和。当果只有一个参数时,该参数可以是列表、元组或集合,计算该参数中元素之和;当有两个参数时,在计算第一个参数中元素之和的基础上,还会加上第二个参数的值。

print(sum([1, 2, 3, 4, 5]))  # 输出值: 15
print(sum((1, 2, 3, 4, 5)))  # 输出值: 15
print(sum({1, 2, 3, 4, 5}))  # 输出值: 15
print(sum([1, 2, 3, 4, 5], 2))  # 输出值: 17

4. 迭代相关

在初学阶段,我们主要使用range()来实现循环。

函数 功能
range(stop) 返回一个从0开始,到stop结束的不可变的序列类型
range(start, stop[, step]) 返回一个从start开始,到stop结束的,以step为步长的不可变的序列类型

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]

5. 控制台相关

在此前,我们已经多次使用了input()和print()这两个控制台输入输出的方法。其中input()的参数相对简单,而print()的参数相对复杂。在初学阶段,直接使用这两个内置函数即可,暂不用深入理解

函数 功能
input([prompt]) 从控制台输入中读取一行,将其转换为字符串并返回
print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False) 将objects打印到控制台中,以sep分隔并在末尾加上end

6. 文件读写

在读写文件时,我们通常使用open()这个内置函数。这个函数同样也拥有大量的可选参数,在初学阶段我们只要了解file、mode和encoding三个参数的用法即可;其中file参数是文件所在路径,mode参数是打开文件的模式,encoding为文件的编码类型。

函数 功能
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 打开文件并返回对应的文件对象

其中mode的模式类型如下(文件指针可以简单地理解为使用文本文档打开文件时光标所在的位置):

模式 描述
r 以只读方式打开文件(指针在文件开头)
rb 以二进制、只读方式打开文件(指针在文件开头)
r+ 以读写方式打开文件(指针在文件开头)
rb+ 以二进制、读写方式打开文件(指针在文件开头)
w 以写入方式打开文件(指针在文件开头;如果文件不存在,则创建新文件)
wb 以二进制、写入方式打开文件(指针在文件开头;如果文件不存在,则创建新文件)
w+ 以读写方式打开文件(指针在文件开头;如果文件不存在,则创建新文件)
wb+ 以二进制、读写方式打开文件(指针在文件开头;如果文件不存在,则创建新文件)
a 以追加方式打开文件(指针在文件结尾;如果文件不存在,则创建新文件)
ab 以二进制、追加方式打开文件(指针在文件结尾;如果文件不存在,则创建新文件)
a+ 以追加读写方式打开文件(指针在文件结尾;如果文件不存在,则创建新文件)
ab+ 以二进制、追加读写方式打开文件(指针在文件结尾;如果文件不存在,则创建新文件)

Python常用内置模块

除了内置函数以外,Python还提供了大量的内置模块,下面我们主要了解一些在初学阶段常用的内置模块的用法。

re 正则表达式模块

re是regular expression的缩写,支持正则表达式的一系列查找、替换、分隔等操作。其中,查询我们通常会使用serach或findall方法;替换我们通常会使用sub方法;分隔我们通常会使用split方法。

import re
sentence = "This is a sentence."
print(re.findall("en.", sentence))  # 输出值:['ent', 'enc']
print(re.search("en.", sentence))  # 输出值:<re.Match object; span=(11, 14), match='ent'>
print(re.sub("en", "[NEW]", sentence))  # 输出值:This is a s[NEW]t[NEW]ce.
print(re.split("en", sentence))  # 输出值:['This is a s', 't', 'ce.']

time 时间模块

time模块支持与时间有关的一系列操作,较为常用的包括strftime(输出格式化时间)和

import time
print(time.strftime('%Y-%m-%d %H:%M:%S'))  # 输出值: 2020-05-09 09:50:51
print(time.time())  # 输出值: 1588989051.660889
time.sleep(1)