模块
内置模块
random
random:随机数模块
我们可以在解释器中看到其蕴含的方法
接下来我解释一些常用的方法:
random.random( )
random.random( ) 返回0-1的随机数 [0,1)
>>> random.random()
0.364183511476754
random.randint(n,m)
random.randint(n,m) 返回[n,m]的整数随机数
>>> random.randint(5,10)
7
random.randrange(n,m)
random.randrange(n,m) [m,n)的整数随机数 (取左不取右 ,可以设步长)
>>> random.randrange(1,10)
3
>>> random.randrange(1,10)
1>>> random.randrange(0,1) #左闭右开,所以永远取不到1
0
>>> random.randrange(0,1)
0
>>> random.randrange(0,1)
0>>> random.randrange(1,10,2) #步长为2,所以从1起步只能取1,3,5,7,9
5
>>> random.randrange(1,10,2)
9
>>> random.randrange(0,10,2) #步长为2,所以从0起步只能取0,2,4,6,8
2
>>> random.randrange(0,10,2)
4
>>>
random.uniform(n,m)
random.uniform(n,m) 返回一个[n,m]的随机浮点数
>>> random.uniform(0,1)
0.8341113837892614
>>> random.uniform(0,0) #可以看出是[n,m]的
0.0
>>> random.uniform(0,100)
66.47340671952776
>>>
random.choice([元素1,元素2,元素3,元素4])
random.choice([元素1,元素2,元素3,元素4]) 随机列举有序序列中的一个值
>>> random.choice([1,2,3,4,5])
5
>>> random.choice([1,2,3,4,5])
4
>>> random.choice([1,2,3,4,5])
1
>>>
random.shuffle(列表)
random.shuffle(列表) 洗牌打乱
>>> list1 = [1,2,3,4,5,6]
>>> random.shuffle(list1)
>>> list1
[4, 1, 6, 3, 2, 5]
>>>
math
math:数学模块
math.e、math.pi(π)
math.e
math.pi
>>> math.e
2.718281828459045
>>> math.pi
3.141592653589793
>>>
math.ceil(浮点型数字)
math.ceil(浮点型数字) 向上取整
>>> math.ceil(3.00001)
4
>>> math.ceil(3.00000000000001)
4
>>> math.ceil(3.000000000000000000000001) #注意:取整还是有一定限度的
3
math.floor(浮点型数字)
math.floor(浮点型数字) 向下取整
>>> math.floor(3.99999)
3
>>> math.floor(3.9999999999999)
3
>>> math.floor(3.99999999999999999999999) #同理,也是有一定限度的
4
>>>
round(浮点型数字)
round(浮点型数字) 四舍五入,整数为奇数遵循标准的四舍五入, 整数为偶数遵循以五为界限,五会被舍弃(即不进位)
因为它是被定义在全局函数中,所以不需要声明math模块
>>> round(4.5) #整数为偶数遵循以五为界限,五会被舍弃(即不进位)
4
>>> round(5.5) #整数为奇数遵循标准的四舍五入
6>>> round(4.6) #其余皆遵循四舍五入
5
>>> round(4.4)
4
>>> round(5.6)
6
>>> round(5.4)
5
>>>
math.pow(被次方数,次方数)
math.pow(被次方数,次方数) 求次方(结果为浮点数)
>>> math.pow(2,3)
8.0
>>> math.pow(2,4)
16.0
>>>
math.sqrt(被开平方数)
math.sqrt(被开平方数) 开平方根(结果为浮点数)
>>> math.sqrt(9)
3.0
>>> math.sqrt(4)
2.0
>>> math.sqrt(8)
2.8284271247461903
>>>
math.fabs(数字)
math.fabs(数字) 求绝对值(结果为浮点数)
>>> math.fabs(-11)
11.0
>>> math.fabs(11)
11.0
>>> math.fabs(-11.11)
11.11
>>> math.fabs(11.11)
11.11
>>>
abs(数字)
abs(数字) 求绝对值(全局函数内的,无需声明math)
>>> abs(-11.11)
11.11
>>>
math.log(对数,底数)
math.log(对数,底数) 求真数(结果为浮点数)
若只传一个参数,则默认以e为底
>>> math.log(8,2)
3.0
>>> math.log(math.e,math.e) #要用e,必须要加math
1.0
>>> math.log(8) #默认以e为底
2.0794415416798357
>>>
os
os(操作系统的缩写):操作系统上的文件系统的
方法有很多,我会讲几个常用的,其他的教一种好用的学习方法
方法:
- help(os) #输入要了解的模块
- 按住ctrl点击里面的网址(网址为官网,如下图)
- 进入官网查询你需要了解的(官网可以调节中文的:在左上角)
- 退出help文档:ctrl 加 c
os.cpu_count()
os.cpu_count() 获取cpu线程数
>>> os.cpu_count()
20
os.curdir
os.curdir 获取当前目录(因为它是一个属性,不是方法,所以不需要加())
>>> os.curdir
'.' #当前文件,相对路径
>>>
os.path.abspath(os.curdir)
os.path.abspath(os.curdir) 获取当前绝对路径
>>> os.path.abspath(os.curdir)
'C:\\Users\\朱俊杰'
>>>
os.chdir()
os.chdir() 修改工作目录
>>> os.path.abspath(os.curdir)
'C:\\Users\\朱俊杰'
>>> os.chdir("../") #../为返回上一级目录
>>> os.path.abspath(os.curdir)
'C:\\Users'
>>>
os.chmod()
os.chmod() 修改权限(例:可读可写)(在Lunix系统下使用)
os.getcwd()
os.getcwd() 获取当前目录(绝对路径)
>>> os.getcwd()
'C:\\Users'
>>>
os.getpid()
os.getpid() 获取进程编号
>>> os.getpid()
26460
os.getppid()
os.getppid() 获取父进程编号
>>> os.getppid()
23280
>>>
os.mkdir()
os.mkdir() 创建目录
os.makedirs()
makedirs() 创建多级目录
os.name
os.name 返回操作系统名称
>>> os.name
'nt' #代表是windows
>>>
os.remove()
os.remove() 移除
os.rename()
os.rename() 重命名
os.system("cls")
os.system("cls") 清屏
os.sep
os.sep 返回文件分隔符(windows里为\\)
>>> os.sep
'\\'
>>>
os.listdir([path])
os.listdir([path]) 在列表中,返回当前目录中所有文件名称
以列表里字符串的形式返回
>>> os.listdir(".")
['All Users', 'Default', 'Default User', 'desktop.ini', 'GLCache',
'Public', '朱俊杰', '鏈变繆鏉', '鏈变繆鏉癨AppData']
>>> os.listdir("d:\\")
['$RECYCLE.BIN', '.idea', '73fee546e6777c712160fd43cddcd773',
'BaiduNetdiskDownload', 'BaiduSyncdisk', 'Config.Msi', 'c 语言',
'edge下载', 'ensp', 'JAVA', 'kali', 'Program Files', 'pycharm',
'python', 'steam', 'System Volume Information', 'venv', 'vmware','WindowsApps', 'winrar', 'WpSystem', 'WUDownloadCache', 'xlj',
'云计算', '云计算1', '夸克网盘', '奖学金', '学校', '有道云笔记',
'比特', '火狐下载', '腾讯会议', '腾讯会议录频', '谷歌下载', '软件',
'配音', '金山打字通', '钉钉']
>>>
os.scandir([path])
os.scandir([path]) 返回的是当前目录中所有文件一个迭代器
>>> a = os.scandir("d:\\")
>>> for i in a:
... print(i)
...
<DirEntry '$RECYCLE.BIN'>
<DirEntry '.idea'>
<DirEntry '73fee546e6777c712160fd43cddcd773'>
<DirEntry 'BaiduNetdiskDownload'>
<DirEntry 'BaiduSyncdisk'>
<DirEntry 'Config.Msi'>
<DirEntry 'c语言'>
<DirEntry 'edge下载'>
<DirEntry 'ensp'>
<DirEntry 'JAVA'>
<DirEntry 'kali'>
<DirEntry 'Program Files'>
<DirEntry 'pycharm'>
<DirEntry 'python'>
<DirEntry 'steam'>
<DirEntry 'System Volume Information'>
<DirEntry 'venv'>
<DirEntry 'vmware'>
<DirEntry 'WindowsApps'>
<DirEntry 'winrar'>
<DirEntry 'WpSystem'>
<DirEntry 'WUDownloadCache'>
<DirEntry 'xlj'>
>>>
os.path
os.path 不在os里边,只是和os有一些内部关联
导入模块两种方法:
- import os (然后os.path.方法使用)
- from os import path (直接path.方法使用)
path.abspath(目录)
path.abspath(目录) 获取当前路径(绝对路径)
与 上面的 os.path.abspath(os.curdir) 相同
>>> path.abspath(".")
'C:\\Users'
>>>
path.basename(路径)
path.basename(路径) 获取路径下的文件
>>> path.basename("D:\\python\\Day10\\main.py")
'main.py'
注意:
- 路径外面要加 " "
- 分隔符要双 \\
path.dirname(路径)
path.dirname(路径) 获取路径下的文件前面的路径
>>> path.dirname("D:\\python\\Day10\\main.py")
'D:\\python\\Day10'
>>>
path.getctime(路径)
path.getctime(路径) 文件创建时间
path.getmtime(路径)
path.getmtime(路径) 文件修改时间
path.getatime(路径)
path.getatime(路径) 文件最近一次修改的时间
path.exists(路径)
path.exists(路径) 判断路径下的文件是否存在
>>> path.exists("D:\\python\\Day10\\main.py")
True
>>> path.exists("D:\\python\\Day10\\ma.py")
False
>>>
path.getsize(路径)
path.getsize(路径) 路径(文件)的大小
>>> path.getsize(".")
4096
path.isdir()
path.isdir() 判断是否是文件夹
path.isfile()
path.isfile() 判断是否是文件
path.join(前面路径,后面路径)
path.join(前面路径,后面路径) 路径拼接
>>> f="D:\\python\\Day10\\ma.py"
>>> path.join(f,"a.mp3")
'D:\\python\\Day10\\ma.py\\a.mp3'
>>>
路径拼接第二种方法
前面路径+os.sep+后面路径 #os.sep路径分隔符
>>> f="D:\\python\\Day10\\ma.py"
>>> f + os.sep +"a.mp3"
'D:\\python\\Day10\\ma.py\\a.mp3'
>>>