注释
在python中有两种注释,一种作用于整行,用#表示;一种是区间注释,用 ‘’’ ‘’'或者""" “”"表示
运算符
算术运算符:+、-、 *、 /、 //、 %、 **。
比较运算符:>、 <、>=、 <=、!=。
逻辑运算符:and 、or、 not。
位运算符:按位取反 ~ 、按位与 &、按位或 |、按位异或 ^ 、左移<<、右移>>。
运算符的含义:
&按位与
如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
| 按位或
两个相应的二进制位中只要有一个为1,该位的结果值为1
^ 按位异或
若参加运算的两个二进制位值相同则为0,否则为1
~ 取反
~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0
<< 左移
用来将一个数的各二进制位全部左移N位,右补0
<<右移
将数的二进制表示向右移动N位得到的值
三元运算符:
x, y = 4, 5
small =x if x<y else y
print(small) #4
其他运算符:
is、not is 、in、not in
注:
1.is is not 对比的是两个变量的内存地址
2.==、!=对比的是两个变量的值
假如比较的两个变量,指向的都是地址不可变的类型(str等)那么is,is not 和 = =, !=是完全等价的。
假如对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),两者会有区别。
运算符的优先级:
一级运算符大于二级运算符:如正负号
一元运算符就是运算的时候只需要操作一个变量或者常量,例如i++ 那么++运算符就是一元运算符;常见的加减乘除就是二元运算符。
2.先算术运算,后移位运算。最后位运算
3逻辑运算最后结合
变量和赋值
变量名可以包括数字,字母,下划线,但是变量名不能以数字开头
注意大 小写
数据类型与转换:
int 、float、 bool
有时候想保留浮点型的小数点后n位。可以用decimal包里的decimal对象和getcontext()方法来实现。
import decimal
from decimal import Decimal
Decimal 默认精度28位,如果想保留4位小数
decimal.getcontext().prec = 4
c = Decimal(1)/decimal(3)
print(c)
#0.3333
除了直接给变量赋值True和False,还可以用bool(x)来创建变量,其中x可以是
1.基本类型:整型,浮点型,布尔型
2.容器类型:字符,元组,列表,字典和集合
bool作用在基本类型变量:x只要不是整型0,浮点型0.0.bool(x)就是true,其余都是false。
bool作用在容器类型变量:x只要不是空的变量,bool(x)都是true。
type()不会认为子类是一种父类类型,不考虑继承关系。
isinstance()会认为子类是一种父类类型,考虑继承关系。
如果判断两个类型是否相同 推荐使用isinstance()
类型转换:
转换为整型 int(x,base=10)
转换为字符串str(object=’ ')
转化为浮点型float(x)
位运算
二进制有三种不同的表示形式,原码、反码、补码,计算机内部使用补码来表示。
原码:就是其二进制表示
反码:正数的反码就是原码,负数的反码就是符号位不变,其余位取反(对应正数按位取反)
补码:正数的补码是原码,负数的补码是反码+1
python中bin一个负数(十进制表示)输出的是它的原码的二进制加上个负号。
python中的整型是补码形式存储的