在python中,数值有以下3种类型
其中整数和浮点数都属于实数的范围,而复数使用到的情况较少,这里不做讨论。
字符型和布尔型的值可以转换为数值,方法如下
int(True) # 结果为1int(False) # 结果为0
int('3') # 结果为3
float('inf') # 结果为inf
float('NaN') # 结果为nan
float('nan') # 结果为nan
ord('A') # 结果为65
最后一个函数比较特殊,ord函数根据ASCII码将单个字符转换为数值,与之相对,chr函数可以将数值转换为ASCII编码的字符。
通过上述代码可以发现,python中有两个特殊数值,一个是无穷inf,一个是nan。对于实数的运算,提供了以下4个内置函数
1. abs
abs函数用于求绝对值,用法如下
abs(3)2. round
round函数对数值进行四舍五入,用法如下
round(3.1415926) # 3,默认只保留整数round(3.1415926, 2) # 3.14, 第二个参数控制保留小数点后几位
3. divmod
divmod函数进行除法运算,保留商和余数,用法如下
divmod(7, 3)返回值为商和余数构成的元组,上述语句的返回值为(2, 1)
4. pow
pow函数默认进行幂次运算,用法如下
pow(2, 3) # 2 ** 3, 结果为8pow(2, 3, 3) # 2 ** 3 % 3, 结果为2
提供两个参数时,进行幂次运算,提供三个参数时,将前两个参数幂次运算的结果与第三个参数相除,取余数。
除了内置函数外,更多的实数运算可以通过内置模块math来操作,该模块定义了很多常见的数学运算。
1. 常数
在该模块中,提供了几个数学常量,比如π,自然常数等,写法如下
math.pi # πmath.e # 自然常数
math.tau # 2π
math.inf # 无穷大
math.nan # 非数字
2. 常用函数
math.ceil(4.1) # 5, 向上取整math.floor(4.1) # 4, 向下取整
math.fabs(-3) # 3, 绝对值
math.fsum((-1, 1)) # 0, 求和,返回值为浮点数
math.factorial(3) # 6, 阶乘
math.comb(3,2) # 3, 排列
math.perm(3,2) # 6, 组合
math.prod((2, 3, 2)) #12, 累乘
math.isfinite(1) # True, 如果一个数不是无穷或者NaN,返回True
math.isinf(math.inf) # True. 如果一个数数正或者负无穷大,返回True
math.isnan(math.nan) # True, 如果是NaN, 返回True
math.trunc(3.1) # 3, 截取数值的整数部分
3. 幂函数与对数函数
返回值为浮点数
math.log(math.e) # 自然对数math.log(100, 10) # 第二个参数表示底数,log以10为底的对数
math.log2(4) # log2
math.log10(100) # log10
math.sqrt(4) # 平凡根
math.pow(2, 3) # 幂运算
math.exp(2) # e ** 2
以上只是math模块中的部分函数,完整的函数列表请查看官方文档
https://docs.python.org/zh-cn/3/library/math.html
在实际工作中,对于数值我们还需要进行随机数操作,此时就需要用到内置模块random。需要明确一点,这里的随机数本质是伪随机数。通过设置随机数发生器,可以使得每次随机抽样的结果都相同, 用法如下
import random # 导入模块random.seed(1) # 设定随机数发生器
random.randrange(10) #随机抽样,结果为2
# 用相同的随机数发生器,再次抽样,结果完全相同
random.seed(1)
random.randrange(10)
常用的随机数操作如下
# 随机抽取一个0到10之间的整数>>> random.randrange(10)
2
# 先模拟产生一个0到10,步长为5的序列,再随机抽取一个整数
>>> random.randrange(0, 10, 5)
5
# 随机抽取一个0到10之间的整数
>>> random.randint(0, 10)
7
>>> a = [1, 2, 3, 4, 5]
# 从序列中随机抽取一个元素
>>> random.choice(a)
4
# 从序列中随机抽取k个元素,无重复的随机抽样,返回子集
>>> random.sample(a, 2)
[1, 4]
# 随机打乱顺序
>>> random.shuffle(a)
>>> a
[2, 1, 5, 3, 4]
# 随机抽取一个0到1之间的浮点数
>>> random.random()
0.10222715811004823
# 随机抽取一个高斯分布的值
>>> random.gauss(0, 1)
-0.08735515600559883
以上只是random模块中的部分函数,完整的函数列表请查看官方文档
https://docs.python.org/zh-cn/3/library/random.html
对于一系列的数值,我们可以计算均值,中位数等统计指标,此时需要用到内置的statistics模块,常见操作如下
import statistics# 计算平均数
>>> statistics.mean(a)
3
# 计算平均值,返回值为浮点数
>>> statistics.fmean(a)
3.0
# 计算四分位数
>>> statistics.quantiles(a)
[1.5, 3.0, 4.5]
# 计算中位数
>>> statistics.median(a)
3
# 计算标准差
>>> statistics.stdev(a)
1.5811388300841898
# 计算方差
>>> statistics.variance(a)
2.5
以上只是statistics模块中的部分函数,完整的函数列表请查看官方文档
https://docs.python.org/zh-cn/3/library/statistics.html
内置函数和内置模块提供了常见的数值操作,这些都是基础,需要熟练掌握。
·end·
—如果喜欢,快分享给你的朋友们吧—
关注我们,解锁更多精彩内容!