标签:处理机 tar 数据 不可变类 nbsp 处理 cat span sign
参考资料:https://github.com/lijin-THU/notes-python(相应实体书为:《自学Python——编程基础、科学计算及数据分析》)
1. Python之禅:import this
2. iPython使用
3. Python支持链式比较:x = 2; 1 < x <= 3 输出True
4. list.append():每次只添加一个元素,并不会因为这个元素是序列而将其展开(不展开)
5. list.exentd(lst):将序列lst的元素依次添加到列表list的最后,相当于list += lst
6. 数据类型
7. 赋值机制(02.13 how-python-assignment-works)
(1)对于简单类型而言,python会为每个出现的对象进行赋值(分配内存),哪怕它们的值是一样的;不过,为了提高内存利用效率,对于一些简单的对象,如一些数值较小的int对象,python采用了重用对象内存的办法; //可以使用 id() 函数查看内存地址,如id(x)返回变量x的内存地址;或者使用 is 来判断是不是指向同一个事物(内存地址),如 x is y 返回True或False
(2)对于容器类型而言,python给新对象赋值时,仅仅是指向同一块内存空间(不分配新内存),如 x = [500, 501, 502]; y = x; //改变列表数据时,会分配新的内存空间给新值,而旧值则会python自动调用垃圾处理机制回收
8. 生成随机数函数:range(), xrange() //xrange效果与range函数相同,但是xrange并不会一次性的产生所有的数据,可以节省时间和内存消耗
9. 列表推导式 x = range(1000000)
10. map方法生成序列:map(aFun, aSeq) //将函数 aFun 应用到序列 aSeq 上的每一个元素上,返回一个列表,不管这个序列原来是什么类型
1 def sqr(x): 2 return x ** 2 3 4 a = [2, 3, 4] 5 print map(sqr, a)
输出:[4 9 6]
注:根据函数参数的多少,map 可以接受多组序列,将其对应的元素作为参数传入函数
1 def add(x, y): 2 return x + y 3 4 a = (2, 3, 4) 5 b = [10, 5, 3] 6 print map(add, a, b)
输出:[12 8 7]
11. 函数通过元组和字典传入参数 //结合可变参数的函数定义方式进行思考def func(arg1, *arg2, **arg3): 位置参数在前,键值对参数在后
1 def add(x, y): 2 """Add two numbers""" 3 a = x + y 4 return a 5 6 z = (2, 3) 7 print add(*z) #传入元组参数z,其中 * 必不可少
输出:5
1 def add(x, y): 2 """Add two numbers""" 3 a = x + y 4 return a 5 6 w = {‘x‘: 2, ‘y‘: 3} 7 print add(**w) #传入字典参数w,其中 ** 必不可少
输出:5
12. 模块
注:为了提高效率,python只会载入模块一次,已经载入的模块再次载入时,Python并不会真正执行载入操作,哪怕模块的内容已经改变
#利用__name__属性,使得.py文件既能当作脚本,又能当作模块用
1 PI = 3.1416 2 3 def sum(lst): 4 """ Sum the values in a list 5 """ 6 tot = 0 7 for value in lst: 8 tot = tot + value 9 return tot 10 11 def add(x, y): 12 " Add two values." 13 a = x + y 14 return a 15 16 def test(): 17 w = [0,1,2,3] 18 assert(sum(w) == 6) 19 print ‘test passed.‘ 20 21 if __name__ == ‘__main__‘: #当文件被当作脚本执行时,__name__的值为"__main__",会执行test()函数,当做模块导入是,test()不执行 22 test()
13. 常用的标准库
14. 警告warnings:出现了一些需要让用户知道的问题,但又不想停止程序,可以使用警告
1 import warnings 2 3 def month_warning(m): 4 if not 1<= m <= 12: 5 msg = "month (%d) is not between 1 and 12" % m 6 warnings.warn(msg, RuntimeWarning) #警告函数 7 8 month_warning(13)
输出:RuntimeWarning: month (13) is not between 1 and 12
#设置忽略特定类型的警告
1 warnings.filterwarnings(action = ‘ignore‘, category = RuntimeWarning) 2 3 month_warning(13) #没有警告出现
标签:处理机 tar 数据 不可变类 nbsp 处理 cat span sign
原文地址:https://www.cnblogs.com/hg-love-dfc/p/10271571.html