sys模块
sys常用的有:
sys.argv
命令行参数List,第一个元素是程序本身路径
sys.modules.keys()
返回所有已经导入的模块列表
sys.exc_info()
获取当前正在处理的异常类,exc_type
、exc_value
、exc_traceback
当前处理的异常详细信息
sys.exit(n)
退出程序,正常退出时exit(0)
sys.hexversion
获取Python解释程序的版本值,16进制格式如:0x020403F0
sys.version
获取Python解释程序的版本信息
sys.maxunicode
最大的Unicode
值
sys.modules
返回系统导入的模块字段,key是模块名,value是模块
sys.path
返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform
返回操作系统平台名称
sys.stdout
标准输出
sys.stdin
标准输入
sys.stderr
错误输出
sys.exc_clear()
用来清除当前线程所出现的当前的或最近的错误信息
sys.exec_prefix
返回平台独立的python文件安装的位置
sys.byteorder
本地字节规则的指示器,big-endian平台的值是’big’,little-endian平台的值是’little’
sys.copyright
记录python版权相关的东西
sys.api_version
解释器的C的API版本
sys.version_info
Python解释器的版本信息
sys.displayhook(value)
如果value非空,这个函数会把他输出到sys.stdout
,并且将他保存进__builtin__.
.指在python的交互式解释器里,’_'代表上次你输入得到的结果,hook是钩子的意思,将上次的结果钩过来
sys.getdefaultencoding()
返回当前你所用的默认的字符编码格式
sys.getfilesystemencoding()
返回将Unicode文件名转换成系统文件名的编码的名字
sys.setdefaultencoding(name)
用来设置当前默认的字符编码,如果name和任何一个可用的编码都不匹配,抛出LookupError
,这个函数只会被site模块的sitecustomize
使用,一旦别site模块使用了,他会从sys模块移除
sys.builtin_module_names
Python解释器导入的模块列表
sys.executable
Python解释程序路径
sys.getwindowsversion()
获取Windows的版本
sys.stdin.readline()
从标准输入读一行,sys.stdout.write("a")
屏幕输出a
math 模块
math模块的函数如下:
0,常量
math.pi
π = 3.141592…
math.e
e = 2.718281…
1,数值计算函数
math.ceil(x)
返回≥x的最小整数
math.floor(x)
返回≤x的最大整数
math.copysign(x,y)
返回与y同号的x值
math.fabs(x)
返回x的绝对值
math.factorial(x)
返回x的阶乘,即x!,x必须为非负整数
math.fmod(x,y)
返回x对y取模的余数(x决定余数符号),与x%y不同(y决定余数符号)
例:
math.fmod(100, -3) --> 1.0
math.fmod(-100, 3) --> -1.0
100 % -3 --> -2
-100 % 3 --> 2
math.frexp(x)
返回元组(m,e),根据
x = m*(2**e)
math.fsum(iterable)
返回数组的和,比内置函数sum要精确
math.isfinite(x)
若x是有限数,返回True
math.isinf(x)
若x是无穷大,返回True
math.isnan(x)
若x非数,返回True
math.ldexp(x,i)
返回x*(2**i)
的结果
math.modf(x)
返回元组(fractional,integer)
,分别为x的小数部分和整数部分
math.trunc(x)
返回x的整数部分
2,乘方/对数函数
math.exp(x)
返回e**x
math.expm1(x)
返回e**x - 1
math.log(x[,base])
返回x的对数,base默认的是e
math.log1p(x)
返回x+1的对数,base是e
math.log2(x)
返回x关于2的对数
math.log10(x)
返回x关于10的对数
math.pow(x,y)
返回x**y
math.sqrt(x)
返回x的平方根
3,三角函数
math.sin(x)
返回x的正弦,x用弧度制表示
math.cos(x)
返回x的余弦
math.tan(x)
返回x的正切
math.asin(x)
返回x的反正弦,结果用弧度制表示
math.acos(x)
返回x的反余弦
math.atan(x)
返回x的反正切
math.atan2(y,x)
返回atan(y/x)
math.hypot(x,y)
返回sqrt(x*x + y*y)
4,角度,弧度转换函数
math.degrees(x)
弧度 –> 角度
math.radians(x)
角度 -> 弧度
5,双曲线函数
math.acosh(x)
返回x的反双曲余弦
math.asinh(x)
返回x的反双曲正弦
math.atanh(x)
返回x的反双曲正切
math.cosh(x)
返回x的双曲余弦
math.sinh(x)
返回x的双曲正弦
math.tanh(x)
返回x的双曲正切
6,特殊函数
https://docs.python.org/3/library/math.html
math.erf(x)
Return the error function at x.
math.erfc(x)
Return the complementary error function at x
math.gamma(x)
Return the Gamma function at x.
math.lgamma(x)
Return the natural logarithm of the absolute value of the Gamma function at x.
collections模块
Python拥有一些内置的数据类型,比如str,int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型:
- namedtuple 生成可以使用名字来访问元素内容的tuple子类
- deque 双端队列,可以快速的从另外一侧追加和推出对象
- Counter 计数器,主要用来计数
- OrderedDict 有序字典
- defaultdict 带有默认值的字典
heapq模块
https://docs.python.org/2/library/heapq.html
这个模块(build-in)实现了一个堆的数据结构,完美的解决了Top-K问题,以后解决Top-K问题的时候,直接把这个模块拿来用就可以了
注意,默认的heap是一个小顶堆!
heapq模块提供了如下几个函数:
heapq.heappush(heap, item)
把item添加到heap中(heap是一个列表)
heapq.heappop(heap)
把堆顶元素弹出,返回的就是堆顶
heapq.heappushpop(heap, item)
先把item加入到堆中,然后再pop,比heappush()再heappop()要快得多
heapq.heapreplace(heap, item)
先pop,然后再把item加入到堆中,比heappop()再heappush()要快得多
heapq.heapify(x)
将列表x进行堆调整,默认的是小顶堆
heapq.merge(*iterables)
将多个列表合并,并进行堆调整,返回的是合并后的列表的迭代器
heapq.nlargest(n, iterable, key=None)
返回最大的n个元素(Top-K问题)
heapq.nsmallest(n, iterable, key=None)
返回最小的n个元素(Top-K问题