模块的概念
模块是一个包含某些功能的代码集合,一个.py文件就算是一个模块。使用模块最大的好处就是提高了代码的可维护性,通过把不同的功能代码放在不同的文件里面,这样每个文件的代码就会相对较少。并且使用模块可以让你使用很多现成的代码,让你的工作不用从零开始。
Python模块主要分为三种类型:
- 内置标准模块(又称标准库)
- 自定义模块
- 开源模块
模块的导入方式
1.import 模块名 [as 别名]
例:
import random
x=random.random()//获取0到1之间的随机数;
注意这种导入包的方式需要用“模块名.对象名”的方式进行调用。
2.from 模块名 import 对象名 [as 别名]
from math import sin
默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中
>>> import sys
>>> sys.path
输出:
['C:\\Users\\dingzg\\Desktop\\Code\\Python\\Start\\TestDemo', 'C:\\Users\\dingzg\\Desktop\\Code', 'C:\\Program Files\\Python35\\python35.zip', 'C:\\Program Files\\Python35\\DLLs', 'C:\\Program Files\\Python35\\lib', 'C:\\Program Files\\Python35', 'C:\\Program Files\\Python35\\lib\\site-packages']
常用模块
1.随机数模块random
random模块用于生成随机数
使用示例:
import random
#random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0
print(random.random())
#random.uniform(a, b),用于生成一个指定范围内的随机符点数,
# 两个参数其中一个是上限,一个是下限。
# 如果a > b,则生成的随机数n: a <= n <= b。
# 如果 a <b, 则 b <= n <= a。
print(random.uniform(1,5))
#random.randint(a, b),用于生成一个指定范围内的整数。
#其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
print(random.randint(1,5))
#random.randrange()同上,但是不包含上边界,可以设置步进
print(random.randrange(1,3))#不包括3
#random.choice从序列中获取一个随机元素
print(random.choice('random'))
#random.shuffle(),用于将一个列表中的元素打乱
a=['I','love','Python','very','much','!']
random.shuffle(a)
print(a)
#random.sample(sequence, k),从指定序列中随机获取指定长度的片断
b=['I','love','Python','very','much','!']
c=random.sample(a,3)
print(c)
print(b)#原有序列并没有改变
输出结果1:
0.031640915856249174
2.5835400874133887
2
1
d
['much', 'love', '!', 'very', 'I', 'Python']
['much', 'very', '!']
['I', 'love', 'Python', 'very', 'much', '!']
输出结果2:
0.14430368915974845
4.022284431575071
4
2
n
['Python', 'love', 'I', 'very', '!', 'much']
['very', 'Python', 'I']
['I', 'love', 'Python', 'very', 'much', '!']
2.时间模块time & datetime
2.1 time模块
时间模块time主要有三种格式:
- timestamp时间戳格式,表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
- struct_time时间元组,共有九个元素组:
元素 | 示例 |
---|---|
tm_year(年) | 2017(年) |
tm_mon(月) | 1 - 12 |
tm_mday(日) | 1 - 31 |
tm_hour(时) | 0 - 23 |
tm_min(分) | 0 - 59 |
tm_sec(秒) | 0 - 61 |
tm_wday(星期) | 0 - 6(0表示周日) |
tm_yday(一年中的第几天) | 1 - 366 |
tm_isdst(是否是夏令时) | 默认为-1 |
- format time格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式
格式 | 含义 |
---|---|
%a | 本地(locale)简化星期名称 |
%A | 本地完整星期名称 |
%b | 本地简化月份名称 |
%B | 本地完整月份名称 |
%c | 本地相应的日期和时间表示 |
%d | 一个月中的第几天(01 - 31) |
%H | 一天中的第几个小时(24小时制,00 - 23) |
%I | 第几个小时(12小时制,01 - 12) |
%j | 一年中的第几天(001 - 366) |
%m | 月份(01 - 12) |
%M | 分钟数(00 - 59) |
%p | 本地am或者pm的相应符 |
%S | 秒(01 - 61) |
%U | 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。 |
%w | 一个星期中的第几天(0 - 6,0是星期天) |
%W | 和%U基本相同,不同的是%W以星期一为一个星期的开始。 |
%x | 本地相应日期 |
%X | 本地相应时间 |
%y | 去掉世纪的年份(00 - 99) |
%Y | 完整的年份 |
%Z | 时区的名字 |
%% | ‘%’字符 |
import time
#返回时间戳
print(time.time())
>>>1502176885.430374
#返回时间元祖
print(time.localtime())
>>>time.struct_time(tm_year=2017, tm_mon=8, tm_mday=8, tm_hour=15, tm_min=21, tm_sec=55, tm_wday=1, tm_yday=220, tm_isdst=0)
#延迟3秒
time.sleep(3)
#返回处理器时间,测量处理器运算时间,不包括sleep时间,
time.process_time()
#返回与utc(世界协调时间 )时间的时间差,以秒计算
print(time.altzone)
>>>-32400
#返回格林威治时间
print(time.gmtime())
>>>time.struct_time(tm_year=2017, tm_mon=8, tm_mday=8, tm_hour=7, tm_min=40, tm_sec=16, tm_wday=1, tm_yday=220, tm_isdst=0)
#生成固定格式的时间表示格式
print(time.asctime())#同print(time.ctime())
>>>Tue Aug 8 15:28:21 2017
print(time.strftime('%Y-%m-%d %H:%M:%S'))#字符串时间
>>>2017-08-08 15:30:40
#将日期字符串 转成 struct时间对象格式
print(time.strptime('2017-08-08 10:27:41','%Y-%m-%d %H:%M:%S'))
>>>time.struct_time(tm_year=2017, tm_mon=8, tm_mday=8, tm_hour=10, tm_min=27, tm_sec=41, tm_wday=1, tm_yday=220, tm_isdst=-1)
#将struct时间对象转成时间戳
print(time.mktime(time.strptime('2017-08-08 10:27:41','%Y-%m-%d %H:%M:%S')))
>>>1502159261.0
2.2 datetime模块
datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo。
3. OS模块
提供对操作系统进行调用的接口,并且os模块不受平台限制
# 显示当前使用的平台
print(os.name)
>>>nt
#运行shell命令
os.system()
例:
os.system('dir')
#获取当前工作目录
a=os.getcwd()
print(a)
>>>C:\Users\dingzg\Desktop\Code\Python\Start\Demo1
#返回指定目录下的所有文件和目录名
os.listdir('dirname')
#删除一个文件
os.remove('filename')
#删除单级目录
os.rmdir('dirname')
#可生成多层递规目录
os.makedirs('dirname/dirname')
#重命名文件
os.rename("oldname","newname")
#显示当前平台下路径分隔符
print( os.sep)
>>>\
#当前平台使用的行终止符
os.linesep
>>>'\r\n' #windows
#获取系统环境变量
os.environ
#显示当前绝对路径
os.path.abspath(path)
#返回该路径的父目录
os.path.dirname(path)
#返回该路径的最后一个目录或者文件,如果path以/或\结尾,那么就会返回空值。
os.path.basename(path)
#如果path是一个文件,则返回True
os.path.isfile(path)
#如果path是一个目录,则返回True
os.path.isdir(path)
#获取文件或者目录信息
os.stat()
#将path分割成路径名和文件名
os.path.split(path)
#连接目录与文件名或目录
os.path.join(path,name)
4.sys模块
sys模块主要是用于提供对python解释器相关的操作
import sys
#获取Python解释程序的版本信息
sys.version
#返回操作系统平台名称
sys.platform
#退出程序,正常退出时exit(0)
sys.exit(n)
#返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.path
#标准输出内容
sys.stdout.write('aaa')
##输入一行
sys.stdin.read()