Python入门知识点分享——(十六)标准库的导入和调用

在正式学习面向对象编程之前,我们先讲一下怎么在代码中导入并调用现成的模组,也就是Python中的标准库。像我们之前介绍过的os模块就是其中之一,下面我将为大家分别介绍几个常用的标准库。

math

math 模块提供了许多对浮点数的数学运算函数,该模块下的函数返回值均为浮点数。我们使用import关键字来导入模组,再通过dir方法来获取math模组下的内容。

import math
print(dir(math))
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 
'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees',
 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 
'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt',
 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 
'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh',
 'tau', 'trunc', 'ulp']

此外我们还可以获取math模组本身的一些属性。

import math
print(id(math))
print(type(math))
print(math)
2827027040432

这里介绍几个math模组的常量和函数,能用运算符简单表示的就不列出来了。

import math
# math模组中的常量
print('e:', math.e)
print('π:', math.pi)

# math模组中的计算
# e的x次幂
x = 2
print('e的x次幂:', math.exp(x))

# y的向上取整
y = 1.5
print('y的向上取整:', math.ceil(y))

# y的向下取整
print('y的向下取整:', math.floor(y))

# y的x次幂
print('y的x次幂:', math.pow(y, x))

# z从弧度制转为角度制
z = math.pi/2
print('z从弧度制转为角度制:', math.degrees(z))

# z从角度制转为弧度制
z = 90
print('z从角度制转为弧度制:', math.radians(z))

# a的绝对值
a = -2
print('a的绝对值:', math.fabs(a))

# b的阶乘
b = 3
print('b的阶乘:', math.factorial(b))

# x和b的最大公因数
print('x和b的最大公因数:', math.gcd(x, b))

# d的平方根
d = 4
print('d的平方根:', math.sqrt(d))

# 以x为底,d的对数
print('以x为底,d的对数:', math.log(d, x))

# 以10为底,d的对数(常用对数)
print('以10为底,d的对数(常用对数):', math.log10(d))

# 以e为底,d的对数(自然对数)
print('以e为底,d的对数(自然对数):', math.log(d))
e: 2.718281828459045
π: 3.141592653589793
e的x次幂: 7.38905609893065
y的向上取整: 2
y的向下取整: 1
y的x次幂: 2.25
z从弧度制转为角度制: 90.0
z从角度制转为弧度制: 1.5707963267948966
a的绝对值: 2.0
b的阶乘: 6
x和b的最大公因数: 1
d的平方根: 2.0
以x为底,d的对数: 2.0
以10为底,d的对数(常用对数): 0.6020599913279624
以e为底,d的对数(自然对数): 1.3862943611198906

此外还可以表示三角函数。

import math
x = math.pi
y = 1
print(math.sin(x))
print(round(math.sin(x)))
print(math.cos(x))
print(math.tan(x))
print(math.asin(y))
print(math.acos(y))
print(math.atan(y))

 需要注意math中的反三角函数不需要写成‘arcsin’的形式,只需要写成asin即可。另外Python在处理浮点数运算时会出现极小的误差,具体原因可以查看这篇文章浮点精度(float、double)运算不精确的原因。如果不想要输出存在误差的结果,我们可以用之前学过的round内置函数来消除它。

1.2246467991473532e-16
0
-1.0
-1.2246467991473532e-16
1.5707963267948966
0.0
0.7853981633974483

time

time 模块提供了处理时间的函数,它以时间元组来记录和储存时间。

索引 元素 含义 数值
0 tm_year 年份 公元纪年
1 tm_mon 月份 1~12
2 tm_mday 日期 1~31
3 tm_hour 小时 0~23
4 tm_min 分钟 0~59
5 tm_sec 0~59
6 tm_wday 星期 0~6 (从周一开始)
7 tm_yday 天数 一年中的第几天,1~366
8 tm_isdst 夏令时 是否为夏令时:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1

 补充一点关于夏令时的知识:夏令时也叫夏时制,又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。

import time

# 获取当前时间
now_time = time.localtime(time.time())
print("现在时间是:", now_time)

# 格式化时间
now_time1 = time.asctime(time.localtime(time.time()))
print("现在时间是:", now_time1)
现在时间是: time.struct_time(tm_year=2024, tm_mon=1, tm_mday=15, tm_hour=17, tm_min=15, tm_sec=7, tm_wday=0, tm_yday=15, tm_isdst=0)
现在时间是: Mon Jan 15 17:15:07 2024

注意在格式化时间中。每一项字符分别代表星期、月份、该月的第几天、时间和年份。

random

random 模块主要用于生成各种分布的随机数,在数据分析和建模中很常用。不过random模块生成的是伪随机数,它是用确定性的算法计算出来自[0,1]均匀分布的随机数序列。并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。在计算伪随机数时,若使用的初值(种子)不变,那么伪随机数的数序也不变。

import random

random.seed(1)
# 随机数种子编号,用相同编号的种子生成的随机数一致
print(random.random())
# 生成一个[0,1)区间内随机数

random.seed(1)
print(random.random())
# 种子编号一致,生成的随机数一致

random.seed()
print(random.random())
# 默认种子编号,生成的随机数不一致

print(random.randint(5, 10))
# 在[5,10]区间上生成一个随机数,要求闭区间两侧为整数

print(random.randrange(2, 10, 2))
# 前两个参数为区间两端,后一个参数为步长,适用于选奇偶数

print(random.gauss(1, 0))
# 遵从均值为1,标准差为0的高斯正态分布

print(random.expovariate(2))
# 遵从均值为1/2的指数分布

list1 = range(1, 10)
print(random.sample(list1, 5))
# 从序列list1随机抽取5个数字,这也是生成多个随机数的常用方法

print(random.betavariate(1, 1))
# 贝塔分布,第一个参数是α,第二个是β

print(random.gammavariate(1, 1))
# 伽马分布,第一个参数是α,第二个是β
0.13436424411240122
0.13436424411240122
0.21235278740282482
5
6
1.0
0.4480595130642667
[9, 5, 6, 1, 3]
0.6208966857878386
0.8193240193344321

以上就是Python中几个比较常用的标准库了,还剩下一个用于编写正则表达式的re模块,会在下一篇文章中介绍给大家,感谢观看。

你可能感兴趣的:(Python入门,python,开发语言,pycharm,模块测试,概率论)