python-18-常用的模块
一.说明
python中的基础系列中我们已经系统性的学习了包和模块,其中模块分为自定义模块、内置标准模块、第三方模块,今天我们来详细介绍下常用的模块,来帮助我们进一步学习python。来开始我们今天的日拱一卒!。
二.常用的模块
-
math模块
又叫做数学函数模块,基本各种编程语言内置这一标准数学函数模块,但是还是有细微的使用区别,我在这里不细讲各语言的数学函数差异,有兴趣的可以自信用各种语言进行对比,,我当初学习的时候就是对比过,。。。言归正传,介绍python的内置数学函数模块
常用函数:
-
math.sqrt(x)
:返回 x 的平方根。 -
math.factorial(x)
:返回 x 的阶乘。 -
math.pi
:圆周率 π 的值。 -
math.ceil(x)
:返回不小于 x 的最小整数(向上取整)。 -
math.floor(x)
:返回不大于 x 的最大整数(向下取整)。math.sin(x)
:返回 x 的正弦值(x 以弧度为单位)。math.cos(x)
:返回 x 的余弦值。math.tan(x)
:返回 x 的正切值。math.asin(x)
:返回 x 的反正弦值(结果以弧度为单位)。math.acos(x)
:返回 x 的反余弦值。math.atan(x)
:返回 x 的反正切值 -
math.exp(x):返回 e 的 x 次幂
math.log(x, base)
:返回 x 在指定底数 base 下的对数(如果不指定底数,则默认为自然对数)math.log10(x)
:返回 x 的以 10 为底的对数 -
math.radians(x)
:将角度 x 转换为弧度。math.degrees(x)
:将弧度 x 转换为角度。 -
math.comb(n, k)
:返回从 n 中选择 k 的组合数。math.perm(n, k)
:返回从 n 中选择 k 的排列数。
-
示例:
python
import math
print(math.sqrt(16)) # 输出: 4.0
print(math.factorial(5)) # 输出: 120
print(math.pi) # 输出: 3.141592653589793
-
random
模块功能:生成随机数和随机选择元素。
常用函数:
random.randint(a, b)
:返回一个范围在 [a, b] 的随机整数。random.choice(seq)
:从非空序列中随机选择一个元素。random.shuffle(lst)
:将列表中的元素随机打乱。
示例
pythonimport random print(random.randint(1, 10)) # 输出: 1到10之间的随机整数 print(random.choice(['apple', 'banana', 'cherry'])) # 随机选择一个水果 lst = [1, 2, 3, 4, 5] random.shuffle(lst) # 打乱列表 print(lst) # 输出: 打乱后的列表
-
time模块
功能:提供各种操作时间的函数
常用函数
- 获取当前时间
time.time()
:返回当前时间的时间戳(自1970年1月1日以来的秒数)。time.localtime()
:将时间戳转换为当前时区的时间元组。time.gmtime()
:将时间戳转换为UTC(协调世界时)时间元组。time.asctime([time_tuple])
:将时间元组转换为可读的字符串格式。
- 时间延时
time.sleep(seconds)
:使程序暂停执行指定的秒数。
- 时间格式化
time.strftime(format, time_tuple)
:将时间元组格式化为字符串,format
是一个格式字符串。time.strptime(string, format)
:将字符串解析为时间元组。
pythonimport time # 获取当前时间戳 current_time = time.time() print("当前时间戳:", current_time) # 获取当前时间的元组 local_time = time.localtime() print("当前本地时间:", local_time) # 格式化输出当前时间 formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time) print("格式化的当前时间:", formatted_time) # 延时操作 print("程序暂停3秒...") time.sleep(3) print("暂停结束!")
- 获取当前时间
-
datetime
模块功能:处理日期和时间。
常用函数:
datetime.date
:表示日期。datetime.time
:表示时间。datetime.datetime
:表示日期和时间
示例
pythonimport datetime # 当前日期和时间 now = datetime.datetime.now() print(now) # 输出当前的日期和时间 print(now.timestamp()) # 转换为时间戳 # 创建一个特定日期 my_date = datetime.date(2023, 11, 2) print(my_date) # 输出: 2023-11-02
-
os
模块功能:与操作系统交互,进行文件和目录操作。
常用函数:
os.getcwd()
:获取当前工作目录。os.listdir(path)
:列出指定目录中的文件和子目录。os.mkdir(path)
:创建新目录。- os.remove() 删除文件
- os.unlink() 删除文件
- os.rename() 重命名文件
- os.listdir() 列出指定目录下所有文件
- os.chdir() 改变当前工作目录
- os.rmdir() 删除空目录(删除非空目录, 使用shutil.rmtree())
- os.makedirs() 创建多级目录
- os.removedirs() 删除多级目录
- os.stat(file) 获取文件属性
- os.chmod(file) 修改文件权限
- os.utime(file) 修改文件时间戳
- os.name(file) 获取操作系统标识
- os.system() 执行操作系统命令
- os.execvp() 启动一个新进程
- os.fork() 获取父进程ID,在子进程返回中返回0
- os.execvp() 执行外部程序脚本(Uinx)
- os.spawn() 执行外部程序脚本(Windows)
- os.access(path, mode) 判断文件权限(详细参考cnblogs)
- os.wait()
- os.path模块:
- os.path.split(filename) 将文件路径和文件名分割(会将最后一个目录作为文件名而分离)
- os.path.splitext(filename) 将文件路径和文件扩展名分割成一个元组
- os.path.dirname(filename) 返回文件路径的目录部分
- os.path.basename(filename) 返回文件路径的文件名部分
- os.path.join(dirname,basename) 将文件路径和文件名凑成完整文件路径
- os.path.abspath(name) 获得绝对路径
- os.path.splitunc(path) 把路径分割为挂载点和文件名
- os.path.normpath(path) 规范path字符串形式
- os.path.exists() 判断文件或目录是否存在
- os.path.isabs() 如果path是绝对路径,返回True
- os.path.realpath(path) #返回path的真实路径
- os.path.relpath(path[, start]) #从start开始计算相对路径
- os.path.normcase(path) #转换path的大小写和斜杠
- os.path.isdir() 判断name是不是一个目录,name不是目录就返回false
- os.path.isfile() 判断name是不是一个文件,不存在返回false
- os.path.islink() 判断文件是否连接文件,返回boolean
- os.path.ismount() 指定路径是否存在且为一个挂载点,返回boolean
- os.path.samefile() 是否相同路径的文件,返回boolean
- os.path.getatime() 返回最近访问时间 浮点型
- os.path.getmtime() 返回上一次修改时间 浮点型
- os.path.getctime() 返回文件创建时间 浮点型
- os.path.getsize() 返回文件大小 字节单位
- os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径
- os.path.lexists #路径存在则返回True,路径损坏也返回True
- os.path.expanduser(path) #把path中包含的"~"和"~user"转换成用户目录
- os.path.expandvars(path) #根据环境变量的值替换path中包含的" n a m e "和" name"和" name"和"{name}"
- os.path.sameopenfile(fp1, fp2) #判断fp1和fp2是否指向同一文件
- os.path.samestat(stat1, stat2) #判断stat tuple stat1和stat2是否指向同一个文件
- os.path.splitdrive(path) #一般用在windows下,返回驱动器名和路径组成的元组
- os.path.walk(path, visit, arg) #遍历path,给每个path执行一个函数详细见手册
- os.path.supports_unicode_filenames() 设置是否支持unicode路径名
示例
pythonimport os print(os.getcwd()) # 输出当前工作目录 print(os.listdir('.')) # 列出当前目录的文件和文件夹 os.mkdir('new_folder') # 创建新目录
-
sys
模块功能:提供与Python解释器交互的功能。
常用函数:
sys.argv
:命令行参数列表sys.exit([status])
:退出程序sys.path
:模块搜索路径的列表- sys.moudule --加载模块字典
- sys.stdin --标准输入
- sys.stdout --标准输出
- sys.stderr --错误输出
- sys.platform --返回系统平台名称
- sys.version --查看python版本
- sys.maxsize --最大的Int值
示例
pythonimport sys print(sys.argv) # 输出命令行参数列表 # sys.exit() # 退出程序 print(sys.path) # 输出模块搜索路径 print(sys.version) # 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)]
-
re
模块功能:支持正则表达式操作。
常用函数:
re.match(pattern, string)
:从字符串的起始位置匹配正则表达式。re.search(pattern, string)
:搜索字符串中首次出现的匹配。re.findall(pattern, string)
:返回字符串中所有匹配的子串。
示例
pythonimport re text = "The rain in Spain" match = re.search(r'\bain\b', text) if match: print("Found:", match.group()) # 输出: Found: ain matches = re.findall(r'\b\w+ain\b', text) print(matches) # 输出: ['rain', 'Spain']
-
json
模块功能:处理JSON数据,支持将Python对象与JSON格式之间的转换。
常用函数:
json.dumps(obj)
:将Python对象编码为JSON字符串。json.loads(json_string)
:将JSON字符串解码为Python对象。json.dump(obj, file)
:将Python对象写入文件。json.load(file)
:从文件中读取JSON数据并解码为Python对象。
示例:
pythonimport json # Python对象转换为JSON字符串 data = {'name': 'Alice', 'age': 30} json_string = json.dumps(data) print(json_string) # 输出: {"name": "Alice", "age": 30} # JSON字符串转换为Python对象 loaded_data = json.loads(json_string) print(loaded_data) # 输出: {'name': 'Alice', 'age': 30}
-
requests
模块功能:用于发送HTTP请求,处理网络请求和响应(需要安装)。
常用方法:
requests.get(url)
:发送GET请求。requests.post(url, data)
:发送POST请求。
示例
pythonimport requests response = requests.get('https://api.github.com') print(response.status_code) # 输出: 200 (请求成功) print(response.json()) # 输出: 响应的JSON内容
-
Pandas
模块功能:用于数据分析和数据操作(需要安装)。
常用功能:
- 创建和操作数据框(DataFrame)。
- 数据清洗和处理。
- 数据分析和可视化。
安装命令:
bashpip install pandas #如果你的系统同时安装了 Python 2 和 Python 3,可能需要使用以下命令: pip3 install pandas #查看 pandas 的版本和安装信息 pip show pandas #查看当前python环境安装插件明细 python -m pip list #切换清华源 下载pandas pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas
示例:
pythonimport pandas as pd # 创建数据框 data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]} df = pd.DataFrame(data) print(df) ''' Name Age 0 Alice 25 1 Bob 30 2 Charlie 35 ''' # 计算平均年龄 average_age = df['Age'].mean() print(average_age) # 输出: 30.0
-
pickle
模块功能:
pickle
模块是Python标准库中的一个模块,用于序列化和反序列化Python对象。序列化是将对象转换为字节流的过程,以便可以将其存储在文件中或通过网络传输。反序列化是将字节流转换回对象的过程。基本功能
- 序列化 :使用
pickle.dump()
或pickle.dumps()
将对象转换为字节流。pickle.dump(obj, file)
:将对象obj
序列化并写入文件file
。pickle.dumps(obj)
:将对象obj
序列化并返回字节流。
- 反序列化 :使用
pickle.load()
或pickle.loads()
将字节流转换回对象。pickle.load(file)
:从文件file
中读取字节流并反序列化为对象。pickle.loads(bytes)
:将字节流bytes
反序列化为对象。
示例代码
pythonimport pickle # 要序列化的对象 data = {'name': 'Alice', 'age': 30, 'is_student': False} # 序列化对象到文件 with open('data.pkl', 'wb') as f: pickle.dump(data, f) # 从文件反序列化对象 with open('data.pkl', 'rb') as f: loaded_data = pickle.load(f) print(loaded_data) # 输出: {'name': 'Alice', 'age': 30, 'is_student': False}
- 序列化 :使用
四.总结
Python 常用功能模块内容很多,大家不用去记,只需要知道有这么一些模块可以帮我们解决什么问题!就好了!
等真的需要用的时候大家在查对于模块的详细写法,去实现我们的需求!~
编程就是这样的 全部都记得根本不可能,但是先留个印象 然后再逐步加深理解!
创作整理不易,请大家多多关注 多多点赞,有写的不对的地方欢迎大家补充,我来整理,再次感谢!