Python之道(5)---Python模块

模块的概念

模块是一个包含某些功能的代码集合,一个.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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值