模块
一个.py
文件就是一个模块,包含函数、类、语句。
好处:1、方便其他程序和脚本的导入并使用;2、避免函数名和变量名冲突;3、提高代码的可维护性和可重用性。
创建模块
新建一个.py
文件,名称尽量不要与python自带的标准模块名称相同;
导入模块
import 模块名称 as [别名]
from 模块名称 import 函数/变量/类
import math
print(id(math))
print(type(math))
print(math)
2137883863544
<class 'module'>
<module 'math' (built-in)>
print(dir(math))
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
print(math.pi)
3.141592653589793
from math import pi
print(pi)
3.141592653589793
以主程序形式运行
在每个模块地定义中都包括一个记录模块名称的变量__name__
,程序可以检查到该变量,以确定他们在哪个模块中运行。如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__
变量的值为__main__
。
if __name__ == '__main__':
pass
python中的包
包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下。
包与目录的区别:
1、包含__init__.py
文件的目录称为包
2、目录里通常不包含__init__.py
文件
包的导入:
import 包名.模块名
pycharm,新建package–》新建包
pycharm,新建directory–》新建目录
python中常用的内置模块
# sys模块,与python解释器及其环境操作相关的标准库
import sys
print(sys.getsizeof(10))
print(sys.getsizeof('HELLO'))
28
54
# time模块,提供关于时间相关的函数的标准库
import time
print(time.time())
print(time.localtime(time.time()))
1616501558.825745
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=23, tm_hour=20, tm_min=12, tm_sec=38, tm_wday=1, tm_yday=82, tm_isdst=0)
# os模块,提供了访问操作系统服务功能的标准库
# calendar,提供与日期相关的各种函数的标准库
# urllib,用来读取来自网上(服务器)的数据的标准库
import urllib.request
print(urllib.request.urlopen('https://www.baidu.com').read())
b'<html>\r\n<head>\r\n\t<script>\r\n\t\tlocation.replace(location.href.replace("https://","http://"));\r\n\t</script>\r\n</head>\r\n<body>\r\n\t<noscript><meta http-equiv="refresh" content="0;url=http://www.baidu.com/"></noscript>\r\n</body>\r\n</html>'
# json,用于使用JSON序列化和反序列化对象
# re,用于在字符串中执行正则表达式匹配和替换
# math,提供标准算术运算函数的标准库
# decimal,用于精确k控制运算精度、有效数字和四舍五入操作的十进制运算
# logging,提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能
第三方模块的安装与使用
在命令窗口输入:
pip install 模块名
import schedule
def job():
print('起床了--')
schedule.every(3).seconds.do(job)