摘要: 布尔运算符有个有趣的特性:只有在需要求值时才进行求值。举例来说,表达式x and y需要两个变量都为真时才为真,所以如果x为假,表达式就会立刻返回false,而不管y的值(事实上各个语言都有这个特性)。实际上,如果x为假,表达式会返回x得值----否则它就返回y的值。这种行为被称为短路逻辑(short-circuit logic)或惰性求值(lazy evaluaion):布尔运算符通常被称为逻辑运算符,就像你看到的那样第2个值有时“被短路了”。这种行为对于or来说也同样适用。在表达式x or y中,x为真时,它直接返回x的值,否则返回y值。注意,这意味着在布尔运算符之后的所有代码都不会执.. 阅读全文
posted @ 2012-01-22 17:09 SkyHacker 阅读(18507) 评论(1) 推荐(2)
摘要: 从模块导入函数的时候,可以使用import somemodule或者from somemodule import somefunctionfrom somemodule import somefunction, anotherfunction, yetanotherfunction或者from somemodule import *只有确定自己想要从给定得模块导入所有功能时,才应该使用最后一个版本。但是如果两个模块都有open函数,那又该怎么办?只需使用第一种方式导入,然后像下面这样使用函数:module1.open(...)module2.open(...)但还有另外的选择:可以在语句末尾增 阅读全文
posted @ 2012-01-22 16:40 SkyHacker 阅读(1168) 评论(0) 推荐(0)
摘要: 字典的格式化字符串很酷。在每个转换说明符中的%字符后面,可以加上(用园括号括起来的)键,后面在跟上其他说明元素。In [1]: phonebook = {'Alice':123, 'hello':456, 'sky':789}In [2]: "Alice's phone number is %(Alice)s" % phonebookOut[2]: "Alice's phone number is 123" 除了增加字符串键之外,转换说明符还是像以前一样工作。当以这种方式使用字典的时候,只要 阅读全文
posted @ 2012-01-22 14:57 SkyHacker 阅读(9067) 评论(0) 推荐(1)