- Django book notes https://github.com/sherlockzoom/python-notes/tree/master/django-book-notes
- Google-python练习 https://github.com/sherlockzoom/python-notes/tree/master/google-python-exercises
- learn-Python-Hard-Way https://github.com/sherlockzoom/python-notes/tree/master/learnPythonHardWay
- 迭代器和生成器 https://github.com/sherlockzoom/python-notes/blob/master/iterator_and_yield.md
os.sep
可以取代操作系统特定的路径分割符。
os.name
字符串指示你正在使用的平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’。
os.getcwd()
函数得到当前工作目录,即当前Python脚本工作的目录路径。
os.getenv()
和os.putenv()
函数分别用来读取和设置环境变量。
os.listdir()
返回指定目录下的所有文件和目录名。
os.remove()
函数用来删除一个文件。
os.system()
函数用来运行shell命令。
os.linesep
字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n'
,Linux使用’\n'
而Mac使用'\r'
。
os.listdir(dirname)
列出dirname下的目录和文件
os.getcwd()
获得当前工作目录
os.curdir
返回当前目录(’.’)
os.chdir(dirname)
改变工作目录到dirname
os.path.abspath(path)
返回绝对路径
os.path.basename(path)
返回文件名
os.path.commonprefix(list)
返回list(多个路径)中,所有path共有的最长的路径。
os.path.dirname(path)
返回文件路径
os.path.exists(path)
路径存在则返回True,路径损坏返回False
os.path.lexists
路径存在则返回True,路径损坏也返回True
os.path.expanduser(path)
把path中包含的""和"user"转换成用户目录
os.path.expandvars(path)
根据环境变量的值替换path中包含的”$name”
和”${name}”
os.path.getatime(path)
返回最后一次进入此path的时间。
os.path.getmtime(path)
返回在此path下最后一次修改的时间。
os.path.getctime(path)
返回path的大小
os.path.getsize(path)
返回文件大小,如果文件不存在就返回错误
os.path.isabs(path)
判断是否为绝对路径
os.path.isfile(path)
判断路径是否为文件
os.path.isdir(path)
判断路径是否为目录
os.path.islink(path)
判断路径是否为链接
os.path.ismount(path)
判断路径是否为挂载点()
os.path.join(path1[, path2[, ...]])
把目录和文件名合成一个路径
os.path.normcase(path)
转换path的大小写和斜杠
os.path.normpath(path)
规范path字符串形式
os.path.realpath(path)
返回path的真实路径
os.path.relpath(path[, start])
从start开始计算相对路径
os.path.samefile(path1, path2)
判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2)
判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2)
判断stat tuple stat1和stat2是否指向同一个文件
os.path.split(path)
把路径分割成dirname和basename,返回一个元组
os.path.splitdrive(path)
一般用在windows下,返回驱动器名和路径组成的元组
os.path.splitext(path)
分割路径,返回路径名和文件扩展名的元组
os.path.splitunc(path)
把路径分割为加载点与文件
os.path.walk(path, visit, arg)
遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数
os.path.supports_unicode_filenames
设置是否支持unicode路径名
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模块的函数如下:
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)
返回ex
math.expm1(x)
返回ex - 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.
Python拥有一些内置的数据类型,比如str,int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型:
- namedtuple 生成可以使用名字来访问元素内容的tuple子类
- deque 双端队列,可以快速的从另外一侧追加和推出对象
- Counter 计数器,主要用来计数
- OrderedDict 有序字典
- defaultdict 带有默认值的字典
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问题