进制
- python可以表示二进制,八进制,十六进制,十进制,默认是十进制
- 默认是十进制
- 0b开头是二级制
- 0o开头是八进制
- 0x开头是十六进制:0-9,a-f
- print打印的默认是十进制
- 进制的转化:
- 十进制的数除以2得到商与余数,再用商除以2得到新的商与余数,…,将所得到的余数倒着写就是对应的二进制的数
- 二进制转化为八进制,将二进制的数三个三个一组分开,对应写成十进制的数,然后按顺序写就是对应的八进制的数
- 二进制转化为十六进制,将二进制的数四个四个一组分开,对应写成十六进制的数,然后按顺序写就是对应的十六进制的数
- 使用内置函数实现进制转换
- bin()是转换为2进制,此时数据类型是str
- oct()转换为八进制,此时数据类型是str
- hex()转换为十六进制,此时数据类型是str
数据类型的转换
- 利用**int()**可以将其他类型的的数据转化成整型数据,默认()中的数字是十进制的数
- 如果()中的数不是一个合法的数字,那么使用int会报错,比如int(‘hello’),int(‘1a2c’)
- 回忆16进制,所以有int(‘1a2c’,16)这个表示1a2c对应的16进制的数
- 利用float()将其他类型的数据转化为浮点型,
如果()中的数不是一个合法的数字,那么使用float会报错, - 利用**str()**将其他类型的数据转化为字符串
- 利用**bool()**将其他类型的数据转换为bool类型
- 数字:非0即True,0是False
- 字符串:非空即True,**’’(即单引号之间什么都不加)**是False
- 空数据None转化为bool值是False
- **空列表[]**转化为bool值是False,
- **空元组()**转换为bool值是False,
- **空字典{}**转换为bool值是False,
- **空集合set()**转换为bool值是False
除了上述说的False,其他都是True
True与False被认为是1与0被计算机保存
运算符
- 算术运算符
- +加,-减,*乘,/除,**乘幂,//整除(只取整数部分),%取余
- 两个整数做除法,得到的是一个浮点数
- 字符串支持有限度的加法和乘法算术运算符
- 加法:只能用于字符串合并成一个字符串 ,不支持字符串与数字运算
- 乘法:可以用与字符串与数字之间
- 赋值运算符
- =在计算机编程里,称为赋值运算符,将=右边的值赋值为左边
- =左边一定不能使常量或者表达式
- 复合运算符:+=,-=,/=,*=,**=,//=,%=
- 等号连接的变量可以传递赋值
- 当**=左边只有一个变量而=右边有多个数据时,赋值的是元组**
- 当**=左右边都是多个变量,称为拆包**,个数要对应
- 可以在左边变量前面加星号表示可变长度的
- 比较运算符
- 大于>,小于<,大于等于>=,小于等于<=,等等于==,不等于!=
- 用在常规的数字之间
- 用在字符串之间:是逐个比较字符串对应字符的ASCII编码
- 数字和字符串:==的结果是False,!=的结果是True,不支持其他比较运算符
- 逻辑运算符
- 逻辑与and,逻辑或or,逻辑非not,not()把括号里面的变成相反的
- 逻辑词后面需要空格,不然会报错
- 运行的时候是运行到能判断出结果为止
- 逻辑运算的结果不一定是bool值
- 逻辑与运算做取值时,取第一个为False的值,如果全True,取最后一个
- 逻辑或运算做取值时,取第一个为True的值,如果全False5,取最后一个
- 位运算符
- 按位运算是指,将数(不管是什么进制的数)转化成二进制的数,然后对这个二进制数操作
- 按位与**&**:两个都是1则1,否则为0
- 按位或**|**:只要有一个是1就是1,否则是0
- 按位异或**^**:相同为1,不同为0
- 按位左移**<<n**:向左移n位,然后空出来的用0补齐,相当于乘以2的n次方
- 按位右移**<<n**:向右移n位,去掉多余的部分,相当于乘以2的n次方,然后取整
- 按位取反**~:按位取反1变成0,0变成1**,相当于-x-1
python可以识别不同进制的数进行直接运算
- 运算符的优先级
- **指数最高
- ~按位翻转
- *乘,/除,//整除,%取余
- +加,-减
- <<左移,>>右移
- &按位与
- ^按位异或,|按位或
- <=,<,>,>=比较运算符
- ==,!=等于运算符
- =,+=,-=,*=,/=,//=,%=(复合)赋值运算符
- is,is not 身份运算符
- in,not in 成员运算符
- not>and>or逻辑运算符