模块 module
什么是模块:
模块是包含一系列变量,函数,类等的程序组
模块是以文件为单位的,模块文件通常以.py结尾
作用:
1. 让一些相关的变量,函数,类等有逻辑的组织在一起,使逻辑结构更加清晰
2. 模块中的变量,函数,类等可提供给其它模块或程序使用
模块的分类:
1. 内建模块(builtins),在解析器的内部可以直接使用
2. 标准库模块,安装Python时已安装,也可以直接使用
3. 第三方模块(通常为开源), 需要自己安装
4. 用户自己编写的模块(可以作为其它人的第三方模块)
模块的导入:
import 语句
格式:
import 模块名 [as 模块新名][, 模块名2[ as 模块新名2]]...
示例:
import math
作用:
将某模块整体导入到当前模块中
用法:
模块名.属性名
用法示例:
print("5的阶乘是:", math.factorial(5))
查看模块中变量和函数的方法:
dir(obj) 函数 ,返回所有属性的字符串列表
help(obj) 函数,查看模块相关的文档字符串
from import 语句
语法:
from 模块名 import 模块属性名 [as 属性名新名]
[, 模块属性名2 [as 属性新名2]]
作用:
将某模块内的一个或多个属性导入到当前模块的作用域
示例:
from math import pi
from math import sqrt
from math import factorial as fac
from import * 语句
语法:
from 模块名 import *
作用:
将某模块的所有属性导入到当前模块
示例:
from math import *
print(sin(pi/2.0))
print(factorial(5))
总结导入语句(三条):
1. import 语句
2. from import 语句
3. from import * 语句
dir函数:
dir([对象]) 返回一个字符串列表
作用:
1. 如果没有参数调用,则返回前作用域的所有变量的列表
2. 如果给定一个对象作为参数,则返回这个对象的所有变量的列表
1) 对于模块,返回这个模块的全部属性
2) 对于类对象,返回所有类变量,并递归基类对象的所有变量
3) 对于其它对象,返回所有变量,类变量和基类变量
内置模块(内建模块)
builtins, sys, time, itertools, posix...
标准库模块:
random, math, os, functools, xml, ....
数学模块 math
变量
math.e 自然对象的底 e
math.pi 圆周率pi
函数:
math.ceil(x) 对x向上取整 x = 1.2 返回2
math.floor(x) 对x向下取整 x = 1.2 返回1
math.sqrt(x) 返回x的平方根
math.factorial(x) 求x的阶乘
math.log(x[,base]) 返回以base为底x的对数,如果不给出base,则以自然对数e为底
math.log10(x) 求以10为底的对数
math.degrees(x) 弧度转角度
math.radians(x) 角度转弧度
三角函数:
math.sin(x)
math.cos(x)
math.tan(x)
math.asin(x)
....
时间模块 time
提供了时间相关的函数
时间简介:
1. 公元纪年 0000年1月1日 0:0:0 开始
2. 计算机元年 1970年1月1日 0:0:0 开始,此时时间为0 Linux/UNIX)
3. UTC 时间(Coordinated Universal Time), Greenwich时间
4. DST 阳光节约时间(Daylight Saving Time) 又称夏令时
时间元组:
是一个9个整数元组组成的,9个数的依次顺序是:
四位的年(如:1993)
月(1-12)
日(1-31)
时(0-23)
分(0-59)
秒(0-59)
星期几(0-6,周一是0)
元旦开始日(1-366)
夏令时修正时间(-1, 0 or 1)
变量:
time.timezone 本地区时间与UTC时间差(秒为单位)
函数:
time.time() 返回从计算机元年至当前时间的秒数的浮点数(UTC时间为准)
time.sleep(secs) 让程序按给定的秒数的浮点数睡眠一段时间
time.gmtime([secs]) 将秒数转换为UTC表达的时间元组
time.asctime([tuple]) 将时间元组转换为日期时间字符串
time.mktime(tuple) 将本地日期时间元组转换为计算机元年秒数
time.localtime([secs]) 将UTC秒数时间转换为本地时间元组