Day 11 python学习笔记

模块


内置模块

random

random:随机数模块

我们可以在解释器中看到其蕴含的方法

接下来我解释一些常用的方法:

random.random( )

random.random( ) 返回0-1的随机数 [0,1)

python 复制代码
>>> random.random()
0.364183511476754

random.randint(n,m)

random.randint(n,m) 返回[n,m]的整数随机数

python 复制代码
>>> random.randint(5,10)
7

random.randrange(n,m)

random.randrange(n,m) [m,n)的整数随机数 (取左不取右 ,可以设步长)

python 复制代码
>>> 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]的随机浮点数

python 复制代码
>>> 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]) 随机列举有序序列中的一个值

python 复制代码
>>> 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(列表) 洗牌打乱

python 复制代码
>>> 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

python 复制代码
>>> math.e
2.718281828459045
>>> math.pi
3.141592653589793
>>>

math.ceil(浮点型数字)

math.ceil(浮点型数字) 向上取整

python 复制代码
>>> math.ceil(3.00001)
4
>>> math.ceil(3.00000000000001)
4
>>> math.ceil(3.000000000000000000000001)   #注意:取整还是有一定限度的
3

math.floor(浮点型数字)

math.floor(浮点型数字) 向下取整

python 复制代码
>>> math.floor(3.99999)
3
>>> math.floor(3.9999999999999)
3
>>> math.floor(3.99999999999999999999999)  #同理,也是有一定限度的
4
>>>

round(浮点型数字)

round(浮点型数字) 四舍五入,整数为奇数遵循标准的四舍五入, 整数为偶数遵循以五为界限,五会被舍弃(即不进位)

因为它是被定义在全局函数中,所以不需要声明math模块

python 复制代码
>>> 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(被次方数,次方数) 求次方(结果为浮点数)

python 复制代码
>>> math.pow(2,3)
8.0
>>> math.pow(2,4)
16.0
>>>

math.sqrt(被开平方数)

math.sqrt(被开平方数) 开平方根(结果为浮点数)

python 复制代码
>>> math.sqrt(9)
3.0
>>> math.sqrt(4)
2.0
>>> math.sqrt(8)
2.8284271247461903
>>>

math.fabs(数字)

math.fabs(数字) 求绝对值(结果为浮点数)

python 复制代码
>>> 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)

python 复制代码
>>> abs(-11.11)
11.11
>>>

math.log(对数,底数)

math.log(对数,底数) 求真数(结果为浮点数)

若只传一个参数,则默认以e为底

python 复制代码
>>> math.log(8,2)
3.0
>>> math.log(math.e,math.e)  #要用e,必须要加math
1.0
>>> math.log(8)    #默认以e为底
2.0794415416798357
>>>

os

os(操作系统的缩写):操作系统上的文件系统的

方法有很多,我会讲几个常用的,其他的教一种好用的学习方法

方法:

  1. help(os) #输入要了解的模块
  2. 按住ctrl点击里面的网址(网址为官网,如下图)
  3. 进入官网查询你需要了解的(官网可以调节中文的:在左上角)
  4. 退出help文档:ctrl 加 c

os.cpu_count()

os.cpu_count() 获取cpu线程数

python 复制代码
>>> os.cpu_count()
20

os.curdir

os.curdir 获取当前目录(因为它是一个属性,不是方法,所以不需要加())

python 复制代码
>>> os.curdir
'.'          #当前文件,相对路径
>>>

os.path.abspath(os.curdir)

os.path.abspath(os.curdir) 获取当前绝对路径

python 复制代码
>>> os.path.abspath(os.curdir)
'C:\\Users\\朱俊杰'
>>>

os.chdir()

os.chdir() 修改工作目录

python 复制代码
>>> 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() 获取当前目录(绝对路径)

python 复制代码
>>> os.getcwd()
'C:\\Users'
>>>

os.getpid()

os.getpid() 获取进程编号

python 复制代码
>>> os.getpid()
26460

os.getppid()

os.getppid() 获取父进程编号

python 复制代码
>>> os.getppid()
23280
>>>

os.mkdir()

os.mkdir() 创建目录

os.makedirs()

makedirs() 创建多级目录

os.name

os.name 返回操作系统名称

python 复制代码
>>> os.name
'nt'       #代表是windows
>>>

os.remove()

os.remove() 移除

os.rename()

os.rename() 重命名

os.system("cls")

os.system("cls") 清屏

os.sep

os.sep 返回文件分隔符(windows里为\\)

python 复制代码
>>> os.sep
'\\'
>>>

os.listdir([path])

os.listdir([path]) 在列表中,返回当前目录中所有文件名称

以列表里字符串的形式返回

python 复制代码
>>> 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]) 返回的是当前目录中所有文件一个迭代器

python 复制代码
>>> 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有一些内部关联
导入模块两种方法:

  1. import os (然后os.path.方法使用)
  2. from os import path (直接path.方法使用)

path.abspath(目录)

path.abspath(目录) 获取当前路径(绝对路径)

与 上面的 os.path.abspath(os.curdir) 相同

python 复制代码
>>> path.abspath(".")
'C:\\Users'
>>>

path.basename(路径)

path.basename(路径) 获取路径下的文件

python 复制代码
>>> path.basename("D:\\python\\Day10\\main.py")
'main.py'

注意:

  1. 路径外面要加 " "
  2. 分隔符要双 \\

path.dirname(路径)

path.dirname(路径) 获取路径下的文件前面的路径

python 复制代码
>>> 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(路径) 判断路径下的文件是否存在

python 复制代码
>>> path.exists("D:\\python\\Day10\\main.py")
True
>>> path.exists("D:\\python\\Day10\\ma.py")
False
>>>

path.getsize(路径)

path.getsize(路径) 路径(文件)的大小

python 复制代码
>>> path.getsize(".")
4096

path.isdir()

path.isdir() 判断是否是文件夹

path.isfile()

path.isfile() 判断是否是文件

path.join(前面路径,后面路径)

path.join(前面路径,后面路径) 路径拼接

python 复制代码
>>> f="D:\\python\\Day10\\ma.py"
>>> path.join(f,"a.mp3")
'D:\\python\\Day10\\ma.py\\a.mp3'
>>>

路径拼接第二种方法

前面路径+os.sep+后面路径 #os.sep路径分隔符

python 复制代码
>>> f="D:\\python\\Day10\\ma.py"
>>> f + os.sep +"a.mp3"
'D:\\python\\Day10\\ma.py\\a.mp3'
>>>
相关推荐
2202_754421545 分钟前
生成MPSOC以及ZYNQ的启动文件BOOT.BIN的小软件
java·linux·开发语言
我只会发热12 分钟前
Java SE 与 Java EE:基础与进阶的探索之旅
java·开发语言·java-ee
LZXCyrus13 分钟前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
Enougme16 分钟前
Appium常用的使用方法(一)
python·appium
ZZZCY200318 分钟前
华为ENSP--IP编址及静态路由配置
网络·华为
red_redemption21 分钟前
自由学习记录(23)
学习·unity·lua·ab包
懷淰メ22 分钟前
PyQt飞机大战游戏(附下载地址)
开发语言·python·qt·游戏·pyqt·游戏开发·pyqt5
EasyCVR36 分钟前
私有化部署视频平台EasyCVR宇视设备视频平台如何构建视频联网平台及升级视频转码业务?
大数据·网络·音视频·h.265
hummhumm36 分钟前
第 22 章 - Go语言 测试与基准测试
java·大数据·开发语言·前端·python·golang·log4j
宁静@星空42 分钟前
006-自定义枚举注解
java·开发语言