Chinaunix首页 | 论坛 | 博客
  • 博客访问: 282636
  • 博文数量: 87
  • 博客积分: 1206
  • 博客等级: 少尉
  • 技术积分: 725
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-16 00:12
个人简介

do the right things the right ways

文章分类

全部博文(87)

文章存档

2017年(5)

2016年(6)

2015年(1)

2012年(11)

2011年(64)

分类: Python/Ruby

2011-09-22 10:23:05

  1. 下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。所以上面的代码执行之后,下划线变量会包含字符串:
    >>> _
    Hello World!
  2. Python 有两种除法运算符,单斜杠用作传统除法,双斜杠用作浮点除法(对结果进行四舍五入)。乘方运算符, 双星号(**)。
  3. Python 不支持 C 语言中的自增 1 和自减 1 运算符, 这是因为 + 和 - 也是单目运算符,
    Python 会将 --n 解释为-(-n) 从而得到 n , 同样 ++n 的结果也是 n.
  4. >>> pystr * 2
    'PythonPython'
    >>> '-' * 20
    '--------------------'
  5. 字符串的切片运算,当:在前是前闭后开,在后则是前闭后也闭,可以把冒号当成是一个向特定方向的全匹配。
  6. 元组也可以进行切片运算,得到的结果也是元组(不能被修改)
  7. 列表解析
    这是一个让人欣喜的术语, 表示你可以在一行中使用一个 for 循环将所有值放到一个列表
    当中:
    >>> squared = [x ** 2 for x in range(4)]
    >>> for i in squared:
    ... print i
    0
    1
    4
    9
    列表解析甚至能做更复杂的事情, 比如挑选出符合要求的值放入列表:
    >>> sqdEvens = [x ** 2 for x in range(8) if not x % 2]
    >>>
    >>> for i in sqdEvens:
    ... print i
    0
    4
    16
    36
  8. 我们的代码中可以在 print 语句中使用逗号来抑制自动生成的换行符号: print lineinfo,。 
  9. 当一个类实例被创建时, __init__() 方法会自动执行, 在类实例创建完毕后执行, 类
    似构建函数。__init__() 可以被当成构建函数, 不过不象其它语言中的构建函数, 它并不创
    建实例--它仅仅是你的对象创建后执行的第一个方法。它的目的是执行一些该对象的必要的初
    始化工作。通过创建自己的 __init__() 方法, 你可以覆盖默认的 __init__()方法(默认的
    方法什么也不做) 从而能够修饰刚刚创建的对象。
  10. 因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避
    免用下划线作为变量名的开始。一般来讲,变量名_xxx 被看作是“私有的”,在模块或类外不
    可以使用。当变量是私有的时候,用_xxx 来表示变量是很好的习惯。因为变量名__xxx__对
    Python 来说有特殊含义,对于普通的变量应当避免这种命名风格。
  11. 主程序
    无论这个模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码。通常这里
    不会有太多功能性代码,而是根据执行的模式调用不同的函数。
  12. __name__ 指示模块应如何被加载
    由于主程序代码无论模块是被导入还是被直接执行都会运行, 我们必须知道模块如何决定
    运行方向。一个应用程序可能需要导入另一个应用程序的一个模块,以便重用一些有用的代码
    (否则就只能用拷贝粘贴那种非面向对象的愚蠢手段)。这种情况下,你只想访问那些位于其
    它应用程序中的代码,而不是想运行那个应用程序。因此一个问题出现了,“Python 是否有
    一种方法能在运行时检测该模块是被导入还是被直接执行呢?” 答案就是......(鼓声雷
    动).....没错! __name__ 系统变量就是正确答案。
    如果模块是被导入, __name__ 的值为模块名字
    如果模块是被直接执行, __name__ 的值为 '__main__'
  13. Python 解释器承担了内存管理的复杂任务, 这大大简化了应
    用程序的编写。你只需要关心你要解决的问题,至于底层的事情放心交给 Python 解释器去做就
    行了。






阅读(799) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~