Python基础知识笔记

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语句:是告诉程序跳出当前循环,直接执行下一循环

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章