Data type and Operators
Built Types
Built Types | Profile |
---|---|
整型int | integer |
浮点型float | 类似C的双精度 |
布尔值bool | boolean |
类型Type |
其他还包括
- 字符串 String(str)
- 列表 List
- 元组 Tuple
- 集合 Set
- 字典 Dictionary(dict,也称
映射 map
) - 复数 Complex Number(complex)
- 函数 Function
- 模块 Module
Builtin Constants 内置常数
True,False,None(代表空,用于空值)
-
math
库中的一些数学常量- pi,数学常数 π = 3.141592...,精确到可用精度
- e,数学常数 e = 2.718281...,精确到可用精度
- tau,数学常数 τ = 6.283185...,精确到可用精度(不常用)
- inf,浮点正无穷大,等价于
float('inf')
,负无穷大使用-math.inf
Builtin Operators 内置运算符
-
算术
- +,-,*
- @ :矩阵乘法
- ** :乘方
- / :浮点数除法,结果为浮点数
- //:整除,python中,商向负无穷取整
- %:取模,
a%b
等同于a - (a//b)*b
取模为计算机概念,商向负无穷取整,在被除数和除数符号不一致的情况下,取模倾向于用绝对值更大的商。取余math.fmod()是数学概念,商向0靠近。
-
-
:用于表示负数; -
+
:表示正数;
关系:<, <=, >=, >, ==(相等), !=(≠)
赋值: +=, -=, *=, /=, //=, *=, %=
逻辑:and, or, not
位运算符: ???
运算符优先级
以下优先级从高到底排列
除乘方与赋值运算符为右结合为,均为左结合
运算符 | 描述 |
---|---|
(expressions...),[expressions...], {key: value...}, {expressions...} | 绑定或加圆括号的表达式,列表显示,字典显示,集合显示 |
x[index], x[index:index], x(arguments...), x.attribute | 抽取,切片,调用,属性引用 |
await x | await 表达式 |
** | 乘方 5 |
+x, -x, ~x | 正,负,按位非 NOT |
*, @, /, //, % | 乘,矩阵乘,除,整除,取余 6 |
+, - | 加和减 |
<<, >> | 移位 |
& | 按位与 AND |
^ | 按位异或 XOR |
按位或 OR | |
in, not in, is, is not, <, <=, >, >=, !=, == | 比较运算,包括成员检测和标识号检测 |
not x | 布尔逻辑非 NOT |
and | 布尔逻辑与 AND |
or | 布尔逻辑或 OR |
if -- else | 条件表达式 |
lambda | lambda 表达式 |
:= | 赋值表达式 |
https://docs.python.org/zh-cn/3.9/reference/expressions.html#operator-precedence
- 幂运算符 ** 绑定的紧密程度低于在其右侧的算术或按位一元运算符,也就是说 2**-1 为 0.5。
- % 运算符也被用于字符串格式化;在此场合下会使用同样的优先级。
Types Affect Semantics 类型影响语义
与C类似,使用运算符的数据类型不同进行的操作也不完全相同。
浮点数误差
计算机存储无限小数特有的误差
短路求值 Short-Circuit Evaluation
- 运行and时,只要出现False就不会再计算后续
- 运行or时,只要出现True时就不会计算后续
其他
- 多数语言进行除法运算时会发生崩溃,python会引发一个ZeroDivisionError的异常表示除以零的操作是无效的。Python中的异常处理机制允许我们捕获这个异常并采取适当的措施来避免程序崩溃。例如,我们可以使用 try-except 块来捕获 ZeroDivisionError 异常,并在出现异常时执行特定的代码。以下是一个示例:
try: result = 1 / 0 except ZeroDivisionError: print("除以零错误!") 通过这样的异常处理,程序可以继续执行而不会崩溃。
- 查看类型:type() vs isinstance(),isinstance()更加好用
- numbers库中包括了所有类型的数字numbers.Number表示所有数字类型其中包括复数