Python 表达式
2019-03-25 本文已影响43人
JunChow520
表达式操作符
- 算术运算
- 逻辑运算:
x or y,x and y,not x - 成员关系运算:
x in y,x not in y - 对象实例测试:
x is y,x is not y - 比较运算:
x < y,x > y,x >= y,x <= y - 等于比较 :
x == y,x != y - 位运算:
x | y、x & y,x ^ y,x << y,x >> y - 一元运算:
-x、+x、~x - 幂运算:
x ** y - 索引和分片:
x[i]、x[i:j]、x[i:j:stride] - 调用运算:
x(...) - 取属性:
x.attribute - 特殊运算:元组
(...)、列表[...]、字典{...} - 三元选择表达式:
x if y else z - 匿名函数相关表达式:
lambda args:expression - 生成器函数发送协议:
yield x
运算优先级
(...)-
s[i]、s[i:j] s.attributefn()+xx ** y-
*,/,//,% -
+,- -
<<,>> &^|-
<,<=,>,>=,==,!= - is, not is
- in , not in
- not
- and
- or
- lambda
语句
- 赋值语句
= - 函数调用
fn() - 打印对象
print - 条件判断
if/elif/else - 序列迭代
for/else - 普通循环
while/else - 占位符
pass - 循环控制:
break、continue - 函数定义
def - 函数返回
return yield- 命名空间
global - 触发异常
raise - 导入模块
import - 模块属性访问
from - 类
class - 异常捕获
try/except/finanlly - 删除引用
del - 调试检查
assert - 环境管理
with/as
赋值语句
print test
NameError: name 'test' is not defined
隐式赋值:import,from,def,class,for,函数参数
元组和列表支持分解赋值:当赋值符号左侧为元组或列表时,python会按位置逐一对应,把右边的对象和左边的目标自左向右逐一进行匹配,当个数不同时会触发异常,此时可以切以切片的方式进行操作。
tuple = ("sun", "sat", "mon")
x,y,z = tuple
print(x, y, z)
多重目标赋值
import sys
n1 = n2 = n3 = 100
print(n1, n2, n3)
n1 = 101
print(n1, n2, n3)
sys.getrefcount(n1)
增强赋值 +=、-=、*=、/=、//=、%=
流程控制 if测试
条件测试:if 条件测试表达式
python中比较操作
- 所有python对象都支持比较操作
- 可用于测试相等性、相对大小等
- 复合对象中python会检查所有部分,包括自动便利各级嵌套对象,直到可以得出最终结果。
- 测试操作符
-
==操作符测试值的相等性 -
is表达式测试对象的一致性
-
python中不同类型的比较方法
- 数字:通过相对大小进行比较
- 字符串:按照字典次序逐个字符进行比较
- 列表和元组:自左向右比较各部分内容
- 字典:对排序后的键、值列表进行比较
a = 1
b = 2
c = 3
print(a==b)
str = "string"
print(a == str)
lst = ["x","y","z"]
print(a == lst)
lst2 = ["x", "y"]
print(lst == lst2)
lst3 = ["x", "y", "z"]
print(id(lst), id(lst3), lst==lst3)
print("x" in lst3)
python中真和假的含义7
- 非零数字为真否则为假
- 非空对象为真否则为假
- None始终为假
- 数字0、空对象、特殊对象
Null均为假 - 比较和相等测试会递归地应用于数据结构中
组合条件测试
- 逻辑与
x and y - 逻辑或
x or y - 逻辑异或
x ^ y
if 测试的语法结构
-
elif语句是可选的 - 仅用于占位符,而后再填充相关语句时,可使用pass。
if boolean_expression1:
suite1
elif boolean_expresssion2:
suite2
...
else
else_suite
例如
x = 100
y = 200
if x>y :
print "the max number is %d" % x
else:
print "the max num is %d" % y
三元表达式
A = X if Y else Z
# 等价于
if Y
A = X
else
A = Z
# 等价于
expression1 if boolean_express else expression2
最大值最小值
a = 7
b = 9
max = a if a>b else b