x.attribute 属性引用
~x 按位取反
+x,-x 正,负
x**y 幂
x*y,x/y,x%y 乘,除,取模
x+y,x-y 加,减
x<<y,x>>y 移位
x&y 按位与
x^y 按位异或
x|y 按位或
x<y,x<=y,x==y,x!=y,x>=y,x>y 比较
x is y,x is not y 等同测试
x in y,x not in y 成员判断
not x 逻辑否
x and y 逻辑与
x or y 逻辑或
lambda arg,...:expr Lambda匿名函数
结合规律
运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算
计算顺序
默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。然而,如果你想要改变它们的计算顺序,你得使用圆括号。好的做法:默认对复杂的运算加括号,而不是依赖于默认结合和计算顺序
真值
真值测试
•任何非零数字或非空对象都为真
•数字零,空对象以及特殊对象None都为假
•比较和相等测试都会递归地运用到数据结构中
•比较和相等测试会返回True或False
真值表
对象/常量 值
"" 假
"string" 真
0 假
2>=1 真
-2<=-1 真
()空元组 假
[]空列表 假
{}空字典 假
None 假
布尔表达式
三种布尔表达式运算符
x and y
x or y
not x
比较
•数字通过相对大小进行比较
•字符串时按照字典顺序的,一个字符一个字符比较
•列表和元组从左到右对每部分的内容进行比较
•字典通过排序后的键值列表进行比较
•数字混合类型比较在python3是错误的,但是python2.6支持,固定但任意的排序规则
布尔数
•有两个永远不改变的值True,False
•布尔是整型的子类,但不能被再继承
•没有__nonzero__()方法的对象的默认值是True
•对于值为0的任何数字或空集,值False
•在数学运算中,Bollean值的True和False分别对应于1和0
基本控制流
if
基本的条件测试语句,用来判断可能遇到的不同情况,并针对不同的情况进行操作
基本形式
if <条件>:
<语句>
elif <条件>:
<语句>
else:
<语句>
注意
python根据缩进判断, elif和else部分是可选的
例子:
a = 1
b = 2
c = 3;d=4 #两个放一句用分号隔开,不过建议分行
if a < b and c < d:
print("branch a")
elif a == b:
print("branch b")
else:
print("branch c")
switch
python 本身没有 switch 语句,若需要,用if/elif/else实现完成同样的工作,某些情况可以考虑用字典










