一:连续比较
Python 支持连续比较,'a' < 'b' < 'c' 相当于 'a' < 'b' and 'b' < 'c',其本质是字符 ASCII 码的大小比较,该判断式结果为 True。
二:异常捕捉
如果try中没有异常,那么except部分将跳过,执行else中的语句。(前提是try里没有返回值)
finally是无论是否有异常,最后都要做的一些事情。(无论try里是否有返回值)
三:逻辑运算符

四:布尔测试
下列对象的布尔值都是False:
NONE
所有的值为零的数: 0(整型) 0.0(浮点型) 0L(长整型) 0.0+0.0j(复数)
(空字符串) [](空列表) ()(空元组) {}(空字典)
五:模块名
由于每个python模块(python文件)都包含内置的变量name,当运行模块被执行的时候,name等于文件名(包含了后缀.py)。如果import到其他模块中,则name等于模块名称(不包含后缀.py)。而“main”等于当前执行文件的名称(包含了后缀.py)。所以当模块被直接执行时,name == 'main'结果为真;而当模块被import到其他模块中时,name == 'main'结果为假,就是不调用对应的方法。
六:字典的键
使用dict需要牢记的第一条就是dict的key必须是不可变对象。这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
七:jupyter notebook自动重新加载发生改动的模块
> %load_ext autoreload
>
> %autoreload 2
>
> from foo import some_function
>
> some_function()
>
> 输出: 42
>
> # 打开foo.py,编辑some_function()函数让其输出43
>
> some_function()
>
> 输出:43
八:单斜杠和双斜杠运算符的区别
在python 3.x版本中
单斜杠(/)表示除法,且不管除数和被除数是不是整数,最后结果都是float类
双斜杠(//)表示地板除,即先做除法(/),然后向下取整(floor)。至少有一方是float型时,结果为float型;两个数都是int型时,结果为int型
九:在列表、元组、字典前加星号
列表和元组前面加一个星号的作用是:将其解开成两个独立的参数,传入函数,
字典前面加两个星号:是将字典解开成独立的元素作为形参。
def add(a, b):
return a+b
data = [4,3]
print add(*data)
#equals to print add(4, 3)
data = {'a' : 4, 'b' : 3}
print add(**data)
#equals to print add(4, 3)
十:在创建类型的时候定义了call()方法,这个类型就像函数一样是可调用的
>>>class Reader():
def __init__(self,name,nationality):
self.name = name
self.nationality = nationality
def __call__(self):
print('Reader: %s Nationality: %s' % (self.name, self.nationality))
>>>r = Reader('Annie','Chinese')
>>>r()
Reader:Annie Nationality: Chinese
网友评论