一些学习过程中收集的小tip~

1. and和or语法相关

在不加括号的前提下and的优先级大于or
1 or 4 and 5此例子运算时先进行and的运算再进行or的运算。

Operation Result
x or y if x is false, then y, else x
x and y if x is false, then x, else y
not x if x is false, then true, else false

or运算即是,前者为真即前者,前者为假即是后者。
and运算即为,前者为假即前者,前者为真即后者。
or和and的运算结果相反。

2. python中所有的空

  • None
  • False
  • 0,以及所有表示0的数字类型。如0,0.0,0L
  • 空集合。dict,tuple,list,dict,set。。。

3. lambda(匿名函数)

栗子:lambda x: x % n > 0
python中的lambda是简化函数,上栗中可以写为

1
2
function li(x):
return x % n > 0

此间的n是上式中传下来的数据。

4. 作用域

Python中以_前缀来实现量的私有。大部分正常命名,类似abc,xyz,PI等默认public类型。而以_开头的命名默认为private,无法被直接引用,或者说不应该被直接引用,而__name__,__author__,__doc__则都是特殊变量,能够被直接引用,但都有各自的特殊用途。
栗子:

1
2
3
4
5
6
7
8
9
10
11
def _private_1(name):
return 'Hello, %s' % name

def _private_2(name):
return 'Hi, %s' % name

def greeting(name):
if len(name) > 3:
return _private_1(name)
else:
return _private_2(name)

5. 动态语言与静态语言

java属于静态语言,python是静态语言,如下同样意义的方法,java限定了传入的参数只能为Animal或者Animal的子类的对象才能运行,而动态语言的python只需要传入有run方法的对象即可。动态语言的鸭子类型

1
2
3
public void toRun(Animal animal){
animal.run();
}
1
2
def toRun(Animal animal):
animal.run()

6. 常用三方库

。。。待收集~~