python之常用模块二(path、sys、math、random)

本文深入探讨Python中os和math模块的使用方法,包括路径操作、数学运算、随机数生成等核心功能,适合初学者及进阶者阅读。

path

from os import path
import os
cwd = os.getcwd()
print(cwd)   #获取当前脚本文件目录

filename = __file__    #
print(filename)     #当前脚本绝对路径

#目录或文件的切割
print(path.split(filename)) #('D:/python笔记/day23模块一/day23-Python常用模块一', 'path模块复习.py')
# 返回一个元祖,第一个元素:文件所处目录 第二个元素:文件或目录名称
print(path.split(cwd))  #('D:\\python笔记\\day23模块一', 'day23-Python常用模块一')

#判断是否文件
print(path.isfile(filename))   #True
print(path.isfile(cwd))   #False

#判断是否是目录
print(path.isdir(filename))  #False
print(path.isdir(cwd))   #True

#文件夹包含的文件或文件夹的名字的列表
print(os.listdir('.'))  #当前目录,
print(os.listdir('E:/'))  #也可以指定

#判断文件或目录是否存在
print(path.exists(filename))  #True
print(path.exists(cwd))       #True
print(path.exists('E:/123'))  #False

#文件后缀名的切割
print('aaa.jpg'.split('.')[-1]) #jpg
print(path.splitext('aaa.jpg')[-1])  #.jpg

#获取文件名称
print(path.basename(filename))
print(path.basename(cwd))

#获取文件或目录所在的目录
print(filename)
print(path.dirname(filename))
print(path.dirname('./作业'))   #.:代表当前目录

sys

import sys
# 包和模块的查找目录列表,python解释器会按照这个列表的顺序依次查找包和模块
# 管理模块名称的字典 sys.modules是一个全局字典,
# 该字典是python启动后就加载在内存中。每当程序员导入新的模块,
# sys.modules都将记录这些模块。字典sys.modules对于加载模块起到了缓冲的作用。
# 当某个模块第一次导入,字典sys.modules将自动记录该模块。当第二次再导入该模块时,
# python会直接到字典中查找,从而加快了程序运行的速度。

print(sys.modules)   #所有安装的包和模块。存放在D:\python3\Lib\site-packages
# 一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。
# 当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?
# 这就涉及到Python的搜索路径,搜索路径是由一系列目录名组成的,Python解释器就依次从这些目录中去寻找所引入的模块。
# 这看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径

#python解释器版本
print(sys.version)  #3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)]

#平台解释器版本而不是你的操作系统
#32位的程序能够运行64位的电脑上,但是64位的程序不能运行在32位的操作系统
print(sys.platform)  #win32

#默认的编码信息
print(sys.getdefaultencoding())  #utf-8
#默认文件系统编码信息
print(sys.getfilesystemencoding())  #utf-8

math

与数学运算相关的模块
import math
#求次方
print(math.pow(2,3))  #8.0
print(math.pow(2,2))  #4.0

#返回数字的上入整数
print(math.ceil(2.23))  #3 对一个数进行向上取整

#返回数字的下舍整数
print(math.floor(2.23))  #2 对一个数进行向上取整

#求平方根
print(math.sqrt(23))  #4.795831523312719
print(math.sqrt(4))   #2.0

#求阶乘
print(math.factorial(5))  #120

#求直角的斜边长
print(math.hypot(3,4))  #5.0

print(math.log10(100)) # 以10为底数的对角函数

random

import random
# 获取一个0-1之间的随机小数
print(random.random())

#获取指定范围的小数,包含两端,第二位数不能比第一位大
print(random.uniform(1,10))  #5.705302863360474
print(random.uniform(2,5))   #4.131115868398357
print(random.uniform(1,5))   #3.184356161506939
print(random.uniform(50,50)) #包含两端  50.0

#获取指定范围内的整数,包含两端
print(random.randint(1,10))  #2
print(random.randint(2,5))   #3
print(random.randint(1,5))   #4
print(random.randint(50,50))  #包含两端 50

#randrange函数,获取从0开始不包含参数本身
print(random.randrange(1))  #0
print(random.randrange(1,2))  #1

# choices函数--->返回的list(序列对象--->获取某个元素)
a_list = [1,2,3,4,5,6,7]
print(random.choices(a_list,k=5))   #k可以指定获取几个元素,不写就随机获取一个元素

#根据权重来获取
a_list = [1,2,3,4,5]
print(random.choices(a_list,weights=[60,10,20,30,50]))   #[1]

#sample函数,和choices相似,只是不支持权重
a_list = [1,2,3,4,5]
print(random.sample(a_list,k=2))   #[5,4]

#打乱顺序shuffle
b_list = [1,2,3,4,5,6,7]
random.shuffle(b_list)
print(b_list)  #[1, 4, 7, 5, 3, 2, 6]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值