1.yield 的用法:
https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/
2.strip 的用法
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
http://www.runoob.com/python/att-string-strip.html
3.join的用法
http://www.runoob.com/python/att-string-join.html
4.stdin 和 input 的区别
https://blog.csdn.net/CAU_Ayao/article/details/81985103
5.re.sub()的用法
https://www.cnblogs.com/nkwy2012/p/6548812.html
6.re.group()的用法
https://blog.csdn.net/flytiger_ouc/article/details/19699389
7.re模块中常用功能函数
http://www.cnblogs.com/xiaohei001/p/9783530.html
8.re.sub(r'\*(.+?)\*',r'\1','pages of *World Wide Spam*,')的理解
https://blog.csdn.net/echonupt/article/details/7889156
9.import 知识点
(1)比如有一个文件叫做 hello.py 放在c:\Python 目录下面,那么要告诉解释器从哪里查找,可以使用:
import sys
sys.path.append('c:/Python') # 这告诉解释器,除了去通常的路径下查找,还可去此处的路径查找。这样子就可以在其他文件中导入 该模块了
为什么导入模块只导入一次?两个这样的模块:需要彼此访问对方的函数和类才能正确地发挥作用,若互相导入多次,将导致无穷递归
(2)在hello2 文件中定义了hello函数
import hello2
可用 hello2.hello()来调用函数
(3)在模块中添加测试代码
测试代码要放在 if __name__ == '__main__':
(4)打印模块sys的path目录列表,使用 pprint 而不是普通的print,如果要让解释器能够找到模块,可将其放在其中任何一个位置中,最好是放置在目录site-packages,但是这样子也存在问题,解释器中充斥着你所编写的模块,没有必要的权限等,所以最好的方法是:标准做法是将模块所在的目录包含在环境变量 PYTHONPATH 中
10.包的知识点
(1)模块存储在扩展名为.py的文件中,而包则是一个目录。要被Python视为包,目录必须包含文件__init__.py。如果像普通模块一样导入包,文件__init__.py的内容就将是包的内容。包下面包含模块,在导入的时候:
若只是导入(1),那么只能使用 __init__.py 中的内容
11.探索模块:
(1)比如有一个模块 copy
dir(copy) :列出来对象的所有属性(对于模块,列出来所有的函数,类,变量)
>>> [n for n in dir(copy) if not n.startswith('_')] # 返回不以下划线打头的名称
['Error', 'PyStringMap', 'copy', 'deepcopy', 'dispatch_table', 'error', 'name', 't', 'weakref']
copy.__all__ :旨在定义模块的公有接口,具体来说就是告诉解释器这个模块导入所有的名称意味着什么
比如:
>>> copy.__all__
['Error', 'copy', 'deepcopy']
若使用 from copy import * ,将只能得到变量__all__中列出的几个函数,如果要导入 pystringmap ,必须要显式导入
>>>from copy import pystringmap
(2)获取有关copy模块中的函数copy的信息:help(copy.copy)
获得函数的准确描述:print(copy.__doc__)
(3)描述了标准库中的所有模块:https://docs.python.org/library
(4)阅读源代码:print(copy.__file__) ,找到对应文件,从而查看模块的代码
12.sys 模块
sys.argv :命令行参数,从程序外部获取参数 https://www.cnblogs.com/aland-1415/p/6613449.html
sys.exit : sys.exit(0) 正常退出 其他的数值 1-127 是非正常退出 https://blog.csdn.net/u010571844/article/details/50419261
sys.modules :sys.modules是一个全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。它拥有字典所拥有的一切方法 https://blog.csdn.net/brucewong0516/article/details/78993697
sys.platform : 返回当前的平台 如:win32
stdin stdout stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们
13.os模块
14.集合,堆 和双端队列
(1)创建集合,可使用序列或者是其他的可迭代对象来创建集合
在不提供任何参数的情况下调用set,将会忽略重复的元素
集合可以进行各种标准集合操作,比如交集并集补集
(2)集合是可变的,所以不能用作字典中的键,还有就是集合只能包含不可变的值,所以不能包含其他集合
但是使用构造函数 frozenset创建给定集合的副本
(3)堆:它是一种优先队列,可以让你以任意顺序添加对象
在操作堆函数之前要将函数heapify将列表变为合法的堆,再去使用heappush 和 heappop这些函数
(4)双端队列:
from collections import deque
q = deque(range(5))
函数rotate 可以高效地旋转元素
(15) while语句(不同于其他编程语言,python的while语句有else子句)
(16) break语句和continue语句
break语句:是跳出整个for或者while循环
continue语句:是告诉程序跳出当前循环,直接执行下一循环