美文网首页
TRICKS in PYTHON

TRICKS in PYTHON

作者: 晨语凡心 | 来源:发表于2019-11-08 11:07 被阅读0次

一:连续比较

Python 支持连续比较,'a' < 'b' < 'c' 相当于 'a' < 'b' and 'b' < 'c',其本质是字符 ASCII 码的大小比较,该判断式结果为 True。

二:异常捕捉

如果try中没有异常,那么except部分将跳过,执行else中的语句。(前提是try里没有返回值)

finally是无论是否有异常,最后都要做的一些事情。(无论try里是否有返回值)

三:逻辑运算符

image

四:布尔测试

下列对象的布尔值都是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

相关文章

网友评论

      本文标题:TRICKS in PYTHON

      本文链接:https://www.haomeiwen.com/subject/mleibctx.html