python复习
进制之间的转换
十进制 | 二进制 | 八进制 | 十六进制 |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | a |
11 | 1011 | 13 | b |
12 | 1100 | 14 | c |
13 | 1101 | 15 | d |
14 | 1110 | 16 | e |
15 | 1111 | 17 | f |
二进制与八进制的关系
八进制最大数为7
, 而7
的二进制数为111
, 所以 一个八进制数据=3位二进制数
如果要计算二进制到八进制时候, 则可以将二进制数3个3个拆解,然后进行拼接
111=2**2+2**1+2**0=4+2+1
二进制 | 八进制 |
---|---|
001011 | 13 (001 011) |
11011011100 | 3334(011 011 011 111 ) |
对于二进制 001011
可以拆解为 001
,011
, 001
转换成八进制是1
, 011
转换成八进制数是 3
, 所以最后的结果是13
对于二进制11011011100
, 可以拆解为 011
, 011
, 011
,111
, 前面三个011
的计算结果为3
, 111
的计算结果为4
, 所以最后的结果是3334
二进制与十六进制的关系
八进制最大数为f
,在十进制中表示为15, 十六进制中f
(十进制中的15
)的二进制数为1111
, 所以 一个十六进制数据=4位二进制数
如果要计算二进制到十六进制时候, 则可以将二进制数4个4个拆解,然后进行拼接
1111=2**3+2**2+2**1+2**0=8+4+2+1
二进制 | 十六进制 |
---|---|
11010111000 | 6b8 |
110101001 | 1a9 |
对于二进制 11010111000
可以拆解为 0110
,1011
, 1000
0110
转换成十六进制是6
, 1011
转换成十六进制数是 b
, 1000
转换成十六进制是8
, 所以最后的结果是6b8
对于二进制 110101001
可以拆解为 0001
,1010
, 1001
0001
转换成十六进制是1
, 1010
转换成十六进制数是 a
, 1001
转换成十六进制是9
, 所以最后的结果是1a9
python运算符
逻辑运算(二进制的加乘)
逻辑运算都是布尔运算, 而在布尔运算中, True 表示1, False 表示0, 本质上逻辑运算就是0和1的加法和乘法运算
与运算(and): 乘法
或运算(or): 加法
非运算(not): 切换True和False
位运算
<<
左移 ----------- 本质上就是二进制数往左偏移多少位, 本质上就是乘法, 往左偏移一位*2
, 偏移2位*4
>>
右移 ----------- 本质上就是二进制数往右偏移多少位, 本质上就是除法, 往左偏移一位/2
, 偏移2位/4
运算符优先级
- 大概规律
单目运算符 > 双目运算符
索引运算符 > 属性访问运算符 > 乘除 > 加减 > 比较运算符 > is 运算符 > in 运算符 > 逻辑非 > 逻辑与 > 逻辑或
运算符说明 | Python运算符 | 优先级 | 结合性 | 优先级顺序 |
---|---|---|---|---|
小括号 | ( ) | 19 | 无 |
高 ︿ | | | | | | | | | | | | | | | | | | | | | | 低 |
索引运算符 | x[i] 或 x[i1: i2 [:i3]] | 18 | 左 | |
属性访问 | x.attribute | 17 | 左 | |
乘方 | ** | 16 | 左 | |
按位取反 | ~ | 15 | 右 | |
符号运算符 | +(正号)、-(负号) | 14 | 右 | |
乘除 | *、/、//、% | 13 | 左 | |
加减 | +、- | 12 | 左 | |
位移 | >>、<< | 11 | 左 | |
按位与 | & | 10 | 右 | |
按位异或 | ^ | 9 | 左 | |
按位或 | | | 8 | 左 | |
比较运算符 | ==、!=、>、>=、<、<= | 7 | 左 | |
is 运算符 | is、is not | 6 | 左 | |
in 运算符 | in、not in | 5 | 左 | |
逻辑非 | not | 4 | 右 | |
逻辑与 | and | 3 | 左 | |
逻辑或 | or | 2 | 左 | |
逗号运算符 | exp1, exp2 | 1 | 左 |
练习
1, python实现九九乘法表
start = range(1, 10)
end = range(1, 10)
for i in start:
for j in end:
if not i<j:
print('%s*%s=%s' % (j, i, i * j), end=' ')
print(' ', end='\n')