Python----Python高级(模块与包,Python基本库)

server/2025/1/20 13:36:08/

一、模块

1.1、概念

就是一个包含了Python代码的以.py为后缀的Python文件,可以被其他 Python程序导入和使用,也可以自己独立执行,里面存放着的是一组相关的函 数或者类,比如查看关键字列表时导入的keyword模块。

1.2、作用 

令Python代码的编写不必从零开始,不用重复“造轮子”的过程。

避免了同一模块内的命名重复问题。

方便代码的管理与维护,提高代码的可读性。

1.3、分类 

内置模块:Python解释器自带的标准库模块,可以直接导入使用,比如 keyword、os等,这些模块可直接导入而不需要安装,在所有安装了Python 解释器的电脑上都可以运行且每个py文件都会自动导入builtins模块。

        import builtins

第三方模块:由其他开发者开发且需要通过包管理工具(pip)安装的模块,比 如Numpy、Pandas等库,如果有代码需要放到别的电脑上运行,那么这个电 脑也需要先安装用到的第三方库才可以正常运行。

自定义模块:用户根据需求自己编写的.py文件。 

1.4、内置变量 

可通过dir()查看模块的内置变量

python">import builtins
print(dir(builtins))
'''
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 
'BaseExceptionGroup', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 
'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 
'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 
'Ellipsis', 'EncodingWarning', 'EnvironmentError', 'Exception', 'ExceptionGroup', 
'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 
'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 
'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 
'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 
'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 
'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 
'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 
'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 
'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 
'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', 
'__IPYTHON__', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', 
'__package__', '__spec__', 'abs', 'aiter', 'all', 'anext', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 
'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 
'delattr', 'dict', 'dir', 'display', 'divmod', 'enumerate', 'eval', 'exec', 'execfile', 'filter', 'float', 
'format', 'frozenset', 'get_ipython', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 
'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 
'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'range', 'repr', 'reversed', 'round', 
'runfile', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
'''

__name__:用于确定模块是被直接运行还是被导入到其他模块中。当一个模块被直接运行时,__name__的值是”__main__”,否则为模块的名称

python">print(__name__)#__main__
python">import time
time.__name__#'time'

__doc__:包含模块的说明性文档。

python">import time
print(time.__doc__)
'''
This module provides various functions to manipulate time values.There are two standard representations of time.  One is the number
of seconds since the Epoch, in UTC (a.k.a. GMT).  It may be an integer
or a floating point number (to represent fractions of seconds).
The Epoch is system-defined; on Unix, it is generally January 1st, 1970.
The actual value can be retrieved by calling gmtime(0).The other representation is a tuple of 9 integers giving local time.
The tuple items are:year (including century, e.g. 1998)month (1-12)day (1-31)hours (0-23)minutes (0-59)seconds (0-59)weekday (0-6, Monday is 0)Julian day (day in the year, 1-366)DST (Daylight Savings Time) flag (-1, 0 or 1)
If the DST flag is 0, the time is given in the regular time zone;
if it is 1, the time is given in the DST time zone;
if it is -1, mktime() should guess based on the date and time.
'''

__file__:包含模块的文件路径。

python">import os
print(os.__file__)
# d:\Anaconda3\envs\pythonproject\Lib\os.py

__all__:定义一个模块中的哪些变量、函数或类可以通过from module import *导入时可以用。

python">import os
print(os.__all__)
'''
['altsep', 'curdir', 'pardir', 'sep', 'pathsep', 'linesep', 'defpath', 'name', 'path', 'devnull', 
'SEEK_SET', 'SEEK_CUR', 'SEEK_END', 'fsencode', 'fsdecode', 'get_exec_path', 'fdopen', 'extsep', 
'_exit', 'DirEntry', 'EX_OK', 'F_OK', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 
'O_RANDOM', 'O_RDONLY', 'O_RDWR', 'O_SEQUENTIAL', 'O_SHORT_LIVED', 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC', 
'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO', 'P_OVERLAY', 'P_WAIT', 'R_OK', 'TMP_MAX', 
'W_OK', 'X_OK', 'abort', 'access', 'chdir', 'chmod', 'close', 'closerange', 'cpu_count', 'device_encoding', 
'dup', 'dup2', 'environ', 'error', 'execv', 'execve', 'fspath', 'fstat', 'fsync', 
'ftruncate', 'get_blocking', 'get_handle_inheritable', 'get_inheritable', 'get_terminal_size', 'getcwd', 
'getcwdb', 'getlogin', 'getpid', 'getppid', 'isatty', 'kill', 'link', 'listdir', 'listdrives', 
'listmounts', 'listvolumes', 'lseek', 'lstat', 'mkdir', 'open', 'pipe', 'putenv', 'read', 'readlink', 
'remove', 'rename', 'replace', 'rmdir', 'scandir', 'set_blocking', 'set_handle_inheritable', 'set_inheritable', 
'spawnv', 'spawnve', 'startfile', 'stat', 'stat_result', 'statvfs_result', 'strerror', 
'symlink', 'system', 'terminal_size', 'times', 'times_result', 'truncate', 'umask', 'uname_result', 'unlink', 
'unsetenv', 'urandom', 'utime', 'waitpid', 'waitstatus_to_exitcode', 'write', 'makedirs', 
'removedirs', 'renames', 'walk', 'execl', 'execle', 'execlp', 'execlpe', 'execvp', 'execvpe', 
'getenv', 'supports_bytes_environ', 'spawnl', 'spawnle', 'popen']
'''

__package__:包含模块所在的包的名称。

python">import numpy
print(numpy.__package__)#numpy

__dict__:包含模块的全局命名空间。

python">import numpy
print(numpy.__dict__)

1.5、模块导入 

1.5.1、import语句导入

python">import 模块名        #导入一个模块
import 模块1,模块2…   #导入多个模块
import 模块名  as 模块别名   #导入模块并使用新名字

import加载的模块分为四种类型:


        使用python编写的代码.py文件


        已被编译为共享库或DLL的C或C++扩展


        一组模块的包


        使用C编写并链接到python解释器的内置模块 

python">import mathprint(id(math))#2707970757536
print(type(math))#<class 'module'>
print(math.pi)  #3.141592653589793

1.5.2、from…import导入

基本语法格式:

        from 模块名 import 成员1,成员2,…

        尽量避免from 模块名 import *这种写法。*它表示导入模块中所有的不是以下划线_开头的名字都导入到当前位置。 但你不知道你导入什么名字,很有可能会覆盖掉你之前已经定义的名字。而且可读性极其的差。一般生产环境中尽量避免使用,学习时没有关系。 

python">from math import pi,sinprint(sin(pi/2))  #输出1.0

1.5.3、import语句和from...import语句的区别

import导入的是模块。from...import导入的是模块中的函数/类。

import导入的是“文件”,我们要使用该“文件”下的内容,必须前面加“文件名称”。from...import导入的是文件下的“内容”,我们直接使用这些“内容”即可,前面再也不需要加“文件名称”了。 

python">from math import pi,sin
import mathprint(math.sin(math.pi/2))#输出1.0
print(math.pi)#3.141592653589793
print(sin(pi/2))  #输出1.0

二、包

就是一个有层次的文件目录结构,用来更好的组织和管理模块。通俗的说就 是一个目录,里面存放python文件和新的包目录,并且每一个包目录都需要存在 一个__init__.py文件,__init__.py文件可以没有内容,但必须有这个文件。

__init__.py文件的主要作用:

        标识包目录:告诉Python解释器该文件所在的目录应被视为一个包而不是一个普通的目录。如果没有这个文件,可能会无法正常导入包内的模块。

        执行初始化代码:在该文件中也可以存在代码,在调用该包里的模块时,该文件里的代码也会被运行。

        控制包的导入行为:通过__all__来控制哪些模块可以被导入,从而限制包的公开接口,防止不需要的模块导入。

        提供包级别的命名空间:在该文件中定义的变量和函数可以在包的其他模块中共享。

        批量导入模块:在该文件中可以批量导入系统模块或其他模块。 

三、基本的Python库

标准库

        Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。

Python标准库的主要功能有:

  1. 文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持,二进制数据处理等功能

  2. 文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能

  3. 操作系统功能,包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、日志(logging)等功能

  4. 网络通信,包含网络套接字,SSL加密通信、异步网络通信等功能

  5. 网络协议,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了编写网络服务器的框架

  6. W3C格式支持,包含HTML,SGML,XML的处理。

  7. 其它功能,包括国际化支持、数学运算、HASH、Tkinter等

3.1、os

模块提供了与操作系统交互的功能,如文件和目录操作。

python">import os  # 获取当前工作目录  
current_directory = os.getcwd()  
print("当前工作目录:", current_directory)  # 列出当前目录中的文件和文件夹  
files = os.listdir(current_directory)  
print("当前目录中的文件和文件夹:", files)  # 创建一个新目录  
os.mkdir('new_directory')  
print("已创建新目录: new_directory")

3.2、sys

模块提供了对Python解释器的访问,允许您与Python的运行环境进行交互。

python">import sys  # 获取Python版本信息  
print("Python版本:", sys.version)  # 获取命令行参数  
print("命令行参数:", sys.argv)  # 退出程序  
# sys.exit("程序结束")

3.3、time

模块提供了时间相关的功能,包括时间延迟、时间戳等。

python">import time  # 获取当前时间戳  
timestamp = time.time()  
print("当前时间戳:", timestamp)  # 暂停程序执行2秒  
print("暂停2秒...")  
time.sleep(2)  
print("继续执行")

3.4、random

模块用于生成随机数和随机选择。

python">import random  # 生成一个0到10之间的随机整数  
random_integer = random.randint(0, 10)  
print("随机整数:", random_integer)  # 从列表中随机选择一个元素  
choices = ['apple', 'banana', 'cherry']  
random_choice = random.choice(choices)  
print("随机选择的水果:", random_choice)

3.5、math

模块提供了数学函数和常量,如三角函数、对数等。

python">import math  # 计算平方根  
sqrt_value = math.sqrt(16)  
print("16的平方根:", sqrt_value)  # 计算圆周率  
pi_value = math.pi  
print("圆周率:", pi_value)  # 计算正弦值  
sine_value = math.sin(math.pi / 2)  
print("sin(π/2):", sine_value)

四、思维导图 

 


http://www.ppmy.cn/server/159893.html

相关文章

【VRChat · 改模】Unity工程导入人物模型;并添加着色器教程;

一、Unity工程导入人物模型 1.创建一个新的工程文件&#xff08;使用 VRChat 官方的开发工具 VCC&#xff09; 不添加着色器的时候&#xff0c;模型是粉色的 2.导入人物模型 在工程文件的 Assets 目录下&#xff0c;创建一个新的目录&#xff0c;可以起名为你的模型的名字 …

鸿蒙安装HAP时提示“code:9568344 error: install parse profile prop check error” 问题现象

在启动调试或运行应用/服务时&#xff0c;安装HAP出现错误&#xff0c;提示“error: install parse profile prop check error”错误信息。 解决措施 该问题可能是由于应用使用了应用特权&#xff0c;但应用的签名文件发生变化后未将新的签名指纹重新配置到设备的特权管控白名…

基于springboot+vue+微信小程序的宠物领养系统

基于springbootvue微信小程序的宠物领养系统 一、介绍 本项目利用SpringBoot、Vue和微信小程序技术&#xff0c;构建了一个宠物领养系统。 本系统的设计分为两个层面&#xff0c;分别为管理层面与用户层面&#xff0c;也就是管理者与用户&#xff0c;管理权限与用户权限是不…

2.5G PoE交换机 TL-SE2109P 简单开箱评测,8个2.5G电口+1个10G光口(SFP+)

TPLINK&#xff08;普联&#xff09;的万兆上联的2.5G网管交换机TL-SE2109P简单开箱测评。8个PoE 2.5G电口&#xff0c;1个万兆SFP上联口。 2.5G交换机 TL-SE2420 简单开箱评测&#xff0c;16个2.5G电口4个10G光口(SFP)&#xff1a;https://blog.zeruns.com/archives/837.html…

力扣解题汇总(简单)_JAVA

文章目录 数学_简单13_罗马数字转整数66_ 加一9_回文数70_爬楼梯69_x的平方根509_斐波那契数列2235_两整数相加67_二进制求和415_字符串相加2413_最小偶倍数2469_温度转换704_二分查找(重点) 数组_简单1_两数之和88_合并两个有序数组27_移除元素977_有序数组的平方 链表_简单21…

NiceFish(美人鱼)

前端有 3 个版本&#xff1a; 浏览器环境移动端环境Electron 环境 服务端有 2 个版本&#xff1a; SpringBoot 版本&#xff08;已实现基于 Apache Shiro 的 RBAC 权限控制&#xff09;SpringCloud 版本 1.主要依赖 名称版本描述Angular16.2.0Angular 核心库。PrimeNG16.2…

C++:编程语言的中流砥柱

C&#xff1a;编程语言的中流砥柱 一、引言 在当今这个数字化飞速发展的时代&#xff0c;信息技术正以前所未有的速度改变着我们的生活和工作方式。在这个庞大的信息世界中&#xff0c;编程语言犹如一座座坚实的桥梁&#xff0c;巧妙而稳固地连接着人类的智慧与机器的逻辑。它…

Java 特殊文件、 properties文件、xml文件

一. 属性文件.properties 1. #注释 2. 内容都是一些键值对信息&#xff0c;每行都是一个键值对&#xff1b;键不能重复&#xff1b; 3. 属性文件的后缀一般都是properties结尾 4. 使用程序读取properties属性文件里面的数据 (1) Properties&#xff1a;是一个Map集合(键值对集合…