第四章:运算符与表达式——参考手册笔记
表达式:用于返回值
表达式由运算符与运算对象构成
其中运算对象可以是字面量,对象,或表达式(递归的定义)
运算规则决定了语法分析的规则、语法树的结构
具体的常用操作如下
python强类型
无声明
无编译器
运行时如何:
动态检查类型?
维护类型?
4.1数值操作:数值类型
移位与按位逻辑运算符只用于整数
比较逻辑可连接在一起
要求操作数属于同一类,对内部类型进行强制类型转换:提升至复数,提升至浮点数
用户对应的类型,不尝试隐式类型转换
4.2序列操作:序列类型
制作副本:浅复制
变量解包:个数严格匹配
成员关系:不支持模式匹配
迭代
序列逻辑运算
切片
字符串与元组创建后不可修改
4.3字符串格式化
"%索引/(变量名)插值功能" % 元组与字典,元组加括号,避免歧义
4.4高级字符串格式化
字符串方法
s.format(*args,**kargs)
s中占位符{num}与{name},用位置参数*args与关键字参数**kargs解包后插入
占位符中可进行索引与属性查找,只支持使用名字(字符串字面量),不支持表达式,方法调用等
可通过特殊方法__format__自定义格式化行为
4.5字典
增?
删,改,查(key存在)
字典长度
4.6集合操作
集合的数学定义操作
4.7增量赋值
+= -=
不违反可变性,不会原地修改
4.8属性访问
.
访问对象属性
自定义行为
4.9函数调用()
调用时,每个参数对应于一个表达式,从左至右表达式求值(应用序求值)
partical()函数科里化,指定部分参数的值,接受的参数变少
4.10 转换函数,类型转换
类型名作为函数名,显式类型转换
复合类型:浅复制
repr:表达式字符串
eval:字符串求值
4.11布尔表达式
短路计算,改变了表达式的语义
4.12对象等同性与标识
==值相等
is 引用同一对象
name—— addr——value
4.13运算优先级
括号
索引
属性
一元
二元
比较
逻辑
匿名函数
4.14条件表达式
value1 if conditon else value2
返回值:有条件的赋值