一、变量
Python变量由三个部分组成,分别是变量名、赋值符号以及变量值。
#变量的组成
name = "Hello China"
变量的命名方式:变量名可以包括字母、数字、下划线,但不能以数字作为开头。
驼峰体命名,首字母大写。
变量的命名区分大小写。
在使用变量前,先对其赋值。
变量的特性:id。变量值的内存空间地址,使用id()来查看变量的内存地址
type。使用type()来查看变量的数据类型
变量值=存储值
二、变量的数据类型及转换
数据类型:str : 表示是一个字符串类型
int :表示是一个整型
bool:表示是一个布尔型,真:True 假:False
float:表示是一个小数类型,浮点数类型
通过type()函数来查看变量的数据类型。
拓展:查看变量的长度,使用bit_length()函数。
2. 可以用decimal包里的Decimal对象和getcontext()方法来保留浮点小数后n位。用getcontext().prec来调整精度。
例:使 1/3 保留 4 位
3. 布尔 (boolean) 型变量只能取两个值,True和False。当把布尔型变量用在数字运算中,用1和0代表True和False。
4. 除了直接给变量赋值 True 和 False,还可以用 bool(X) 创建变量, X 可以是:基本类型:整型、浮点型、布尔型
容器类型:字符串、元组、列表、字典和集合
例:bool 作用在基本类型变量:X 只要不是整型 0、浮点型 0.0,bool(X) 就是 True,否则为 False。
bool作用在容器类型变量:X只要不是空的变量,bool(X)就是True,否则False。 对于容器变量,里面没元素则为空。
5. 判断两个类型是否相同推荐使用isinstance(),它被认为子类是一种父类类型,考虑继承关系。
数据类型的转换:转换为整型 int(x, base=10)
转换为字符串 str(object='')
转换为浮点型 float(x)
三、运算符算数运算符加法:+
减法:-
乘法: *
除法: /
整除://,(地板除,只取结果的整数部分,并且是向下取整,若结果为3.2取3,若结果为-3.2则取-4)
取余:%
幂次:**比较运算符等于 ==
不等于 != 或 <>(a != b 或 a <> b)
大于 >
小于 <
大于等于 >=
小于等于 <=逻辑运算符与 and :两者都为True,则返回True,否则为False。
或or :两者至少有一者为True,则返回True。
非 not : 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。位运算符(位运算过程中,把数字转化成二进制计算,然后再转化成数字。)按位与 & :运算的两个值相应位都为1,则该位的结果为1,否则为0。
按位或 | :运算的两个值相应位只要有一个位置为1,则该位的结果为1。
按位异或 ^ :运算的两个值相应位数值不同,则结果为1,否则为0。
按位取反 ~ :运算数据的每个二进制位取反,即把1变为0,把0变为1 。
左移位 << :若 a <<2 将数字a对应的二进制数集体向左移动2位,后面空余位补零。
右移位 >> :若 a >> 3 将数字a对应的二进制数集体向右移动2位,前面空余位补零。其它运算符存在 in :若 x 在 y 中,则返回True,否则返回False。
不存在 not in :若 x 不在 y 中,则返回True,否则返回False。
是 is : id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False。
不是 is not : id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
注意:is, is not 对比的是两个变量的内存地址
==, != 对比的是两个变量的值
比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等价的。
对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的。
例:比较的两个变量均指向不可变类型。
例:比较的两个变量均指向可变类型。
四、位运算
1. 原码、反码和补码
二进制有三种不同的表示形式:原码、反码和补码。
原码:就是其二进制表示(注意,有一位符号位)。
00 00 00 11 — 3
10 00 00 11 — -3
反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。
00 00 00 11 — 3
11 11 11 00 — -3
补码:正数的补码就是原码,负数的补码是反码+1。
00 00 00 11 — 3
11 11 11 01 — -3
符号位:最高位为符号位,0表示正数,1表示负数。在位运算中符号位也参与运算。
2. 位运算规则位与运算符运算规则:0&0=0&1=1&0=0,1&1=1位或运算符运算规则:0|1=1|0=1|1=1,0|0=0位求反运算符运算规则:~0=1,~1=0位异或运算符运算规则:0^0=1^1=0,0^1=1^0=1左移位运算符运算规则:原来的所有位左移,最低位补0,相当于乘以2
右移位运算符运算规则:原来的所有位右移,最低位丢弃,最高位使用符号位填充,相当于整除2