数据类型
数字
- 整数(int,long):内存决定长度,不支持自增(++)和自减(–)
- 浮点数(float):带小数点的数,无穷小数会做精度处理
- 布尔(bool):非空(None)非 0 → true,0 或空(None) → false
- 复数(complex):表示向量,如:2 + 3j 或 2 + 3J
字符串(str)
- 定义:单引双引交替使用,不可变
- 索引:str[index],从左往右 → 从 0 开始,从右往左 → 从 -1 开始
- 切片:str[start:stop:step],左闭右开
列表(list)
- 定义:可保存任意类型,如:[1,0.2,‘abc’,[1]]
- 操作:支持索引和切片,修改:str[index] = 任意类型的值
- 字符串 → 列表:eval(’[1,2,3,4]’)
元组(tuple)
- 定义:与列表类似,可保存任意类型,如:(1,0.2,‘abc’,(1)),只含有一个元素时,会转变成数据的类型,所以要加逗号:myTuple
= (1,) - 操作:支持索引和切片,不支持修改,但可以修改其中的列表中的元素值
变量引用计数
- 拥有相同值的变量共享一个地址
- 用 sys下的 getrefcount() 查看引用计数
import sys
sys.getrefcount(value)
运算表达式
算数表达式
- 除法精确到浮点数,其它运算返回值类型,取决于参与运算中最复杂的类型
- //:向下取整,如:7 // 2 = 3
- round():可控制结果精度,默认四舍五入,如:round(10/3,4) = 3.3333,round(10/3) =
3,round(7/2) = 4 - %:取余,如:7 % 2 = 1
- **:幂,如:2 ** 4 = 16
逻辑表达式
表达式 | 意义 |
---|
not a | 非 a |
a and b | a 且 b |
a or b | a 或 b |
a is b | a 和 b 是一个对象 |
a is not b | a 和 b 不是一个对象 |
关系表达式
表达式 | 意义 |
---|
a == b | a 等于 b |
a != b | a 不等于 b |
a <> b | 已废弃 |
a > b | a 大于 b |
a < b | a 小于 b |
a >= b | a 大于等于 b |
a <= b | a 小于等于 b |
位运算
表达式 | 意义 |
---|
~a | 安位取反 |
a << n | 左移 n 位 |
a >> n | 右移 n 位 |
a & b | 按位与 |
a | b | 按位或 |
a ^ b | 按位异或 |
二进制
计算机中存储的是补码,位运算是补码在进行运算,整数的源码、反码、补码都是其本身
| 1 | -1 | 负数步骤 |
---|
源码 | 0000 0001 | 1000 0001 | 符号位在第一位,正 → 0,负 → 1 |
反码 | 0000 0001 | 1111 1110 | 符号位不变,其它取反 |
补码 | 0000 0001 | 1111 1111 | 反码加一 |
判断、循环
if
if a == b:
print('a == b')
elif a < b:
print('a < b')
else:
print('a > b')
while
while a > 10:
print('a > 10')
if(a < 20):
print('a < 20')
break
a = a - 10
for
for var in [1,2,3]:
if var == 2:
continue
print(var)