《用Python玩转数据》第1周学习笔记(Part2)
2015-11-09 15:11
651 查看
1、range和xrange:http://ciniao.legu.cc/article.php?id=17
大白话:
range直接就生成一个list,把内存给占上了。
xrange像一个管家,用的时候返回1个值,不用的时候也不占地方。
对于程序设计者来说,两者没什么区别。但对于程序和运行程序的机器来说,xrange省内存。
python3没有xrange,但是python3的range == python2的xrange.
2、循环中的break和continue:
break表示跳出当前循环并终止。
continue表示跳出当前循环,然后继续进入循环。
3、循环中的else
如果while或者for循环是正常结束的(没有被break或者return终止),那么则执行else语句块。这一点与if…else不同,需要注意。
4、函数注释:
函数的第1行一般写个string,用于函数注释。可以用
养成好习惯!
5、函数的关键字参数:
运行结果:
可以看到:
如果所有参数都是关键字参数,并且关键字正确,那么顺序无所谓。
如果只写部分的关键字参数,并且符合位置顺序,并且关键字参数排在后面,那么函数可以正常运行。
但如果只写部分的关键字参数,关键字不对,或者关键字参数放到了前面,或者关键字位置不对,则程序报错。
6、lambda函数(匿名函数)
还使用上面的
运行结果是 10
用起来比较麻烦。
7、递归:在函数中再调用自身。效率很低。
8、
http://stackoverflow.com/questions/132988/is-there-a-difference-between-and-is-in-python
9、type()和isinstance()的区别:
http://www.jb51.net/article/54275.htm
以后判断类型最好用instance(),因为它可以正确判断子类
大白话:
range直接就生成一个list,把内存给占上了。
xrange像一个管家,用的时候返回1个值,不用的时候也不占地方。
对于程序设计者来说,两者没什么区别。但对于程序和运行程序的机器来说,xrange省内存。
python3没有xrange,但是python3的range == python2的xrange.
2、循环中的break和continue:
break表示跳出当前循环并终止。
continue表示跳出当前循环,然后继续进入循环。
3、循环中的else
如果while或者for循环是正常结束的(没有被break或者return终止),那么则执行else语句块。这一点与if…else不同,需要注意。
4、函数注释:
def function(): 'doc_string'
函数的第1行一般写个string,用于函数注释。可以用
fountion.__doc__查看函数注释。如果使用#或者3引号来写注释,就无法用命令查看了。
养成好习惯!
5、函数的关键字参数:
def f(x, y): if y: print x else: print y f(1, True) f(y = False, x = 2) f(3, y = True) f(y = False, 4) f(a = 5, b = True) f(x = 6, True) f(False, x = 7)
运行结果:
可以看到:
如果所有参数都是关键字参数,并且关键字正确,那么顺序无所谓。
如果只写部分的关键字参数,并且符合位置顺序,并且关键字参数排在后面,那么函数可以正常运行。
但如果只写部分的关键字参数,关键字不对,或者关键字参数放到了前面,或者关键字位置不对,则程序报错。
6、lambda函数(匿名函数)
还使用上面的
f(),得出下面的代码:
f1 = lambda a, b, c: a(b, c) f1(f, 10, True)
运行结果是 10
用起来比较麻烦。
7、递归:在函数中再调用自身。效率很低。
def fib(n): if n == 0 or n == 1: return n else: return (fib(n - 1) + fib(n - 2))
fib(10)的结果是55,
fib(100)就死掉了~~
8、
is和
==的区别:
http://stackoverflow.com/questions/132988/is-there-a-difference-between-and-is-in-python
==仅比较value,
is比较是否是同一个object
9、type()和isinstance()的区别:
http://www.jb51.net/article/54275.htm
class A: pass class B(A): pass isinstance(A(), A) # returns True type(A()) == A # returns True isinstance(B(), A) # returns True type(B()) == A # returns False
以后判断类型最好用instance(),因为它可以正确判断子类
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法