十个python程序小技巧
来源:互联网 发布:如何剔除异常数据 编辑:程序博客网 时间:2024/06/05 11:30
十个python程序小技巧
1 在作比较时你可以这样写: 3.14<pi<3.15,它得到的结果和(pi>3.14 and pi<3.15)是一样的,在大多数其他语言里,你都不能用这么自然的语法了。
2 Int类型不会在超过31bit或32bit后溢出,它们会变成long型。在
python里,long并非就是64位,他就是"长"类型,(python的长类型可以容纳数万位大的整数),效率会降低一点。在python 3000中,甚至连int与long的区别都没有了。
3默认值只会在编译时被赋值一次,而非运行时。试试这个: def func
(a[]): a.append(42); 返回值a会随调用不断加入42. python的教程里有更多相关的讨论。
4 连接多个字符串时,"".join(list)会比 for x in list: s+=x快得多。实际上 join调用复杂度是o(n),而+=是o(n2).有很多人要求使这个调用更快,而且python2.5里似乎也应该变得更快了,但我的测试结果
却并非如此,有谁知道为什么吗?
5 语法 print >>file里,仅数值被写入文件中,而print的格式化功能不起作用。我很高兴听到他们说在python 3000总,print会变成一个函数,而且带有了更多高级的特性。
6 你可以通过(x,)来创建只有一个元素的tuple,通常你只能建立如
(x,y,z)那样的tuple,如果你想通过(x)来建立一个tuple,得到的只是x
7如果你想看看整数类的帮助文档,你可以写(5).__str__; 你不能简化成5.__str__,因为解释器会把5.认作是浮点数,然后出错了。
8你可以使用属性而不是getter或setter函数。例如serial. baudrate=192000 可以设置serial._baud,跟你调用其它调用的效果一样。
9 一个紧跟在for循环后的else语句只有在循环不通过break退出时才会被调用。这对查找循环很有用处,通常这样的循环都会需要在退出后作
额外的检查判断。
10 你来告诉我你的技巧,哈!你以为你能逃得掉吗;-)
e文原文在http://blog.micropledge.com/2008/01/ten-python-quirkies/
其中第5条我不清楚是否翻译的正确,我自己试验后也不明白作者所指何事,还请达人指教。
1 在作比较时你可以这样写: 3.14<pi<3.15,它得到的结果和(pi>3.14 and pi<3.15)是一样的,在大多数其他语言里,你都不能用这么自然的语法了。
2 Int类型不会在超过31bit或32bit后溢出,它们会变成long型。在
python里,long并非就是64位,他就是"长"类型,(python的长类型可以容纳数万位大的整数),效率会降低一点。在python 3000中,甚至连int与long的区别都没有了。
3默认值只会在编译时被赋值一次,而非运行时。试试这个: def func
(a[]): a.append(42); 返回值a会随调用不断加入42. python的教程里有更多相关的讨论。
4 连接多个字符串时,"".join(list)会比 for x in list: s+=x快得多。实际上 join调用复杂度是o(n),而+=是o(n2).有很多人要求使这个调用更快,而且python2.5里似乎也应该变得更快了,但我的测试结果
却并非如此,有谁知道为什么吗?
5 语法 print >>file里,仅数值被写入文件中,而print的格式化功能不起作用。我很高兴听到他们说在python 3000总,print会变成一个函数,而且带有了更多高级的特性。
6 你可以通过(x,)来创建只有一个元素的tuple,通常你只能建立如
(x,y,z)那样的tuple,如果你想通过(x)来建立一个tuple,得到的只是x
7如果你想看看整数类的帮助文档,你可以写(5).__str__; 你不能简化成5.__str__,因为解释器会把5.认作是浮点数,然后出错了。
8你可以使用属性而不是getter或setter函数。例如serial. baudrate=192000 可以设置serial._baud,跟你调用其它调用的效果一样。
9 一个紧跟在for循环后的else语句只有在循环不通过break退出时才会被调用。这对查找循环很有用处,通常这样的循环都会需要在退出后作
额外的检查判断。
10 你来告诉我你的技巧,哈!你以为你能逃得掉吗;-)
e文原文在http://blog.micropledge.com/2008/01/ten-python-quirkies/
其中第5条我不清楚是否翻译的正确,我自己试验后也不明白作者所指何事,还请达人指教。
- python程序十个小技巧
- 十个python程序小技巧
- 十个python程序小技巧
- delphi十个小技巧
- python学习-程序小技巧
- 十个Linux bash小技巧
- 十个Linux bash小技巧
- JavaScript的十个小技巧
- java面试十个小技巧
- ASP.NET编程中的十个小技巧
- Linux bash shell 的十个小技巧
- Win2003安装后的十个小技巧
- visio studio提高工作效率的十个小技巧
- 十个不可不知的Javascript小技巧
- 成功部署OpenStack的十个小技巧
- visio studio提高工作效率的十个小技巧
- 十个 Laravel 5 程序优化技巧
- 十个 Laravel 5 程序优化技巧
- poj2446 Chessboard 二分匹配
- PHPUnit 3.7.28安装
- Rational Purify 使用及分析实例
- 更改eclipse的编辑器样式风格
- HTTP请求过程中发生了哪些事?
- 十个python程序小技巧
- textarea 截取长度
- web.xml
- hibernate优化
- 设计模式
- htaccess中常用的正则表达式
- npm install xxx --save-dev
- Linux下如何模拟按键输入和模拟鼠标
- Hello, world! (ZOJ 1001)