时间模块: time
此模块提供了时间相关的函数,且一直可用.
时间简介:
公元纪年: 从0000年1月1日0时开始
计算机元年:从1970年1月1日0时开始,此时时钟为0
UTC时间(Coordinated Universal Time) 是从Greenwich 时间开始计算的
UTC时间不会因时区问题而产生错误
DST 阳光节约时间 (Daylight Saving Time) 又称为夏令时
时间元组:
是一个由9个整数组成的,用来表示时间
9个数依次为:
四位的年(如1993)
月
日
时
分
秒
星期几(0~6,周一是0)
元旦开始日(1~366)
夏令时修正时间(-1, 0, +1)
注:如果年份小于100,则会自动转换为加1900后的数值
模块名: time
变量:
time.altzone 夏令时时间写UTC时间差(秒为单位)
time.daylight 夏令时校正时间
time.timezone 本地时间与UTC时间差
time.tzname 时区名字的元组。
注:
CST 为中国标准时间(China Standard Time UTC+8:00)
函数:
time.time() 返回从计算机元年至当前时间的秒数的浮点数(UTC时间为准)
time.sleep(secs) 让程序按给定的秒数的浮点数睡眠一段时间
time.gmtime([secs]) 将给出的秒数转换为UTC表达的时间元组
time.asctime([tuple]) 将时间元组转换为时间日期字符串
time.mktime(tuple) 将本地日期时间元组转换为计算机纪年秒数时间
time.localtime([secs]) 将UTC秒数时间转换为日期元组(以本地时间为准)
注:secs 代表秒数, [] 代表可省略
系统模块 sys
与系统相关的信息
变量:
sys.path 模块的搜索路径 path[0] 是当前程序的路径名
sys.modules 已加载模块的字典
sys.version 版本信息的字符串
sys.version_info 版本信息的命名元组
sys.platform 操作系统平台名称信息
sys.copyright 获得 Python版权相关的信息
sys.builtin_module_names 获得 Python内建模块的名称 (字符串元组)
sys.argv 命令行参数 argv[0] 代表当前脚本程序的路径名
sys模块的方法:
sys.exit([退出参数]) 退出程序地,正常退出时sys.exit(0)
sys.getrecursionlimit() 得到递归嵌套层次限制
sys.setrecursionlimit(n) 设置递归层次深度
模块的搜索路径:
搜索顺序:
1. 搜索程序运行时路径(当前路径)
2. sys.path提供的路径
3. 搜索内置模块
查看/设置Windows下环境变量:
"我的电脑/计算机" 右键点 "属性" 点击"高级系统设置", 点击"高级" 标签,再点右下角"环境变量"进入环境变量设置:
添加环境变量
查看Linux/Unix下环境变量:
$ printenv <回车>
在当前终端添加环境变量PYTHONPATH:
$ export PYTHONPATH="/home/tarena/mymods"
注:
此路径会在python3运行时自动添加到sys.path列表中
模块化编程的优点:
1. 有利于多人合作开发
2. 使代码更加易于维护
3. 提高代码的复用率
4. 模块化编程有助于解决函数名和变量名冲突问题(重名)
模块加载的过程:
在模块导入时,模块的所有语句会执行
如果一个模块已经导入,则再次导入时不会重新执行模块内的语句
模块的属性:
__name__ 属性
用来记录模块的自身名字
对于被导入模块,模块名为去掉.py后缀的文件名
例:abc.py 模块名为abc
对于被执行的主模块,模块名为"__main__"
作用:
1. 用来判断是否为主模块
2. 记录模块名
__doc__属性:
用来记录文档字符串
__file__属性
用来记录模块文件的路径
模块的__all__属性:
模块中的 __all__ 属性是用来存入可导出属性的列表
当用 from import * 语句 导入模块时,只导入__all__列表内的属性
示例见:
attr.py
模块的隐藏属性:
模块中以'_'开头,不以"__"结尾的属性在from import *语句导入时,将不被自动导入,通常称这些属性为隐藏属性
模块的加载过程:
1.先搜索相关路径找模块(.py)
2. 判断是否有此模块对应的.pyc文件,如果.pyc文件比.py文件新,则直接加载.pyc文件,否则用模块.py生成.pyc再进行加载
pyc 文件为模块编译文件(python compile)
编译 解释执行
mymod.py ---> mymod.pyc ---> python3
标准库模块:
随机模块 random
作用:
用于模拟或生成随机输出的模块
如:
import random as R
函数:
R.random() 返回一个[0, 1) 之间的随机浮点数
R.getrandbits(nbit) 以长整型的形式返回nbit位表示的随机数
R.uniform(a, b) 返回[a, b) 区间的随机浮点数
R.choice(seq) 从序列中返回随意元素
R.randrange([start,] stop [, step ]) 返回range(start, stop, step)中的随机数
R.shuffle(seq) 随机指定序列的顺序(乱序序列)
R.sample(seq, n) 从序列中选择n个随机且不重复的元素